Версия 1.1.8 — багфиксы и немного новенького

В версии Alto CMS 1.1.7 1.1.8, в первую очередь, были исправлены некоторые ошибки предыдущей версии. Кроме того, добавлен новый функционал — вставка счетчиков и прочих javascript-кодов через админку, без необходимости лезть в шаблоны. Плюс, в качестве эксперимента, добавлен альтернативный парсер-типограф — Qevix (как альтернатива Jevix'у). И еще чуть-чуть ускоряемся — не грузим лишние скрипты.
Наиболее важные исправления
1. Исправлена ошибка с отправкой комментариев, описанная здесь: https://altocms.ru/1294.html#comment23194
Собственно, это ошибка юзабилити. Раньше «Оставить комментарий» — это была просто ссылка. Поэтому, когда появлялась форма с кнопками, на нее уже просто не обращали внимания. В скинах experience и experience-simple эта ссылка обрела вид кнопки, и при той же логике работы движка восприятие изменилось, что и повлекло за собой проблемы. Короче — исправлено.

2. Плюс была ошибка, из-за которой ломалось меню. Честно говоря, у меня на тестах не получилось его сломать так, как было описано здесь, но причину, из-за чего это могло происходить, постарались устранить.

3. Было исправлено еще несколько менее критичных ошибок. Подчеркну, что исправлены еще не все известные ошибки, но т.к. две из них (что описаны выше) довольно критичны, то я решил зарелизить текущую версию.

Управление скриптами
Наверное, не бывает сейчас сайтов, чтобы на нем не стояли какие-то счетчики, скрипты аналитики и метрик. Но для их установки приходилось лезть в шаблоны и что-то там редактировать руками. Что для человека, еще не очень знакомого с движком, всегда непросто. Теперь эта проблема решена: в админке добавлено управление скриптами — Сайт / Счетчики и скрипты. Там вы можете добавить на сайт любой javascript-код, указав, куда он будет вставляться: в тег <HEAD>, в начало тега <BODY> или в конец тега <BODY>.

Новый парсер-типограф
Если вы еще не знаете, то самое время узнать, что тексты статей в движке проходят через типограф Jevix. Это он проверяет теги на допустимость, находит ссылки в тексте для их выделения и много чего еще делает.

Только вот делает он свою работу не всегда наилучшим образом. Например, если после ссылки идут знаки пунктуации, то Jevix этого не поймет, и добавит их в ссылку в теге &lta&gt, и ссылка получится «битой».

В общем, в порядке эксперимента в движок добавлен новый типограф — Qevix. Он создан на базе Jevix'а, только работает более аккуратно (например, проблем со ссылками со знаками препинания в конце там нет). И бонусом с эти типографом идет приятная фича: преобразование строка вида username в ссылку на профиль пользователя. Но важный нюанс: если на сайте используются логины только для логинов на латинице без пробелов и спецсимволов, то достаточно логин писать сразу после символа «@», в остальных случаях логин надо заключать в квадратные скобки, вот так: @[папаша джон].

Чтобы вместо Jevix'а у вас на сайте работал Qevix вам нужно в файле app/config/config.local.php добавить строку:
$config['module']['text']['parser'] = 'Qevix';  // Text parser class: Jevix or Qevix


Большая просьба: Если кто-то у себя на сайте включит Qevix, то отпишитесь потом, насколько корректно все работает. Если по результатам испытаний все будет нормально, то сделаем Qevix парсером по умолчанию.

Загрузка только нужных скриптов редактора
С завидной регулярностью возникает вопрос: «Я не использую редактор tinyMCE, и как сделать так, чтоб не грузились зря скрипты для него?». Так вот, теперь ничего специально делать не надо. Если на сайте отключен режим WYSIWYG (в админке это называется «визуальный редактор»), то скрипты для tinyMCE подгружаться не будут. Что чуть-чуть, но все ж ускорит загрузку страниц сайта.

Как обновиться
Если у вас стоит версия 1.1.х, то вот: https://altocms.ru/689.html

Если обновляетесь с версии 1.0.х, и используете стандартный скин, то то же самое: https://altocms.ru/689.html

Если переходите с версии 1.0.х со своими шаблонами, то стоит ознакомится с этими статьями:
Переезд с Альто 1.0.х на версию 1.1.х и адаптация шаблонов (минимальный вариант)
Адаптация шаблонов к Альто версии 1.1 — пошаговая инструкция

UPD Были исправлены некоторые ошибки, плюс пришлось обновить jQuery до 1.11.3 (прежняя версия тоже иногда вызывала ошибку). Поэтому и версия Альто была обновлена — 1.1.8

Похожие статьи

  • ВАЖНО: Критическое обновление
    В AltoCMS используется библиотека PHPMailer, в которой была обнаружена критическая уязвимость. В версии Альто 1.1.27 эта библиотека обновлена. Настоятельно рекомендуется обновить движок до версии 1.1.27! Или...
  • Версия 1.1.23 — небольшие исправления и чуть-чуть новенького
    Таки вышел релиз Alto CMS 1.1.23. Каких-то «прорывных» фишек в ней нет, она, главным образом, исправляет ряд обнаруженных ошибок и чуть-чуть добавляет некоторых новых возможностей для разработчиков. Вот список...
  • Сайт переехал на новую версию движка
    Долго сидели, как сапожник без сапог — новые версии выходят, а официальный сайт сидит на старой версии. Но, наконец, это произошло — этот сайт тоже переехал на ветку 1.1.х и будет теперь обновляться регулярно.
  • Версия 1.1.12 Alto CMS — критичное обновление
    Движок обновлен до версии 1.1.12. Кроме всякого рода багфиксов, небольших улучшений (в т.ч. и повышающих быстродействие), была обновлена библиотека типографа Qevix, претендующая на то, чтоб в скором будущем стать...

81 комментарий

0
Спасибо огромное за труды! Еще один шаг к стабильному релизу. Ставим, смотрим и выявляем баги ребята, помогаем разработчикам.
0
И бонусом с эти типографом идет приятная фича: преобразование строка вида @username в ссылку на профиль пользователя.

Каким образом определяется начало/конец ника? Если в нике используются символы? Если используются пробелы? Тут по-другому надо делать.
+2
Я предполагал, что эта строка — @username — подразумевает, что логин идет сразу за символом "@" и содержит только латиницу без спецсимволов и пробелов. Но раз это непонятно, то уточнил в тексте.

Т.к. админы сайтов, уверен, в большинстве случаев не меняют наборы символов логина по умолчанию, то этот бонус будет работать на большинстве сайтов на Альто. В конце концов, эта опция отключаемая. И даже если замена парсера решит только одну единственную проблему — корректное распознавание URL — и не принесет больше ничего нового и не добавит проблем, то уже это достаточно весомая причина перейти на Qevix.
0
Хотя, знаете, экспериментальным путем выяснилось, что логины на нелатинице и с пробелами тоже могут преобразовываться! Нужно только их заключать в квадратные скобки, вот так: @[папаша джон]
0
после обновления при входе в настройки сайта появляется ошибка «Fatal error: Cannot unset string offsets in /var/www/gleb-khil/data/www/speak.od.ua/engine/classes/core/Config.class.php on line 650», лента перестала работать, не все блоги отображаются, помогите
Отредактирован:
0
… при входе в настройки сайта...
Не понял, другие разделы админки работают, и только при входе в раздел «Настройки сайта» возникает ошибка?
0
не заходит в «настройки> настройки сайта» появляется данная ошибка, в другие разделы могу попасть
Отредактирован:
0
Повторю первую часть вопроса: другие разделы админки работают?
0
да, все работает, пока откатился обратно
Отредактирован:
+1
А можно как то установить начисто, но перенести пользователей и весь контент в новую версию? и если да то как это сделать?
0
Весь контент — это БД и папка uploads, если не меняли скины. В вашем случае лучше всего отключить все плагины, после этого установить начисто, с подключением (и конвертацией, если она необходима) старой БД и заливкой содержимого uploads.
Ну, и, разумеется, всё потом заново настроить из админки, т.к. судя по вашим топикам тут, вы где-то накосячили так, что теперь и найти никак))
Отредактирован:
0
Не стал писать на github так как мелкий недочет… — в админке: Ваша версия Alto CMS: 1.1.6
Последняя версия: 1.1.7 Хотя установлена 1.1.7.
0
А ошибок больше не появилось у вас? как у меня
0
Ошибок пока не наблюдаю… но у меня и контента практически нет никакого, я обновляюсь так (может и неправильно), полностью распаковал все файлы дистрибутива поверх старых, потом удаляю содержимое папки _run и удаляю папку install. Просто у меня не рабочий проект а просто тестовый сайт. Qevix тоже прописал, пока все нормально.
0
Насчет Qevix отписал на гите, в админке предупреждение сыпет
E_WARNING [2] call_user_func_array() expects parameter 1 to be a valid callback, class 'Qevix' does not have a method 'cfgSetAutoReplace' (/....../engine/classes/modules/text/Text.class.php on line 161)
0
Qevix все же придется немного доработать — не хватает немного ему функционала, который есть у Jevix
0
После обновления при заходе на некоторые страницы в админке стали появляться ошибки вида
Fatal error: Cannot unset string offsets in /home/hostname/data/www/domains.tld/engine/classes/core/Config.class.php on line 650

