Cotonti Siena 0.9.24.2

24-й, новогодний выпуск Cotonti Siena

#1. О версии «Siena»

Если вы только знакомитесь с Cotonti — прочтите небольшую статью о том, что такое Cotonti Siena и ее системных требованиях.

После чего можете приступать к пошаговой инструкции по установке или руководствам по обновлению.

 

#2. Информация о выпуске

#2.1. Что нового:

  • СoTemplate. Поддержка множества аргументов функций. Теперь Вы можете использовать другие теги в качестве оргументов функций. Например:
    {PHP|cot_url('page', 'c=news')|var_dump({PHP.L.Home}, $this, {PHP.cfg.mainurl}, {PHP|cot_url('page', 'c=news ')}, {HEADER_TITLE})}
    Поддержка $this сохранена. Вы по прежнему можете использовать цепочки вызовов функций.
  • СoTemplate. Операторы строго сравнения: === и !==
  • Исправлена ошибка когда данные из БД кеша могли не подгружаться автоматически.
  • Улучшения статичного кеша.
  • В *.dat файлах Url editor'a теперь можно использовать коментарии
  • Форумы. API. Функция cot_forums_sqlExcludePrivateTopics() генерирующая условие SQL для исключения из выборки приватных топиков на основе прав текущего пользователя. Вы можете использовать эту функцию в своих расширениях.
  • Счетчик показа страниц теперь работает и при включенном статичном кеше страниц.
  • Капча и отправка комментариев гостями теперь работают при включенном статичном кеше страниц.
  • Поиск. Сортировка по умолчанию по дате - по убыванию.
  • Исправлены/добавлены мета теги title, description и Canonical url в некоторых расширениях.
  • Функция cot_generatePaginationTags() для единообразной генерации тегов постраничной навигации в расширениях.
  • Экстраполя. Валидация имени поля.
  • CKEditor обновлен до версии 4.22.1. В будущих релизах будет заменен на версию 5.
  • Начат рефакторинг тегов в шаблонах. Делаем теги более понятными и удобными. Старые теги сохранены для обратной совместимости, но будут удалены в будущем. Рекомендуем обновить Ваши темы.
  • Папка Composer'а перенесена в lib/vendor.
  • 1-я часть улучшений плагина Тегов
  • Улучшения в плагие Recent items
  • Новая настройка в config.php: $cfg['legacyMode']. Если false, то отключает весь устаревший функционал.
  • Другие мелкие улучшения
  • Исправление найденных в процессе эксплуатации ошибок.

 

#2.2. Изменения в тегах шаблонов:

Единообразные теги капчи:

users.register.tpl
{USERS_REGISTER_VERIFYIMG} -> {USERS_REGISTER_VERIFY_IMG}
{USERS_REGISTER_VERIFYINPUT} -> {USERS_REGISTER_VERIFY_INPUT}

comments.tpl
{COMMENTS_FORM_VERIFYIMG} -> {COMMENTS_FORM_VERIFY_IMG}
{COMMENTS_FORM_VERIFY} -> {COMMENTS_FORM_VERIFY_INPUT}

contact.tpl
{CONTACT_FORM_VERIFY} -> {CONTACT_FORM_VERIFY_INPUT}

 

Единообразные теги постраничной навигации:
{<prefix>PAGINATION}
{<prefix>PREVIOUS_PAGE}
{<prefix>NEXT_PAGE}
{<prefix>CURRENT_PAGE}
{<prefix>TOTAL_ENTRIES}
{<prefix>ENTRIES_ON_CURRENT_PAGE}
{<prefix>ENTRIES_PER_PAGE}
{<prefix>TOTAL_PAGES}

<prefix> в большинстве случаев может быть пустым. Или нет, если на странице больше одной постраничной навигации.
например в шаблоне page.list.tpl:

{LIST_CAT_PAGINATION} для списка категорий, и {PAGINATION} списков страниц.


