Pechora.Dev 🐻

Pechora.Dev 🐻

+33
Репутация
252
Рейтинг
#1 Поставить CMS и сверстать шаблон под ключ по примеру 19 июля 2026 в 11:53

 rshabalin, все верно. 

#2 Нужен сайт. 10 июля 2026 в 08:32

Все чаще и чаще эти темы уходят в небытие…) 

#3 LLMS Generator: разбор генератора llms.txt 15 июня 2026 в 20:58

Сомневаюсь, что это принесет пользу, так как ни яндекс, ни гугл этот файл в обозримом будущем использовать не будут. Хотя — как сама идея — возможно, кому-то будет полезно. 

#4 [ЕСТЬ РЕШЕНИЕ] Конструктор НОРДИК для Инстант 8 апреля 2026 в 09:37

 Алексей Т, Если страница собирается из 20 блоков и каждый лазает в БД — будет больно. Сделай умный кэш на уровне HTML-фрагментов и страницы целиком.

Успехов, норм тема выглядит.

#5 [ЕСТЬ РЕШЕНИЕ] Конструктор НОРДИК для Инстант 8 апреля 2026 в 00:22

Алексей Т, вы бы хоть текст от ИИ поправили. Стабильный SEO-friendly SSR-рендер — это не про PHP. 

SSR в контексте React/Vue — это когда сервер (Node.js) запускает JS-компоненты, собирает их в HTML и отдает клиенту.

В PHP нет и не может быть такого же SSR. В PHP страница собирается на сервере с рождения — это просто работа PHP-скрипта. Называть это «SSR-рендером» как в Next.js — неграмотно и вводит в заблуждение.

Чтобы было более понятно, что я имею ввиду, раложу так:

1) InstantCMS работает на PHP, а не на каком-то-фреймворке.js
2) PHP по определению рендерит страницы на сервере — это называется «обычный серверный рендеринг», и ему не нужен отдельный термин «SSR»
3) Когда фронтендеры говорят «SSR», они имеют в виду изоморфные JS-приложения, где один и тот же код работает и на сервере, и на клиенте.

Если ты напишешь так в описании, любой техдир или разработчик с опытом сразу поймет, что ты либо копипастишь из ИИ, либо не понимаешь, о чем говоришь.

#6 Мини CRM на базе InstantCMS2 5 апреля 2026 в 22:20

 Jestik, мельком глянул код, особо не вникал — но сразу в первом поле увидел это:

  1. $html_template = <<<'HTML'
  1. var userOpts = `{USER_OPTIONS}`;

Первое — так вообще не нужно делать, такое писали еще для php 4.0 =)

Ну а во втором — у вас уязвимость. Если в ник например попадет кавычка, то можно без проблем через ваш JS выполнить что-нибудь вредоносное. Если вы не против, как будет свободное время форкну и пришлю PR. 

#7 Почему появляется | в виджете? 4 апреля 2026 в 19:37

После долго изучения проблемы (потому что это реально подбешивало) вот что я накопал. Лишний символ | появился в YAML-формате — если несколько раз пересохранить виджет «Социальные кнопки» — то на терий четвертый раз он обязательно проявится. По сути — это не ошибка вставки, это ошибка сериализации массива в YAML. Где-то в коде при сохранении массива options в YAML происходит двойное экранирование или неправильное формирование строки. 

Ну тут уже стало понятно что это системный класс Model. Смотрим что в нем:

  1. public static function arrayToYaml($input_array, $indent = 2, $word_wrap = 40) {
  2. // ...
  3. return Spyc::YAMLDump($array, $indent, $word_wrap);
  4. }

Как мне кажется — проблема в библиотеке Spyc. При сохранении массив options преобразуется в YAML через Spyc::YAMLDump(). 

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

Добавлено спустя 4 минуты

