TV параметры modx на странице

Работая с новым сайтом на движке MODX Revolution я столкнулся с проблемой невозможности сохранения значений пользовательских TV-параметров. Как оказалось, всему виной была новая версия MySQL.

Суть проблемы

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

В файле error.log системы (раздел Управление→Отчёты→Журнал ошибок административной панели) отображается следующее сообщение об ошибке:

Версия MODX Revolution: 2.5.0-pl

Версия MySQL: 5.7.15

Причина

Потратив приличное количество времени на поиск решения в интернете, я узнал, что всё дело в новой версии MySQL и её обновлённых настройках по умолчанию: задействована настройка ONLY_FULL_GROUP_BY , в результате чего перестаёт работать часть запросов MODX. Как оказалось, проблема уже известна разработчикам (описание в багтрекере MODX на GitHub: https://github.com/modxcms/revolution/issues/12826) и будет исправлена в новых версиях движка (скорее всего в версии 2.5.2-pl).

16 Вывод материалов на главной странице MODX Revolution

Решение

Чтобы не ждать официального релиза с исправлениями и обновлять движок, вы можете самостоятельно внести правки в файлы ядра MODX, к счастью исправлять придётся немного:

$c = $resource->xpdo->newQuery(‘modTemplateVar’); $c->query[‘distinct’] = ‘DISTINCT’; $c->select($resource->xpdo->getSelectColumns(‘modTemplateVar’, ‘modTemplateVar’)); $c->select($resource->xpdo->getSelectColumns(‘modTemplateVarTemplate’, ‘tvtpl’, », array(‘rank’))); if ($resource->isNew()) < $c->select(array( ‘modTemplateVar.default_text AS value’,
$c = $this->xpdo->newQuery(‘modTemplateVar’); $c->query[‘distinct’] = ‘DISTINCT’; $c->select($this->xpdo->getSelectColumns(‘modTemplateVar’)); $c->select($this->xpdo->getSelectColumns(‘modTemplateVarTemplate’, ‘tvtpl’, », array(‘rank’))); $c->select(array(‘value’ => $this->xpdo->getSelectColumns(‘modTemplateVar’, ‘modTemplateVar’, », array(‘default_text’)))); $c->innerJoin(‘modTemplateVarTemplate’,’tvtpl’,array( ‘tvtpl.tmplvarid = modTemplateVar.id’,

После внесения изменений механизм сохранения значений TV-параметров должен работать нормально.

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

Источник: riselab.ru

Первоначальная настройка MODx

Первоначальная настройка MODx

MODX EVO — принцип работы с TV параметром (для клиентов)

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

Установка пакетов

  1. sdStore — для подключеня репозитория от modstore.pro, после установки необходимо зарегистрироваться и получить ключ для установки компонентов из магазина modstore.pro.
  2. tinyMCE — текстовый редактор для ресурсов.
  3. FormIt — для отправки писем с сайта.
  4. Translit — транслитерация URL-адресов.
  5. Filetranslit — транслитерация наименования загруженного файла.
  6. MIGX — дополнение для мульти TV-параметров.
  7. ClientConfig — конфигурация сайта.
  8. Ace — редактор кода с поддержкой Emmet (репозиторий modstore.pro).
  9. frontendManager — управление сайтом контент-менеджером (репозиторий modstore.pro).
  10. MetaX — сниппет для генерации мета-тэгов (репозиторий modstore.pro).
  11. modLastModified — плагин для отправки браузеру заголовка Last-Modified и, если браузер спросит If modified since — ответа 304 Not Modified.
  12. phpThumbOf — ресайзер картинок.
  13. SEO Pro — дополнение, которое считает сколько символов введено в поля title, longtitle и description, также добавляет свое поле Фокусные ключевые фразы.
  14. SEO Tab — Управление SEO на сайте, индексация, алиасы sitemap и прочие плюшки.
  15. simpleUpdater — система обновления MODx-а.
  16. tagLister — понадобится для создания ключевых слов.
  17. FormIt — для отправки писем с сайта.
  18. pdoTools — набор утилит на все случаи разработки сайта (репозиторий modstore.pro).

Источник файлов для контента

Создаем каталог для наших; картинок, документов, видео, аудио — файлов и пр.
создание каталога
В данном случае это папка files в папке assets.
Далее переходим в раздел Медиа -> Источники файлов и нажимаем кнопку Создать новый источник файлов.
новый источник


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

На открывшейся странице представлены параметры настройки для созданного нами нового источника файлов. Отредактируем некоторые из них.
Для параметров basePath и baseUrl указываем путь к созданной выше директории, где планируется хранить наши медиа-файлы — assets/files/, обязательно с слешем в конце иначе будут недоступны.
Кроме того, для параметра allowedFileTypes и imageExtensions укажем строку с перечисленными в ней расширениями файлов, которые будут разрешены для загрузки через новый источник — docx,xlsx,pdf,jpg,jpeg,png,gif,svg (в нашем случае добавляем docx,xlsx,pdf).
настройки источника
Проделав все вышесказанное сохраняем настройки путем нажатия на кнопку «Сохранить» в верхнем правом углу.
Новый источник файлов создан и в дальнейшем мы назначим его источником по умолчанию. Кстати, запомним название созданного источника — «files», оно понадобиться, когда будут редактироваться системные настройки.

Еще по теме:  ТВ шоу однажды в России лучшее

Изменение системных настроек

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

Раздел «Авторизация и безопасность»

  1. allow_multiple_emails (Разрешить пользователям использовать один адрес электронной почты) — нет, чтобы у каждого пользователя была своя электронная почта

Раздел «Дружественные URL»

  1. automatic_alias (Автоматически генерировать псевдоним) — Да, для того чтобы при создании нового документа алиас к нему генерировался из заголовка.
  2. container_suffix (Суффикс контейнера) — очищаем
  3. friendly_alias_max_length (Максимальная длина псевдонима) — 70, более 70 символов не имеет смысла слишком длинный адрес страницы
  4. friendly_alias_translit (Транслитерация псевдонимов) — russian, для того чтобы генерировались алиасы транслитом.
  5. friendly_urls (Использовать дружественные URL) — Да
  6. friendly_urls_strict (Строгий режим дружественных URL) — Да
  7. global_duplicate_uri_check (Проверять на дублирование URI во всех контекстах) — Да, обязательно для исключения дублирования псевдонимов.
  8. use_alias_path (Использовать вложенные урлы) — Да, ссылки будут типа site.ru/blog/hello.html

Раздел «Словарь и язык»

  1. fe_editor_lang (Язык текстового редактора во фронтенде сайта) — ru
  2. locale (Локаль) — ru_RU.utf8

Раздел «Система управления»

  1. default_media_source (Источник файлов по умолчанию) — files, смотрим выше
  2. manager_date_format (Формат даты в системе управления) — d-m-Y, можно сменить на наш, родной, день-месяц-год
  3. manager_time_format (Формат времени в системе управления) — H:i:s, вывод в более приятном формате: 08:25:56
  4. manager_week_start (Первый день недели) — 1, у нас принято начинать неделю в понедельник.
  5. resource_tree_node_name (Поле для названия узла в дереве ресурсов) — menutitle, чтобы названия ресурсов в дереве были покороче.
  6. resource_tree_node_tooltip (Поле подсказки для ресурса в дереве ресурсов) — alias, делается для того, чтобы можно было понять, какой у ресурса адрес, вместо расширенного заголовка.
  7. tvs_below_content (Разместить TV ниже контента) — Да, так удобнее.
  8. welcome_screen (Показывать окно приветствия) — Нет.

Раздел «Сайт»

  1. error_page (Страница ошибки 404) — здесь вбивается id документа, который является той самой страницей. В каждом случае он свой, я предпочитаю создать новый ресурс и по умолчанию он становится 2. Для того чтобы не выводился в меня активируем чекбокс Скрыть из меню.
  2. hidemenu_default (Скрыть из меню по умолчанию) — Да, чтобы случайно новые ресурсы не появились в основном меню сайта.
  3. link_tag_scheme (Схема URL) — -1 (минус 1), по умолчанию для сайтов с http, для сайтов с https оставляем 1.
  4. publish_default (Публиковать по умолчанию) — Да, чтобы при создании новых страниц сайта галочка «Опубликован» по умолчанию стояла, если оставить нет, то каждый созданный ресурс необходимо активировать для его публикации.
  5. site_name (Название сайта) — меняем на свое наименование, например Магазин интересных товаров.
  6. site_unavailable_message (Сообщение о недоступности сайта) — вместо версии на английском можно вставить следующее Сайт находится на техническом обслуживании. Пожалуйста, зайдите чуть позже.
  7. site_unavailable_page (Страница ошибки 503 «Сайт недоступен») — id страницы 404, лучше использовать страницу 404, чем главную.
  8. unauthorized_page (Страница ошибки 401 «Доступ запрещен») — id страницы 404, лучше использовать страницу 404, чем главную.
Еще по теме:  Можно ли покрасить тарелку Триколор ТВ

Раздел «Система и сервер»

  1. feed_modx_news_enabled (Отображение RSS-канала «Новости MODX») — Нет, отключаем Новости MODx на главной странице админки, в зависимости от предпочтений можно не отключать.
  2. feed_modx_security_enabled (Отображение RSS-канала «Уведомления безопасности MODX») — Нет, отключаем Уведомления безопасности MODX на главной странице админки, в зависимости от предпочтений можно не отключать.
  3. log_deprecated (Устаревшие функции в журнале ошибок) — Нет, чтобы убрать лишние и никому не нужные ошибки из лога.
  4. send_poweredby_header (Отправлять заголовок X-Powered-By) — Нет, для повышения безопасности, MODx не будет уведомлять о том на каком движке создан сайт.
  5. server_protocol (Тип сервера) — https, если у вас установлен ssl сертификат, если его нет, то оставляем как есть http.
  1. ace.font_size (Размер шрифта) — 16px, с таким размером шрифта лучше
  2. ace.show_invisibles (Невидимые символы) — Да, отображние скрытных символов, пробелы, табы и т. д.
  3. ace.soft_tabs (Мягкая табуляция) — Нет, с жесткой приятнее
  4. ace.tab_size (Размер табуляции) — 2, шаг отступа
  5. ace.theme (Тема редактора) — monokai, выбор за пользователем, это как фломастеры, потыкать для выбора можно здесь ace.c9.io/build/kitchen-sink.html
  1. seopro.fields (Fields where SEO Pro will work on) — pagetitle:70,longtitle:70,description:155,introtext:255,alias:2023,menutitle:2023, длину некоторых полей лучше ограничить.
  2. seopro.usesitename (Display sitename in the Google/Yandex Preview and add it to the SEO Pro title placeholder [[+seoPro.title]]?) — Нет, будем реализовывать иначе

Создание robot.txt

Создаем через файловый менеджер MODx-а, Filezill-у или средствами хостинга например CPanel файл robots.txt его содержимое ниже:

Создание sitemap.xml

Для создания страницы sitemap.xml создадим ресурс и в заголовке укажем sitemap.xml, в поле Содержимое введем [[!StercSeoSiteMap]] в расширенном заголовке и описании можно написать например Карта сайта sitemap, оставляем галочки на Скрыть из меню и Опубликован. Шаблон выбираем Пустой шаблон
Далее открываем Настройки и снимаем галки с Использовать HTML-редактор и Кэшируемый, сли еще что-то активно отключаем все кроме Очистить кэш. В тип содержимого выбираем XML.
Далее открываем SEO и в поле Участие страницы во внутреннем поиске по сайту выбираем Нет, исключить эту страницу из внутреннего поиске по сайту. Перейдя на видимость и в поле Включение страницы в Sitemap.xml переключаем на Нет, скрыть эту страницу в Sitemap.xml и не забывая нажать кнопку сохранить пробуем открыть страницу sitemap-а site.ru/sitemap.xml

Изменяем .htaccess

картинка ошибки

Далее переименовываем файлы ht.access, manager/ht.access и core/ht.access каждый из них в .htaccess, для исправления ошибки с Каталог ядра в открытом доступе

как правило достаточно переименовать файлы ht.access, manager/ht.access и core/ht.access каждый из них в .htaccess, но иногда необходимо удалить или переименовать файл /core/docs/changelog.txt.
Мой вариант .htaccess.

RewriteEngine On RewriteBase / #Редирект на HTTPS: #RewriteCond %{HTTPS} =off #RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] #Редирект С www на БЕЗ www: RewriteCond %{HTTP_HOST} ^www.(.*) [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] #Редирект с БЕЗ www на С www. !НЕ используйте одновременно с «Редирект С www на БЕЗ www»: #RewriteCond %{HTTP_HOST} ^([^www].*)$ #RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L] #Редирект с http://site.com/index.html и http://site.com/index.php на http://site.com: #RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.(php|html|htm) HTTP/ #RewriteRule ^(.*)index.(php|html|htm)$ $1 [R=301,L] # Избавляемся от завершающего слеша RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.*)/ RewriteRule ^(.*)/$ /$1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] php_flag zlib.output_compression On php_value zlib.output_compression_level 5 ## EXPIRES CACHING ## ExpiresActive On ExpiresByType image/jpg «access 1 year» ExpiresByType image/jpeg «access 1 year» ExpiresByType image/gif «access 1 year» ExpiresByType image/png «access 1 year» ExpiresByType text/css «access 1 month» ExpiresByType text/html «access 1 month» ExpiresByType application/pdf «access 1 month» ExpiresByType text/x-javascript «access 1 month» ExpiresByType application/x-shockwave-flash «access 1 month» ExpiresByType image/x-icon «access 1 year» ExpiresDefault «access 1 month» ## EXPIRES CACHING ## FileETag MTime Size ExpiresActive on ExpiresDefault «access plus 1 year»

Написать комментарий

Ваш email не будет опубликован. Обязательные поля отмечены символом *

Источник: kservice.pro

Что там у ModX Evolution?

Что там у ModX Evolution изменилось за последние 4 года

Почти 4 года прошло, с того момента, как я плотно работал с CMS ModX. В 2013-ом году, была задача, реализовать на этой системе управления сайт автомобильной тематики – шины диски. Пришлось изрядно повозиться, т.к. помимо обычного подбора по параметрам, было много справочников со связкой марка, модель, год выпуска, кузов, объем и тип двигателя.

Еще по теме:  Как найти фильм на Триколор ТВ

Обычные фильтры для шин: ширина, профиль, диаметр, сезонность, шипы, производитель (можно было выбрать несколько вариантов из списка). Для дисков: ширина, диаметр, вылет, центральное отверстие, сверловка, производитель. Необходимо было разработать сайт, именно на CMS ModX, дизайн был не принципиален – главное функционал. Освежим в памяти, как устроен этот движок.

Установка ModX Evolution 1.2.1 (11 января 2017)

Перед нами архив CMS, распаковываем его на наш сервер, и устанавливаем. На выбор есть список из 19-ти язоков, на котором будет работать ваш будущей сайт, но Португальский (Portuguese) повторяется два раза. При более подробном рассмотрении верстки этой страницы, оказывается, у них есть отличие: portuguese / portuguese-br-utf8. Далее выбираем режим установки, в нашем случае доступен только один вариант «Новая установка», т.к. ранее на тестовом домене нечего не устанавливали. Последующие шаги весьма стандартны для всех CMS: информация для подключение к серверу где будет находиться база данных, информация для подключения к базе данных, параметры учетной записи администратора и выбор языка админ панели для него.

Установить новую копию ModX, режим установки

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

Небольшим отличием, служит реализвция функционал на шаге установки – после введения данных, у вас не будет кнопки далее в левом нижнем углу интерфейса, а под пунктом, где вы заполняли поля, есть ссылка. «Нажмите здесь…» и далее уточнение того, что она будет делать, после нажатия на неё по средствам Ajax будет произведено действие проверки и отобразиться её результат.

Дополнительные элементы ModX Evolution

На следующем шаге есть возможность установить демо-данные, выбрать шаблон, параметры (TV), чанки, модули, плагины, сниппеты. Раньше был небольшой список по каждому пункту, навряд ли можно было насчитать 10, а теперь выбор весьма обширен.

Параметры (TV)

  • blogContent — blogContent (RTE для новых записей в блоге);
  • documentTags — Tags (теги для текущего документа через пробел);
  • loginName — loginName (условное название для логина в пункте меню).

Чанки

  • AjaxSearch_tplAjaxGrpResult — Grp результат Tpl для AjaxSearch;
  • AjaxSearch_tplAjaxResult — Результат Tpl для AjaxSearch;
  • AjaxSearch_tplAjaxResults — Результаты Tpl для AjaxSearch;
  • AjaxSearch_tplInput — Заполнение формы для AjaxSearch;
  • Comments_tplComments — Комментарии (Jot) формы-шаблона;
  • Comments_tplForm — Комментарии (Jot) формы-шаблона;
  • mm_rules — Правила для ManagerManager по умолчанию;
  • WebLogin_tplForm — WebLogin Tpl.

Модули

  • Doc Manager — быстрое массовое обновление в документах на вашем сайте, в том числе шаблонов, деталей публикация и разрешений;
  • Extras — первый репозиторий для MODX EVO.

Плагины

  • CodeMirror — библиотеки JavaScript, которые могуи использоваться для создания интерфеса в редакторе, основанного на CodeMirror;
  • ElementsInTree — получение доступа ко всем элементам и модулей внутри боковой панели диспетчера;
  • FileSource — сохранение фрагментов кода и плагинов в файл;
  • Forgot Manager Login — сброс доступа для входа в систему, отправляет пароль по электронной почте;
  • ManagerManager — настройка диспетчера ModX, предназначен для разработки нестандартных решений для панели администратора или обычных пользователей;
  • Quick Manager+ — использует стандартный Quick Manager для поддержки редактирования контента;
  • Search Highlight — работает вместе с AjaxSearch, показывает подсказки — выделение на странице с результатами поиска;
  • TinyMCE — популярный WYSIWYG редактор контента и страниц;
  • TransAlias — ЧПУ, перевод URL в понятный вид.

Выбираете нужные, кликаем по кнопке «Далее», происходит проверка перед установкой разных параметров, таких как версий PHP и MySQL, прав на записи в директории, наличие Register_Globals, iconv. Принимаем лицензионное соглашение, устанавливаем, после установки система спросит вас о необходимости удалить папку /install/ с вашего сервера, соглашаемся. На выходе получаем вот такое демо-сайт, как на скриншоте ниже, а панель администратора разберем следующий раз.

Демонтационный сайт под управлением CMS ModX Evolution

Запись опубликована автором Andrew в рубрике Тестирование с метками CMS, ModX, ModX Evolution. Добавьте в закладки постоянную ссылку.

Источник: sbbo.ru

Оцените статью
Добавить комментарий