forums.posts.tpl
{FORUMS_POSTS_BREADCRUMBS} - новый
{FORUMS_POSTS_SHORTTITLE} -> {FORUMS_POSTS_TITLE}
{FORUMS_POSTS_PAGETITLE} -> {PAGEEDIT_FORM_DESCRIPTION}


все теги пользователей: {FORUMS_POSTS_ROW_USERXXX} -> {FORUMS_POSTS_ROW_USER_XXX}
например.
{FORUMS_POSTS_ROW_USERNAME} -> {FORUMS_POSTS_ROW_USER_NAME}
{FORUMS_POSTS_ROW_USERAVATAR} -> {FORUMS_POSTS_ROW_USER_AVATAR}
и т.д..

{PREVIOUS_PAGE}{PAGINATION}{NEXT_PAGE} и другие теги постраничной навигации без префикса.

 

polls.admin.tpl
{ADMIN_POLLS_ROW_POLL_URL_DEL} - устаревший
{ADMIN_POLLS_ROW_POLL_DELETE_URL} - новый
{ADMIN_POLLS_ROW_POLL_DELETE_CONFIRM_URL} - новый

 

system/admin/tpl/admin.extensions.tpl
{ADMIN_EXTENSIONS_DETAILS_ROW_ORDER_INSTALLED}
{ADMIN_EXTENSIONS_DETAILS_ROW_HOOKS_INSTALLED}

 

page.list.tpl (анаогичные изменения в cot_page_enum())
{LIST_CATTITLE} -> {LIST_BREADCRUMBS}
{LIST_BREADCRUMBS_SHORT} - новый
{LIST_ROWCAT_URL} -> {LIST_CAT_ROW_URL}
{LIST_ROWCAT_TITLE} -> {LIST_CAT_ROW_TITLE}
{LIST_ROWCAT_COUNT} -> {LIST_CAT_ROW_COUNT}
{LIST_ROWCAT_DESC} -> {LIST_CAT_ROW_DESCRIPTION}

{LIST_CAT_XXX} - постраничная навигация для списков категорий с префиксом 'LIST_CAT_', e.g. {LIST_CAT_PREVIOUS_PAGE}, {LIST_CAT_PAGINATION}
И, без префикса для списка страниц, например: {PREVIOUS_PAGE}, {PAGINATION}.

Блок LIST_ROWCAT -> LIST_CAT_ROW

{LIST_ROW_XXX} - теги страниц, см. ниже.


page.tpl, page.enum.tpl (from cot_generate_pagetags())
{PAGE_TITLE} теперь содержит именно заголовок, а не хлебные крошки
{PAGE_BREADCRUMBS} - новый
{PAGE_LOCALSTATUS} -> {PAGE_LOCAL_STATUS}
{PAGE_SHORTTITLE} - устарел
{PAGE_CATURL} -> {PAGE_CAT_URL}
{PAGE_CATTITLE} -> {PAGE_CAT_TITLE}
{PAGE_CATPATH} -> {PAGE_CAT_PATH}
{PAGE_CATPATH_SHORT} -> {PAGE_CAT_PATH_SHORT}
{PAGE_CATDESC} -> {PAGE_CAT_DESCRIPTION}
{PAGE_CATICON} -> {PAGE_CAT_ICON}
{PAGE_CAT_ICON_SRC} - новый
{PAGE_DESC} -> {PAGE_DESCRIPTION}
{PAGE_DESC_OR_TEXT} -> {PAGE_DESCRIPTION_OR_TEXT}
{PAGE_DESC_OR_TEXT_CUT} -> {PAGE_DESCRIPTION_OR_TEXT_CUT}
{PAGE_OWNERID} -> {PAGE_OWNER_ID}
{PAGE_OWNERNAME} -> {PAGE_OWNER_NAME}
{PAGE_DATE} -> {PAGE_CREATED}
{PAGE_DATE_STAMP} -> {PAGE_CREATED_STAMP}
{PAGE_FILE_COUNT} -> {PAGE_FILE_DOWNLOADS}
{PAGE_FILE_COUNTTIMES} -> {PAGE_FILE_DOWNLOADS_TIMES}
{PAGE_COUNT} -> {PAGE_HITS}
{PAGE_NOTAVAILABLE} -> {PAGE_NOT_AVAILABLE}


