«Tip», небольшое пояснение к предыдущему посту — если контроллер назван в snake_case, то бишь "some_controller", то имя его модели всё равно должно должна быть в camelCase: "modelSomeController".

Panda58dev
Из документации и форума инфы не накопал, поэтому методом «тыка» пришёл к некоторым выводам, по теме.
TL;DR: имена контроллеров можно делать только в lowercase или snake_case. То бишь, либо somecontroller, либо some_controller и обращаться к ним соответственноdomain.zone/somecontroller/action_nameили domain.zone/some_controller/action_name.
Почему так, а не иначе?
Заходим на гитхаб и смотрим на эту строку в файле /system/core/controller.php:
Я не буду критиковать этот тернарник, просто обращу внимание на mb_strtolower(). Данная функция переводит имя класса в нижний регистр. Да, это не очень хорошо, т.к. (цитата из W3C)
URLs in general are case-sensitive (with the exception of machine names). There may be URLs, or parts of URLs, where case doesn't matter, but identifying these may not be easy. Users should always consider that URLs are case-sensitive.
И в документации самого InstantCMS по стилю кода, можем прочитать, что классы должны именоваться в camelCase, но похоже, на контроллеры это не распространяется.
Вот такие дела. Надеюсь, начинающим разрабам поможет. Если же опытные разработчики знают, как можно сделать иначе — пишите.
Всем девопсам, пламенный привет. Остальных, заглянувших форумчан, тоже приветствую :)
Недавно искал конфиг nginx для InstantCMS, но нашёл только срач тему на форуме и такой файлик на github. В первом источнике всё было очень страшно и непонятно, второй оказался более читабельный, поэтому я стал использовать его. И всё бы ничего, но путь "/admin" стабильно отдавал страницу с кодом 403. Возможно, такая проблема из-за того, что адатировал конфиг с github под свой проект, но… Короче, TL;DR: я написал свою конфигурацию.
Постарался сделать его более минималистичным и читабельным, но, т.к. не знаю всех особенностей CMS, отдаю его на вашу критику. Она действительно очень важна! Тестировал на локальном сайте с Angie 1.5.0 | PHP-FPM 7.4 | InstantCMS 2.16.3 — полёт нормальный.
Когда (и «если»), составим оптимальный конфиг — напишу пост в блоге, чтобы любителям творения Сысоева жилось легче)
Содержимое файла конфига:
server { listen 80; server_name site_domain; root /var/www/html; index index.php; access_log /var/www/logs/web-server.access.log; error_log /var/www/logs/web-server.error.log warn; autoindex off; #Секция для установки CMS #location /install { # #Если запрашиваемый файл не найден # if (!-e $request_filename) { # #Передаю дальше в роутинг InstantCMS # rewrite ^/(.+)$ /install/index.php?$args last; # } # location ~ ^/install/index\.php { # try_files /does_not_exists @php; # } #} location / { #Если запрашиваемый файл не найден if (!-f $request_filename) { #Если есть, удаляем слэш в конце URI и делаем 301 редирект rewrite ^/(.+)/$ /$1 permanent; #Передаю дальше в роутинг InstantCMS rewrite ^/(.+)$ /index.php?$args last; } #Все запросы к /index.php перенаправляю на php обработчик location ~ ^/index\.php { try_files /does_not_exists @php; } #Досуп к карте сайта location ~ ^/sitemap { allow all; rewrite ^/sitemap(.*).xml$ /cache/static/sitemaps/sitemap$1.xml break; rewrite ^/sitemap(.*)$ /index.php last; } #Правила посещения сайта для неодушевлённых location ~ ^/robots.txt { allow all; rewrite ^/robots.txt$ /index.php last; } #Запрет просмотра "dot-файлов" location ~ /\. { deny all; } #Запрет просмотра "всякого-разного" location ~* \.(php|log|tpl|txt|twig|xml|ini)$ { deny all; } } location ~* ^.+\.(jpg|jpeg|gif|png|svg|webp|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ { expires 365d; access_log off; } location @php { #Тут ваши настройки php } }
Ну чтож, хотел подождать пока Fuze раскритикует pull request, но похоже он пока занят. Опции в настройках приватности пользователя, вот изменения в файлах.
Если будут какие-то замечания — буду рад выслушать.
Админка в инстанте хорошая и то, что много опций — это определённо плюс. Всё что нужно — туториалы, и объяснения, что за что отвечает. imho
Пишу компонент «Смена владельца».
Писал нечто подобное на основе яндекс карт от zau4man, но ничего дельного тогда не вышло — не хватило времени и опыта :)
Думаю компонент будет полезный!
Рачей, немного не по вопросу, но если «не ищете лёгких путей», то Вам стоит ознакомиться с docker контейнерами :)
skewes, ну, правильней будет «изменяемая тема мобильного браузера» :)
Популярные примеры: VK, Viber, Web Telegram и т.п.
Попробуйте добавить в настройках сайта это:
<meta name="theme-color" content="#9CC2CE">
Кстати было бы круто добавить опцию, которая бы позволяла редактировать из интерфейса этот параметр :)
Думаю было бы круто сделать кнопку на форуме, при нажатии на которую, можно было бы привлечь внимание модератора к сообщению, при этом добавив свой комментарий. Пример: я нашёл эту тему и явно вижу, что её надо бы закрыть, но сам я этого сделать не могу, а что бы сказать ближайшему модеру, мне нужно найти его профиль, отписаться в личку и т.п.
Может можно просто обновить пункт «пожаловаться» добавив в список «Другое» с возможностью написания комментария.
Закодированные модули вообще мало интересны.
ИМХО — плохое отношение к разработчикам. Как известно, кушать хотят все, разрабы — не исключение. Нужен модуль? Купил его, и какая разница заионкублен, или нет? Нужно расширить функционал? Написал разработчику, заплатил денюшку, получил расширенный модуль. Нужна адаптация под тему? Опять обратился к разработчику… А открытые модули имеют обычай появляться на различных варезниках.
PHP Version 8.1.1
А Вы, я смотрю, отважный человек :)
Rollcentr, на сколько я понимаю, текущий сайт работает не на instant?
Итоги:
И так, товарищи, судя по последним коммитам на github (pull #1395 и корректировочный commit 90da766), в следующей версии InstantCMS данные опции будут предоставлены к использованию. Что бы воспользоваться ими уже сейчас, либо просто прикрутить на старые версии cms (никаких гарантий от меня нету), нужно заменить некоторые файлы на те, что в репозитории.
Конкретно:
- /system/controllers/users/actions/profile.php меняем на этот файл.
- /system/controllers/users/backend/forms/form_options.php меняем на этот файл.
- /system/languages/ru/controllers/users/users.php меняем на этот файл.
- /system/languages/en/controllers/users/users.php меняем на этот файл.
Скачать файлы можно нажав ПКМ => «Сохранить как».
P.S.: Позже будем делать похожие опции, но уже в настройках приватности самого пользователя.