Лучше поздно, чем никогда 😊 Продолжаю тему Изменяем автора материала в форме редактирования. В том варианте возникали две нестыковки в данных на сайте. Попробуем их решить.
В продолжение предыдущего поста. Только теперь делаем хук для добавления выбора пользователей сразу во все типы контента. Я вчера не обнаружил нужный хук, а сегодня его подсказал Fuze - спасибо! Файлы ядра также не изменяются.
Файлы ядра не изменяются. Основано на решении от Вадим Нарочный в теме Поменять владельца контента. Спасибо Вадим Нарочный за идею и практически готовый код. Как и просили, по шагам. 😊
Ура, товарищи! То, чего так долго ждали большевики - случилось! Товарищ Fuze дал добро на внедрение универсальных логинов и авторизации в ближайший релиз (мажорный или минорный - это ему виднее). 😊 Я перенёс прошлую версию "Логинов" на InstantCMS 2.6.0 и походу поправил пару незамеченных ранее мелочей. Изменено более сотни файлов. Поэтому нужна ваша активная помощь в тестировании. Возможности: - авторизация по любому полю профиля пользователя (универсальные "логины"); - список запрещённых для регистрации логинов; - подстановка любого поля профиля в адреса профилей...
Общение с Fuze, а также перечитывание каментов в блоге и в темах про логины, адреса профилей и авторизацию произвели на мой системно-программерский ум неизгладимое впечатление. 😊 В общем, дабы учесть видение разработчиков Инстанта и противоречивые желания большинства пользователей, я полностью изменил концепцию и переделал весь код. В систему внесено очень много правок, изменено более сотни файлов. Надеюсь, этот вариант понравится и пользователям, и разработчикам InstantCMS 2 настолько, что он будет включён в систему «из коробки». Нужна ваша активная помощь в его тестировании. Возможности: авторизация по любому полю, подстановка любого поля в адреса профилей пользователей, уникальные никнеймы, правила сайта и другие интересности. Итак, забываем про просто логины и тестируем универсальное решение.
Прошу протестировать вариант реализации логинов в InstantCMS 2. Если этот вариант окажется удачным, понравится пользователям и в нём будут устранены ошибки, тогда можно будет просить разработчиков InstantCMS 2 включить его в систему «из коробки». Поэтому нужна ваша активная помощь.
В InstantCMS 2 в версиях до 2.0.1 включительно загрузка классов кэширования производится независимо от того, разрешено ли кэширование в настройках сайта или нет. Мотивацию разработчиков для этого я точно не знаю. Скорее всего это желание следовать принципам ООП, по которым проверка работы с кэшем должна осуществляться предпочтительно в классе кэширования. Но поскольку имя параметра настройки 'cache_enabled' вряд ли будет меняться в будущем, то выгоднее в нескольких местах кода вне класса кэширования сделать проверку этого параметра и просто не загружать ничего, связанного с кэшированием, если оно выключено. На моём компе это дало выигрыш порядка 4-5 мс и дополнительную экономию памяти (не сравнивал, забыл).
Прекрасный по всем параметрам продукт InstantCMS 2 в версиях до 2.0.1 включительно имеет один недостаток, влияющий на производительность – неоптимизированные подключения файлов классов и библиотек. Например, при открытии главной страницы под админским логином выполняется более 800 попыток подключения по сути одних и тех же файлов. Данный хак добавляет проверку на уже выполненное подключение перед вызовом подключений классов и библиотек. Это позволяет уменьшить время создания страницы более чем в полтора раза с полным сохранением функциональности сайта.