<![CDATA[ Где хранятся сниппеты - My Forums]]> https://forums.modx.com/thread/?thread=61520 <![CDATA[Re: Где хранятся сниппеты]]> https://forums.modx.com/thread/61520/?page=2#dis-post-556093 Quote from: [email protected] at Dec 18, 2017, 07:16 AM
...Есть сниппет Ditto в MODX Evo. Стоит задача понять как этот сниппет используется в проекте, с целью оценки трудозатрат по переносу с evo на revo всего проекта.

Ditto как и аналоги в REVO - GetResource, pdoResources и тд используются для вывода коллекций (набора) ресурсов. О сложности переноса с EVO на REVO это вообще ничего не говорит и зависит от особенностей проекта.

Quote from: [email protected] at Dec 18, 2017, 07:16 AM
За названием сниппета есть цифра. Что она обозначает? Случайно не ссылки ли на использование сниппета?

Цифры в названии сниппета (сниппет в терминологии modx является php приложением) это просто цифры в названии сниппета. Возможно кто то так версию обозначает, хотя конечно это странный подход. Тут документация Revo https://docs.modx.com/revolution/2.x/developing-in-modx/basic-development/snippets, evo в этом плане мало отличается.

Quote from: [email protected] at Dec 18, 2017, 07:16 AM
Как-то можно запросить где именно сниппет используется? Может быть есть какой-то "словарь" в модх? Понятно, что можно вручную изучать чанки и тп... но хотелось бы проконтролировать.
Если структура сайта серьезная и "изучить" проблематично - посмотрите в базе по поиску. Да, modx хранит сниппеты и чанки в базе (в Revo можно использовать файлы).

Quote from: [email protected] at Dec 18, 2017, 07:16 AM
Как в архитектуре modx можно организовать что-то наподобие unit-тестирования... нужно тщательно тестировать вносимые изменения

Попробуйте поискать по данному форуму, что то типа https://forums.modx.com/thread/91053/phpunit-tests-for-snippets]]>
modxhelp.ru Dec 28, 2017, 10:47 AM https://forums.modx.com/thread/61520/?page=2#dis-post-556093
<![CDATA[Re: Где хранятся сниппеты]]> https://forums.modx.com/thread/61520/#dis-post-555936 Quote from: Metaller at Dec 27, 2007, 11:50 AM
Разберитесь с матчастью, поймите специфику и назначение сниппетов и их параметров

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

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

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

См вложение.

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

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

