Релиз Cotonti v 0.9.24, изменения в исходном коде
Основные изменения в релизе 0.9.24. Список изменений и обсуждение обновления. Ошибки.
Сообщения: 32
Список основных нововведений и изменений в этом релизе
Полный список изменений исходного кода посмотреть на GitHub.
- CoTemplate. Поддержка нескольких аргументов функции. Теперь вы можете написать так:
{PHP|cot_url('page', 'c=news')|var_dump({PHP.L.Home}, $this, {PHP.cfg.mainurl}, {PHP|cot_url('page', 'c=news ')}, {HEADER_TITLE})}
- Поддержка
$this
оставлена на месте для обеспечения обратной совместимости. - CoTemplate. Операторы строгого сравнения:
===
и!==
code> - Исправлена ошибка, из-за которой данные из кэша базы данных могли не загружаться автоматически.
- Улучшен статический кэш.
- Теперь вы можете использовать комментарии в файлах *.dat редактора URL
- Forums API. Новая функция
cot_forums_sqlExcludePrivateTopics()
, которая генерирует SQL-условие для исключения приватных тем из выборки на основе прав текущего пользователя. Вы можете использовать ее в своих расширениях. - Счетчик просмотров страниц теперь работает даже при включенном статическом кэше страниц.
- Капча и публикация комментариев гостями теперь работают, когда включен статический кэш страницы.
- Поиск. Сортировка по умолчанию осуществляется по убыванию даты.
- Исправлены/добавлены мета-теги title, description и canonical url в некоторых расширениях
- Функция
cot_generatePaginationTags()
для единообразной генерации тегов разбивки на страницы в расширениях. - Дополнительные поля. Проверка имени поля.
- CKEditor обновлен до версии 4.22.1. В будущих выпусках он будет заменен на версию 5.
- Начат рефакторинг тегов в шаблонах. Делаем теги более понятными и удобными. Старые теги сохранены для обеспечения обратной совместимости, но в будущем будут удалены. Мы рекомендуем обновить ваши темы.
- Папка Composer перенесена в lib/vendor
- 1-я часть улучшений плагина тегов
- Улучшения плагина последних элементов
- Другие незначительные улучшения
- Исправлены различные ошибки, обнаруженные во время работы.
-
Исправлена ошибка когда данные из БД кеша могли не подгружаться автоматически.
-
Проблема статичного кеша была в том, что он срабатывает на ранней стадии инициализации приложения, когда еще многие данные не загружены и не установлено соединение с БД. Это работает быстро, но вызывает проблемы с формированием правильных ключей. Теперь он использует uri для формирования ключей.
Известные проблемы:
Если кастомный пресет Url editor'a формирует ссылки на страницы вида:
https://domain.tld/category/subcategory/<page_id>/<page_alias> (часть самой страницы содержит слеш)
или
https://category.domain.tld/subcategory/<page_alias>
Ключ будет сформирован неверно
Изменения тегов в шаблонах сайтов на Cotonti начиная с релиза v 0.9.24:
Новые теги капчи:
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_VERIFYIMG} |
{CONTACT_FORM_VERIFY_IMG} |
|
{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_TOP_PAGINATION} |
{PAGINATION} |
page.list.tpl |
{LIST_TOP_PAGEPREV} |
{PREVIOUS_PAGE} |
page.list.tpl |
{LIST_TOP_PAGENEXT} |
{NEXT_PAGE} |
page.list.tpl |
{LIST_CAT_PAGINATION} для списка категорий, и {PAGINATION} списков страниц.
Было | Стало | Примечания |
---|---|---|
{LISTCAT_PAGNAV} |
{LIST_CAT_PAGINATION} |
Управление сайтом / Расширения / Pages / Конфигурация Макс. количество категорий на странице |
{LISTCAT_PAGEPREV} |
{LIST_CAT_PREVIOUS_PAGE} |
демонстрация постраничной навигации категорий |
{LISTCAT_PAGENEXT} |
{LIST_CAT_NEXT_PAGE} |
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())
Шаблон `page.list.tpl` - категория со списком статей
Было | Стало | Примечания |
---|---|---|
{LIST_CATTITLE} |
{LIST_CAT_TITLE} |
Название категории страницы в списке статей |
{LIST_CATDESC} |
{LIST_CAT_DESCRIPTION} |
Описание категории в списке статей |
{LIST_CATICON} |
{LIST_CAT_ICON} |
Иконка категории. Как пример: <!-- IF {LIST_CAT_ICON} --> {LIST_CAT_ICON} <!-- ELSE --> <img width="27" height="27" alt="{LIST_CAT_TITLE}" src="{PHP.R.cat_icon_mylogo}"> <!-- ENDIF -->
|
{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.tpl
{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}...
Какие именно теги нужны, можете использовать дефолтную тему, также можно посмотреть в код нужного расширения.
Кроме этого, вы всегда сможете получить актуальные теги и использовать их в своих шаблонах, при помощи инструкции по ссылке