page.add.tpl
{PAGEADD_FORM_DESC} -> {PAGEADD_FORM_DESCRIPTION}
{PAGEADD_FORM_OWNERID} -> {PAGEADD_FORM_OWNER_ID}

 

page.edit.tpl
{PAGEEDIT_FORM_LOCALSTATUS} -> {PAGEEDIT_FORM_LOCAL_STATUS}
{PAGEEDIT_FORM_DESC} -> {PAGEEDIT_FORM_DESCRIPTION}
{PAGEEDIT_FORM_OWNERID} -> {PAGEEDIT_FORM_OWNER_ID}
{PAGEEDIT_FORM_PAGECOUNT} -> {PAGEEDIT_FORM_HITS}
{PAGEEDIT_FORM_FILECOUNT} -> {PAGEEDIT_FORM_FILE_DOWNLOADS}


pm.list.tpl, pm.message.tpl
Постраничная навигация без префикса: {PREVIOUS_PAGE}{PAGINATION}{NEXT_PAGE}...

 

polls.admin.tpl
{ADMIN_POLLS_ROW_POLL_DELETE_CONFIRM_URL} - новый
{ADMIN_POLLS_ROW_POLL_URL_DEL} -> {ADMIN_POLLS_ROW_POLL_DELETE_URL}


users.edit.php
{USERS_EDIT_TITLE} - теперь это заголовок страницы
{USERS_EDIT_BREADCRUMBS} - новый
{USERS_EDIT_DETAILSLINK} -> {USERS_EDIT_DETAILS_URL}
{USERS_EDIT_MAINGRP} -> {USERS_EDIT_MAIN_GROUP}

 

users.passrecover.tpl
{PASSRECOVER_TITLE} - теперь это заголовок страницы
{PASSRECOVER_BREADCRUMBS} - новый

 

users.profile.tpl
{USERS_PROFILE_TITLE} - теперь это заголовок страницы
{USERS_PROFILE_BREADCRUMBS} - новый
{USERS_PROFILE_DETAILSLINK} -> {USERS_PROFILE_DETAILS_URL}
{USERS_PROFILE_EDITLINK} -> {USERS_PROFILE_EDIT_URL}

 

users.tpl
Постраничная навигация без префикса: {PREVIOUS_PAGE}{PAGINATION}{NEXT_PAGE}...
{USERS_TOP_USERID} -> {USERS_TOP_USER_ID}
{USERS_TOP_MAINGRP} -> {USERS_TOP_MAIN_GROUP}
{USERS_TOP_REGDATE} -> {USERS_TOP_REGISTRATION_DATE}
{USERS_TOP_LOGCOUNT} -> {USERS_TOP_LOGINS_COUNT}
{USERS_TOP_GRPLEVEL} -> {USERS_TOP_GROUP_LEVEL}
{USERS_TOP_GRPTITLE} -> {USERS_TOP_GROUP_TITLE}
{USERS_TOP_POSTCOUNT} -> {USERS_TOP_POSTS_COUNT}
{USERS_TITLE} - теперь это заголовок страницы
{USERS_BREADCRUMBS} - новый
{USERS_TOP_FILTER_ACTION} -> {USERS_FILTERS_ACTION}
{USERS_FILTERS_PARAMS} - новый
{USERS_TOP_FILTERS_COUNTRY} -> {USERS_FILTERS_COUNTRY}
{USERS_TOP_FILTERS_MAINGROUP} -> {USERS_FILTERS_MAIN_GROUP}
{USERS_TOP_FILTERS_GROUP} -> {USERS_FILTERS_GROUP}
{USERS_TOP_FILTERS_SEARCH} -> {USERS_FILTERS_SEARCH}
{USERS_TOP_FILTERS_SUBMIT} -> {USERS_FILTERS_SUBMIT}
{USERS_FILTERS_SORT} - новый
{USERS_FILTERS_SORT_WAY_URL} - новый
{USERS_FILTERS_SORT_WAY} - новый


