Zau4man

Zau4man

+1095
Репутация
19375
Рейтинг
#1 Вид виджета - Список контента 9 марта 2025 в 14:15

 kalikimaka, потому что в $item данные напрямую из базы. Без учёта опций полей.

Данные после обработки полями надо искать в $item['fields']

#2 [ЕСТЬ РЕШЕНИЕ] Вывод кнопки подписки в типе контента 9 марта 2025 в 09:11

 denmois, ошибку получил

Но проблема проявилась только после сохранения настроек типа контента (для новостей поменял чек на «создание в группах»)

denmois

и именно так :)

Изображение

Очень интересно. Поразбираюсь дальше чуть позже

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

С какими-то опциями не связано. На чистой 2.17.1 достаточно просто открыть любой тк и сохранить его настройки.

Изображение

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

В общем, проблема не с ob_start(); надо зайти в настройки типа контента и почистить поле 

Изображение

тогда все будет работать корректно.

Указывать тут позицию нужно только тогда, когда вы ее создали в своем шаблоне где-то в специальном месте. Т.е. если она у вас НЕ «before_body», то указываем. А если «before_body» то не указываем.

#3 Как вывести аналогичный хлебным крошкам h1, title и description? 9 марта 2025 в 07:50

 Александр, в настройках SEO для записей.

Изображение

Но там не будет доступа к родительской категории, как в хлебных крошках. Только к текущей и имени типа контента.

#4 Ошибка 503 при подтверждении регистрации 7 марта 2025 в 10:31

 Ostrova, создайте новую группу «Новые». Проставьте ей все права доступа в настройках. Выберите эту новую группу в компоненте Авторизация и регистрация. Проблемы быть не должно. А вот с правкой id  в базе могут быть нюансы.

При удалении группы из админки, надеюсь вы не сносили ее вручную в базе, удаляются и права доступа github.com/instantsoft/icms2/blob/eedac9240673e095791ffa98af802bb1a6f60991/system/controllers/users/model.php#L825

Поэтому просто вернуть группу через подставку старого id мало

#5 Дубли страниц в наборах типов контента 7 марта 2025 в 08:25

Значит вашему сайту наборы не нужны, удалите их и не используйте

Loadырь

именно так. Не используйте наборы, если не хотите их уникализировать. Посмотрите на маркетплейсы, они под каждый чих делают набор. Набивают текст.

Если не хотите этим заниматься, а хотите сохранить просто удобство для пользователя, сокройте наборы от индексации. Ибо да, наборы без настройки это просто дубли, плохие дубли. 

Я ленивый, у меня в роботсе так

  1. Disallow: /blogs-monthly
  2. Disallow: /blogs-weekly
  3. Disallow: /board-expensive
  4. Disallow: /board-cheap
  5. Disallow: /poster-new
#6 Вопрос по конструктору форм 6 марта 2025 в 19:11

 F_a_R_i_D, в теме instantcms.ru/forum/konstruktor-form-ne-otpravljaet-v-modalnom-okne.html именно так и делали.

Только не выводите форму в модальном окне. В нем форма не будет знать об авторе записи.

#7 Типы контента-Объявления-Свойства не сохраняется порядок полей после перетаскивания 6 марта 2025 в 13:25

Нужны картинки. Ничего не понятно.

Порядок полей сохраняется и применяется ко всем записям.

#8 Монетизация статей для пользователей 6 марта 2025 в 06:44

 WadimKow, когда у Fuze будет больше свободного времени. Много времени ушло на прошлый релиз. Если вы посмотрите на объем правок в последней версии, увидите, что он большой.

Я бы не делал ставку на ожидание нового релиза, а работал с тем, что есть.

#9 Ошибка 503 при подтверждении регистрации 5 марта 2025 в 16:30

Крон выполняет другие действия

pupsik

тут явно не крон. В запросе к базе нет групп у пользователя. Такого быть не может, если настройки заполнены. 

#10 Ошибка 503 при подтверждении регистрации 4 марта 2025 в 13:26

На чистой 2.17.1 повторить проблему не удается. Ни с выбором, ни без. Ни с почтой, ни без подтверждения.

#11 Ошибка 503 при подтверждении регистрации 4 марта 2025 в 12:14

В настройках компонента Авторизация и регистрация не выбраны группы пользователей, в которые он должен быть помещен по умолчанию.