А именно:
— Информация > Отчет (info-report)
— Настройки > Настройки сайта (settings-site)
— Сайт > Оформление (site-skins)
С остальными вроде всё в порядке.

Помимо этого: на странице добавления новой статьи не отображаются кнопки форматирования текста (визуальный редактор отключен); при загрузке картинок в фотосет — никаких реакций не происходит (тот блок, что снизу на скрине, отображается сразу после захода на страницу добавления статьи).
0
Странно… у меня такого не наблюдаю… попробуй очистить кеш системы и браузера.
0
Увы, но сделал это сразу же после обновления, в том числе вручную и, на всякий случай, через админку (когда проверял наличие ошибки на других страницах). Заметил аналогичную ошибку в сайдбаре (правой колонке с виджетами). Думаю пока откатиться на версию 1.1.5 (кстать, в админке отображается версия 1.1.6 вместо 1.1.7)

Шаблон — experience-simple
Отредактирован:
0
Может плагин какой глючит… Отключать пробовали?
0
Тоже так подумал, на них и начал грешить в самую первую очередь. Сейчас все плагины отключены, кэш очищен, ошибки остались
0
Даже не знаю на что думать… у меня ничего такого не наблюдаю. Может хостинг что подглючивает? Есть возможность перезагрузить сервер? И точно кеш браузера чистили? Попробуйте вообще в другом браузере. У меня как то были траблы из за расширений Chrome.
0
Всё это перепробовал. Эх, если б завтра не на работу, так бы выяснил с чем связана данная ошибка (запустил бы на денвере, протестировал бы у других хостеров и т.п.). В любом случае спасибо за советы
+1
Воспроизвести эту ошибку у меня так и не получилось, но чисто теоретически понял, отчего она могла возникать, и пофиксил «слабое звено». В версии 1.1.8 такого быть не должно, но дайте знать, если что
+1
Ошибки пропали, спасибо за быстрое реагирование
0
Спасибо за оперативность, ошибки пропали
0
А у кого то завелся в новой версии счетчик просмотров? Или как его запустить?
0
А что не так со счетчиком? Не активируется? Не считает? Не показывает? Только что проверил — проблем не обнаружил, работает, как положено. Если речь, конечно, об этом: altocms.ru/addons/item/108/
0
речь про этот altocms.ru/addons/item/108/, он включился в админке без ошибок, но после перехода по статьям количество просмотров не увеличивается, стоит на нуле и все
0
Счетчик действительно стал считать шиворот навыворот, в версии 1.1.4 все работает нормально:
1. Если переходить в статью со страницы всех топиков(http://alto118.ru/index/new/), то счетчик меняется после первого обновления страницы.
2. Если заходить в статью по прямой ссылке alto118.ru/1.html, вбив ее в адресную строку браузера, значения счетчика меняются только после второго обновления страницы по клавише F5, не первого. Получается, что если в статью таким образом зайдет сколько угодно человек (с разными сессиями), то счетчик так и не увеличится, пока кто-то из них не обновит страницу второй раз за одну сессию.

Тестил на чистой версии альто 1.1.8 с гитхаба с двумя созданными топиками. Плагин из каталога со стандартными настройками. Версия PHP — 5.3.13.
0
Хочу отредактировать шаблон start-kit. Вношу правки в style.css. В настройках движка отключил кеширование. Но для того, чтоб увидеть правки приходиться каждый раз сбрасывать кеш. Что я недоотключал?
+3
Попробуйте в админке: Настройки — Настройки сайта — CSS и javascript, отметьте галочкой пункт «Принудительно обрабатывать CSS»
+1
Спасибо!
Прошу прощения! Вместо лайк поставил дизлайк =(
Отредактирован:
0
aVadim поправь пожалуйста плагин карта сайта altocms.ru/addons/item/85/ Там сказано что совместимость: AltoCMS 1.1.+ но примерно с 1.1.5 или может чуть раньше не работает:( Вешает сервер намертво, приходится апач перезапускать. Посмотри пожалуйста, а то без карты сайта проекты запускать как то не того…
0
А на сайте много топиков?
0
Топиков? Ни одного… голый движок:)
0
Не посмотрели еще? altocms.ru/addons/item/85/#comment23378
0
Пока только определил, что все умирает при рендеринге в недрах Смарти. Копаю вглубь…
0
В последней версии Смарти умирает при обработке шаблона. В дев-версии работает нормально, но не хочется включать ее в движок до официального релиза.

Но локализовал проблему, зарелизил новую версию плагина, заодно кеширование улучшил, altocms.ru/addons/item/85/ — скачивайте, проверяйте
+2
А планируется мажорное обновление «в один клик» из админки? Очень бы хотелось такую фичу :)
0
Ураааа! Второй пункт все таки взяли во внимание.
Если что, то я могу вам меню на тесте поломать быстро если не исправили ;)))
Спасибо большое ))
0
А когда будел улучшен редактор?? Я имею смысл в том, что если я выделяю текст, небыло потом такого:
<strong>Выделенный текст</strong>
а просто он был выделенным и так дальше с остальными функциями редактора и ссылками на изображение а было видно само изображение которое было добавленно через редактор. А то для меня даже путаница бывает не говоря уже о тех, кто совсем в коде редактора не понимает. И для него эти скобочки и черточки — диковина! Увы…
Отредактирован:
0
Включи визуальный редактор же.
0
Поправьте этот плагин под новую версию altocms.ru/addons/item/90/
0
А проблема с преобразованием ссылок решена?
<a href="http://google.com/"> заменяется на <a href=\"http://google.com/\">, а в тексте уже просто <a> 
0
Сегодня «ковырял» скин и обнаружил что в Expiriens_simple, по умолчанию, не подключен Bootstrap, а разве он не на нем построен?
$config['assets']['default']['js'] = Config::Get('assets.default.js');
//$config['assets']['default']['js']["___path.skin.dir___/assets/js/experience/dropdown.min.js"] = array('name' => 'bootstrap');
//$config['assets']['default']['js'][] = "___path.skin.dir___/assets/js/experience/menu.min.js";
//$config['assets']['default']['js'][] = "___path.skin.dir___/assets/js/experience/menu-l2.min.js";
$config['assets']['default']['js'][] = "___path.skin.dir___/assets/js/selecter/jquery.fs.selecter.min.js";
$config['assets']['default']['js'][] = "___path.skin.dir___/assets/js/icheck/icheck.min.js";
$config['assets']['default']['js'][] = "___path.skin.dir___/assets/js/experience/script.js";
$config['assets']['default']['js'][] = "___path.skin.dir___/assets/js/experience/toolbar.js";
if (Config::Get('view.fix_menu')) {
    $config['assets']['default']['js'][] = "___path.skin.dir___/assets/js/experience/fix-menu.js";
}

