Релиз версии 1.6

Новый роутер

В версии 1.6 была произведена большая работа по замене системы роутинга. Как вы знаете, раньше соответствие между адресом страницы и вызываемым компонентом движка определял файл .htaccess. В нем содержалось огромное количество правил, говорящих какой компонент вызвать для каждого адреса. Теперь все эти правила перенесены на уровень PHP, в папке с каждым компонентом появился файл router.php, определяющий набор правил.

На практике это дает несколько преимуществ. Во-первых, анализ адреса страницы теперь происходит во много раз быстрее (т.к. mod_rewrite не отличался особой производительностью). Особенно это заметно при использовании php-оптимизаторов вроде xCache или eAccelerator. Во-вторых, теперь при установке стороннего компонента не нужно будет править вручную файл .htaccess. Подробнее о технической реализации нового роутера можно прочитать в этой статье нашей вики.

Отказ от «menu id»

Новый механизм роутинга повлек за собой еще одно важное изменение ядра — отказ от параметра menuid в адресах страниц.

Многие пользователи жаловались на наличие дубликатов страниц их сайтов в индексе поисковых систем. Это происходило потому, что раньше активный пункт меню определялся по номеру. То есть в адресе каждой страницы было число, показывающее какой пункт главного меню нужно сделать активным, при просмотре этой страницы. Соответственно, это число можно было изменять как угодно и получать одну и ту же страницу по разным фактическим адресам. В версии 1.5.3 мы частично закрыли эту возможность, выдавая ошибку 404 в случае если пункт меню с переданным номером не был найден. Однако значение «0» все равно работало во всех случаях.

В версии 1.6 мы полностью убрали menuid из адресов страниц, ссылки стали короче. Однако старые адреса продолжат работать. При заходе по ним система будет делать корректный редирект с кодом «301 Moved Permanently» на новый адрес. Это означает что страницы сайта не выпадут из индекса поисковых систем из-за смены адресов.

Теперь активный пункт меню определяется не по номеру в адресе страницы, а по всей строке адреса. То есть адрес текущей страницы по-очереди сравнивается с ссылками каждого пункта меню. И если ссылка пункта меню полностью или частично совпадает с адресом, то пункт считается активным.

Такой подход избавляет нас от множества проблем и дает массу преимуществ:

  1. Больше никаких дубликатов страниц
    Теперь одна страница имеет строго один адрес.
     
  2. Нужный пункт меню всегда определяется правильно
    Если помните, раньше при просмотре профиля пользователя пункт меню "Пользователи" не выделялся. Это происходило потому, что адрес site.ru/users/username не содержал menuid, вместо номера пункта меню передавался ноль. Система не могла определить что нужно сделать активным пункт меню "Пользователи", т.к. его номер был не равен нолю. Теперь же сравнение происходит по ссылке и пункт меню становится активным.
     
  3. Правильная привязка модулей
    В версии 1.5.3 и более ранних привязка модулей не всегда работала правильно. Например модули привязанные к пункту меню "Пользователи" не отображались при просмотре профилей. Корень проблемы был все в том же menuid, теперь модули выводятся как задумано.
     
  4. Возможность полного ограничения доступа к компонентам
    Теперь чтобы ограничить доступ к компоненту для выбранных групп пользователей, достаточно будет создать пункт меню на этот компонент с нужными ограничениями.

Но есть и одно ограничение — теперь нельзя иметь "пустой" пункт меню, т.е. пункт без привязки к компоненту. Если у вас на сайте есть такие пункты, к ним нужно привязать статьи (хотя бы пустые).

Возможность редактирования URL статей и разделов

Дополнительно к автоматической генерации красивых ЧПУ для статей и разделов сейчас можно будет задавать их вручную:

На первой картинке показан пример задания URL для раздела, на второй - для статьи находящейся в корневом разделе.

Множественные оптимизации

На втором месте после роутера была работа по оптимизации скорости движка и уменьшению числа запросов. Этот процесс будет идти постоянно.

