Последнее обновление: 10.02.2013 в 21:16
Подпишись на RSS
rss Подпишитесь на RSS, чтобы всегда быть в курсе событий.

Комментарии

Присоединяйтесь к обсуждению
  • Евгений: Доброго времени суток. Кто-то подскажет, как правильно настроить вывод мета-тэгов в результатах поиска. На...
  • Евгений: Доброго времени суток. Возник вопрос по специфике движка SilverStripe. Есть основное зеркало сайта вида...
  • Вадим: Спасибо помогло, сделал так date_timezone = Europe/Kiev
  • John Doe: Не помогло, шаблон все ровно всегда такой же как у главной страницы ((
  • Алексей: Здравствуйте. Спасибо за статью. Собираюсь осваивать MODx (сейчас сижу на WP) и статья очень пригодилась!...
21 Декабрь 2009 · MODx, о работе

Обещанная статья по созданию шаблонов на MODx. Данная статья написана мною исходя из достаточно большого практического опыта работы с MODx. Идеи изложенные здесь далеко не новы и опытный разработчик, вероятно не найдет здесь для себя ни чего нового.А вот новичкам изложенный здесь материал может быть не только интересен, но и полезен На мой взгляд проще [...]


26 Январь 2009 · о работе

Один из моментов который привлекает в моей работе… не в той которая с восьми до шести,  а в той которая моя которую я сам себе нахожу о фрилансе. Вчера(вернее уже сегодня)  до трех ночи сидел над очередным проектом.  И тут понял, что практически не устал за шесть часов работы, возможно это связанно с тем, что с 21:00 до 4:00 у меня самое продуктивное рабочее время(интересно какому часовому поясу это соответствует), а возможно просто потому, что работа в компании единомышленников банально нравится(своя ноша, как известно, не тянет) в три часа дизайнер прикинув сколько у меня времени и зная, что мне сегодня на работу напомнил что время не детское. Прикинув, что я за сегодня  сделал:  красивый поиск для [...]


25 Март 2011

Немного про снипеты в MODx Revo

Рубрика: MODx, о работе. Метки: , , , ,
Vote This Post DownVote This Post Up (+2 rating, 4 votes)
Loading ... Loading ...

Проанализировав то, по каким запросам люди приходят на мой сайт, возникла идея написать пост на тему, что нужно сделать в MODx сниппете, что бы получилось как в evo. Раз возникла идея её надо реализовывать

В этой статье я постараюсь не лезть в глубины xPDO т.к сам не особо разобрался с ним. Это будет взгляд на систему со стороны программиста, которому надо быстренько сделать сниппет под свои текущие задачи.

Получение информации о текущем документе
Здесь всё достаточно просто информация, о текущем документе может быть получена через объект resource. Главное усвоить следующее: В ветке evo приходилось работать с ассоциативными массивами, в revo приходится работать с объектами.Далее всё просто.

 
//получаем id текущего документа
$id=$modx->resource->get('id');
//получаем заголовок текущего документа
$title=$modx->resource->get('pagetitle');
//получаем аннотацию текущего документа
$intro=$modx->resource->get('introtext');
//получаем контент
$content=$modx->resource->get('content');
//или
$content=$modx->resource->getContent();

Выборка объектов
Хорошо, с текущим документом будем считать, что разобрались всё достаточно просто, но на одном документе много не сделаешь. Рассмотрим, как можно получить доступ к остальному содержанию сайта.

 //получить документ с id=10
 $doc=$modx->getObject('modResource',array('id'=>10));
//то же самое только вместо массива используем строку
$doc=$modx->getObject('modResource','id=10');

дальше всё просто, берем примеры из предыдущего раздела и заменяем в них $modx->resource на $doc.
Теперь получим коллекцию объектов.

//получаем все опубликованные,не скрытые элементы из корневой //папки с шаблоном id которого не равен 3 
 $docs=$modx->getCollection('modResource',array('parent'=>0,'published'=>0,'hidemenu'=>0,'template:<>'=>3));
foreach($docs as $doc)
{
  //обработка полученных результатов
}

Получение TV параметров
Здесь всё достаточно просто

//получить все TV для текущего документа.
$tvs = $template->resource->getMany('TemplateVars');

либо

//получить TV для текущего документа с именем name_of_tv
$tv = $modx->resource->getTVValue('name_of_tv');;

Для документов, полученных при выборке, принцип тот же самый, только вместо $modx->resource ставим имя своего объекта.
Чанки
Далее рассмотрим вызов чанкак внутри сниппета. Пока что функции $modx->parseChunk(), $modx->getChunk() работоспособны, но в MODx 2.1 их уже не будет.

// создаем ассоциированный массив с параметрами
$param=array('key1'=>'value1','key2'=>'value2');
// получаем объект для работы с чанком testChunk
$chunk=$modx->getObject('modChunk',array('name'=>'testChunk'));
// выводим содержимое чанка 
echo $chunk->process($param);

Резюме
Я попытался в вкратце рассказать о нововведениях в MODx Revolution. Той части, что касается сниппетов. Более позробную информацию можно получить здесь

Читайте так же:



  • http://вразработке Neznae4ko

    Очень давно искал нечто подобное, не мог подступиться ни с какого боку к разработке проекта используя php и модикс. Это статья и http://loom-studio.net/2011/01/%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D1%81-modx-evo-%D0%BD%D0%B0-modx-revo/ очень помогли.

    Теперь остался один вопрос: На сайте должны быть 4 типа пользователей
    1) те кто пишет посты (должны иметь право редактировать свои записи)
    2) модеры (редактируют чужие)
    3) те, кто пишет только в своём подразделе и может редактировать только это.
    4) Админ (я) который может всё

    и остальные незарегистрированые… Только смотрят. Надо, чтобы все могли это делать на сайте, а не в админке. Поэтому буду писать на пхп.

    Как такое сотворить? Уже совсем голова пухнет от ролей и политик…

    • http://loom-studio.net Денис

      На самом деле сам сейчас думаю над чем то подобным. Писать там придется достаточно много. Как только появятся наработки опубликую их здесь.

  • XkgoldxSite

    День добрый не подскажете, как в revo получить айди документа по его синониму .
    В эво была достаточно удачная на мой взгляд функция documentListing в которую передавался алиас а возвращался id в Revo насколько я понял ее убрали.

    • http://loom-studio.net Denis

      с ходу можно предложить такой вариант
      $doc=$modx->getObject(‘modResource’,array(‘alias’=>’[ваше значение]‘));
      $id=$doc->get(‘id’);

Мы плетем паутину
Создание сайтов для меня это не просто работа, это то, что больше всего мне нравится в этой жизни. Я постояно учусь новому и кое-что попадает на страницы этого блога. Сюда же я выкладываю свои мысли о жизни. Заходите, читайте, спрашивайте.

Счетчик

  • Rflombard.ru

    Заголовок сообщения скупка электроинструмента rflombard.ru.

    rflombard.ru