On March 26, 2019 we launched new MODX Forums. Please join us at the new MODX Community Forums.
Subscribe: RSS
  • Как в шаблоне вывести ПХП код?
    Пробовал через TV и просто в шаблоне писать. Но он пишет этот кусок кода как просто текст и не обрабатывает его.

    Пробовал и <? и <?php бесполезно.
    • :) вот результат того, что у нас еще не готова документация:)

      php-код можно написать тремя способами: сделать сниппет, плагин или модуль. Думаю в вашем случае нужно просто создать новый сниппет, назвать его, написать в его содержимое php-код, причем не использовать <?php. Чтобы ваш код выводил какой-то результат в конце, конечно же, должна быть строка
      return ....;

      Далее, в шаблоне, где вам нужно выводить результат сниппета - просто пишете
      [[имя сниппета]]
        http://modx.ru - российская поддержка MODx
        http://newscup.ru - экспериментальный проект
        http://yentsun.com - персональный сайт
      • ясно, спасибо... но было бы лучше просто позволить в шаблоне тоже использовать <?
        • :) вы всегда можете создать свою php-страницу и использовать в ней все что вздумается плюс, с помощью API функций MODx - использовать всю мощь системы.

          Однако, думаю со временем вы поймете преимущества использования сниппетов. Например, сниппет может быть задан с параметрами, и так же сниппет может быть вызван откуда угодно в системе MODx с помощью своему имени.

          вообще, мы могли бы рассмотреть ваш частный случай:) напишите тот пример, котором по-вашему будет лучше использовать в шаблоне php-код smiley
            http://modx.ru - российская поддержка MODx
            http://newscup.ru - экспериментальный проект
            http://yentsun.com - персональный сайт
          • Может быть не совсем по теме, но бывают случаи, когда нужно встроить внешний PHP файл в страницу. Например я сталкивался с этим, когда нужно было подключить скрипт стороннего разработчика. Так вот, от Etomite у меня остался сниппет, который позволяет встроить внешний файл:

            //Using [[PHPInclude?file=path_to_your_file/file_name.php]]
            
            if ( !isset($file) || $file == "" ) return "No file specified."; //check if there's a file given.
            
            ob_start();//Start the buffer
            
            include $file; //include
            
            $ob_contents = ob_get_contents();//get contents from the buffer
            ob_end_clean();//and kill/delete the buffer
            return $ob_contents;//return it to etomite.


            В шаблоне (или нужной странице) сниппет вызывается c использованием параметра file=path_to_your_file/file_name.php, где прописывается путь к внешнему PHP файлу:
            [[PHPInclude?file=path_to_your_file/file_name.php]]
              Разработка сайтов и программных модулей на MODX.
              Опыт работы на MODx с 2005 года. Высокое качество.
              Компания Baltic Design Colors: http://www.bdcolors.ru.
            • браво! легко и просто smiley
                "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

                Не используйте Revo для "просто сайтов". Используйте Evo

                Who can defeat the Russian bear?
              • у человека вопрос стоял в том, чтобы использовать php-код в шаблоне:)

                ответ конечно один - php-код в чистом виде невозможно использовать в шаблоне! необходимо использовать сниппеты... свои или чьи-то еще smiley

                Lexxus, если у вас есть случай, где выгоднее использовать чистый код, а не сниппеты - пожалуйста поделитесь.
                  http://modx.ru - российская поддержка MODx
                  http://newscup.ru - экспериментальный проект
                  http://yentsun.com - персональный сайт
                • вот кстати, пост о том же видимо http://modxcms.com/forums/index.php/topic,5663.0.html
                  если не понятно, спросите - я переведу.

                  И еще - только сейчас заметил что вы пытались через TV писать код. Так вот в TV php-код пишется не спомощью <? а с помощью @EVAL
                  Прочитать можно здесь http://modxcms.com/eval-binding.html, опять таки если непонятно - переведем. В будущем это все будет у нас в документации.
                    http://modx.ru - российская поддержка MODx
                    http://newscup.ru - экспериментальный проект
                    http://yentsun.com - персональный сайт
                  • подскажите- способ вставления через сниппет PHPInclude - работает только если нужно вызвать 1 файл, или может работать когда идет подключение скрипта из множества страниц. пробую использовать этот способ и на странице ничего не отображается, действие скрипта не происходит.
                    подключать пытаюсь вот этот кусок индексного файла скрипта

                    <?session_start();
                    include "inc.php";
                    include "config.php";
                    include "class.php";
                    print "
                    <script language=\"javascript\" type=\"text/javascript\">
                    function reemail(login,domian){
                    var url='';
                    url=\"mailto:+login+@+domian+\";
                    window.location=url;
                    }
                    function Paste(bb)
                    {
                            data = window.opener.window.document;
                            data.form.text_msg.value += ' '+bb+' '; data.form.text_msg.focus(); 
                        window.focus();
                        return;
                    }
                       </script>
                    ";
                    @session_start();
                    $start=new main();
                    $start->seegb();?> 
                    • оформите в сниппет, поправьте пути в исходном скрипте, вставляйте в шаблон в месте вызов сниппета [[....]]