В версии 1.6 были значительно переделаны системы комментариев и рейтинга. Больших плюса два:

  1. Сторонние компоненты смогут использовать полную поддержку комментариев и рейтинга без изменения ядра и системных модулей
    (ждите развернутую статью в вики на эту тему)
     
  2. Благодаря новой системе агрегации существенно уменьшено число SQL-запросов для построения рейтингов и вывода модуля "Последние комментарии". Оставшиеся запросы стали гораздо легче

Благодаря трудам Fuze[drums] была значительно облегчена нагрузка БД, создаваемая основными модулями ("Популярное в ..." и "Новое в ...").

В целом, мы оцениваем прирост производительности этой версии системы в 1.5 раза.

Собственные шаблоны 404 и сообщений о регистрации/авторизации

В папке с шаблоном default добавлена папка special, в которой теперь хранятся шаблоны страниц:

  • «Сайт отключен»
  • «Страница не найдена - 404»
  • «Ошибка авторизации»
  • «Регистрация завершена»
  • «Регистрация завершена, требуется активация»

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

Еще в шаблоне default появилась папка splash, которая содержит шаблон страницы приветствия. Ее тоже можно переместить в свой шаблон сайта.

Остальные изменения

Ядро

  • Исправлены ошибки при использовании системы Suhosin на хостинге
  • Улучшен вывод пагинации (номера страниц при постраничной разбивке)

Панель управления

  • Удален встроенный редактор файлов, представляющий потенциальную угрозу безопасности
  • Добавлена опция: Настройки → Дизайн → Показывать кнопку "Назад"

Пользователи

  • Исправлена сортировка фотографий по дате

Вопросы и ответы

  • Исправлен учет автора вопроса
  • Исправлена сортировка вопросов
  • Добавлены комментарии вопросов
  • Вопросы добавленные администратором через форму на сайте, публикуются сразу
  • В форме "задать вопрос" добавлена каптча для гостей

Плагины

  • Визуальный редактор обновлен до последней версии, загрузка файлов восстановлена

Универсальный каталог

  • Добавлена возможность редактирования пользователями своих записей

Каталог статей

  • Исправлены ссылки на статьи из автоматически создаваемых тем форума

Доска объявлений

  • Добавлены комментарии объявлений

Модуль "Кто онлайн"

  • Добавлена возможность показа кто был сегодня (включается в настройках модуля)

Как обновиться?

Внимание: Обновляться можно только с версии 1.5.3.
Если у вас более ранняя версия, то сначала нужно обновиться до 1.5.3.

  1. Сделать полный бекап сайта и базы данных — ОБЯЗАТЕЛЬНО!
     
  2. Отключить сайт в админке
     
  3. Залить файлы из архива с новой версией на хост, заменяя имеющиеся
    Обязательно убедитесь что заменился файл .htaccess в корне сайта
     
  4. Удалить папки /wysiwyg и /components/blog (в 1.6 первая перенесена, вторая переименована)
     
  5. Перейти по адресу site.ru/migrate и дождаться сообщения "миграция завершена"
     
  6. Удалить папки "install" и "migrate" на сервере
     
  7. Включить сайт в админке
     
  8. Если возникли проблемы, читайте подробную инструкцию по обновлению в вики

Благодарности

Искреннее Спасибо! всем кто помогал в разработке и тестировании этой версии.

Отдельная благодарность Fuze, Maxisoft – за предоставленный код, Madmax и Hmelex – за активное тестирование.

Скачать версию 1.6

instantCMS_20100515_v1.6.2.zip| 3569,85 Kб| Скачан: 18381 раз

Ну и как обычно – дальше будет еще интереснее. Не переключайтесь :)

Комментарии (47)
Леший 23 апреля 2010 в 12:36 +2
small user social cms
Вот ОНО!! Свершилось долгожданное ЧУДО!!
ГеймОверСистемХалтед 23 апреля 2010 в 12:46 +2
no profile
Спасиб.
Morgan 23 апреля 2010 в 12:50 +2
small user social cms
А что уже ? А говорили что ещё будет пару кондидат релизов !  scratch
Очень кстати вовремя и здорово ! Спасибо разработчикам и тестерам !
Амстердам 23 апреля 2010 в 13:11 +1
small user social cms
Тестируем и Проверяем!
Fuze 23 апреля 2010 в 13:24 +8
small user social cms
тестировать уже поздно)))