Ну и вот соответственно виновник в самой библиотеке

  1. private function _doLiteralBlock($value, $indent) {
  2. if ($value === "\n") {
  3. return '\n';
  4. }
  5. if (strpos($value, "\n") === false && strpos($value, "'") === false) {
  6. return sprintf("'%s'", $value);
  7. }
  8. if (strpos($value, "\n") === false && strpos($value, '"') === false) {
  9. return sprintf('"%s"', $value);
  10. }
  11. $exploded = explode("\n", $value);
  12. $newValue = '|';
  13. $indent += $this->_dumpIndent;
  14. $spaces = str_repeat(' ', $indent);
  15. foreach ($exploded as $line) {
  16. $newValue .= "\n" . $spaces . ($line);
  17. }
  18. return $newValue;
  19. }


Фиксим:

  1. private function _doLiteralBlock($value, $indent) {
  2. if ($value === "\n") {
  3. return '\n';
  4. }
  5.  
  6. if (strlen($value) < 3 && strpos($value, "\n") === false) {
  7. if (strpos($value, "'") === false) {
  8. return sprintf("'%s'", $value);
  9. }
  10. if (strpos($value, '"') === false) {
  11. return sprintf('"%s"', $value);
  12. }
  13. }
  14.  
  15. $exploded = explode("\n", $value);
  16. while (isset($exploded[0]) && $exploded[0] === '') {
  17. array_shift($exploded);
  18. }
  19. while (isset($exploded[count($exploded)-1]) && $exploded[count($exploded)-1] === '') {
  20. array_pop($exploded);
  21. }
  22. if (count($exploded) === 1) {
  23. return sprintf('"%s"', addslashes($exploded[0]));
  24. }
  25. $newValue = '|';
  26. $indent += $this->_dumpIndent;
  27. $spaces = str_repeat(' ', $indent);
  28. foreach ($exploded as $line) {
  29. $newValue .= "\n" . $spaces . rtrim($line);
  30. }
  31. return $newValue;
  32. }

Проверяем работу виджета по тому же сценарию — сохраняем три четыре раза — все гуд. работает. Отправлю Pull requests на гит — надеюсь внесут в релиз. 

#8 Обновление шаблона Social 21 марта 2026 в 22:55

Понятно. Aka vc.ru / dtf.ru

#9 Обновление шаблона Social 21 марта 2026 в 22:29

Что за шаблон? Где посмотреть?

#10 Нужна ли полноценная аналитика в модуле iUTM Tracker? 17 марта 2026 в 06:50

Если компонент будет показывать в карточке пользователя, с какой кампании он пришел — это спасение для менеджеров и маркетологов. Не нужно лезть в базу данных или SQL-запросы писать, чтобы понять, что Петров пришел с контекстной рекламы в Яндекс Директе. Так что да, однозначно хорошая идея и направление

#11 Добавление пакетов Scorm 17 марта 2026 в 06:40

Сомневаюсь, что InstantCms умеет обрабатывать файлы этого формата

#12 ZoomiJS 15 марта 2026 в 19:47

 maxisoft, а вы какой ии используете?

#13 ZoomiJS 15 марта 2026 в 19:27

 maxisoft, да, забирают у нас с вами работу, сейчас в каждого второго тыкни на улице — вайбкодер 😁

#14 ZoomiJS 15 марта 2026 в 19:15

звездоку на гитхабе поставил

maxisoft

Спасибо! Тщательно все перечитал, да — замечания верные, буду оптимизировать. Эх, подкинули работы 😁

#15 ZoomiJS 15 марта 2026 в 18:52

 maxisoft, я так и понял, потому что половина из написанного — вообще не так. Да, кое-какие проблемы агент верно нашел, но спорить с ним я не буду, потому что половина написанного — я и слов то таких не знаю 😄

И да. Статический анализ без запуска кода и тестов иногда даёт «ложные срабатывания» (как с disabled или translateX).

🍪Мы используем файлы cookie для работы сайта. Читать подробнее.