Руководства, Инструкции, Бланки

Collections Modx Revo инструкция img-1

Collections Modx Revo инструкция

Рейтинг: 4.4/5.0 (1887 проголосовавших)

Категория: Инструкции

Описание

Инструкция по созданию сайта на MODx

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

Вы хотите без посторонней помощи создавать интересные, функциональные сайты? Вы хотите попробовать себя в качестве web-разработчика? Вам интересно, как раскрутить Ваш сайт? Заходите, следите за появлением новых материалов, спрашивайте, комментируйте, читайте, учитесь, радуйтесь результатам, а я, в свою очередь, подготовлю материалы, которые помогут Вам в этом.
Посмотрите, что уже успело накопиться на сайте, наверняка, найдете что-нибудь полезное для себя (карта сайта)

Вскоре в моем блоге появятся циклы статей «Создание сайта с нуля», «Делаем гибкий, функциональный блог», «Интернет-магазин на СMS/CMF MODx» и многое-многое другое. Не переключайтесь.
Следить за появлением новых статей на сайте. RSS лента.

Я всегда рад знакомству и общению с новыми людьми. Поэтому не стесняйтесь и пользуйтесь возможностью написать мне письмо, прокомментировать любой материал на сайте или связаться со мной любым другим способом, указанным на странице с контактной информацией. Я обещаю, что незамеченным Вы не останетесь. Если Ваше обращение требует ответа, я обязательно на него отвечу.
Связаться со мной

Инструкция по созданию сайта на MODx. Урок 1 — Вступительный

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

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

Для начала расставим точки над «ы», и определим план наших действий. Я хочу, чтобы вы научились делать сайты разной сложности. Вы этого хотите? Поэтому начинать мы будем с простого, и по мере приобретения вами новых знаний, будем постепенно усложнять задачи. Я считаю, что неплохо бы было начать изучение MODx с создания сайта-визитки. Это поможет вам понять основные принципы системы и ее отличительные особенности, которые необходимо знать для постановки более сложных задач. Поэтому начнем знакомство с системой с реализации визиточки. Кстати сайты-визитки, наравне с корпоративными сайтами, составляют значимую долю из общей сложности всех заказов в web-индустрии.

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

Сначала нам нужно подготовить инструментарий. В первую очередь обзаведемся последней версией системы MODx CMS/CMF. которая нашла себе пристанище на официальном сайте. Сайт этот, к сожалению для многих, еще не говорит по-русски, но даже при отсутствии языковых навыков достаточно понятен интуитивно. На момент написания статьи последняя версия MODx 1.0.4.

Так же вы можете зарегистрироваться на этом сайте, регистрация бесплатна и при дальнейшей, более тесной работе с MODx вы все равно зарегистрируетесь (рано или поздно), поверьте мне.

Внимание: MODx 1.0.4 тоже является последней версией, но другой ветки системы управления, поэтому, если только начинаете знакомство с MODx, не спешите ставить Revolution 2. Уроки в этом курсе будут написаны специально для Evolution.

Далее нам необходимо установить веб-сервер у себя на компьютере либо воспользоваться услугами хостинг-провайдера. Если вы уже занимались разработкой сайтов, то наверняка в курсе, что это и с чем его едят, но если вы впервые слышите об этом, а слово «localhost» для вас бессмысленный набор букв, то я вам посоветую скачать Denwer. В установке он прост как топор, и отлично справляется с возложенными на него функциями. Подробнее об установке и использовании данной сборки вы можете узнать на сайте разработчика или на форуме проекта .

Итог

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

После установки локального сервера переходите к следующему уроку, из которого вы узнаете, как установить саму систему MODx.

Вы можете также посмотреть другие уроки по созданию сайта на MODx:

Другие статьи

MODX Revolution - Базовый урок

MODx: MODX Revolution - Базовый урок Установка и настройка MODx плагинов

Устанавливаем Advanced версию MODx, во время установки указываем, что папка админа будет называться super .

