Это старая версия документа.


MODX

Швейцарский нож для Веб-разработчиков.

MODX1) - система управления контентом, а также среда для создания веб-приложений (CMF), призванная облегчить работу с сайтом и со скриптами, которая устанавливается на Веб-сервере, для дальнейшей работы с сайтом.

Обладает мощными и простыми встроенными функциями, которые дополняются из базы плагинов и сниппетов с официального сайта системы и от сторонних производителей.

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

Основные особенности MODx

MODx разделилась на 2 ветки MODX Revolution2) и MODX Evolution 3) с достаточно схожими возможностями, но разным подходом к реализации функционала.

Обе ветки MODx обладают своим, мощным языком, с помощью которого можно вызывать встроенные программы и сниппеты. Помимо вызова встроенных функций программа работает с плэйсхолдерами, на место которых подставляется содержимое того или иного информационного блока.

Несмотря на наличие значительного превосходства в гибкости и простоте использования MODx, по сравнению с другими системами, существует ещё множество задач, которое предстоит решить в будущем с помощью этой программы. Для этого случая эта CMS оборудована мощными средствами API4), что говорит о больших перспективах данной программы.

MODx имеет многоязычный многопользовательский интерфейс. Он имеет возможность настройки разных языков для различных пользователей. Между пользователями можно разделять различные права и привилегии, давая доступ к одним ресурсам и закрывая доступ к другим. К примеру, для обычного пользователя, заполняющего сайт, совсем не нужно иметь доступ к исходному коду сайта и элементам управления, требующим тонкой настройки. Изначально в системе созданы 3 роли пользователей:

  • Administrator - имеют полный доступ ко всем функциям MODx
  • Editor - пользователи с ограниченными правами управления контентом, такими как:
    • создание новых страниц, редактирование имеющихся и удаление в корзину
    • редактирование имеющихся чанков
    • запуск модулей
  • Publisher - имеют все привилегии Editor и:
    • создание пользователей
    • очистка корзины удалённых документов
    • полное управление шаблонами сайта
    • полное управление чанками
    • изменение настроек сайта и запуск резервного копирования.

По мимо этого, можно задать «Права менеджеров», там же разделить их на группы и присвоить отдельным страницам/разделам сайта.

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

Для управления контентом сайта, пользователи могут использовать уже внесённые программистами средства, просто кликая по нужной для редактирования странице, работая с данными в удобном виде без всяких кодов и непонятных значений. Интерфейс системы управления сайтом построен на основе технологии WYSIWYG, что делает процесс наполнения сайта информацией достаточно простым и схожим с набором текстов в обычных редакторах по типу MS Word.

Что можно сделать с помощью MODx прямо сейчас?

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

Что касается главного меню сайта, или второстепенных меню. В программе присутствует мощное средство Wayfinder 5), которое позволяет быстро организовать динамическое меню на всех страницах сайта, по заданным параметрам. Аналогичным образом, есть сниппет, который поможет организовать навигацию по сайту с помощью хлебных крошек 6).

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

В поставку включена программа, для создания форм, под названием eForm8), которая может автоматически генерировать код САРСНА, чтобы удостовериться в том, что данные были введены вручную, а не с помощью робота. Таким образом, можно организовать небольшую гостевую страничку или форму отправки сообщений с вашего сайта.

Однако, всех этих средств не достаточно для быстрого создания полноценного блога, или интернет-магазина.

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

Для интернет магазинов MODx обзавёлся специальным плагином и сниппетом, которые носят название MODx Shopkeeper9). Это мощное средство позволяет прикрепить к вашему сайту корзину заказов, создать каталог, обрабатывать заказы прямо через сайт и следить за их состоянием через специальное меню. Пользователи этого сайта в свою очередь могут так же сделать заказ, посмотреть на сайте состояние заказа по номеру, или авторизовавшись, а так же получать уведомления о состоянии заказа по почте.

Интеграция с другими языками и программами на различных языках. MODX применяет всё те же скрипты PHP, которые можно смешивать с API10) для MODx, Java Script, использует библиотеку JQuery, и вообще всё, с чем можно работать в интернете. Ах да ну и, конечно же, не ограничены возможности при работе с базой данных MySQL.

Возможности MODx11) ограничиваются только тем, кто с работает с этой системой. Если для обычного пользователя это может быть просто создание простого сайта, то продвинутые программисты смогут создать с его помощью всё что угодно. Пока ещё все возможности MODx не изучены, но и того что есть хватит, чтобы реализовать абсолютно любую идею для сайта.

Недостатки

  • MODx — это больше фреймворк (CMF), чем CMS, соответственно нужно обладать достаточными знаниями web-программирования, чтобы создать на этой системе достойный сайт
  • У двух веток MODx свой API, что вызывает путаницу
  • MODX Revolution — более требовательна к ресурсам и имеет не столь внятный и удобный интерфейс управления как у Evolution, но при этом эта система рассчитана на работу с большим количеством информации, т.е. подходит для создания контентных интерактивных порталов с высокой посещаемостью
  • MODX Evolution требует достаточно большого количества ресурсов оперативной памяти при большом количестве документов (memory_limit=64Mb для количества документов до 15 000 и memory_limit=128Mb для 60 000 документов)
  • В MODX Evolution существует проблема с кэшированием динамических сниппетов (что решается путём установки CacheAccelerator12))

Полезные "заплатки"

Транслитерация имен загружаемых файлов через визуальный редактор

При помощи к примеру Notepad++ открываем файл FileUpload.php (полный путь: manager/media/browser/mcpuk/connectors/php/Commands/FileUpload.php) И перед строкой function run() вставляем следующий код:

function translited ($tr_name)

      {
        $rus = array("а","А","б","Б","в","В","г","Г","д","Д","е","Е","ё","Ё","ж", "Ж",  "з","З","и","И","й","Й","к","К","л","Л","м","М","н","Н","о","О","п","П","р","Р", "с","С","т","Т","у","У","ф","Ф","х","Х","ц","Ц","ч", "Ч", "ш", "Ш", "щ",  "Щ", "ъ","Ъ", "ы","Ы","ь","Ь","э","Э","ю", "Ю", "я","Я",'/',' ');

        $eng =array("a","A","b","B","v","V","g","G","d","D","e","E","e","E", "zh","ZH","z","Z","i","I","j","J","k","K","l","L","m","M","n","N","o","O", "p","P","r","R","s","S","t","T","u","U","f","F","h","H","c","C","ch","CH", "sh","SH","sch","SCH","", "", "y","Y","","","e","E","ju","JU","ja","JA",'','');

        $tr_name = str_replace($rus,$eng,$tr_name);

        return $tr_name;
      }

Далее ищем строчку:

$filename=basename(str_replace("\\","/",$_FILES['NewFile']['name']));

и заменяем её строкой:

$filename=basename(str_replace("\\","/",$this->translited($_FILES['NewFile']['name'])));

Задаем кодировку файла UTF-8 (если у вас «админка» в этой кодировке и в файле .htaccess установлен параметр AddDefaultCharset utf-8). Меняем текущий файл FileUpload.php на сервере получившимся и вуаля - все работает. Теперь файлы с русскими именами будут автоматически транслитерироваться.

modx.1364385258.txt.gz · создано: 2012/11/18 19:36 — rech · Последние изменения: 2013/03/27 15:54 — rech
Наверх
Driven by DokuWiki