Поэтому 

WHERE (i.group_id IN ())

пустое

#12 [ЕСТЬ РЕШЕНИЕ] Как правильно вывести пресет редактора? 4 марта 2025 в 08:11

Очень интересный вопрос. Правильным решением будет отдельный компонент, в котором для данной опции можно будет выбрать пресет редактора. И уже потом в данной опции использовать id выбранного пресета. Вот почему.

Поле html при выводе своей формы использует редактор, указанный в настройках github.com/instantsoft/icms2/blob/b239faeba9df55b6e05ba3a67c239ac8bcc116b7/system/fields/html.php#L282

Посмотрим, что делает метод getEditorParams github.com/instantsoft/icms2/blob/b239faeba9df55b6e05ba3a67c239ac8bcc116b7/system/controllers/wysiwygs/frontend.php#L16

А он, если передан id пресета, получает его настройки, а если название, то использует переданное имя редактора и ищет, есть ли рядом с editor еще указанное editor_options. Если нет, то использует редактор с опциями по умолчанию.

Вот и получается, если хотите вывести там что-то четко настроенное, у вас два варианта:

1. Где-то дать юзеру выбрать, каким редактором пользоваться в вашем виджете. И это где-то использовать в настройках виджета
2. Передать название редактора и список опций, например так

  1. 'options' => [
  2. 'editor' => 'tinymce',
  3. 'editor_options' => [
  4. 'toolbar' => 'bold italic underline'
  5. ]
  6. ],

и тогда юзер увидит тини с тремя кнопками

Изображение

Подсмотреть все варианты опций можно у настроенного пресета в базе в таблице wysiwygs_presets.

Есть еще третий вариант. При установке виджета самому добавить настроенный пресет в список пресетов сайта пользователя. А затем в форме виджета получать его id по имени созданного пресета, и использовать в поле.

#13 Не работают объявления 3 марта 2025 в 15:52

 ivan, какая-то проблема с полем «Набор изображений Slider». Обратитесь к автору этого поля.

#14 [ЕСТЬ РЕШЕНИЕ] Получить список кто проголосовал за новость 25 февраля 2025 в 13:17

 No Name, есть таблица rating_log

Проголосуйте за какую-нибудь запись и станет сразу понятно, что искать в ней

Изображение

А чтобы получить к логам еще и пользователей, надо использовать joinUser github.com/instantsoft/icms2/blob/b239faeba9df55b6e05ba3a67c239ac8bcc116b7/system/core/model.php#L1644

И лучше делать не по одному запросу для каждой записи, а сперва выбрать все логи через filterIn() по списку показываемых на данной странице id записей, а уже потом «раскидать» логи по записям.

#15 Задержки отправки. 24 февраля 2025 в 11:22

причину этой задержки, но как и где их смотреть

pupsik

со страницы добавления записи идет редирект в запись, посмотреть отладку добавления записи не получится.

Но вы можете в файл github.com/instantsoft/icms2/blob/master/system/controllers/content/actions/item_add.php начиная снизу вверх, пока не доберетесь до github.com/instantsoft/icms2/blob/8a4f07a01e1b6b4fe634b8d9b6c1eeb12affb1b9/system/controllers/content/actions/item_add.php#L59C9-L59C20 писать в строчках что-то типа

  1. dump($item);

Это будет прерывать код. И смотрите, на какой строке пропадет эта большая пауза. Значит «тупит» тот код, что ниже добавленного dump();

Можно по файлу раскидать дампы таймстампов в файл. И смотреть, между какими из них самая большая пауза.

Например так. Добавить в этот файл новый метод типа

  1. private function log($text){
  2. $file = $_SERVER['DOCUMENT_ROOT'] . '/upload/lagi.txt';
  3. $f = fopen($file, 'a+');
  4. fputs($f, '['.time().'] '.$text . "\n");
  5. fclose($f);
  6. }

этот метод будет класть добавленный текст и метку time в файл upload/lagi.txt

И потом по коду накидайте таких логов, типа

  1. $this->log('Где-то тут');

и потом добавляете запись. И смотрите, между какими логами самое большое время проходит. 

Скорее всего, проблема с каким-то из хуков… Их список тоже можно посмотреть в коде этого файла.

Терпения и вы выясните проблему.

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