We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 2532
    • 31 Posts
    создаю с помощью связки eForm и docmanager новый документ и назначаю ему псевдоним (alias)
    ...
    $doc->Set(’alias’,$fields[’myUrl’]);
    ...
    Проблема в том, что такой псевдоним может уже существовать и документ создаётся не смотря на запрет повторяющихся псевдонимов в настройках MODx.

    Как выкрутиться из ситуации?
    Можно ли как-то проверить наличие документа с определённым псевдонимом?
      • 2532
      • 31 Posts
      Всё случилось.

      Воспользовался &eFormOnValidate=`BeforAddNew`

      Соответственно добавил функцию BeforAddNew которая расширила валидацию до необходимого мне функционала.

          function BeforAddNew(&$fields, &$vMsg, &$rMsg){
              global $modx;
              $ParentID = 2; // ID документа внутри которого проверяем уникальность урла.
              $msgBadAlias='Выбранный адрес уже занят'; // Сообщение о проблеме с УРЛом.
              $sql = "SELECT * FROM ".$modx->getFullTableName("site_content")." WHERE `parent`='".$ParentID."' AND `alias`='".$fields['myUrl']."'";
              if($modx->recordCount($modx->dbQuery($sql)) > 0) {
                  $vMsg[3] = $msgBadAlias;
                  return $vMsg;
              }
          return;
          }
      


      Было бы совсем хорошо иметь возможность проверки ещё до отправки всей формы. Типа как проверить свободно ли имя для регистрации ещё до заполнения всей формы.

      Может есть идеи как это организовать? Мультиформы?
        • 785
        • 2,113 Posts
        Quote from: ax at Jun 01, 2008, 06:56 AM

        Было бы совсем хорошо иметь возможность проверки ещё до отправки всей формы. Типа как проверить свободно ли имя для регистрации ещё до заполнения всей формы.
        Если нужна проверка до отправки формы, то единственный вариант – JavaScript. А чтобы узнать, есть ли в базе такие имена, следует использовать Ajax, то есть асинхронный запрос к серверу.
          Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
          Статьи о MODx, регулярно новые публикации