[EVO][REVO] Полезные дополнения

Тема в разделе "MODx", создана пользователем SpaceW, 6 июл 2011.

  1. SpaceW

    SpaceW Постоялец

    Регистр.:
    27 сен 2007
    Сообщения:
    95
    Симпатии:
    45
    Предлагаю в данной теме выкладывать обзор полезных дополнений и инструкций к ним, если таковые имеются.

    Хорошо бы по общему шаблону, что бы было удобно читать.



    Итак, Выпуск №1 Дайджеста полезных дополнений для MODx.

    #1. Простое FAQ - EZfaq
    Подходит для: [EVO] [REVO]
    Описание:
    Очень простой и быстрый FAQ. Схема действия проста – сами вопросы пишем, сами на них отвечаем, а потом показываем все посетителю в удобном виде. Демо можно посмотреть тут.

    Инструкции:
    [REVO]: Используем Package Manager.
    [EVO]:
    Установка:

    1. Копируем рабочие файлы в директорию /assets/snippets/ezfaq
    2. Создаем новый снипет, копируем в него содержимое ezfaq.inc.php и называем ezfaq
    3. Создаем новую страницу, делаем ее НЕ опубликованную – это будет страница с содержимым faq.
    4. Создаем новую страницу, в нее вставляем вызов снимпита [[ezfaq? &docID=`##`]] с номером страницы с содержимым faq
    Использование:
    Размещение на странице содержимого faq:
    Пишем в странице с содержимым faq вопросы и ответы таким образом:
    Возможно использования FLASH:
    Или изображений:

    Код размещения на странице вызова FAQ:
    Код:
    [COLOR=Black][[ezfaq? &docID=`##`]][/COLOR]
    Дополнительные параметры:
    [​IMG][​IMG]


    Ссылки:
    Сайт автора
    Версия REVO
    Версия EVO


    #2. Голосовалка Polls Module
    Подходит для: [EVO]
    Описание:
    Небольшая голосовалка для MODx Evo, к сожалению демо я не нашел, а сам последний раз устанавливал давно, поэтому скринов нет.

    Инструкции:

    Установка:


    1. Создаем новый модуль, копируем содержимое pollmanager_module.txt, называем: pollmanager
    2. Создаем новый снипет, копируем pollresults_snippet.txt называем: pollresults
    3. Создаем новый снипет, копируем pollvote_snippet.txt, называем: pollvote
    Использование:
    Код размещения для страницы голосования:

    Код:
    [!pollvote? &pollid=`2` &redirect=`23` &onevote=true &ovmessage=`You can only vote once` &resultsbutton=true!]
    Параметры:
    Код размещения для страницы результатов голосования:
    Код:
    [!pollresults? &pollid=`2` &decimal=`0`!]
    Не забудьте привязать на странице poll.css файл стилей.

    Ссылки:
    Ссылка на модуль



    #3. Помощник MODx для интеграции с API GitHub - modGitHub
    Подходит для: [REVO]
    Описание:
    Внимание! Я сам не использовал данное дополнение (нет нужды), поэтому не знаю как оно в работе и работает ли вообще. Однако, мне показалось оно необычным и, наверняка, кому-то интересным.

    Ссылки:
    Перейти по ссылке


    #4. Генерируем картинку из текста с любым шрифтом - WriteWord
    Подходит для: [EVO]


    Описание:
    Сниппет позволяет генерировать изображение из текста с любым шрифтом. Для чего это нужно? Ну, например, вы хотите оригинальные заголовки сделать из хитрого шрифта, да еще что бы их не в фотошопе делать каждый раз, как они изменяться будут, а внутри системы. При этом картинка дублируется и обычным текстом, что бы не нервировать поисковики)

    Данное дополнение поддерживает кеширование, шаблоны, и остальные плюшки.


    Инструкции:
    Установка
    Все очень просто, качаем архив, копируем содержание snippet.writeword.php в новый сниппет и пользуемся.

    Пример вызова:
    Код:
    [[WriteWord?&file=`SkodaSansRg.ttf` &text=`[*longtitle*]` &text_size=`12` &text_color=`#FFFFFF` &bg_color=`#CCCCCC` &quality=`100` &tpl=`writeword`]]


    Содержание writeword чанка:

    Код:
    <h1 class="pagetitle" style="background-image: url([+ww.fileurl+]); width: [+ww.width+]px; height: [+ww.height+]px;"><span>[+ww.text+]</span></h1>
    CSS:
    Код:
    h1.pagetitle span{
       display: none;
    }


    В таком случае на выходе получим:
    HTML:
    <h1 class="pagetitle" style="background-image: url(/assets/cache/499063c8c7a81af2e7691193c07f690d.pageCache.jpg); width: 167px; height: 15px;"><span>Your text will be here.</span></h1>
    Параметры:

    Ссылки:
    WriteWord


    #5. А вы знаете, что поиск можно сделать и по админке? - Doc Finder Module
    Подходит для: [EVO]


    Описание:
    Вообще, многие знают этот замечательный модуль, но на всякий случай я расскажу о нем.
    Для чего нужен этот модуль - для того, что без труда находить любые документы, сниппеты, чанки, модули и прочее по ключевым словам, массово производить замену слов и строк, изменять шаблоны целым группам документов и прочие полезные вещи.

    Имеются разнообразные настройки поиска:
    поиск с использованием регулярных выражений и логических операторов, поиск по диапазону дат создания и последнего редактирования, поиск по различным полям, различным видам документов и т.д.
    А так же удобный вывод информации и история запросов поиска и замен (мелочь, но как приятно!)

    [​IMG]

    Инструкции:
    Установка

    Всего 6 шагов:

    1. Копируем всю папку docfinder в директорию /assets/modules/.
    2. Открываем в админке раздел Модули (Modules) > Управление модулями (Manage Modules).
    3. Создаем новый модуль с названием Doc Finder 1.6 (так предлагает автор модуля, а вот лично мне больше понравилось просто: Поиск по документам).
    4. Вставляем include($modx->config['base_path'].«assets/modules/docfinder/index.php»); в код нового модуля.
    5. Сохраняем модуль.
    6. Обновляем админку и наблюдаем новый модуль.
    Перевод:
    Руссификации модуля я не встречал, поэтому прикрепляю к теме DocFinderModule_rus.rar. В нем два файла, которые нужно скопировать с заменой в папку"assets/modules/docfinder/": functions.php, template.php.


    Ссылки:
    Doc Finder


    #6. Маленькое полезное дополнение - Lite Модуль новостей
    Подходит для: [EVO]


    Описание:

    Автор данного дополнения: Andchir. (Он, кстати, есть на нулледе, правда давно не был онлайн. Так же он есть на хабре.).

    Данный модуль позволяет наглядно выводить весь список новостей:

    [​IMG]

    (рис. 1)

    [​IMG]

    (рис 2.)

    Инструкции:
    Установка

    Для того чтобы сделать управление новостями более удобным, можно создать небольшой модуль с таким простым кодом:

    Код:
    $news_id = 2; [COLOR=DimGray]//ID раздела[/COLOR]
    setcookie('webfxtab_childPane', 1, time()+3600, '/'); [COLOR=DimGray]//открываем нужную вкладку[/COLOR]
    $modx->sendRedirect("index.php?a=3&id=$news_id",0,"REDIRECT_HEADER");
    $news_id - это ID вашего раздела новостей (у меня он равен 2).

    Название модуля - "Новости". Обновите страницу в браузере и, кликнув на названии модуля (рис. 1), вы увидите список новостей (рис. 2).

    Ссылки:
    Автор модуля: Andchir


    #7. Изучаем кол-во запросов к БД и время генерации страницы - devStat
    Подходит для: [EVO]


    Описание:

    Еще одно дополнение от Andchir.
    Данный плагин выводит в логе событий MODx информацию о числе запросов к БД, времени генерации страницы и т.п. В конфигурации плагина можно настроить критические значения, при которых будет писаться лог.

    [​IMG]

    [​IMG]

    Инструкции:
    Ничего нового, создаем новый плагин, копируем содержимое архива, не забываем отметить в событиях OnWebPagePrerender и настраиваем Критичное время генерации (&alert_time) и Критичное число запросов (&alert_query) в самом плагине.

    Ссылки:
    Модуль devStat
    Автор модуля: Andchir


    #8. Делаем выпадающий список документов в админке при редактировании страницы - dropdown Tree
    Подходит для: [EVO]


    Описание:

    ddTree (dropdown Tree) - это способ отображения документов в менеджере при редактировании страницы с помощью выпадающего TV.
    Принцип работы хорошо понятен из картинки:

    [​IMG]

    Инструкции:
    Установка

    1. Создайте сниппет с именем "ddTree". Вставьте в него содержимое файла ddtree.txt и сохраните.
    2. Создайте TV вида "DropDown List Menu", заполните новый TV строчками вида:
    Код:
    @EVAL return $modx->runSnippet('ddTree');
    или указывая родительский документ (будут показаны его дочерние документы):
    @EVAL return $modx->runSnippet('ddTree',array('doc'=>1));
    или указывая ограничения по глубине (в данном случае на глубину 10 документов):
    @EVAL return $modx->runSnippet('ddTree',array('depth'=>10));
    или указывая оба варианта (и документ родитель и глубину):
    @EVAL return $modx->runSnippet('ddTree',array('doc'=>1,'depth'=>10));
    
    где:
    - 'doc' - id родительского документа, чьи дочерние будут показаны в DropDown tree.
    Если параметр не задан, то используется id=0 (root).
    - 'depth' - глубина, используется для указания, на какую глубину разрешено показывать документы. Например, при использовании 0 - показывается только первый уровень дочерних документов.
    Если глубина не задана будут показаны документы глубиной до 100 уровней.

    Ссылки:
    dropdown Tree


    P.S: По мере возможностей буду и дальше выкладывать различные интересные дополнения. И да, вы тоже выкладывайте, не стесняйтесь =)
     

    Вложения:

    risk_plus нравится это.
  2. Metsof

    Metsof

    Регистр.:
    15 окт 2008
    Сообщения:
    154
    Симпатии:
    62
    Хорошая форма обратной связи ( Evo ).
    http://predvoditelev.ru/blog/archives/43

    Интеграция MODx Evo и PhpBB 3.0.8
    http://www.modxbb.net/index.php?id=52
    Все проверено и работает отлично. Не на одном сайте используется никаких нареканий нет.


    Уроки для начинающих по созданию cfqnf на modx EVO ( полезно будет для тех кто не знает с какой стороны подойти и с чего начать )
    http://efimov.ws/main/develop/modx.html
     
  3. ninjaNeko

    ninjaNeko Постоялец

    Регистр.:
    4 окт 2008
    Сообщения:
    74
    Симпатии:
    8
    Жаль только что на рево нет таких уроков, а то чувствуется небольшая нехватка в информации по этому движку
     
  4. Metsof

    Metsof

    Регистр.:
    15 окт 2008
    Сообщения:
    154
    Симпатии:
    62
    Вот под Revo
    http://codingpad.maryspad.com/category/modx/
    На английском.
     
  5. konishoa

    konishoa Постоялец

    Регистр.:
    22 сен 2010
    Сообщения:
    126
    Симпатии:
    36
    уже эти уроки перевёл давно и на свой блог выложил, правда с три месяца назад блог на%%нулся, поэтому ждите скоро новый, но в 2 раза круче :) с БД и шлюхами :-]
     
    m25 нравится это.
  6. -=FLASH=-

    -=FLASH=- Создатель

    Регистр.:
    13 авг 2007
    Сообщения:
    45
    Симпатии:
    9
    EVO. Очень удобный редактор в админку (Не визивиг!)
    С подсветкой кода, увеличением шрифта текста, поиском-заменой, понимает регулярки. Для меня было находкой!

    [​IMG]

    Установка в два клика, русский язык
    http://modx.com/extras/package/editarea-evo
     
    Raenor, ogurcov и Screamster нравится это.
  7. Freddy Cruger

    Freddy Cruger Создатель

    Регистр.:
    26 апр 2006
    Сообщения:
    18
    Симпатии:
    5
    Стандартный файловый менеджер mcpuk никуда не годится, поэтому опишем установку плагинов MCFileManager и MCImageManager от создателей TinyMCE.
    Версии используемых инструментов:
    • ModX Evolution 1.0.5
    • TinyMCE Javascript WYSIWYG 3.3.9.2
    • MCFileManager v.3.1.0.5
    • MCImageManager v.3.1.0.4

    1. Скачиваем Перейти по ссылке
    2. Копируем папки filemanager и imagemanager их архива в папку assets\plugins\tinymce\jscripts\tiny_mce\plugins
    3. В админке Modx идем в "Инструменты"->"Конфигурация"->"Интерфейс и представление"->"Настройки TinyMCE"->
      Тема WYSIWYG-редактора Индивидуальная
    4. В поле Индивидуальные плагины добавляем filemanager, imagemanager
    5. Все настройки лежат в файле assets/plugins/tinymce/jscripts/tiny_mce/plugins/filemanager/config.php
    Основные настройки файла config.php:
    $mcFileManagerConfig['filesystem.rootpath']
    Абсолютный или относительный путь к файлам(эта папка будет открываться по умолчанию при вызове плагина)
    Незабываем поставить права чтения/записи на эту папку
    $mcFileManagerConfig['general.debug'] = true; Включение режима отладки (в алертах всплывают все ошибки и предупреждения)
    $mcFileManagerConfig['upload.maxsize'] Максимальный размер файла для загрузки
    $mcFileManagerConfig['upload.overwrite'] Перезаписывание файлов с одинаковыми именами
    $mcFileManagerConfig['upload.extensions'] = "*"; Разрешение на загрузку файлов любых типов
    $mcFileManagerConfig['download.extensions'] = "gif,jpg,htm,html,mp3,pdf,txt,zip"; Разрешение на скачивание указанных типов
    Подключение MCFileManager и MCImageManager к редактору TinyMce завершено.
    Для того, чтоб файлменеджер цеплялся к tv-параметрам с типом file нужно открыть файл manager/includes/tmplvars.inc.php и внутрь события case "file" (174 строка) после
    $field_html .="<script type=\"text/javascript\">
    добавляем
    function BrowseFileServer(ctrl) {
    mcFileManager.open('mutate',ctrl);
    }

    Для привязки менеджера изображений в событие case "image" в том же файле manager/includes/tmplvars.inc.php находим функцию
    function BrowseServer(ctrl) {
    lastImageCtrl = ctrl;
    var w = screen.width * 0.7;
    var h = screen.height * 0.7;
    OpenServerBrowser('".$base_url."manager/media/browser/mcpuk/browser.html?Type=images&Connector=".$base_url."manager/media/browser/mcpuk/connectors/php/connector.php&ServerPath=".$base_url."', w, h);
    }
    Которая отвечает за окошко вызова менеджера изображений для tv-параметров с типом image. И заменяем ее на
    function BrowseServer(ctrl) {
    mcImageManager.open('mutate',ctrl);
    }
    Для tv-параметров с другим типом ищем событие case "тип_тв_параметра"
    Незабывайте настраивать конфигурацию и писать вызов функции как для MCFileManager так и для MCImageManager.
    Если установка плагинов прошла успешно, можно удалять файлы стандартного mcpuk (site/manager/media/browser/mcpuk/)
    P.S. В процессе работы выяснилось, что менеджеры не цепляются к кнопкам загрузки файлов, если на странице админ-панели не вызван сам TinyMCE (Например при создании ресурса "Веб-ссылка"). Пока не стал копаться в функциях вызова, а просто добавил к шаблону, на котором создается ресурс "веб-ссылка" tv-параметр типа RichText, - соответственно подцепился TinyMCE, а с ним и менеджер загрузки файлов и все счастливы.
     
  8. Freddy Cruger

    Freddy Cruger Создатель

    Регистр.:
    26 апр 2006
    Сообщения:
    18
    Симпатии:
    5
    иногда нужно вывести количество дочерних документов.


    Создайте сниппет с именем ChildCounter с кодом приведённым ниже.

    <?php
    $id = isset($docid) ? $docid : $modx->documentIdentifier;
    $d = isset($depth) ? $depth : 0;
    return count($modx->getChildIds($id, $d));
    ?>


    и вызываете его где нужно, он выведетет количество дочерних документов:

    [[ChildCounter]]
    - только у текущего.
    [[ChildCounter? &docid=`15` &depth=`3`]]
    - у 15-го документа, с глубиной просмотра - 3.
     
  9. konishoa

    konishoa Постоялец

    Регистр.:
    22 сен 2010
    Сообщения:
    126
    Симпатии:
    36
    Вот здесь регулярно пишу уроки по MODX Revolution для новичков и продвинутых:
    Перейти по ссылке
    Последний был про AJAX поиск на сайте. Делаю по-возможности "демонстрахи" :). Так что кому нужны какие уроки - можете давать предложения по тематике :).
     
    m25, risk_plus и ninjaNeko нравится это.
  10. ninjaNeko

    ninjaNeko Постоялец

    Регистр.:
    4 окт 2008
    Сообщения:
    74
    Симпатии:
    8
    кстати, прошёл год и уже достаточно много людей описывают рево. я пока так и не перебрался на него. времени не хватает.