recentitems.tpl
Постраничная навигация без префикса: {PREVIOUS_PAGE}{PAGINATION}{NEXT_PAGE}...

 

recentitems.forums.index.tpl, recentitems.forums.tpl
{FORUM_ROW_FIRSTPOSTER} -> {FORUM_ROW_FIRST_POSTER}
{FORUM_ROW_LASTPOSTER} -> {FORUM_ROW_LAST_POSTER}
{FORUM_ROW_TIMEAGO} -> {FORUM_ROW_TIME_AGO}
{FORUM_ROW_POSTCOUNT} -> {FORUM_ROW_POSTS_COUNT}
{FORUM_ROW_CREATIONDATE} -> {FORUM_ROW_CREATED}
{FORUM_ROW_CREATIONDATE_STAMP} -> {FORUM_ROW_CREATED_STAMP}
{FORUM_ROW_REPLYCOUNT} -> {FORUM_ROW_REPLY_COUNT}
{FORUM_ROW_VIEWCOUNT} -> {FORUM_ROW_VIEWS_COUNT}
{FORUM_ROW_LASTPOSTURL} -> {FORUM_ROW_LAST_POST_URL}
{FORUM_ROW_MAXPAGES} -> {FORUM_ROW_MAX_PAGES}
{FORUM_ROW_DESC} -> {FORUM_ROW_DESCRIPTION}

Теги топикстартера (пользователь): {FORUM_ROW_FIRST_POSTER_XXX}
Теги пользователя, оставившего последний пост в теме: {FORUM_ROW_LAST_POSTER_XXX}


recentitems.pages.tpl, recentitems.pages.index.tpl, search.tpl
см.: page.tpl (from cot_generate_pagetags())


tags.tpl
Постраничная навигация без префикса: {PREVIOUS_PAGE}{PAGINATION}{NEXT_PAGE}...

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

 

#2.3. Дополнительно:

 

#3. Обновление с предыдущих версий

  • Для обновления с предыдущей версии Siena — смотрим инструкцию тут.
  • Для перехода с ветки Genoa — читайте соответствующую инструкцию. Кроме того вам потребуется набор файлов cotonti-legacy).

« Предыдущая страница: Cotonti Siena 0.9.23


1. Kabak  20.03.2024 17:52

Огромная просьба для всех авторов движка.  Напишите пожалуйста полный список соотвествия имён  старых -> новых  тегов

Иначе это выглядит некрасиво по отношению к пользователям движка  которые не знают какие теги меняются на какие.

Благодарю.

2. Kabak  20.03.2024 17:53

{<prefix>PAGINATION}
{<prefix>PREVIOUS_PAGE}
{<prefix>NEXT_PAGE}
{<prefix>CURRENT_PAGE}
{<prefix>TOTAL_ENTRIES}
{<prefix>ENTRIES_ON_CURRENT_PAGE}
{<prefix>ENTRIES_PER_PAGE}
{<prefix>TOTAL_PAGES}

 

{LIST_BREADCRUMBS_SHORT} - новый


Что это ?   Как это понимать   и таких в списке много.

 

{USERS_REGISTER_VERIFYIMG} -> {USERS_REGISTER_VERIFY_IMG}  -  это чётко , однозначно и понятно.

3. Alex300  22.03.2024 05:08

Все (за некоторым исключением) старые теги доступны при включении в config.php

$cfg['legacyMode'] = true;

4. Kabak  22.03.2024 15:22

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

5. Kort  23.03.2024 07:07

Старые будут, конечно же, удалены. Просто сделано это будет не сразу.

Добавление комментариев доступно только зарегистрированным пользователям