Fi1osof 08 июля 2016 2 12
Перевожу очередной сайт на смарти и меняю соответственно код всех шаблонов. А шаблонов 17 штук (наследство). Процесс был рутинный и что-то я засомневался, а вдруг где какой шаблон не так прописался и что надо бы проверить. А как проверить? Логично — открыть по одному документу каждого шаблона во фронте и посмотреть нет ли ошибок и вообще корректно ли открывается. Но документов много и по каждому идти выискивать документы по каждому шаблону не удобно. Вот написал скрипт, который делает такую выборку и сразу формирует ссылки на эти документы, по одному на каждый шаблон. Остается только кликнуть по разу каждую ссылку и посмотреть как что отображается.

ini_set('display_errors', 1);

$q = $modx->newQuery('modTemplate', array(
    "resource.published" => 1,
    "resource.deleted"   => 0,
));
$q->innerJoin('modResource', 'resource', "resource.template = modTemplate.id");
$alias = $q->getAlias();

$q->select(array(
    "{$alias}.id",
    "uri",
    "templatename as name",
    "pagetitle",
    "resource.id as resource_id",
    "count(*) as `total`",
));

$q->groupby("{$alias}.id");

// print $modx->getCount('modTemplate', $q);

$base_url = $modx->getOption('base_url');

foreach($modx->getIterator('modTemplate', $q) as $object){
    
    print "<br /><a href='{$base_url}{$object->uri}' target='_blank'>{$object->name}  ({$object->id}) / {$object->pagetitle} ({$object->resource_id}) / {$object->total} документов</a>";
    
    // break;
}


К слову, если кому интересно, можете доработать скрипт так, чтобы по каждому УРЛу выполнялся CURL-запрос и проверял код ответа (200 должен быть) и был ли получен какой контент. Будет такой автоматизированный тест на наличие технических ошибок в шаблонах.

UDP: немного доработал скрипт, теперь он еще и выводит количество документов по каждому шаблону. Небольшая ревизия чтобы не было кучи шаблонов по одному документу. Получается типа вот такого:
ruFirstPage / Главная (1) / 5 документов
ruEventPage / Голоса влюблённых женщин (1113) / 803 документов
ruEvents / Выставки (13) / 4 документов
ruHystoryPage / История (14) / 1 документов
12 комментариев
guru881
guru88 08 июля 2016г в 01:18 #
-3
Элементарно, Ватсон!

А, что собственно сложного в данной задаче?)
Fi1osof1
Fi1osof 08 июля 2016г в 01:19 #
Сложного — ничего. Полезного — под случай не мало.
guru881
guru88 08 июля 2016г в 01:24 #
1й курс универа с техническим уклоном)
А так я это делал еще в 8-м классе) легче самому написать, чем искать эту статью))

ИМХО: Слишком базовый уровень, даешь сложнее задачи!
pocoZ1
pocoZ 08 июля 2016г в 01:26 #
Дружище, ты не забывай, что не все такие guru. Твое мнение субъективно…
guru881
guru88 08 июля 2016г в 01:28 #
Для этого я и написал, чисто моё мнение…
Fi1osof1
Fi1osof 08 июля 2016г в 01:28 #
Я не задачу даю, а пример. Тебе не нужно — пройди мимо. А если хочется что-то написать здесь — иди свои статьи напиши, опытом своим поделись. А так больше оффтопить не надо, и отвечать здесь больше ничего не надо. Забаню.

b
betipu 08 июля 2016г в 11:12 #
www.seleniumhq.org/projects/webdriver/
велосипеды это весело, но есть готовые инструменты для автоматизированного приемочного тестирования
habrahabr.ru/post/248559/ — пример
Fi1osof1
Fi1osof 08 июля 2016г в 23:32 #
Вы видимо не уловили назначения.
b
betipu 09 июля 2016г в 14:19 #
уловил, потому и прислал эти ссылки. С Вашим скриптом и selenium все станет полностью автоматизированно — выбираете ссылки, после — скармливаете их селениуму, он браузером проходит по ссылкам и делает скрины. И не нужно руками кликать и каждую смотреть — пролистать картинки куда быстрее + экономится время при смене шаблона. Рекомендую selenium для питона — сценарии выходят более читабельные и простые. Даже без знаний питона написать их не составит труда
Fi1osof1
Fi1osof 09 июля 2016г в 18:37 #
Хорошо, при случае может погоняю.
ilyautkin1
ilyautkin 21 июля 2016г в 18:08 #
Уже разик пригодилось) Спасибо!
Fi1osof1
Fi1osof 23 июля 2016г в 05:55 #
Всегда пожалуйста!)
Кстати, надо дописать немного… Еще не редко возникает потребность вычислить не используемые шаблоны. Бывает просят сайт оптимизировать, заходишь туда, там 20-30 шаблонов, при этом 50-70% из них вообще не используются. Удалять такие надо за ненадобностью.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.