We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 17459
    • 268 Posts
    Идея: я ввожу [*ID.FIELD*] и оно работает.
    То есть плагин
    1) ищет текст между [* и *]
    2) если он не содержит точку, то ищет дальше, если содержит, то заменяет конструкцию на [!getfield?id=`ID`&field=`FIELD`!]

    И вопрос, на какие события ставить плагин...

    Аналогичное есть в DJEM, а вот в ModX, кажется такого нет, чтобы быстро и просто, зная поле и ид получить это поле.
    http://djem.ru/doc/users/djemscript/about/index
      • 897
      • 1,620 Posts
      надеюсь камрад металлер меня поддержит. это было бы логично сделать через модификатор для PHx. тогда и новый плагин не нужен, и логику завернуть посложнее можно.
        "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

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

        Who can defeat the Russian bear?
        • 19164
        • 1,215 Posts
        ну в общем через PHx сделать можно, но запись не получится значительно короче чем [!getfield?id=`ID`&field=`FIELD`!]

        Хотя если создать модификатор для каждого из полей, например phcontent, phpub_date, phcreatedby, то можно будет вызывать что-то типа такого [*id:phcontent*], если зафигачить все в один модификатор, то подлиннее [*id:somemod=`field`*]
          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]
          • 17459
          • 268 Posts
          [*id:phcontent*]

          это можно сделать для всех базовых полей, выглядит отлично
          модификаторы надо вручную делать, да? .. не знаком с PHx

          если вручную, то как быть с TV?
            • 17459
            • 268 Posts
            Но вообще говоря, мне проще всего именно [*id.field*]

            так как в сниппете я могу сделать и поиск TV и обычных полей
              • 19164
              • 1,215 Posts
              Ну тогда делать плагин, вешать его на событие, которое будет перехватывать обработку еще до сборки и обработки кода парсером движка. А это значит, что если хочешь по простому - то плагин будет работать только для поля content, а если по взрослому и хочется обрабатывать такую конструкцию еще и в TV, чанках, параметрах сниппетов и т.п. - то придется писать аналог системного парсера (так как это сделано в PHx), который по сути сам будет выполнять функции системного парсера, выполнять сниппеты, подставлять переменные, но вместе с этим еще и учитывать твою специфическую переменную [*ID.FIELD*]

              Мягко говоря - непросто. Потому что если ты попробуешь упростить себе задачу и повесить плагин на событие уже после сборки и парсинга всего контента в единую переменную, то обнаружишь, что конструкция [*ID.FIELD*] будет просто вырезана парсером как ошибочная и обработать ее уже не удастся.

              Конечно я не рассматриваю случай хака ядра.
                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]
                • 17459
                • 268 Posts
                Я так понимаю главная проблема в том, что не хватает событий.

                Может, предложить разработчикам:
                а) добавить [*ID.FIELD*]
                или хотя бы
                б) необходимые события, чтобы не нужно было переписывать весь парсер (я понимаю, что подобное переписывание не окупится удобствами от использования [*ID.FIELD*])
                  • 17459
                  • 268 Posts
                  Хмм...

                  Metaller, а Вы точно уверены, что заставить работать без переписывания никак неполучится?..
                  Нашёл события OnBefore******Save, они не только для документов.

                  Или я что-то не понимаю?..
                    • 19164
                    • 1,215 Posts
                    Ну а при чем тут OnBefore******Save - это обработка перед сохранением. Вы можете конечно вставлять конструкцию [*ID.FIELD*] а после сохранения она автоматом заменится на [!getfield?id=`ID`&field=`FIELD`!], но это лишь что-то типа функции автозамены при вводе.

                    Я так понимаю, нужно чтобы в коде всегда было [*ID.FIELD*]
                      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]
                      • 17459
                      • 268 Posts
                      Да, не подумал...