Forumlar / National / Russian / Идеи / Рефакторинг TPL-тегов

Kort
#47810 2024-03-03 09:14

Такое впечатление, что это не я отсутствовал два месяца)

Да, TPL-тег PAGE_SHORTTITLE объявили устаревшим. Вместо него будет давно просимый и более осмысленный PAGE_TITLE. Крошки будут в новом теге PAGE_BREADCRUMBS.

Пока что PAGE_SHORTTITLE доступен -- для совместимости. Т.е. чтобы сайт не ломался сразу, а у тебя было время спокойно переписать теги в теме.

Мое предложение: блок

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// @deprecated in 0.9.24
'SHORTTITLE' => htmlspecialchars($page_data['page_title'], ENT_COMPAT, 'UTF-8', false),
'LOCALSTATUS' => $L['page_status_' . $page_data['page_status']],
'CATURL' => $cat_url,
'CATTITLE' => $catTitle,
'CATPATH' => $catpath,
'CATPATH_SHORT' => cot_rc_link($cat_url, $catTitle),
'CATDESC' => (isset($structure['page'][$page_data['page_cat']]['desc'])
    && $structure['page'][$page_data['page_cat']]['desc'] != '') ?
    htmlspecialchars($structure['page'][$page_data['page_cat']]['desc']) : '',
'CATICON' => isset($structure['page'][$page_data['page_cat']]['icon']) ?
    $structure['page'][$page_data['page_cat']]['icon'] : '',
'OWNERID' => $page_data['page_ownerid'],
'OWNERNAME' => (isset($page_data['user_name']) && $page_data['user_name'] != '') ?
    htmlspecialchars($page_data['user_name']) : '',
'DESC' => (isset($page_data['page_desc']) && $page_data['page_desc'] != '') ?
    htmlspecialchars($page_data['page_desc']) : '',
'DESC_OR_TEXT' => (isset($page_data['page_desc']) && $page_data['page_desc'] != '') ?
    htmlspecialchars($page_data['page_desc']) : $text,
'DESC_OR_TEXT_CUT' => (isset($page_data['page_desc']) && $page_data['page_desc'] != '') ?
    htmlspecialchars($page_data['page_desc']) : $text_cut,
'FILE_COUNT' => $page_data['page_filecount'],
'FILE_COUNTTIMES' => cot_declension($page_data['page_filecount'], $Ls['Times']),
'COUNT' => $page_data['page_count'],
'NOTAVAILABLE' => ($page_data['page_begin'] > Cot::$sys['now'])
    ? Cot::$L['page_notavailable'] . cot_build_timegap(Cot::$sys['now'], $page_data['page_begin'])
    : '',
// /@deprecated

обрамить примерным условием

PHP
1
2
3
4
if ($cfg_compatibility_mode) {
   // @deprecated
   ...
}

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

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

Естественно, все имена и код для примера.

SED.by - создание сайтов, разработка плагинов и тем для Котонти