Маст-хэв плагины MODx

Самые популярные и наиболее часто используемые дополнения для MODx:

  1. Ace - редактор кода MODx;
  2. Collections - отображение и управление коллекциями ресурсов;
  3. pdoTools - набор базовых инструментов MODx;
  4. FormIt - работа с формами в MODx;
  5. phpThumbOf - работа с изображениями в MODx;
  6. TinyMCE / CKEditor (на выбор) - текстовый WYSIWYG редактор для MODx;
  7. translit - транслитерация URL в MODx;
  8. MIGX - Добавляемые дополнительные поля в MODx;
  9. AutoTemplate - "Умное" автоматическое назначение шаблонов ресурсам.
Базовые настройки MODx Revolution

Переходим в "Системные настройки".

Раздел: Дружественные URL
  • Транслитерация псевдонимов: russian;
  • Использовать дружественные URL: Да;
  • Строгий режим дружественных URL: Да;
  • Проверять на дублирование URI во всех контекстах: Да;
  • Использовать вложенные URL: Да;
  • Не забудьте также переименовать ht.access в .htaccess в корне сайта.
  • Раздел: Панель управления Раздел: Сайт
    • Страница ошибки 404 «Документ не найден»: ID ресурса 404;
    • Публиковать по умолчанию: Да;
    • Название сайта: Название вашего проекта.
  • Пространство имен: ace
    • Размер шрифта: 18px;
    • Мягкая табуляция: Нет;
    • Размер табуляции: 2;
    • Тема редактора (на выбор): ambiance, chaos, chrome, clouds, clouds_midnight, cobalt, crimson_editor, dawn, dreamweaver, eclipse, github, idle_fingers, katzenmilch, kr, kuroir, merbivore, merbivore_soft, mono_industrial, monokai, pastel_on_dark, solarized_dark, solarized_light, terminal, textmate, tomorrow, tomorrow_night, tomorrow_night_blue, tomorrow_night_bright, tomorrow_night_eighties, twilight, vibrant_ink, xcode;
    • Ктоме того, вы можете сделать тему Material в редакторе Ace: инструкция .
  • Создаваемые базовые ресурсы
    1. Страница 404 - страница для настройки «Документ не найден». Не показывать в меню;
    2. sitemap - ресурс для вывода [[pdoSitemap]]. Пустой шаблон. Не показывать в меню. Тип содержимого: XML. Не доступен для поиска. Не использовать HTML-редактор;
    3. robots - ресурс для вывода robots.txt. Пустой шаблон. Не показывать в меню. Тип содержимого: text. Не доступен для поиска. Не использовать HTML-редактор.
    Дополнительные материалы базового урока по MODx Содержимое сниппета host: Содержимое robots.txt для MODx с использованием сниппета host :

    Пакеты MODX

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

    С помощью представленного набора пакетов можно построить полноценный сайт:

    Пакеты из центрального репозитория modx.com

    pdoMenu (из пакета pdoTools ) - предназначен для вывода групп элементов по шаблонам, используется для формирования меню (аналог Wayfinder)

    pdoResources (из пакета pdoTools ) - аналогично Wayfinder выводит выборку элементов по шаблонам, но сособен обрабатывать содержимое, используется для вывода списка документов с аннотациями или кратких карточек товаров в каталогах интернет магазинов.
    Аналоги: getResources

    pdoPage (из пакета pdoTools ) - группирует вывод сниппетов на отрезки, выводит заданный отрезок - типичная постраничная разбивка. Используется в паре с getResources.
    Аналоги: getPage

    Archivist - компонент для навигации по архивным записям новостей сайта.

    Articles - модифицированный тип документов MODX, которые отображаются не в общем дереве каталогов, а в родителе в виде таблицы с постраничной разбивкой. Крайне полезно для сайтов у которых публикуется большое количество новостей и все из них неудобно выводить в дереве докуентов (получается очень длинная лента)

    Babel - пакет реализующий мультиязычность, на базе контекстов MODX

    pdoCrumbs (из пакета pdoTools ) - выводит "хлебные крошки" (путь от корня к текущей странице).
    Аналоги: Breadcrumbs

    ClientConfig - создание раздела настроек для контент-менеджеров, в тех случаях, когда для них закрыт правами доступа системный раздел настроек.

    CKEditor - визуальный редактор HTML контента для содержимого ресурсов. Устанавливается в систему и заменяет собой простую текстовую область установленную в системе по умолчанию.
    Аналоги: TinyMCE, TypoMCE, Redactor (от <+> modmore )

    CodeMirror - визуальный редактор для редактирования кода (шаблонов, чанков, сниппетов). Устанавливается в систему и заменяет собой простую текстовую область установленную в системе по умолчанию.
    Аналоги: Ace

    Collections — тип документов для группирования большого количества дочерних документов в дереве ресурсов.

    CSS Star Rating - модуль оценок страницы (товара) на базе CSS

    form_constructor - компонент для визуального формирования форм, упрощает работу с формами

    FormIt - пакет для обработки данных передаваемых формами в публичной части сайта, имеет всевозможные хуки (сценарии действий) в том числе и для отправки писем на e-mail администраторам или клиентам.

    FormSave - дополнительный хук для FormIt, который позволяет записывать результат действия пользователя в БД и позже экспортировать результаты в CSV, XML на печать

    Gallery - пакет для управления фотогалереями на сайте.
    Аналоги: ms2Gallery (от Simple Dream) и MoreGallery Resource (от <+> modmore)

    GoogleSiteMap - сниппет для генерации правильной карты сайта sitemap.xml.
    Аналоги: в пакете SEOTab (от Sterc.nl) имеется сниппет StercSeoSiteMap

    GroupEdit - пакет для группового редактирования полей ресурсов

    gtpbuilder - пакет для автоматизации скачивания и компиляции пакетов хранящихся на GitHub.
    Примечание: в настоящее время работает не очень стабильно, но является удобным инструментом;

    Image+ - компонент для визуального обрезания картинок

    Jevix - компонент для фильтрация любых данных, которые вводят на сайте пользователи или контент-менеджеры. Например, можно удалять "лишние" символы, попытки взлома системы, или автоматически оборачивать файлы заканчивающиеся на .swf в тег <object>

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

    modDevTools — хлебные крошки в админке + показывет обратные связи шаблона и ресурсов

    MultiUploadDialog - замена стандартного загрузчика файлов

    nospam - компонент для предотвращения чтения e-mail адресов с вашего сайта спам-ботами, разбивает e-mail'ы на части

    pThumb - компонент для автоматического ресайза картинок, например для создания превьюшек товаров. Подробное описание параметров библиотеки phpThumb. которая входит в состав этих пакетов.
    Аналоги: phpThumbOf, phpThumbOn

    SimpleSearch - поисковый модуль по текстовому содержимому на сайте, Аналоги mSearch2 — платный, но лучше использовать его.

    Summary - разделение больших текстов "читать далее"

    taglister - пакет для управления облаками тегов

    Translit - компонент для генерации дружественных url
    Аналоги: yTranslit (от Simple Dream)

    VersionX - аналог имеющегося функционала в Wordpress, для сохранения предыдущих версий ресурсов (текстовых документов) и других элементов.

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

    От Simple Dream

    pdoTools - набор инструментов работающих c системой MODX в стиле PDO, а не XPDO. Оперирует в основном массивами, а не объектами классов. Работает быстрее, чем пакеты построенные в объектном-стиле.

    BannerY - компонент для управления баннерами на сайте.

    debugParser - пакет для тестирования быстродействия системы и выявления "узких" мест.
    Копонент платный $.

    HybridAuth - компонент для авторизации через социальные и другие сервисы.

    MinifyX - пакет минифицирующий .js и .css файлы и объединяющий несколько файлов в один, тем самым сокращяя время загруки страницы клиентом и уменьшает количество строковых операций браузером при интерпретации страницы и стилей - увеличивает скорость работы сайта.

    miniShop2 - компонент для создания полноценного интернет-магазина.

    Tickets - компонент для создания и комментирования страниц посетителями сайта.

    yTranslit - компонент для генерации дружественных url через api переводчика Яндекс. API ключ Яндекса делать тут. Его нужно вписать в разделе Системные настройки > ytranslit. И не забудьте поправить системную настройку friendly_alias_translit и другие в разделе Системные настройки > core > Дружественные URL

    VersionX — компонент позволяющий сохранять старые версии сниппетов и чанков

    От Sterc.nl

    seopro - компонент, добавляющий "SEO примочки" в форму редакитрования документов и формирующий предварительный просмотр, как эта страница будет выглядеть в поисковой выдаче Google

    Также у студии Sterc имеется компонент SEOTab - с расширенным SEO функционалом. но он ещё сыроват и лично я его сейчас не использую

    Из блога Боба Рея

    sitecheck - пакет для тестирования быстродействия системы и выявления "узких" мест. Также умеет автоматически исправлять большое количество ошибок.
    Копонент платный $.

    Upgrade MODX — пакет для автоматизации обновления MODX, следит за наличием обновлений, предлагает обновить.

    Мои разработки

    MetaTager - пакет для умного вывода Meta- заголовков, результат работы можно посмотреть на сайте BaltGaz.ru. скачать на GitHub.

    xContent - пакет для расстановки внутренней перелинковки в текстах сайта, результат работы можно посмотреть на сайте BaltGaz.ru. скачать на GitHub. Чтобы его использовать, необходимо уметь писать регулярные выражения.

    Collections компонент Modx Revo: обзор и установка

    Collections компонент Modx Revo: обзор и установка

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

    Обзор Collections

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

    Есть замечательный бесплатный компонент Collections, который вы можете загрузить через админку сайта.
    Он не только позволяет сделать более удобный вид, но и множество других настроек.
    Для начала сравним стандартную структуру MODX с компонентом.

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

    А теперь рассмотрим древо через компонент:

    И так теперь при нажатии на данную рубрику у нас открывается список всех статей, с которыми намного приятней работать.

    Мы можем фильтровать наши ресурсы по дате и другим параметрам, искать по названию, выполнять массовые действия (опубликовать, снять с публикации и удалить), фильтровать по опубликованным и не опубликованным.

    Поработав с ним, вы поймете, что это намного удобней чем через стандартные средства.

    Установка Collections

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

    Вы всегда можете отказаться его использовать на нужных рубриках, компонент создаёт новый тип материала.

    Загрузили и установили, теперь чистим кэш и переходим в наше приложение (Приложения -> Виды коллекции).

    Там увидите стандартный вид "Blog", скопируйте его для создания нового вида.

    И так первая вкладка:

    Здесь довольно простые настройки, объяснять не стоит.

    Лишь одно поле часто всего используется: "Задать как вид по умолчанию". Включив это, данный вид будет по умолчанию включаться всем рубрикам, к которым подключен компонент.

    Самое интересное на второй вкладке:

    Здесь мы можем выбрать шаблон по умолчанию для дочерних ресурсов, а также их тип.

    Тип контента тоже можно поменять, к примеру, у меня создан новый тип "NO-HTML" - который работает, как простой "HTML", только он обрезает на конце алиаса расширение ".html", об этом читайте здесь .

    А чтобы включить данный Collections для нужного ресурса, просто откройте его и во вкладке "Настройки" поменяйте тип ресурса на "Коллекция".

    Создаем свою сборку MODX REVO

    Создаем свою сборку MODX REVO

    06 апреля 2013, 02:24


    Уже довольно давно существует скрипт от bezumkin для создания сайтов на сервере с уже установленными необходимыми пакетами.

    Но иногда нужно быстренько развернуть сайт на обычном shared-хостинге. Я как-то сделал себе отдельный сайтик, где настроил нужные мне дополнения, создал файлы robots.txt и sitemap.xml, настроил дружественные URL и прочие мелочи. Соответственно, если нужно было развернуть новый сайт я брал свою заготовку, переносил ее на новое место и занимался уже созданием сайтов.

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

    В MODX REVO очень удобный установщик, я решил использовать его. В папку с установкой MODX я перенес свою папку assets, core/components и core/packages

    После этого зашел в базу данных с помощью phpMyAdmin, удалил таблицы modx_users и modx_user_attributes, чтобы на каждом сайте можно было ставить разные доступы прямо во время установки — чтобы не приходилось менять пароль уже в админке.

    Дамп этой базы данных положил в папку setup (чтобы он удалился по окончании установки) и в файл setup/controllers/complete.php (перед последней строчкой) добавил следующие строки для импорта файла базы данных в новую базы (затираются все таблицы, кроме modx_users и modx_user_attributes):


    Таким образом после всей установки мы импортируем базу уже со всеми нужными нам ресурсами, сниппетами, ТВ, чанками, пакетами и пр.

    Ну и на последок, кому интересно, моя сборка: ilyaut-0.0.1.zip. Скачиваем, разархивируем, заходим по адресу site.ru/setup/ и устанавливаем как обычный MODX. Не забудьте переименовать файл ht.access в .htaccess

    Список установленных дополнений и настроек:
    • Настроен редирект с адреса www.site.ru на site.ru
    • В дереве ресурсов добавлены два новых ресурса: robots.txt и sitemap.xml
    • Стандартный шаблон изменен — разбит на чанки header, aside, footer и пр.
    • Добавлен ТВ img с типом ввода — Изображение
    • Созданы чанки с вызовом Wayfinder, getPage, getResources
    • Добавлен плагин editButton от />
    • В настройках включены дружественные URL
    • Установлены пакеты:
      • Ace
      • Batcher
      • Breadcrumbs
      • DirectResize Revo
      • FormIt
      • getPage
      • getResourceField
      • getResources
      • GoogleSiteMap
      • Login
      • phpThumbOf (с уже отключенным плагином phpThumbOfCacheManager)
      • Quip
      • TinyMCE
      • translit (настроена транслитерация псевдонимов)
      • Wayfinder

    Вроде, все. Если будут вопросы, задавайте, постараюсь ответить. Периодически стараюсь обновлять пакеты и версию MODX, так что можно скачивать сборку по ссылке. Кроме того, можно запросто сделать свою сборку и работать с ней.

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

    UPD-2. Перенес топик в соответствующий блог.

    ← Реализация админки во фронтэнде сайта на MODX Revo

    [Перевод] Оптимизация сайта с помощью getCache или работа с пользовательскими разделами кеша →

    Нее… Эту версию сборки я давно уже не использую. Статья нужна только для того, чтобы показать — вы можете делать сборки, чтобы ускорять разработку сайтов. Не нужно каждый раз делать одни и те же действия по установке и настройке компонентов.

    А используемую версию сборки выложить не могу — там прописаны все мои стандартные доступы (SMTP, привязка к магазину SimpleDream), указаны электронные адреса для форм обратной связи и пр.

    Можно было бы все это поудалять и выложить, но могу же что-то упустить… Да и поддерживать надо будет сборку — вышло критическое обновление, обнови у себя в Dropbox сборку, на гитхабе сборку и не забудь для гитхаба опять поудалять все лишнее.

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

    Доброго дня!
    Спасибо, интересные статьи на вашем сайте.
    Сборки, для разных нужд, постоянно актуальны. К сожалению, Vapor, будучи весьма удобным скриптом, не работает на многих shared-хостингах (например, Таймвеб рубит процессы длящиеся более 10 сек.).
    Если у вас будет время, расскажите, какие сегодня есть самые технологичные способы делать сборки и, отдельно, сборки шаблонов со встроенными ресурсами (PackMan же не добавляет ресурсы в пакет). Иметь коллекцию из подготовленных шаблонов весьма полезно, особенно оформленных в транспортные пакеты.
    С нетерпением жду развитие данной темы.
    Спасибо.

    Я последнее время храню сборку в виде сайта.

    То есть установил MODX, создал нужные ресурсы, поставил и настроил нужные пакеты, а потом сделал дамп базы данных и файлов. На новый сайт я заливаю не MODX, а сам сайт, правлю пути в конфигах — и готово, осталось верстку перенести в шаблоны.

    Я то же делаю почти так, только сначала ставлю чистый MODx, потом поверх распаковываю сборку без конфига, кэша и т.п. а затем перезаливаю базу.
    Но вот шаблоны бы вместе с ресурсами в транспортный пакет хотелось как то быстро оформлять. Интересно кто и как это делает. Конечно, совсем универсальным такой пакет с шаблоном не будет, но экономия времени точно возникнет. Вот, уже коммерческие шаблоны, оформленные в транспортные пакеты, появились themeforest.net/category/cms-themes/modx-themes
    Актуальная тема, тренд, как модно сейчас говорить))

    Так а в чем вопрос поставить шаблон ваш? в комплекте идет справочный файл — в html формате, все четко прописано и разъяснено.
    Устанавливаем чистую модикс, смотрим по справке какие нужны дополнения, устанавливаем дополнения все из репозитория находясь в админке стандартным способом, в последнюю очередь ставим этот шаблон/дизайн также как и дополнение, предварительно просто закинуть нужно архив этот в папку core/packages, после этого при установке дополнения этого указать место репозитория локально и как система его обнаружит стандартно: скачать, а затем установить.
    после этого обновляем страницу бэкенда, в меню появиться пункт отдельный касаемый настроек именно уже шаблона и настройки эти будут отображаться в бэкенде в удобной форме с подписанными полями и вкладками по теме самого шаблона.

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

    Проблема оказалось в том, что название архива должно содержать фразу .transport.zip, как оказалось без этого, он эту сборку не съедает и не видит.

    Не пойму в чем секрет может в «версии», вашу протестировал все как положено, собрал свою наверное что то пропускаю… Так как пакеты не установленные, просто как локальные лежат ну и в общем где-то что то еще не вышло ( Может знаете что такое?

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

    Пробуем Collections и GridClassKey: редактирование страниц MODx в табличной форме

    [REVO ] Пробуем Collections и GridClassKey: редактирование страниц MODx в табличной форме

    В своих поисках средства уйти хотя бы не на долго от дерева ресурсов MODx к привычному табличному редактированию, я уже попробовал MIGXdb и Grid Editor .

    Спасибо Pathologic, за наводку, попробуем еще и Collections .

    Как написано тут: github.com/modxcms/Collections, Collections добавляет пользовательский класс ресурсов CollectionContainer со следующим поведением:
    • Дочерние ресурсы будут спрятаны из дерева и будут отображаться в виде сетки.
    • Дочерние ресурсы у которых в свою очередь тоже есть «дети», будут показаны в дереве.

    Ставится без проблем, смотрим. Выбираем какой-то ресурс в котором есть дочерние ставим ему класс CollectionContainer.

    Вот что получается

    Довольно удобно. Похоже на GridEditor больше чем на MIGx.

    Еще на страничке Collections я увидел такое:

    @Goldsky недавно выпустила экстра называемый «GridClassKey», который делает подобные вещи

    Попробуем его тоже.

    На сейчас он 1.0 beta 3. Ставится вроде без проблем.

    После установки появляется новый класс ресурса:

    Со старту не получилось ничего путного:

    Редактирование вызывает ошибку.

    Что еще меня немного напрягло, так это то что после возвращения класса в Document обратно, дочерние ресурсы так и не появились в дереве…

    Видимо баг текущей версии.

    Больше я возиться с ней не стал, думаю хватит на сегодня.

    Статистика количества запросов и времени на исполнение в MODX Revolution

    Статистика количества запросов и времени на исполнение в MODX Revolution

    Получил в личку очень интересный вопрос. Цитирую:
    Не могли бы вы помочь мне с Рево — никак не могу найти тегов для вывода статистики по рендерингу страницы. Из Ево сработало часть:

    только 2 последних. А мне бы хотелось узнать сколько нужно памяти для рево и время генерации страницы поскольку балуюсь на локалке. Взялся покопать. Как оказалось, в Эво с этим вообще проблем нет, все отлично выводится. А вот в Рево как бе совсем не все так просто…

    В принципе и в Эво и в Рево эти теги остались без именения.
    Вот код Эво:
    А вот код Рево:

    Так если все тоже самое, почему не работает?

    В Эво с этим было проще, так как там на все запросы один единственный класс и по сути единственная центровая функция на выполнение запроса function query($sql). При чем обратите внимание на то, что если запрос не удалось выполнить, статистика не учитывается (не плюсуются ни счетчик запросов, ни время выполнения), что тоже не есть гуд, но с этим можно смериться.

    В Рево все оказалось гораздо более запущенно…
    Давайте проследим выполнение одной из функций выборки $modx->getCollection().
    Сам класс modX не имеет этого метода, а наследует его от объекта xPDO. В данном случае xPDO не выполняет с ходу запрос, а выполняет данный метод на целевом объекте $className, который в свою очередь напрямую или через несколько колен является расширением от класса xPDOObject. То есть вызывая метод $modx->getCollection('modResource'); мы по сути выполняем modResource->loadCollection();
    К слову, именно поэтому я и говорил, что выдернуть xPDO из MODX Revolution — почти нереал.

    Ладно, отвлеклись, едем дальше. Смотрим метод xPDOObject::loadCollection();
    Находим там вот это: Вот собственно как раз здесь уже очень близки к месту, где выполняется сам запрос…

    Смотрим xPDOObject::_loadRows(), и вот как раз здесь все самое интересное. Специально выдернул всю функцию, дабы лучше показать насколько все запущенно…

    Первое, на что обратим внимание, это на то, что счетчик запросов и времени исполнения засунут в блок if (!$criteria->stmt->execute()) <>, то есть уже косяк, ибо получается, что счетчик работает только тогда, когда запрос не выполняется, при чем именно из-за SQL-ошибки или типа того. Кстати, сразу забегая вперед, обращаю ваше внимание на то, что именно метод $criteria->stmt->execute() — это и есть метод, который выполняет сам SQL-запрос. Но почему это проблема, раскрою дальше.

    Подтвердим теорию на практике.
    Создаем пользовательский запрос: Сразу скажу, что документа с id=5 не существует, потому результат будет нулевой. При этом SQL-ошибки нет, потому и запрос считается выполненным. Выполняем и смотрим результат: Query Time: 0.0000 s
    Request: 0
    PHP Exec: 0.0760 s
    Total time: 0.0760 s Теперь испортим наш запрос Сами понимаете, что колонки idddddddddddddd в этой таблице нет, а значит будет SQL-ошибка. Выполняем и смотрим: Query Time: 0.0000 s
    Request: 1
    PHP Exec: 0.0800 s
    Total time: 0.0800 s То есть выполнен один запрос. Время запроса нулевое скорее всего из-за того, что база пустая, не будем обращать внимание. Если что, пусть кто-нибудь проверит это у себя и отпишется в комменте.

    Итак, это первый косяк. Попробуем его чуть-чуть исправить и переписать блок функции так: Мы конечно таким образом не отслеживаем все запросы с учетом ошибок, автосоздания таблиц и т.п. но хотя бы выполненные запросы отслеживаем.
    Проверяем: Query Time: 0.0000 s
    Request: 7
    PHP Exec: 0.0680 s
    Total time: 0.0680 s То есть мы видим, что выполнено 7 запросов. Уже что-то.

    Но, к сожалению, на этом наши беды не заканчиваются…
    Еще проблема: Кто знает xPDO получше, мог в своей практике использовать метод $modx->getCollectionGraph(); Описанным выше путем доходим до того, что это на самом деле метод xPDOObject::loadCollectionGraph();
    Смотрим код функции: И что мы видим? Главное, мы НЕ видим — не видим счетчика запросов и т.п. А это еще один минус по статистике.

    То есть мы видим, что для разных запросов используются различные методы, которые между собой не пересекаются. Это же касается методов xPDOObject::save(), xPDOObject::remove() и т.п.

    Продемонстриую еще пример.
    Есть метод xPDO::exec(); Данный метод выполняет произвольный SQL-запрос.
    Выполним вот это: В данном примере мы генерируем SQL $sql = $q->toSQL() и выполняем его $modx->exec($sql); И да, счетчик запросов щелкает. Query Time: 0.0040 s
    Request: 10
    PHP Exec: 0.0680 s
    Total time: 0.0720 s И это хорошо. Но плохо то, что я не видел, чтобы MODX для себя где-то выполнял exec(). Потому можете воткнуть в exec() exit(), и у вас сайт не перестанет работать. То есть сбор статистики здесь мало смысла имеет.

    «А как же $stmt->execute()? Ведь он же встречается практически во всех перечисленных функциях.» спросят наиболее наблюдательные… А вот здесь как раз и кроется еще одна беда, на которую я намекал выше. Дело в том, что xPDO это расширение от PDO, которое вшито в Си-расширение PHP, и на методы которого напрямую мы не можем воздействовать, а $stmt — это PDOStatement.

    Таким образом ответ на вопрос пользователя: указанные теги для вывода статистики не потерялись, просто в них информация не актуальная выводится. И чтобы заставить все это дело заработать, придется вклиниться во многие функции xPDO. При чем уверен, здесь не сможет решить этот вопрос ни один модуль для Ревы.

    MODX Revolution - О лицее

    Уфимский колледж ремесла и сервиса


    Наш лицей ведет свою историю с 6 марта 1944 года. Лицей был создан в суровые дни войны и готовил мастеров швейного дела. Почти 300 девчонок, преимущественно сироты со всех районов Башкирии, шили солдатские шинели и тем самым вносили свою лепту в общую победу над врагом.

    Первым директором нашего лицея была Стародумова Анна Даниловна.

    Более 40 тысяч специалистов швейной отрасли легкой промышленности выпустил лицей за годы своей работы.

    В Профессиональном лицее № 10 имеется Музей Боевой Славы 112ой Башкирской Кавалерийской дивизии, где собраны архивные документы, фронтовые письма, фотографии, газеты военного времени, награды, личные вещи фронтовиков, наградные листы, «похоронки», альбомы, книги, посвященные Великой Отечественной войне.

    Основатели музея Проскурякова Н.Д. и Камалова Н.Г.

    Сегодня поисковая группа учащихся лицея под руководством Киньябулатовой З. Р. изучает героический путь 112ой Башкирской Кавалерийской дивизии, в составе которой воевал Ахмет Давлетов – врач-хирург. Более трех тысяч операций провел он в военно-полевой обстановке.

    Более 20 лет в лицее работает Театр моды, лауреат многих фестивалей и конкурсов, который регулярно принимает участие в городских и Республиканских мероприятиях.

    Творческим коллективом лицея ежегодно разрабатываются новые современные, а также и стилизованные национальные коллекции одежды.

    Лицей национальной моды продолжает развивать художественные народные промыслы. Многие работы были оценены по достоинству, исполнители награждены Всероссийскими дипломами «Мастер – золотые руки», которые по сей день находятся в музее Профтехобразования в г. Москва.