Недавно добавлял новый шаблон на сайт modx. После всех манипуляций нужно сменить шаблон отображения у старых статьях (ресурсах). Вручную это делать долго, неудобно и неразумно. Поэтому решил сделать через базу данных.
Сначала искал через админ-панель, где изменить массово сразу у всех статьях. Не нашел.
Как изменить шаблон у ресурсов modx пачкой
У каждого шаблона есть свой ИД-шник, и он привязан к статье. Я зашел в базу данных, в таблицу «*_site_content», и нашел где там меняется поле. Это строка под заголовком «template».
Я делал все через phpmyadmin с помощью sql-запроса, который менял не все значения, а которые надо. Мне не надо было менять шаблон во всех статьях, а только в определенных (какая-то рубрика, категория постов, информационные страницы).
Вот код для изменения шаблона.
Внимание
Перед любыми действиями делайте бекап. Я не несу никакой ответственности за любые Ваши действия. Но думаю Вы не натупите, код простой.
1 | UPDATE `modx_site_content` SET `template`=7 where `template`=4 |
Этот запрос просто меняет (UPDATE) шаблон template на значение 7 (ID моего нового шаблона) в таблице modx_site_content (вместо modx_ может быть что-то другое, например admin_, bd1_), где шаблон template равно 4 (ID старого шаблона).
Если есть возможность «имитировать sql-запрос», воспользуйтесь этой функцией, посмотрите что измениться. Если все правильно — выполняйте запрос (фиксируйте).
На что стоит обратить внимание:
1) название таблицы *_site_content;
2) кавычки (косые, смотрите специфику интерфейса, с помощью которого Вы работаете с базой данных);
3) ID шаблона.
Как узнать ID шаблона modx
Можно через базу данных или админ-панель сайта.
Заходим в Элементы-Шаблоны и напротив нашего шаблона смотрим его ID.
Как очистить кеш сайта modx
Еще скорее всего Вам понадобится почистить кеш сайта. Сделать это можно через админ-панель. Нажмите Управление — Очистить кеш.
Перезагрузите сайт и изменения применяться.
Вывод
У меня несколько шаблонов для разных типов страниц: просто посты, статьи о фирме, контактные формы. Может быть что угодно. Для этого выполняю sql-запрос пару раз, просто меняя ID в template.
И не забывайте чистить кеш.
0 Comments