Респект разработчикам!
Tempest 23 апреля 2010 в 13:58 +2
small user social cms
урааааааа))))) дождался))))
0 23 апреля 2010 в 14:00 +2
no avatar
йеееееееее dance  dance  dance
Tempest 23 апреля 2010 в 14:20 +1
small user social cms
Нашел не большой косяк, который заключается в следующем:
В сборке 1.53 адрес страницы был /photos/20/photo38.html,
При переходе на версию 1.6 адрес стал /photos/photo38.html
При описании было сказано, что после миграции, со старой страницы будет 301 редирект на новую, однако при переходе из поисковика, в котором проиндексирована страница /photos/20/photo38.html я по идее должен попадать на /photos/photo38.html, а я попадаю в  список альбомов галереи.
InstantCMS 23 апреля 2010 в 14:29 +2
small user social cms
редирект работает для основных важных компонентов - статей, блогов, форума и каталога
Tempest 23 апреля 2010 в 14:56 0
small user social cms
ок, спасибо, просто я это заметил и решил написать
0 23 апреля 2010 в 14:35 +1
no avatar
Спасибочки!  dance
Юрий (Pizza Celentano) 23 апреля 2010 в 15:15 +1
small user social cms
Огромное спасибо за Ваш труд!!! smile
Бичукин Андрей 23 апреля 2010 в 15:36 +1
small user social cms
Коменты и настройки в личных(другие не проверял) блогах не работают...
InstantCMS 23 апреля 2010 в 15:52 +1
small user social cms
работают, проверяйте правильно ли обновились
Бичукин Андрей 23 апреля 2010 в 17:47 +1
small user social cms
Обновился вроде нормально. На одном сайте всё работает замечательно, а на другом, при нажтии на какой либо функции блога(редактировать, коментировать) получается ссылка с двумя слешами. Вот так: /blogs//17/post35.html#c Пока не пойму в чём дело. Если есть идеи буду признателен. Предполагаю, что проблема где-то в шаблоне.
Бичукин Андрей 23 апреля 2010 в 18:03 +1
small user social cms
Так и есть. Убрал папку components из template и всё заработало. Кстати,это шаблон DUNE
Бичукин Андрей 23 апреля 2010 в 18:09 +1
small user social cms
Забыл сказать СПАСИБО за Вашу работу! Будьте благословенны!
P.S. У меня, как у верующего, с каждой версией есть одна проблемка. Мне приходится убирать слово "Карма" из всех сообщений и заменять его на слово "Доверие". Из чего вопрос: Возможно ли заменить это слово вообще в самом движке, ведь по-христиански оно выглядит некорректно? Т.е сама функция хорошая, а слово аккультное. Ещё раз СПАСИБО!
InstantCMS 23 апреля 2010 в 18:55 +5
small user social cms
создайте копию папки /languages/ru, назовите ее например ru_my
в языковых файлах внутри этой папки замените нужное слово,
а в админке в разделе "настройки" выберите "язык сайта: ru_my"
тогда при обновлениях фразы не будут перетираться
Бичукин Андрей 24 апреля 2010 в 15:48 0
small user social cms
Спасибо!
0 23 апреля 2010 в 18:02 +4
no avatar
Спасибки!
Hmelex 23 апреля 2010 в 19:15 +2
small user social cms
СПАСИБО ВАМ ОГРОМНОЕ!
Действительно изменений сделано очень много.

Еще раз огромное Всем спасибо!
Сергей 23 апреля 2010 в 19:24 +1
small user social cms
Спасибо!!!
bigR 23 апреля 2010 в 19:47 +1
small user social cms
Огромное БАРКАЛЛА За весь ваш труд!
almond 23 апреля 2010 в 20:10 +1
small user social cms
Спасибо!
Barrio design 23 апреля 2010 в 22:01 +1
small user social cms
Спасибо!
Виктор 23 апреля 2010 в 22:32 +2
small user social cms
Огромное человеческое

