Panda58dev

Panda58dev

+15
Репутация
112
Рейтинг
#1 Имя контроллера из нескольких слов. 22 мая 2024 в 16:09

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

#1 Имя контроллера из нескольких слов. 19 мая 2024 в 17:23

Из документации и форума инфы не накопал, поэтому методом «тыка» пришёл к некоторым выводам, по теме.

TL;DR: имена контроллеров можно делать только в lowercase или snake_case. То бишь, либо somecontroller, либо some_controller и обращаться к ним соответственноdomain.zone/somecontroller/action_nameили domain.zone/some_controller/action_name.

Почему так, а не иначе?

Заходим на гитхаб и смотрим на эту строку в файле /system/core/controller.php:

  1. $this->name = $this->name ? $this->name : mb_strtolower(get_called_class());

Я не буду критиковать этот тернарник, просто обращу внимание на 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, но похоже, на контроллеры это не распространяется.

Вот такие дела. Надеюсь, начинающим разрабам поможет. Если же опытные разработчики знают, как можно сделать иначе — пишите.

#1 И снова Nginx. 6 мая 2024 в 12:46

Всем девопсам, пламенный привет. Остальных, заглянувших форумчан, тоже приветствую :)

Недавно искал конфиг nginx для InstantCMS, но нашёл только срач тему на форуме и такой файлик на github. В первом источнике всё было очень страшно и непонятно, второй оказался более читабельный, поэтому я стал использовать его. И всё бы ничего, но путь "/admin" стабильно отдавал страницу с кодом 403. Возможно, такая проблема из-за того, что адатировал конфиг с github под свой проект, но… Короче, TL;DR: я написал свою конфигурацию.

Постарался сделать его более минималистичным и читабельным, но, т.к. не знаю всех особенностей CMS, отдаю его на вашу критику. Она действительно очень важна! Тестировал на локальном сайте с Angie 1.5.0 | PHP-FPM 7.4 | InstantCMS 2.16.3 — полёт нормальный.

Когда (и «если»), составим оптимальный конфиг — напишу пост в блоге, чтобы любителям творения Сысоева жилось легче)

Содержимое файла конфига:


  1. server {
  2. listen 80;
  3. server_name site_domain;
  4. root /var/www/html;
  5. index index.php;
  6. access_log /var/www/logs/web-server.access.log;
  7. error_log /var/www/logs/web-server.error.log warn;
  8. autoindex off;
  9.  
  10. #Секция для установки CMS
  11. #location /install {
  12. # #Если запрашиваемый файл не найден
  13. # if (!-e $request_filename) {
  14. # #Передаю дальше в роутинг InstantCMS
  15. # rewrite ^/(.+)$ /install/index.php?$args last;
  16. # }
  17. # location ~ ^/install/index\.php {
  18. # try_files /does_not_exists @php;
  19. # }
  20. #}
  21.  
  22. location / {
  23. #Если запрашиваемый файл не найден
  24. if (!-f $request_filename) {
  25. #Если есть, удаляем слэш в конце URI и делаем 301 редирект
  26. rewrite ^/(.+)/$ /$1 permanent;
  27. #Передаю дальше в роутинг InstantCMS
  28. rewrite ^/(.+)$ /index.php?$args last;
  29. }
  30.  
  31. #Все запросы к /index.php перенаправляю на php обработчик
  32. location ~ ^/index\.php {
  33. try_files /does_not_exists @php;
  34. }
  35.  
  36. #Досуп к карте сайта
  37. location ~ ^/sitemap {
  38. allow all;
  39. rewrite ^/sitemap(.*).xml$ /cache/static/sitemaps/sitemap$1.xml break;
  40. rewrite ^/sitemap(.*)$ /index.php last;
  41. }
  42.  
  43. #Правила посещения сайта для неодушевлённых
  44. location ~ ^/robots.txt {
  45. allow all;
  46. rewrite ^/robots.txt$ /index.php last;
  47. }
  48.  
  49. #Запрет просмотра "dot-файлов"
  50. location ~ /\. {
  51. deny all;
  52. }
  53.  
  54. #Запрет просмотра "всякого-разного"
  55. location ~* \.(php|log|tpl|txt|twig|xml|ini)$ {
  56. deny all;
  57. }
  58. }
  59.  
  60. location ~* ^.+\.(jpg|jpeg|gif|png|svg|webp|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
  61. expires 365d;
  62. access_log off;
  63. }
  64.  
  65. location @php {
  66. #Тут ваши настройки php
  67. }
  68. }
