We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 21179
    • 58 Posts
    Недавно задавал вопрос где хранится код сниппета. Ответили что в базе данных, а доступ к ним можно получить через админку... конечно спасибо... но это по моему понятно и так. ело в том, хотелось бы знать как именно получить доступ к этому сниппету что бы он мог обработать данные введенные в формы. То есть конкретно мне ответили писать ту самую страницу где выводится этот сниппет, но! Там где он выводится там ведь никокого кода не остается, так ведь? Ведь насколько всем известно (я надеюсь) выводимый на страницу код php выводится обработанным серевером, а браузеру достается только html. Как же обратится к коду php который хранится в БД?
      Нет рекламе.
      • 33694
      • 742 Posts
      Админка -> вкладка Ресурсы -> Управление ресурсами -> вкладка Сниппеты на странице.
        • 21179
        • 58 Posts
        Отлично в таком случае я буду писать в атрибуте тага form следующую строку: "Админка -> вкладка Ресурсы -> Управление ресурсами -> вкладка Сниппеты на странице", надеюсь обрабоnxbr поймет.
          Нет рекламе.
          • 19164
          • 1,215 Posts
          Страшные и непонятные вещи вы пишете. Сниппет хранится в базе, но вызывается из документа. Поэтому обработчиком формы является не админка -> ресурсы и т.д. а тот документ, в котором этот сниппет вызывается.

          Разберитесь с матчастью, поймите специфику и назначение сниппетов и их параметров.

          Для работы с электронными формами идеально подходит сниппет eForm, рекомендую ознакомится.
            DirectResize 0.9 beta. PHPThumb, sets of configurations, configuration, binded to specific path. No backward compatibility. | DirectResize 0.9. PHPThumb, наборы параметров, параметры, привязанные к определенным путям. Без обратной совместимости.

            Unfortunately, DirectResize project is closed. If you want to continue development, PM me for access to project page on Google Code. К сожалению, проект DirectResize закрыт. Если вы желаете продолжить разработки, обращайтесь через ПМ для получения доступа к репозиторию на Google Code.

            [PLUGIN] DirectResize - as Maxigallery but for single images :: Download :: [url=http://modxcms.com/forums/index.php/topic,21490]
            • 12792
            • 18 Posts
            Как я понимаю назначение сниппета.
            Это пхп код для инициализации пути к скриптам снипета и параметрам, передаваемым этим скриптам. Снипет это НЕ (имхо) скрипт, это хранитель названия, путей и параметров.
            Зачем снипет? Затем же зачем запуск приложения из командной строки с ключами:), т.е. если вы не умеете писать приложения то и понятие командной строки вам ни к чему, запускайте ярлычки с рабочего стола.

            хотелось бы знать как именно получить доступ к этому сниппету что бы он мог обработать данные введенные в формы
            Некоторый алгоритм (как я понимаю создание снипета).
            Создаете папочку и делаете там пхп скрипты (java скрипты тоже) для обработки форм. Создаете дизайн, привязываете его к классам ЦСС общего шаблона.
            Делаете ввод/вывод в формате <div class="myclass"></div> или таблицы с привязкой объектов классам ЦСС.
            Вот и почти все, осталось добавить командира для Ваших скриптов - снипет, сказать ему с чем работать:
            $mysnipetfolderPath = $modx->config['base_path'] . 'assets/snippets/mysnipetfolder/';

            Снипетом можно сделать стартовый скрипт вашего проэкта, либо написать к кому обращаться для старта работы:
            include ($mysnipetfolderPath.'mystartscript.php');

            Ессно это обращение должно сохранится во всех скриптах для взаимодействия скриптов друг с дружкой.
            Необходимые вам начальные параметры (аналоги ключей коммандной строки) можно тоже задать в снипете:
              $FeedMaxItems = isset($FeedMaxItems)? $FeedMaxItems : 3;
            /*  Param: Max rssline Items for output 
                Options: digit
            */

            Такой вариант ИМХО самый удобный т.к. можно использовать переменную с таким же именем как и в своих скриптах взяв оттуда какое то дефолтное значение.

            Вот я вчера грабилку RSS из готового скрипта наваял. Практически не пришлось менять оригинальный скрипт. За что собственно МОДх и понравился, не люблю велосипедов изобретать.
            • Quote from: Il_Burbero at Dec 28, 2007, 11:56 AM

              Как я понимаю назначение сниппета.
              Это пхп код для инициализации пути к скриптам снипета и параметрам, передаваемым этим скриптам. Снипет это НЕ (имхо) скрипт, это хранитель названия, путей и параметров.
              Зачем снипет? Затем же зачем запуск приложения из командной строки с ключами:), т.е. если вы не умеете писать приложения то и понятие командной строки вам ни к чему, запускайте ярлычки с рабочего стола.
              Как-то не так Вы понимаете его назначение.
              http://modx.ru/docs/glossary/#snippet
              Сниппет сам по себе является программой. Функцией, которую создает программист сверх API, предоставленного системой.
              Выносить программную часть, конечно, можно в файлы. Но рекомендуется сохранять ее в самом сниппете.
                Разработка сайтов и программных модулей на MODX.
                Опыт работы на MODx с 2005 года. Высокое качество.
                Компания Baltic Design Colors: http://www.bdcolors.ru.
                • 12792
                • 18 Posts
                Сниппет сам по себе является программой. Функцией, которую создает программист сверх API, предоставленного системой.
                Подпрограмма MODx на языке php, выводящая какой-либо результат непосредственно в место своего вызова из шаблона.

                Подпрограмма это часть программы но не сама программа:).
                Функция сверх АПИ системы это плагин, снипеты используют функции АПи системы. Вот я так думаю, но это все ерунда, у каждого свое понятие о программировании, кто то любит Ассемблер, а ктото Дельфи:), главное что метод снипета ИМХО очень хорошее решение, т.к. основную программу можно протестировать и отладить вне системы МОДх, т.е. не надо устанавливать снипет чтобы посмотреть работает ли он:)

                Но рекомендуется сохранять ее в самом сниппете.
                Может быть. Зато вынесенная программа
                1) недоступна шаловливым ручонкам менеджеров сайта.
                2) т.к. снипет хранится в БД, то код нужно выгрузить из БД - это время, и чем больше код тем больше будет время выгрузки. Хотя это спорно, хз что сработает быстрее прямая загрузка скрипта или загрузка скрипта из БД.
                • Quote from: Il_Burbero at Dec 29, 2007, 10:20 AM

                  основную программу можно протестировать и отладить вне системы МОДх, т.е. не надо устанавливать снипет чтобы посмотреть работает ли он:)
                  Хм. Мне это непонятно. Как можно протестировать и отладить свою программу вне CMS и при этом быть уверенным в нормальной работе? В этом случае Вам придется использовать полностью внешние данные для подключения к базе данных, создать это самое подключение с помощью функций не из API системы (т.к. последние будут недоступны), ну и т.д.
                  Я могу это принять как вариант установки полностью стороннего решения на свой сайт, когда например Вам нужно вызвать внутри своей страницы какую-то отдельную галерею, форум или что-то еще, что никак не взаимодействует с функциями системы и перенос все на API системы крайне затруднителен или невозможен. И кстати, именно так Вы и поступили, когда создавали RSS парсер.
                  А вот с понятием:
                  Это пхп код для инициализации пути к скриптам снипета и параметрам, передаваемым этим скриптам.
                  я в корне не согласен. Именно в этом смысле Вы неверно понимаете назначение сниппета. В MODx сниппеты являются программами (или подпрограммами, как хотите) и, в общем случае, могут функционировать как полноценные скрипты - тот же RSS парсер не проблема создать с помощью сниппетов на MODx.
                  Quote from: Il_Burbero at Dec 29, 2007, 10:20 AM

                  Может быть. Зато вынесенная программа
                  1) недоступна шаловливым ручонкам менеджеров сайта.
                  2) т.к. снипет хранится в БД, то код нужно выгрузить из БД - это время, и чем больше код тем больше будет время выгрузки. Хотя это спорно, хз что сработает быстрее прямая загрузка скрипта или загрузка скрипта из БД.
                  1 пункт решается с помощью назначения прав пользователям. Внимательнее почитайте документацию.
                  2 пункт действительно спорен. Насколько мне известно, никто еще не проводил специальных тестов для замеров скорости работы в этих двух случаях. Но в хранении сниппетов внутри системы есть одно очень полезное свойство - разработчику нет надобности лезть на FTP в случае необходимости изменения кода. Весь программный код доступен изнутри системы, конечно, если нет нужды лезть в ядро.
                    Разработка сайтов и программных модулей на MODX.
                    Опыт работы на MODx с 2005 года. Высокое качество.
                    Компания Baltic Design Colors: http://www.bdcolors.ru.
                    • 19164
                    • 1,215 Posts
                    Подпрограмма это часть программы но не сама программа:).
                    Какие-то философские размышления на тему теории программирования. Слова подпрограмма возвращают меня в памяти к школьным годам и бейсику. В ООП оперируют классами и функциями, а подрограмма это уже вымыслы и домыслы, кому как больше нравится.
                    Функция сверх АПИ системы это плагин, снипеты используют функции АПи системы. Вот я так думаю, но это все ерунда, у каждого свое понятие о программировании.
                    Это все демагогия на ту же тему. В MODx сложилась своя терминология - есть строго разграниченные понятия сниппет, плагин и модуль, которые могут не соответвовать привычным понятиям из других движков. Вы конечно можете называть сниппеты плагинами и считать их подпрограммами, надстройками над API, да чем угодно. Но вот с пониманием будут большие проблемы, которые уже можно проследить в этом топике. Неважно как это называеся и как это может быть в теории. Главное что это удобно и работает.

                    Касаемо хранения сниппетов в БД и вне - лично я за создание сниппета в виде класса или набора функций и вынесения их в отдельный файл. В пользу этомого есть несколько весьма веских доводов, неочевидных на первый взгляд. Первое - учитывая специфику кеширования движка на данный момент, нужно помнить, что в файле кеша храняться коды всех сниппетов (плагинов, модулей и т.д.). Это означает, что большое количество кода увеличивает файл кеша и замедляет работу системы в общем. Второе - невозможность отладки сниппета, пока он находится в базе, что существенно затрудняет нахождение ошибок в коде.

                    Для меня второе весьма значительно и сразу перевешивает все минусы.

                      DirectResize 0.9 beta. PHPThumb, sets of configurations, configuration, binded to specific path. No backward compatibility. | DirectResize 0.9. PHPThumb, наборы параметров, параметры, привязанные к определенным путям. Без обратной совместимости.

                      Unfortunately, DirectResize project is closed. If you want to continue development, PM me for access to project page on Google Code. К сожалению, проект DirectResize закрыт. Если вы желаете продолжить разработки, обращайтесь через ПМ для получения доступа к репозиторию на Google Code.

                      [PLUGIN] DirectResize - as Maxigallery but for single images :: Download :: [url=http://modxcms.com/forums/index.php/topic,21490]
                      • 53953
                      • 3 Posts
                      Quote from: Metaller at Dec 27, 2007, 11:50 AM
                      Разберитесь с матчастью, поймите специфику и назначение сниппетов и их параметров

                      Здравствуйте. Прошу прощения за беспокойство... но похоже у меня аналогичные вопросы возникают

                      Можете помочь?

                      Например, есть такая задача. Есть сниппет Ditto в MODX Evo. Стоит задача понять как этот сниппет используется в проекте, с целью оценки трудозатрат по переносу с evo на revo всего проекта. Изучаю код.

                      См вложение.

                      За названием сниппета есть цифра. Что она обозначает? Случайно не ссылки ли на использование сниппета?

                      1) Как-то можно запросить где именно сниппет используется? Может быть есть какой-то "словарь" в модх? Понятно, что можно вручную изучать чанки и тп... но хотелось бы проконтролировать.

                      2) Как в архитектуре modx можно организовать что-то наподобие unit-тестирования... нужно тщательно тестировать вносимые изменения