2) Как в архитектуре modx можно организовать что-то наподобие unit-тестирования... нужно тщательно тестировать вносимые изменения]]>
[email protected] Dec 18, 2017, 07:16 AM https://forums.modx.com/thread/61520/#dis-post-555936
<![CDATA[Re: &#1043;&#1076;&#1077; &#1093;&#1088;&#1072;&#1085;&#1103;&#1090;&#1089;&#1103; &#1089;&#1085;&#1080;&#1087;&#1087;&#1077;&#1090;&#1099;]]> https://forums.modx.com/thread/61520/#dis-post-359832 Подпрограмма это часть программы но не сама программа:). Какие-то философские размышления на тему теории программирования. Слова подпрограмма возвращают меня в памяти к школьным годам и бейсику. В ООП оперируют классами и функциями, а подрограмма это уже вымыслы и домыслы, кому как больше нравится.
Функция сверх АПИ системы это плагин, снипеты используют функции АПи системы. Вот я так думаю, но это все ерунда, у каждого свое понятие о программировании.
Это все демагогия на ту же тему. В MODx сложилась своя терминология - есть строго разграниченные понятия сниппет, плагин и модуль, которые могут не соответвовать привычным понятиям из других движков. Вы конечно можете называть сниппеты плагинами и считать их подпрограммами, надстройками над API, да чем угодно. Но вот с пониманием будут большие проблемы, которые уже можно проследить в этом топике. Неважно как это называеся и как это может быть в теории. Главное что это удобно и работает.

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

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

]]>
Metaller Dec 29, 2007, 06:39 AM https://forums.modx.com/thread/61520/#dis-post-359832
<![CDATA[Re: &#1043;&#1076;&#1077; &#1093;&#1088;&#1072;&#1085;&#1103;&#1090;&#1089;&#1103; &#1089;&#1085;&#1080;&#1087;&#1087;&#1077;&#1090;&#1099;]]> https://forums.modx.com/thread/61520/#dis-post-359831 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 в случае необходимости изменения кода. Весь программный код доступен изнутри системы, конечно, если нет нужды лезть в ядро.]]>
suhinin Dec 29, 2007, 04:45 AM https://forums.modx.com/thread/61520/#dis-post-359831
<![CDATA[Re: &#1043;&#1076;&#1077; &#1093;&#1088;&#1072;&#1085;&#1103;&#1090;&#1089;&#1103; &#1089;&#1085;&#1080;&#1087;&#1087;&#1077;&#1090;&#1099;]]> https://forums.modx.com/thread/61520/#dis-post-359830 Сниппет сам по себе является программой. Функцией, которую создает программист сверх API, предоставленного системой.
Подпрограмма MODx на языке php, выводящая какой-либо результат непосредственно в место своего вызова из шаблона.

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

Но рекомендуется сохранять ее в самом сниппете.
Может быть. Зато вынесенная программа
1) недоступна шаловливым ручонкам менеджеров сайта.
2) т.к. снипет хранится в БД, то код нужно выгрузить из БД - это время, и чем больше код тем больше будет время выгрузки. Хотя это спорно, хз что сработает быстрее прямая загрузка скрипта или загрузка скрипта из БД.]]>
Il_Burbero Dec 29, 2007, 04:20 AM https://forums.modx.com/thread/61520/#dis-post-359830
<![CDATA[Re: &#1043;&#1076;&#1077; &#1093;&#1088;&#1072;&#1085;&#1103;&#1090;&#1089;&#1103; &#1089;&#1085;&#1080;&#1087;&#1087;&#1077;&#1090;&#1099;]]> https://forums.modx.com/thread/61520/#dis-post-359829 Quote from: Il_Burbero at Dec 28, 2007, 11:56 AM

Как я понимаю назначение сниппета.
Это пхп код для инициализации пути к скриптам снипета и параметрам, передаваемым этим скриптам. Снипет это НЕ (имхо) скрипт, это хранитель названия, путей и параметров.
Зачем снипет? Затем же зачем запуск приложения из командной строки с ключами:), т.е. если вы не умеете писать приложения то и понятие командной строки вам ни к чему, запускайте ярлычки с рабочего стола.
Как-то не так Вы понимаете его назначение.
http://modx.ru/docs/glossary/#snippet
Сниппет сам по себе является программой. Функцией, которую создает программист сверх API, предоставленного системой.
Выносить программную часть, конечно, можно в файлы. Но рекомендуется сохранять ее в самом сниппете.]]>
suhinin Dec 28, 2007, 06:45 AM https://forums.modx.com/thread/61520/#dis-post-359829
<![CDATA[Re: &#1043;&#1076;&#1077; &#1093;&#1088;&#1072;&#1085;&#1103;&#1090;&#1089;&#1103; &#1089;&#1085;&#1080;&#1087;&#1087;&#1077;&#1090;&#1099;]]> https://forums.modx.com/thread/61520/#dis-post-359828 Это пхп код для инициализации пути к скриптам снипета и параметрам, передаваемым этим скриптам. Снипет это НЕ (имхо) скрипт, это хранитель названия, путей и параметров.
Зачем снипет? Затем же зачем запуск приложения из командной строки с ключами:), т.е. если вы не умеете писать приложения то и понятие командной строки вам ни к чему, запускайте ярлычки с рабочего стола.

хотелось бы знать как именно получить доступ к этому сниппету что бы он мог обработать данные введенные в формы
Некоторый алгоритм (как я понимаю создание снипета).
Создаете папочку и делаете там пхп скрипты (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 из готового скрипта наваял. Практически не пришлось менять оригинальный скрипт. За что собственно МОДх и понравился, не люблю велосипедов изобретать.
]]>
Il_Burbero Dec 28, 2007, 05:56 AM https://forums.modx.com/thread/61520/#dis-post-359828
<![CDATA[Re: &#1043;&#1076;&#1077; &#1093;&#1088;&#1072;&#1085;&#1103;&#1090;&#1089;&#1103; &#1089;&#1085;&#1080;&#1087;&#1087;&#1077;&#1090;&#1099;]]> https://forums.modx.com/thread/61520/#dis-post-359827
Разберитесь с матчастью, поймите специфику и назначение сниппетов и их параметров.

Для работы с электронными формами идеально подходит сниппет eForm, рекомендую ознакомится.]]>
Metaller Dec 27, 2007, 11:50 AM https://forums.modx.com/thread/61520/#dis-post-359827
<![CDATA[Re: &#1043;&#1076;&#1077; &#1093;&#1088;&#1072;&#1085;&#1103;&#1090;&#1089;&#1103; &#1089;&#1085;&#1080;&#1087;&#1087;&#1077;&#1090;&#1099;]]> https://forums.modx.com/thread/61520/#dis-post-359826 Neolink Dec 27, 2007, 11:25 AM https://forums.modx.com/thread/61520/#dis-post-359826 <![CDATA[Re: &#1043;&#1076;&#1077; &#1093;&#1088;&#1072;&#1085;&#1103;&#1090;&#1089;&#1103; &#1089;&#1085;&#1080;&#1087;&#1087;&#1077;&#1090;&#1099;]]> https://forums.modx.com/thread/61520/#dis-post-359825 Админка -> вкладка Ресурсы -> Управление ресурсами -> вкладка Сниппеты на странице.]]> [e]Bu$ter Dec 26, 2007, 01:31 PM https://forums.modx.com/thread/61520/#dis-post-359825