$config['assets']['default']['js'][] = "___path.skin.dir___/assets/js/experience/userinfo.min.js";
$config['assets']['default']['js'][] = "___path.skin.dir___/assets/js/experience/ch-datepicker.min.js";
//$config['assets']['default']['js'][] = "___path.frontend.dir___/bootstrap-3/js/transition.min.js";
//$config['assets']['default']['js'][] = "___path.frontend.dir___/bootstrap-3/js/";
//$config['assets']['default']['js'][] = "___path.frontend.dir___/bootstrap-3/js/tab.min.js";
//$config['assets']['default']['js'][] = "___path.frontend.dir___/bootstrap-3/js/tooltip.min.js";
//$config['assets']['default']['js'][] = "___path.frontend.dir___/bootstrap-3/js/popover.min.js";
//$config['assets']['default']['js'][] = "___path.frontend.dir___/bootstrap-3/js/carousel.min.js";
//$config['assets']['default']['js'][] = "___path.frontend.dir___/bootstrap-3/js/collapse.min.js";
//$config['assets']['default']['js'][] = "___path.frontend.dir___/bootstrap-3/js/modal.min.js";
//$config['assets']['default']['js'][] = "___path.frontend.dir___/bootstrap-3/js/bootstrap.min.js";
$config['assets']['default']['js'][] = "___path.skin.dir___/assets/js/moment/moment.min.js";
$config['assets']['default']['js'][] = "___path.skin.dir___/assets/js/moment/moment.lang.ru.min.js";
$config['assets']['default']['js'][] = "___path.skin.dir___/assets/js/jasny/fileinput.min.js";
$config['assets']['default']['js'][] = "___path.skin.dir___/assets/js/experience/editor.js";
//$config['assets']['default']['js'][] = "___path.skin.dir___/assets/js/jquery/jquery.bootstrap-dropdown-on-hover.js";
//$config['assets']['default']['js'][] = "___path.skin.dir___/assets/js/jquery/pulse/jquery.pulse.js";
$config['assets']['default']['js'][] = "___path.skin.dir___/assets/js/theme.js";
$config['assets']['default']['js'][] = "___path.skin.dir___/assets/js/experience/menu.js";
$config['assets']['default']['js'][] = "___path.skin.dir___/assets/js/bootstrap/dropdowns-enhancement.js";
$config['assets']['default']['js'][] = "___path.skin.dir___/assets/js/hoverintent/jquery.hoverIntent.js";

