We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 37783
    • 85 Posts
    Добрый день.
    На сайте нужно разместить новости.
    Под революшен готовых решений, что то ничего не нашел в репозитории modx.com может кто какое готово посоветовать или ссылку на статью скинуть.
    .
    Представляю примерно как самому написать только столкнулся с некоторыми проблемами.
    Все решения, что в инете для modx Evo, а там используются функции которые в revo не существуют.

    К примеру я создаю директорию с псевдонимом news(будим считать что такое название жесткое условие)
    Чтобы не привязываться к id документа.
    По идее теперь мне нужно получить id документа хорошо бы использовать $modx->documentListing['news'] ; ( но это не работает в рево), после чего с помощью getChildIds
    я уже могу получить id новостей и вытащить из них все что мне нужно с помощью getDocumentObject

    Кто может подсказать аналоги этих функций в Revo или где я неправ.

    Заранее спасибо



      • 31246 ☆ A M B ☆
      • 428 Posts
      с помощью getResources вы сможете вывести последние новости http://rtfm.modx.com/display/ADDON/getResources, а чтобы показать странице с навостями и пагинацией используйте getPage http://rtfm.modx.com/display/ADDON/getPage. Для того, что бы организовать архив с новостями - используйте Archivist http://rtfm.modx.com/display/ADDON/Archivist
        Valentin Rasulov - Industrial design (Hobbies - Web Development)
        Development not standard projects on CMF MODx Revolution.
        Small sample of extensions
        • 37450
        • 11 Posts
        вот тут парень всё сделал используя функцию $modx->getDocumentChildren(
        http://modx.ru/blog/modx-adding-articles/
        довольно просто!
          • 31246 ☆ A M B ☆
          • 428 Posts
          Quote from: milly1975 at Nov 22, 2011, 01:04 AM
          вот тут парень всё сделал используя функцию $modx->getDocumentChildren
          Вы приводите пример для Ево....
            Valentin Rasulov - Industrial design (Hobbies - Web Development)
            Development not standard projects on CMF MODx Revolution.
            Small sample of extensions
            • 31246 ☆ A M B ☆
            • 428 Posts
            Quote from: nikolay_m at Nov 21, 2011, 04:29 AM
            К примеру я создаю директорию с псевдонимом news(будим считать что такое название жесткое условие)
            Чтобы не привязываться к id документа.
            По идее теперь мне нужно получить id документа хорошо бы использовать $modx->documentListing['news'] ; ( но это не работает в рево), после чего с помощью getChildIds
            я уже могу получить id новостей и вытащить из них все что мне нужно с помощью getDocumentObject
            не совсем понял, что вы хотите. Если вы хотите получить документ по псевдониму через api, то думаю так
            $resurs = $modx->getObject('modResource', array('alias'=>$alias));
            if($resurs) {
            $resursArray = $resurs->toArray();
            }

            теперь выводим, то, что нужно к примеру $pagetitle = resursArray['pagetitle']..... и.т.д.

            Если мы хотим передать в шаблон, тогда так
            $out = '';
            $resurs = $modx->getObject('modResource', array('alias'=>$alias));
            if($resurs) {
            $resursArray = $resurs->toArray();
            $out .= $modx->getChunk('tpl',$resursArray);
            }
            return $out;

            вариантов много, нужно исходить от поставленной задачи.
              Valentin Rasulov - Industrial design (Hobbies - Web Development)
              Development not standard projects on CMF MODx Revolution.
              Small sample of extensions
              • 37783
              • 85 Posts
              Спасибо огромное.
              В роде как под разобрался с объектами в рево. Стало немного понятнее. Просто нигде не смог найти подробного листинга методов объекта modx используемых и с чем их едят.

              Насколько я смог понять (по своему ) для себя modResource - объединяет в себе такие структуры как document, weblinks, symlinks, static resources, а потом по критерию переданному в массиве он ищет подходящую структуру в базе и возвращает(таблицу) в виде объекта.
              И уже после этого можно использовать данные из объекта как хочешь.
              Если неправ прошу поправте
                • 31246 ☆ A M B ☆
                • 428 Posts
                чтобы посмотреть связки, и не только modResource, а любого объекта, я открываю core/model/modx/mysql/ и файл с расширением .map.inc.php, к примеру для modResource - modresource.map.inc.php и нам видно все связи и структуру. Мы также можем использовать любой объект.
                  Valentin Rasulov - Industrial design (Hobbies - Web Development)
                  Development not standard projects on CMF MODx Revolution.
                  Small sample of extensions
                  • 37783
                  • 85 Posts
                  Спасибо
                    • 37783
                    • 85 Posts
                    Еще 1 проблема ... точнее недопонимание с моей стороны.

                    Есть раздел со статьями, а есть раздел с новостями. я проверяю раздел новостей и если в нем есть что то то вывожу их, если нет вывожу статьи

                    использую getResources

                    <?php
                    $results = $modx->runSnippet('getResources', array(
                    'parents' => 5,
                    'limit' => 3,
                    'tpl' => `tplNews`,
                    ));

                    if (empty($results))
                    {
                    $results = $modx->runSnippet('getResources', array(
                    'parents' =>7,
                    'limit' => 3,
                    'tpl' => `tplNews`,
                    ));
                    }

                    ------------------------
                    при попытке вывода echo"$results"; выдает результат как если бы в print_r(подсунуть массив)

                    раздел модх апи сейчас не доступен не могу посмотреть, что отдает runSnippet и как обработать результат

                    к примеру тут https://forums.modx.com/?action=thread&thread=69782 в предпоследнем посте с ним работают, как со строкой

                    попробовал сделать так return $results;

                    и вызвать снипепет в типлейте [[!News]] опять же получаю полный листинг массивов

                    подскажите, как правильно обработать
                      • 37783
                      • 85 Posts
                      блин все дело в кавычках было в объявлении массива оО