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

SpaceW

Постоялец
Регистрация
27 Сен 2007
Сообщения
96
Реакции
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 вопросы и ответы таким образом:
Q: Вам нравиться наш фак?
A: О да, просто балдею…
Возможно использования FLASH:
Q: How do I play Flash in here?
A: [[swfObject? &swfid=`0` &swfFile=`assets/flash/playback.swf` &swfWidth=`325` &swfHeight=`155`]]
Или изображений:
Q: How do I work with lightbox?
A:<a href="http://domain.com/assets/images/small-pic.jpg" rel="lightbox"><img src="http://domain.com/assets/images/large-pic.jpg" alt="" width="120" height="120" border="0" /></a>

Код размещения на странице вызова FAQ:
Код:
[COLOR=Black][[ezfaq? &docID=`##`]][/COLOR]
Дополнительные параметры:
%3E
48cd9122.jpg



Ссылки:
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
[/spoil]

#2. Голосовалка Polls Module
Подходит для: [EVO]
[spoil]


Описание:
Небольшая голосовалка для 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!]
Параметры:
&pollid= Номер опроса
&redirect= Редирект после голосавания
&onevote= Голосовать 1 раз для 1 компьютера (кукисы) (true\false)
&ovmessage= Сообщение при повторном голосовании
&resultsbutton= Показывать ли кнопку результатов голосования
&useip - Голосовать 1 раз для 1 компьютера (ip адреса) (true\false)
&ovtime – Время жизни кукисов. По умолчанию – 1 неделя.
&decimal= ???? Предположительно: вывод значений в десятичном виде.
Код размещения для страницы результатов голосования:
Код:
[!pollresults? &pollid=`2` &decimal=`0`!]
Не забудьте привязать на странице poll.css файл стилей.

Ссылки:
Для просмотра ссылки Войди или Зарегистрируйся
[/spoil]


#3. Помощник MODx для интеграции с API GitHub - modGitHub
Подходит для: [REVO]
[spoil]


Описание:
Внимание! Я сам не использовал данное дополнение (нет нужды), поэтому не знаю как оно в работе и работает ли вообще. Однако, мне показалось оно необычным и, наверняка, кому-то интересным.

Ссылки:
Для просмотра ссылки Войди или Зарегистрируйся
[/spoil]

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


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

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


Инструкции:
Установка
Все очень просто, качаем архив, копируем содержание 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>
Параметры:
&file - путь файлу шрифта .ttf, который будет использован для генерации. Например, если шрифт лежит в "/assets/media/", то путь в параметре будет &file=`media/font.ttf`

&text - текст, который нужно отобразить, по умолчанию "No word entered!"

&text_angle - угол наклона в градусах, по умолчанию 0.

&text_size - размер шрифта в пикселях, по умолчанию 30.

&text_color - цвет шрифта, по умолчанию #000000.

&bg_color - цвет фона, по умолчанию #FFFFFF.

&im_width - ширина сгенерированной картинки.

&im_height - высота сгенерированной картинки.

&scale - масштабирование размера шрифта. Если TRUE, то шрифт будет вписываться в размеры заданные через im_width and im_height - они должны быть заданы! По умолчанию FALSE.

&format - формат картинки - jpg или png, по умолчанию jpg.

&transparent - только для PNG. Если TRUE, то фон прозрачный, по умолчанию FALSE.

&quality - качество от 1 до 100, по умолчанию 70.

&tpl - имя чанка с картинкой.

Плейсхолдеры:
[+ww.fileurl+] - URL картинки
[+ww.width+] - Ширина картинки
[+ww.height+] - Высота картинки
[+ww.text+] - Текст

Ссылки:
Для просмотра ссылки Войди или Зарегистрируйся
[/spoil]

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


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

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

996af9ac.jpg


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

Всего 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.


Ссылки:
Для просмотра ссылки Войди или Зарегистрируйся
[/spoil]

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


Описание:

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

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

a700a235.jpg


(рис. 1)

06eeb0df.jpg


(рис 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).

Ссылки:
Автор модуля: Для просмотра ссылки Войди или Зарегистрируйся
[/spoil]

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


Описание:

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

devStat.png


devStat_2.png


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

Ссылки:
Для просмотра ссылки Войди или Зарегистрируйся
Автор модуля: Для просмотра ссылки Войди или Зарегистрируйся
[/spoil]

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


Описание:

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

13c4d460.jpg


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

  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 уровней.

Ссылки:
Для просмотра ссылки Войди или Зарегистрируйся

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

Вложения

  • DocFinderModule_rus.rar
    9,3 KB · Просмотры: 18
Хорошая форма обратной связи ( Evo ).


Интеграция MODx Evo и PhpBB 3.0.8

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


Уроки для начинающих по созданию cfqnf на modx EVO ( полезно будет для тех кто не знает с какой стороны подойти и с чего начать )
 
Вот под Revo
*** скрытое содержание ***
На английском.
уже эти уроки перевёл давно и на свой блог выложил, правда с три месяца назад блог на%%нулся, поэтому ждите скоро новый, но в 2 раза круче :) с БД и шлюхами :-]
 
  • Нравится
Реакции: m25
EVO. Очень удобный редактор в админку (Не визивиг!)
С подсветкой кода, увеличением шрифта текста, поиском-заменой, понимает регулярки. Для меня было находкой!

editarea.gif


Установка в два клика, русский язык
 
Стандартный файловый менеджер 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, а с ним и менеджер загрузки файлов и все счастливы.
 
иногда нужно вывести количество дочерних документов.


Создайте сниппет с именем 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.
 
Жаль только что на рево нет таких уроков, а то чувствуется небольшая нехватка в информации по этому движку
Вот здесь регулярно пишу уроки по MODX Revolution для новичков и продвинутых:
 
  • Заблокирован
  • #9
[Revo] убрать расширение файла, или суффикс (контекста) (.html, .php и др.) в ЧПУ

site.by/contact.html (когда нужно получить
site.by/contact).

Заходим в Система -> Типы содержимого.
Для нужных типов содержимого удаляем значение в столбце «Расширение файла».

Не забываем нажать «Сохранить».

На всякий случай чистим кэш. У меня все получилось.
 
[REVO]
mSearch: поиск + фильтр для MODX
1. mSearch
Это сниппет и плагин. Сниппет ищет, плагин индексирует документы при сохранении.
2. mFilter
Это второй сниппет в mSearch. Он самостоятельно генерирует фильтры для найденных (или заранее указанных) ресурсов, используя чанки для оформления. Цифровые значения по умолчанию выводятся как слайдер, текстовые — как чекбоксы.
 
Назад
Сверху