СПАСИБО!!!

Проделан поистине титанический труд - система выходит на новый виток своего развития!
СергейР 24 апреля 2010 в 01:01 +1
small user social cms
Спасибо!
Олег с клещами 24 апреля 2010 в 07:56 +1
small user social cms
Присоединяюсь к предыдущим ораторам!
0 24 апреля 2010 в 15:05 +1
no avatar
Спасибо ! :)
Andrei 24 апреля 2010 в 21:25 +1
small user social cms
Спасибо! будем тестить.
0 25 апреля 2010 в 01:13 +1
no avatar
Спасибо.
Обновился, но появился такой баг - невозможно редактировать свой профиль, отсутствуют кнопки редактирования, добавления аватара и т.д. Думал может их куда-то перенесли, но переискал все - не нашел.
forlord 25 апреля 2010 в 01:24 +2
small user social cms
они все наместе, нужно скопировать с дефолтного
0 26 апреля 2010 в 21:05 +1
no avatar
Да. Все переустановил с нуля - кнопки появились. Видимо при обновлении был какой-то сбой.
Anabiotick 28 апреля 2010 в 08:13 +1
small user social cms
     А подскажите что конкретно нужно с дефолтного взять? У меня во всех шаблонах полностью с дефолтного скопированы все шаблончики (components, modules, plugins...). На одном сайте этот глюк проявился после переноса на новый хостинг, а на другом сайте появился после перехода на версию 1.6. Где конкретно собаку зарытую найти? Подскажите пожалуйста
0 25 апреля 2010 в 08:25 0
no avatar
Ура! Наконец-то сделали правильный роутинг!  smile
Edik_Salonikski 25 апреля 2010 в 09:47 0
small user social cms
Спасибо
0 25 апреля 2010 в 17:38 -1
no avatar
Спасибо!
Но обновиться не удалось.
п.п. 1-4 выполнил, а на п.5 при переходе на site.ru/migrate ничего кроме Миграция 1.5.3 -> 1.6.0 не происходит.
lokanaft 25 апреля 2010 в 22:08 0
small user social cms
О_о это чудо какое-то!!!!
Amurland 26 апреля 2010 в 03:28 -1
small user social cms
Спасибо!

будем тестировать
Олег с клещами 27 апреля 2010 в 12:00 +1
small user social cms
в шаблоне default появилась папка splash, которая содержит шаблон страницы приветствия
А вот интересно, как роботы будут воспринимать эту страницу? Будут считать её главной Или игнорировать?
Navras 28 апреля 2010 в 01:26 +1
small user social cms
ААААА!!!!!))))) Спасибо, спасибо спасибо!))))) Вы настоящие молодцы, супер!)))) Круто))))) Спасибо за ваше великое дело!) Счастья вам, здоровья, успехов и благополучия!)
Алекс 30 апреля 2010 в 09:50 +1
small user social cms
Спасибо за заботу о пользователях системы
0 2 мая 2010 в 13:06 +1
no avatar
Спасибо большое человеческое!
Молодцы!
braincord 4 мая 2010 в 19:55 +1
small user social cms

Спасибо!))))))

0 20 мая 2010 в 14:18 +1
no avatar
Пользователи
Исправлена сортировка фотографий по дате

ну не заработала у меня сортировка, не заработала! У кого-нибудь работает?
djadrenaline 1 июля 2010 в 10:32 0
small user social cms
после обновления с 1.5.3. на 1.6.2 слетел дизайн, сейчас отображается дизайн по умолчанию. В настройках админке стоит дизайн _default_ как установить дизайн моего сайта?
djadrenaline 1 июля 2010 в 10:43 0
small user social cms
кстати еще заметил при добавлении комментария с помощью вкладки email и дальнейшего его добавления после перезагрузки страницы выдает ошибку Warning: call_user_func(bbcode::email_2html) [function.call-user-func]: First argument is expected to be a valid callback in /home/busilon/domains/busilon.com/public_html/includes/bbcode/bbcode.lib.php on line 981