$config['assets']['default']['css'] = array(
    '___path.skin.dir___/assets/css/style.bootstrap.min.css',
    //'___path.skin.dir___/assets/css/style.bootstrap.min.map',
    '___path.skin.dir___/assets/css/style.experience.min.css',
    //'___path.skin.dir___/assets/css/style.experience.min.map',
    '___path.skin.dir___/assets/css/animate.min.css',
    '___path.skin.dir___/assets/css/hover.css',
    '___path.frontend.dir___/libs/vendor/prettyphoto/css/prettyphoto.css',
    '___path.frontend.dir___/libs/vendor/jcrop/jquery.Jcrop.css',

Отредактирован:
0
Ну очевидно, что не все компоненты бутстрапа нужны и используются. Стили, как видишь, используются:
'___path.skin.dir___/assets/css/style.bootstrap.min.css',
0
ну тогда отсюда вытекает другой вопрос, зачем держать бутстрап в 2х местах?
тут '___path.skin.dir___/assets/css/style.bootstrap.min.css'
и тут common\templates\frontend\bootstrap-3

я конечно не чего против не имею, но зачем, вроде как движок делается для удобства, а тут запутаться можно, сменишь на новую версию, а изменений не будет, и после проверки поймешь что заменил не тот бутстрап!
Отредактирован:
0
Я так понимаю, что сначала был добавлен 3 бутстрап в папку common/templates/frontend/, а потом, когда верстали темы experience, по какой-то причине решили использовать свою сборку бутстрапа.
Насколько я понимаю, бутстрап в experience кастомизировался в less-исходниках и потом был скомпилирован в то, что используется в теме (___path.skin.dir___/assets/css/style.bootstrap.min.css). Там, как минимум, размеры и кол-во ячеек грида отличается, стили кнопок.
0
сменишь на новую версию, а изменений не будет, и после проверки поймешь что заменил не тот бутстрап!
А заменить его так просто и не получится. Потому что разные мажорные версии имеют плохую обратную совместимость.
Отредактирован:
0
В общем-то, верно ответили: в common/templates/frontend/ — стандартная версия бутстрапа, которая используется, например, в start-kit. Но при верстке experience была запилена модифицированная версия бутстрапа, которая и идет вместе со скином.
0
В коде страницы бутстрап подключен? Оттуда и надо смотреть. Можно поиск по содержимому файлов сделать.
0
Это вопрос или утверждение? не понимаю
common\templates\skin\experience-simple\themes\custom\layouts\default.tpl пусто, нет бутстрап
0
Откройте исходный код отрендеренной страницы, и там смотрите, подключен ли там бутстрап. И если убедитесь что он подключен, от этого места уже ищите ГДЕ он подключается в коде

Например на демо

demo.altocms.com/new/_run/assets/98b058e42214dde8caaa0fd8568d1ba6.min.js

/*!
* Bootstrap v3.1.1 (http://getbootstrap.com)
* Copyright 2011-2014 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
0
Вопрос был выше, зачем он нужен в 2х местах? ты мне показал JScript код, если не ошибаюсь выпадающее меню или что-то такое. А в скинах бустрап лежит в самом скине Експриенс_симпл и еще лежит common\templates\frontend\bootstrap-3, зачем, я выше писал, чтобы сделать больше гемороя для себя при обновлении бутстрапа? Не понимаю
0
Я показал объединенный движком js, листай вниз. Твой вопрос был про css.

А кажется я понял, ты не знаешь что бутстрап это не только css, но и js?
0
еще вроде он препроцессор LESS, ну допустим он объединенный, пускай, вот только зачем он хранится в двух копиях, разве одну держать не проще?
0
На этот вопрос у меня нет ответа…
0
Под футером при установке счетчика вылазит {literal} {/literal}

И, почему-то после обновления с 1.1.5 все виджеты задублировались: блоги, stream и др.
Отредактирован:
0
У меня дубли виджетов появились после того, как я установил плагин «Категории блогов» altocms.ru/addons/item/92/ Возможно из за этого… Я не знаю насколько этот плагин совместим с последней версией с гитхаба, но особых косяков я не заметил. Дубли виджетов можно вырубить в админке или закомментировать в конфиге плагина категорий, конечно это костыль но пока так…
0
В версии 1.0.х плагины задавались так:
$config['widgets'][] = array(
    // здесь настройки плагина
);
В версии 1.1.х они должны задаваться так:
$config['widgets']['stream'] = array(
    // здесь настройки плагина
);
Т.е. не пустые квадратные скобки, а с идентификатором виджета. Можно посмотреть идентификаторы в файле common/config/widgets.php и задать их в конфигах других плагинов или если задавали свои параметры виджетов в app/config/widgets.php.
0
Да действительно, прописал в конфиге плагина категорий блоки так как они задаются в common/config/widgets.php в том числе и сами categories, т.е. без пустых квадратных скобок. Дубли исчезли, полет нормальный пока:)
+1
Есть соображения, как автоматом это фиксить, но пока вот так, руками
0
Добрый вечер.
Ожидается ли в ближайшие недели выход новой версии?
+2
В ближайшие дни планируется релиз 1.1.10
0
Благодарю
0
Нигде не могу найти настройки включения комментариев гостям, подскажите, пожалуйста.
0
Если только использовать плагин
0
На «моем» шаблоне не работают скрипты. Не могу понять причины. Вроде, все пути прежние…
+1
Проверь, как они подключаются в самом шаблоне, после версии 1.1.4 подключение в файле assets.php (\common\templates\skin\experience-simple\settings\config) изменилось:
Было:
$config['head']['default']['js'] = Config::Get('head.default.js');

Стало:
$config['assets']['default']['js'] = Config::Get('assets.default.js');
+1
вот тут про это немного есть.
0
Вот же я олень. Спасибо.
0
0
Сделал откат. Причины так и не нашел.
0
На «моем» шаблоне не работают скрипты.
Что значит на «моем шаблоне»? Может причина в другом? У Вас какая версия? Спросил потому что тоже еще недавно плагин «Карты в топиках» altocms.ru/addons/item/106/ нормально работал… сейчас не работает. Т.е. новый вид топика с картой нормально публикуется, но сама карта потом не отображается в топике:( Но у меня и понятно, т.к. сайт тестовый и постоянно обновляю с гита. Но хотелось бы узнать почему перестал работать плагин.
0
«Мой» в смысле не стандартный, свой. Левый. Но проблема решилась. На два коммента выше.
0
Кто-нибудь пробовал редактировать комментарии на своих сайтах? Попробуйте, пожалуйста и скажите — у мен одного в форме редактирования комментария ничего нет (не подгружается текст)? Пробовал редактировать на всех шаблонах из коробки — фиг, текста нет.

0
Плагины отключены ВСЕ. Простите, если вопрос уже решился ранее (нет времени мониторить статьи и github — ткните носом, если есть решение).
+1
0
Ага. Оно. Спасибо!
+1
Оно то оно, только я не понял, где именно это исправлено…
упс, нашёл…
Отредактирован:
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.