We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 3855
    • 5 Posts
    Всем привет. Пытаюсь вызвать в файле сниппет Eform для отображения формы. Файл не является частью modx, но лежит в том же document root.

    При попытке выводит сообщение Document or chunk not found for template id= ’calc_feedback_form’. В чем загвоздка?

    Привожу пример кода:


    define("MODX_BASE_PATH",$_SERVER["DOCUMENT_ROOT"]."/");
    set_include_path(get_include_path().":".MODX_BASE_PATH);

    require_once("manager/includes/config.inc.php");
    require_once("manager/includes/document.parser.class.inc.php");

    $modx = new DocumentParser;

    global $modx;

    $form=$modx->runSnippet(’eForm’,
    array(
    "formid"=>"calc_form",
    "tpl"=>"calc_feedback_form",
    "to"=>’[email protected]’,
    "subject"=>"",
    "report"=>’ContactFormReport’
    )
    );


    echo $form;

    Заранее спасибо.
      • 1611
      • 591 Posts
      обрати внимание на файл index-ajax.php, в нем как раз загружается необходимое окружение для modx.
        • 785
        • 2,113 Posts
        Возможно, не все необходимые подготовительные действия выполнены. В общем случае для работы с MODx API надо выполнить примерно такие действия:

        // Защита от некоторых опасностей 
        require_once('manager/includes/protect.inc.php');
        // Загрузка конфигурации
        if (!$rt = @include_once 'manager/includes/config.inc.php') {
        	exit('Невозможно загрузить конфигурационный файл MODx!');
        }
        // Установка режима MODx API
        define('MODX_API_MODE', true);
        // Инициализация парсера
        include_once(MODX_MANAGER_PATH.'/includes/document.parser.class.inc.php');
        $modx = new DocumentParser;
        // Включение доступа к базе данных MODx
        $modx->db->connect();
        // Включение доступа к основным параметрам MODx
        $modx->getSettings();
          Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
          Статьи о MODx, регулярно новые публикации
          • 3855
          • 5 Posts
          Да, это то, что надо было. Спасибо, что выручили.

          Еще вопрос остался. Как ее сделать, чтобы она также была полнофугкциональна как если бы была размещена на отдельной странице в системе?

          Приведу пример, что я под этим подразумеваю.
          В вызове снипетта передается formid.

          В шаблоне черным побелому идет сторочка
          <form method="post" id="calc_form" action="" id="FeedBackForm">

          calc_from я передаю выше в массиве парпметров.
          В итоге при генерации верстки он это игнорирует. ТО есть вообще не отображает тег form.
            • 785
            • 2,113 Posts
            Quote from: booka at Aug 18, 2009, 03:37 AM

            Как ее сделать, чтобы она также была полнофугкциональна как если бы была размещена на отдельной странице в системе?
            Это совсем другая задача – в этом случае надо создавать не отдельный файл, работающий со средой MODx, а сниппет, вызываемый на странице MODx. В этом сниппете может подключаться и внешний файл.
              Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
              Статьи о MODx, регулярно новые публикации
              • 3855
              • 5 Posts
              OK. Сейчас более подробно объясню. У меня есть простенький онлайн калькулятор.После нажатия на клавишу рассчитать я хотел вызвать форму для отправки результата на почту. Так как я не хочу смешивать верстку, пхп код код отправки и тем более дать возможность это удобно редактировать обычному смертному, то решил использовать снппет eform для этого.
                • 785
                • 2,113 Posts
                Quote from: booka at Aug 18, 2009, 04:15 AM

                Так как я не хочу смешивать верстку, пхп код код отправки и тем более дать возможность это удобно редактировать обычному смертному, то решил использовать снппет eform для этого.
                Лично я не понимаю, как все эти утверждения связаны друг с другом, ну и ладно. В любом случае непонятно, зачем вызывать из какого-то файла eform, когда надо просто добавить страницу с его вызовом и использовать событие &eformOnBeforeFormParse, чтобы получить нужную информацию. А калькулятор должен располагаться на другой странице в виде сниппета, а не в отдельном файле.
                  Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
                  Статьи о MODx, регулярно новые публикации
                  • 3855
                  • 5 Posts
                  Под калькулятор выделена отдельная страница, где как раз он вызывается сниппетом. Калькулятор на аяксе. Используется прототайп. После подсчета мне надо в ответе на аякс запрос вернуть результат вызова сниппета eform.
                    • 785
                    • 2,113 Posts
                    То есть вопрос в действительности совсем другой - как работать с eform в режиме ajax. Так как сам eform не работает в режиме ajax, вряд ли красиво его использовать в связке с ajax-приложением, но это только мое мнение, а по сути - надо подробно разбираться, что там не так сделано, а так вряд ли что-то можно сказать. Может кто-то другой подскажет.
                      Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
                      Статьи о MODx, регулярно новые публикации
                      • 29487
                      • 385 Posts
                      <form method="post" id="calc_form" action="" id="FeedBackForm">
                      второе id лишнее