Дабы эта тема не превращалась в срач, предлагаю обсуждать именно конфигурацию веб-сервера, для работы InstantCMS, а не преимущества/недостатки apache/nginx/fpm и т.п.
#4 Компонент "Эмоции к записям" 21 апреля 2024 в 12:05

плодить под каждой иконкой модальное окно со списком проголосовавших не хочется

Foxman23

В ВКонтакте создаётся попап с вкладками для каждой «реакции» и с одной вкладкой для всех оценивших:

Изображение

#5 [ЕСТЬ РЕШЕНИЕ] Как отключить отображение даты регистрации и последнего визита в профилях пользователей? 16 сентября 2022 в 13:05

Ну чтож, хотел подождать пока Fuze раскритикует pull request, но похоже он пока занят. Опции в настройках приватности пользователя, вот изменения в файлах.
Если будут какие-то замечания — буду рад выслушать.

Изображение

#6 Взгляд новичка пользователя Инстанта 13 сентября 2022 в 14:12
Товарищи, могу вас уверить, что в админке того же OpenCart без 100-та грамм (осуждаю) не разобраться :)

Админка в инстанте хорошая и то, что много опций — это определённо плюс. Всё что нужно — туториалы, и объяснения, что за что отвечает. imho

#7 Делает ли кто-нибудь справочники организаций/специалистов на InstantCMS? 6 августа 2022 в 15:33

Пишу компонент «Смена владельца».

Нифигаccе о-го-гошеньки

Писал нечто подобное на основе яндекс карт от zau4man, но ничего дельного тогда не вышло — не хватило времени и опыта :)
Думаю компонент будет полезный!

#8 xampp ftp доступ 11 июня 2022 в 22:26

 Рачей, немного не по вопросу, но если «не ищете лёгких путей», то Вам стоит ознакомиться с docker контейнерами :) 

#9 Как изменить тему мобильного браузера? 10 апреля 2022 в 08:36

 skewes, ну, правильней будет «изменяемая тема мобильного браузера» :)
Популярные примеры: VK, Viber, Web Telegram и т.п.

#10 Как изменить тему мобильного браузера? 8 апреля 2022 в 15:44

Попробуйте добавить в настройках сайта это:

  1. <meta name="theme-color" content="#9CC2CE">

Изображение

Кстати было бы круто добавить опцию, которая бы позволяла редактировать из интерфейса этот параметр :)

#1 Кнопка "оповестить модератора". 25 марта 2022 в 10:18

Думаю было бы круто сделать кнопку на форуме, при нажатии на которую, можно было бы привлечь внимание модератора к сообщению, при этом добавив свой комментарий. Пример: я нашёл эту тему и явно вижу, что её надо бы закрыть, но сам я этого сделать не могу, а что бы сказать ближайшему модеру, мне нужно найти его профиль, отписаться в личку и т.п.
Может можно просто обновить пункт «пожаловаться» добавив в список «Другое» с возможностью написания комментария. 

#12 Простое поле Заезд и Выезд 24 февраля 2022 в 22:55

Закодированные модули вообще мало интересны.

Анапа-Турцентр

ИМХО — плохое отношение к разработчикам. Как известно, кушать хотят все, разрабы — не исключение. Нужен модуль? Купил его, и какая разница заионкублен, или нет? Нужно расширить функционал? Написал разработчику, заплатил денюшку, получил расширенный модуль. Нужна адаптация под тему? Опять обратился к разработчику… А открытые модули имеют обычай появляться на различных варезниках.

#13 Сегодня зашел в кабинет.. упс:-))) 18 февраля 2022 в 08:49

PHP Version 8.1.1

Рачей

А Вы, я смотрю, отважный человек :)

#14 Ищу исполнителя для добавления нового вида продукции в основной каталог сайта rollcentr.ru 14 февраля 2022 в 15:13

 Rollcentr, на сколько я понимаю, текущий сайт работает не на instant?

#15 [ЕСТЬ РЕШЕНИЕ] Как отключить отображение даты регистрации и последнего визита в профилях пользователей? 14 февраля 2022 в 13:45

Итоги:

И так, товарищи, судя по последним коммитам на 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.: Позже будем делать похожие опции, но уже в настройках приватности самого пользователя.

Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.