MaxSite CMS 101

Версия, где было много изменения и доработок. Начну, наверное, из последних. MaxSite CMS теперь поддерживает PHP 7.1 и 7.2. Строго говоря, проблема была не в самой системе, а в CodeIgniter, который содержит устаревшие функции шифрования, и которые были «выпилены» из последних версий PHP. Просто так их заменить не получится, поэтому я решил проблему без изменений самого CodeIgniter — его шифрование больше не используется. Вместо этого у нас теперь своя функция, основанная на php-библиотеке Open SSL, что подходит под все PHP-версии с 5.3.
Само по себе CodeIgniter-шифрование у нас используется только для кук, поэтому оно в общем-то не критично. Также есть использование этой же библиотеки в плагине maxsite_auth, но поскольку его почти не используют, то я склонен вообще его убрать из системы — переделывать будет дороже.
Из-за того, что шифрование кук поменялось, то после обновления MaxSite CMS, произойдёт разлогиневание всех пользователей. Сами пароли или база данных не меняются. Всё должно работать без каких-либо изменений с вашей стороны.
Кроме этого я поправил код системы, чтобы обеспечить совместимость с PHP 7.1/7.2 и последними версиями MySQL и MariaDB 10. Проверить все комбинации между версиями пока сложно, поэтому, если вдруг у вас выскочила ошибка, то сообщите о ней.
Также для пользователей PHP 7.x нужно будет обновить автоустановщик MaxSite CMS. Там будет выскакивать сообщение «Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP», которое не сказывается на его работе. Я обновил библиотеку PclZip под это дело.
Если вы обновляете версию PHP на сервере, то в некоторых случаях возможно потребуется полный сброс кэша и очистить куки сайта в браузере.
Мы будем переходить на 7-ю версию PHP. Это не значит, что я введу какие-то запреты на использование PHP 5.x (сейчас минимальная версия 5.3). Здесь вопрос скорее в плоскости будущих перспектив. На текущий момент я бы рекомендовал PHP 7.0, которая сама по себе даст прирост скорости работы сайта при уменьшенном ресурсопотреблении. Где-то через полгода рекомендованная версия будет 7.1 или 7.2 (сейчас уже вышла 7.3), чтобы к началу 2020 года версии 5.x официально больше не поддерживать. Это общемировая тенденция по переходу к минимальной PHP 7.1.
Если у нас будут всплывать ошибки из-за новых версий PHP/MySQL, то я готов выпускать обновления MaxSite CMS чаще, чтобы держать последнюю версию в актуальном состоянии.
Теперь кратко по другим изменениям.
При сбросе кэша в Консоли теперь удаляются пустые каталоги в uploads/_pages/. То есть, если у записи не было связанных файлов, то пустой каталог удаляется как ненужный.
Также в Консоли немного поправил вывод статистки рубрик и исправил недочеты.
Из «внутренних» изменений: дальнейшая работа с Page_out, а также юнитами главной. Там появились новые возможности.
Ещё одно важное изменение: при 404 типе данных, если есть type-файл в каталоге шаблона, то ему присваивается полноценный тип данных. Раньше приходилось получать первый сегмент URL, теперь такие вещи можно сделать обычной «is_type('тип')».
Добавлено несколько новых type_foreach-файлов, а также были изменения по type-файлами, чтобы добавить новые возможности для вебмастеров.
Здесь же отмечу, что теперь автоматически прописывается css-класс при разных info-top-файлах по шаблону «mso-tf-ФАЙЛ». Это позволяет с помощью CSS кастомизировать дизайн без изменения самих файлов.
В функции mso_explode() можно использовать диапазон чисел, что позволяет во многих опциях указывать начальное и конечное число. Скажем, раньше пришлось бы писать так (например номера рубрик): «1,2,3,4,5», теперь можно проще «1..5».
У записи появилось метаполе «Показывать блок "Ещё записи по теме"».
В поле Быстрой загрузки появился новый чекбокс, отметив который, можно загрузить файлы изображений без обработки («как есть»).
Формально такая возможность всегда была, просто приходилось выбирать пункты из опций, сейчас же это простой клик. К тому же загрузка будет немного быстрей, поскольку сразу «отсекается» обработка файлов.
Ещё одно важное изменения, которое удалось-таки реализовать: теперь можно указывать короткий адрес к каталогу записи, где хранятся файлы. Для этого используется короткий код [ pi ] или [ page_images ] (без пробелов).
В текстовом редакторе добавлен пункт «Заменить адреса на page_images», который автоматом сделает все нужные замены. Раньше адреса картинок были полными:
[img]http://site/uploads/_pages/123/image.webp[/img]
Теперь можно сократить:
[img][ pi ]image.webp[/img]
или
[img][ page_images ]image.webp[/img]
Также доработана логика поля «Изображение записи». Теперь оно формируется без адреса сайта: в этом случае адрес будет добавлен автоматически. Кроме этого, введено «равенство» протоколов http и https. При смене адреса сайта (включая протокол) полные адреса картинок приходилось менять. Теперь будет работать автоматом. Правда старые записи, где указан полный адрес всё также придётся править. Тут уж ничего не поделаешь. (Хотя в Thumb добавлена возможность перехватить адрес и заменить на новый.)
В функции «mso_section_to_array()» (для секционных опций) я внес небольшую правку, чтобы получить возможность создавать сложные варианты задания опций. Мне она пригодилась в шаблоне MF для задания произвольных колонок подвала. Возможность, действительно, очень перспективная, поскольку позволит сильно упростить работу с блоками, где нужно совмещать множество опций и html-код для вывода (это вообще головная боль любого разработчика...).
Уж коли я затронул шаблон MF, то сделаю анонс и здесь. Этот шаблон пока в процессе разработки, но на него объявлен предзаказ до 1 январа 2019 года по льготной цене. Шаблон premium-класса, но главная его особенность в том, что он будет содержать в себе множество готовых блоков под разную задачу. Изначально будет один дизайн, после отладки я предложу другие варианты. Поскольку MF будет развиваться, то каждый его покупатель получает бесплатное обновление на 1 год.
Кроме того, на MF я буду отрабатывать новые возможности. Например будет возможность редактировать текст записи прямо на странице этой же записи вне админки... Так что пока ещё есть возможность купить MF по хорошей цене. :-)
А что значит?..
Что за отдельный вариант?
Пагинация страниц комментариев будет реализована в движке без применения плагина?
Плагин "Comments" Ильи Земского не работает как надо, если отключить комментирование к статье, то и все написанные комментарии перестают отображаться, да и много чего там не доработано.
Хотелось бы чтобы пагинация страниц комментариев работала бес сторонних плагинов.
Добавил картинку, поясняющую пагинацию в админке.
>> Пагинация страниц комментариев будет реализована в движке без применения плагина?
Нет, не будет. Не вижу в ней смысла. Пусть будут сторонние плагины.
Будем тестировать. Движок мне понравился.
Отличное и важное обновление! Благодарю!
Максиму то какое до этого дело? :-) Вы мне написали про проблему, я вас услышал. Как появится время - разберусь.
До сих пор пользуюсь движком версии 0.863, понимаю что пришло время перейти на новый. В то же время как-то "страшнова-то", так как все фишки примененные в новой версии требуют изучения практически с нуля. Но мне кажется оно этого стоит.
Было бы очень здорово, если бы кто-то решился провести тестирование движка в плане функциональных возможностей, заложенных СЕО возможностей, нагрузки на хостинг и т.д. в сравнении с наиболее популярными CMS.
В смысле «с нуля»? Главное отличие — это только новые шаблоны из-за потери совместимости. Мы отрубили старые «хвосты», которые тормозили развитие системы. В остальном - это только движение вперёд.
Согласен. Я не корректно выразился. В старой версии для своих каких-то потребностей не предоставляемых из коробки все нужно было реализовывать в шаблоне. В новой версии появилось много инструментов все это предоставляющее изначально. Но для того чтобы их грамотно использовать надо потратить время на изучение. И это никак не минус. Как говорится, без труда не вытащиш рыбку из пруда. :)
В настройках шаблона ставлю "Количество записей на остальных страницах сайта" равным 10.
Можно ли как то сделать, чтобы в конкретной рубрике было например 5 или 15 записей на странице, то есть отличное от установленного в настройке шаблона?
По аналогии сортировки рубрик news = page_date_publish desc
Что то типа news = page 15
Интересное обновление!
Макс, я уже задавал в прошлом году вопрос про письма с сервера. Не отправляет движок их почему-то... Как можно отследить, где именно проблема? Смотрю в логах ошибок своего ВПС - ничего про это не отмечается. Может быть права какие-то надо выставлять специфические?
Может. Но все вопросы только на гитхабе.
Добрый вечер, Максим. С наступающим Вас 2019 годом! Новых Вам возможностей, удачных обстоятельств, сил, энергии, здоровья и процветания Вам, Вашей семье и Вашему проекту! Большое спасибо за новую версию :)
У меня пока без затыков не обходится. Обновила свой сайт до 101 версии, всё по инструкции. Одна проблема на данный момент: не могу войти в админку (отвечает, что неверный логин или пароль). Что можно в этой ситуации сделать? Где изменить?
Спасибо, Вероника! :)
Данные базы не менялись, поэтому проверьте что вы логинетесь на том же адресе (с/без www). Как вариант попробуйте другой браузер. Может куки сайта сбросить.
Благодарю Вас за оперативный ответ, Максим. Логинюсь на том же адресе, куки сбросила, перепробовала 4 браузера, ни в какую меня не признаёт. Как ещё можно поколдовать? Если можно.
А до этого версия какая была? Секретная фраза не менялась?
До этого версия 100 была. Вот на счёт секретной фразы вообще не помню. При обновлении я её не меняла, а какая сама фраза была вообще не помню и найти в записях никак не могу.
Ура, с фразой секретной разобралась, в админку вошла!
Появилась другая проблема: в админ-панели в разделе "Все записи" вот такое вот пишет:
A PHP Error was encountered
Severity: Warning
Message: require_once(/home/host1438682/sociopraktikum.ru/htdocs/www/application/maxsite/plugins/plugins\pagination\index.php) [function.require-once]: failed to open stream: No such file or directory
Filename: admin/common.php
Line Number: 210
Fatal error: require_once() [function.require]: Failed opening required '/home/host1438682/sociopraktikum.ru/htdocs/www/application/maxsite/plugins/plugins\pagination\index.php' (include_path='.:/usr/local/php/php-5.3/lib/php') in /home/host1438682/sociopraktikum.ru/htdocs/www/application/maxsite/admin/common.php on line 210
Что-то опять нахимичила похоже. Максим, с этим что-нибудь можно сделать?
Секретная фраза задается в application/maxsite/mso_config.php Если она там прописана, то ничего менять не нужно. Если нет, то используется как адрес сайта.
С ошибкой — обновитесь на последнюю dev-версию. Эту ошибку пару часов назад я пофиксил.
Максим, огромная Вам благодарность за помощь и поддержку! Последняя dev-версия - это значит опять по новой переобновиться? Я ещё раз скачала последнюю версию, обновила, но в разделе "Все записи" по-прежнему ошибку выдаёт. Или что-то другое нужно было сделать?
Нужна именно dev-версия. Можно через автообновление этой версии, либо вручную с гитхаба. Ссылка есть вверху.
Что-то dev-версия у меня ничего не изменила, по-прежнему ошибку выдаёт. Максим, может быть, при dev-версии нужно ещё что-то делать? И возник вопрос: а три файла index.php, .gitignore и README.md заменять надо или нет? И если залить файлы dev-установщика, то тоже просто в адресную строку браузера ввести или как-то ещё?
P.S.: благодарю за терпение и поддержку)
Из dev-версии нужно заменить только файл аpplication/maxsite/admin/common.php Остальное не обращайте внимания. Ошибка не критическая, просто так совпало с вашей версией PHP.
О, с комментариями разобралась, отключила в настройках сайта.
Как только отправлю Вам запрос, так сразу мысли нужные в голову приходят. Чудесная аура и поле Вашего проекта, видимо действует :)
Максим, молодец! Хорошее обновление. А что будет в будущем с дефолтным шаблоном? Мне он нравится, уже два сайта на него перенес. Будет ли поддерживаться дефолтный шаблон в будущем? Шаблоны для 100 версии будут поддерживаться? Хотел воспользоваться одним для разнообразия, но не знаю будет ли он поддерживаться? А новый шаблон на который был предзаказ будет несменяемым или так же будет заменяться в будущем? Его нужно будет обязательно покупать или он отдельно от дефолтного будет продаваться? Скидки на праздники планируются? Так же подскажите, будет ли возможность переносить с одного типа базы данных на другой Mysql и MariaDB ? Вы сами какой планируете пользоваться?