bestit

bestit

+12
Репутация
11
Рейтинг
#1 [ЕСТЬ РЕШЕНИЕ] cron настроен, задание sessionclean через него выполняется, но файлы устаревших сессий во временной папке не очищаются 10 ноября 2022 в 14:04

InstantCMS 2.15.2

Вроде все настроено. Права на папку php_sess '777'. Сами файлы сессий создаются там с правами '600'

...Изображение
Изображение
Изображение
Изображение

Но старые файлы только умножаются. Сейчас 43 тысячи. Запуск задания вручную из планировщика все чистит.

Работу крона проверил так: в код cron.php вставил вывод названия задачи

  1. try {
  2. // Выполняем хук
  3. $controller->runHook("cron_{$task['hook']}");
  4. echo $task['hook'] . ' выполнен!';

и по инструкции хостера добавил вывод результатов запуска в файл.

/usr/local/bin/php7.4 -f ~/blago-mepar.ru/public_html/cron.php | tee ~/file.txt

В файлике периодически все отображается, в том числе нужное задание: sessionclean выполнен!run_queue выполнен!

Тему читал. Что еще надо, не хватает ума.

#1 [ЕСТЬ РЕШЕНИЕ] После редактирования и сохранения записи контента происходит редирект фиг знает куда... 9 ноября 2022 в 15:15

bestit, как выглядит ссылка при редактировании такой новости? В ней присутствует get параметр «back=...»?

— Loadырь

Да, очень интересно… При проблеме в редакторе я вижу 'back' и в нем указывается не текущая страница, а та, которую я открывал перед ней!

Пример. Использую контент страницы. Для него отключен вывод списка контента.

Открываю сайт, авторизуюсь. Открываю страницу 'Инструкции' blago-mosmit.ru/pages/instrukcii.html Редактирую через меню Действия. В url 'back' без параметра. Сохраняю изменения. Передо мной эта же страница. Это верно. Открываю другую страницу 'Регистрация' blago-mosmit.ru/pages/registracija.html Редактирую через меню Действия. Вижу в строке URL неправильный 'back' На предыдущую страницу!

blago-mosmit.ru/pages/edit/42?back=/pages/instrukcii.html

Сохраняю изменения. Да, передо мной страница 'Инструкции', которую я открывал до того, как открыл страницу 'Регистрации'.

Еще поотрывал другие страницы. И часто получалось, что в редакторе открывается одна страница, а в 'back' вижу ту, которую открывал до этого.

Задача, что не всегда. Иногда в редакторе вижу 'back' без параметра blago-mosmit.ru/pages/edit/42?back=

В таком случае все работает верно.

Нажимаете на кнопку «Сохранить» внизу формы или в меню действий?

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

Сохраняю по кнопке внизу формы. Но, скорее всего тут дело не в сохранении, потому что по подсказке Loadыря я стал проверять параметр 'back'  в URL после открытия контента в редакторе. И вот этот параметр сразу при открытии в редакторе иногда принимает неверное значение. Обычно указывая на предыдущую страницу. Но вот не всегда. Иногда параметр пустой. И тогда при сохранении я остаюсь на просмотре того, что редактировал.

#1 [ЕСТЬ РЕШЕНИЕ] После редактирования и сохранения записи контента происходит редирект фиг знает куда... 8 ноября 2022 в 16:42

С какого-то момента пользователи стали жаловаться, что после редактирования конкретной записи контента и сохранения они (пользователи) оказываются в неожиданных местах сайта. Например, если редактируется одна запись типа «страница», то после сохранения сразу открывается на просмотр другая! запись этого же типа контента, которая создавалась чуть ранее. Для страниц у нас отключен показ  списка. Или, есть другой тип контента. Новости. Настроен постраничный вывод по 15 записей. Сортировка  по-умолчанию настроена «последние сверху». Если мы в списке новостей выбираем новость где-то в середине или конце первой страницы списка, открываем на редактирование, то после сохранения мы оказываемся наверху списка новостей, вместо ожидаемой страницы, которую мы редактировали. Если редактируется новость с конца второй страницы списка, то после ее сохранения, нас снова перебрасывает на верх этой второй страницы списка. Почему может быть так?

Версия 2.15.2

#2 Автоматическое формирование поля контента на основе значений других полей по шаблону 7 ноября 2022 в 15:16

Можно генерировать и его, но придется в БД изменить тип поля заголовка с caption на seostring и использовать это поле:

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

Спасибо. Но не хотелось бы править систему через БД, ставить новое поле, потом что-то делать с его стилями. Ведь штатное поле title есть и настроено для всех типов контента. В идеале, хотелось бы иметь системную возможность гибкого расширенного управлениями полями. Не только заголовком. Вот, например, виртуальные поля придумали.

Системные action контента тоже не хочется ломать. Обновлять систему станет сложнее. Пока, как-нибудь, может быть через свой хук, можете что-то посоветовать?

#3 Автоматическое формирование поля контента на основе значений других полей по шаблону 6 ноября 2022 в 17:40

Если же имелось в виду не title, а именно заголовок записи (h1) тогда другой вопрос...

RSN

Да, да именно заголовок записи. Поле, которое хранится в БД в поле 'titile'  в таблице каждого контента.

#1 Автоматическое формирование поля контента на основе значений других полей по шаблону 6 ноября 2022 в 15:26

На базе InstantCMS 2.15.2 создается база социального служения, которая будет в помощь тем, кто помогает разным категориям нуждающихся людей. При наполнении пользователями базы типовыми объектами вида «Благотворительная столовая» или «Пункт раздачи одежды» приходится  вручную вводить это название в заголовок, а также добавлять в скобках название храма с городом (при котором эти столовые или пункты раздачи находятся). Чтобы в итоге у нас получались уникальные заголовки карточек. При этом поле «Храм (город)» заполняется пользователем в форме. Выбирается наименование конкретного храма из связанного родительского контента (parent_hram_id).

Хотелось бы иметь возможность, заполняя основные поля контента, поле заголовок (title) получать автоматически путем соединения значений уже введенных полей по определенному шаблону.

В моих примерах это «Благотворительная столовая» & "(" & [заголовок связанного храма] & ")" или  «Пункт раздачи одежды» & "(" & [заголовок связанного храма] & ")". При этом  наименования «Благотворительная столовая» и «Пункт раздачи одежды» совпадают с названием категорий, где создается данный контент. Т.е. title мог бы формироваться полностью по шаблону: [название выбранной категории] & "(" & [заголовок связанного храма] & ")" .

Ситуации с наименованием могут быть совершенно разные. Где-то нужно даже использовать значение, которое введет пользователь в само поле заголовок (title). Но все значения для формирования title могут быть или значениями полей данного контента, введенными в форму (включая значения свойств этого контента) или доступны по связям. Например, название текущей категории. Или имя родительского связанного контента.

Пример карточки храма со связанными учреждениями на тестовом сайте.

Я понимаю, что задача получается довольно объемная. И за просто так, наверное, никто не возьмется за нее. Я пока обошелся бы самостоятельной правкой кода системы, просто вписав в $item['title'] значения нужных полей из редактируемой формы в зависимости от id редактируемого контента. Это хотя бы  позволило облегчить пользователям ввод сотен типовых столовых, пунктов раздачи одежды. Но без без вашей коллективной помощи мне будет сделать это весьма трудно. Буду благодарен за любые подсказки!

Я правильно понял, что нужно править два actions для content: item_add.php и item_edit.php?

Где-то в конце после проверки формы на ошибки.

 if (!$errors){.....

и перед  return $this->cms_template->render('item_form', [.........

Нужно проверять id контента, а также категорию и в зависимости от этих значений что-то такое формировать в $item['title'] 

Вот бы еще значения родительских полей суметь получить...

Или более правильно писать что-то типа хука? А как в хуке будут доступны нужные мне значения? Для меня этот путь пока совсем не понятен.

Пока есть только опыт небольшой правки actions register.php, чтобы при регистрации пользователя поле nickname формировалось из нескольких других полей формы.

  1. .......
  2. if(!isset($user['nickname'])){
  3. // $user['nickname'] = strstr($user['email'], '@', true);
  4. if (!strcmp($fields['san']['handler']->setItem($user)->parse( $user['san'] ),"мирянин")) $user['nickname'] = $user['name'].' '.$user['surname']; // (c)MNN 2022-10-21
  5. else $user['nickname'] = $fields['san']['handler']->setItem($user)->parse( $user['san'] ).' '.$user['name'].' '.$user['surname']; // (c)MNN 2022-10-21
  6.  
#4 Парсинг с Авито 24 октября 2022 в 13:28

Шикарный компонент, и автор отзывчивый.

Scythian

Все подтверждаю! Я этот компонент покупал, использовал для миграции со старой cms системы UMI на InstantCMS. Главное — настроить сам парсинг. Автор с этим тоже мне помог. И я смог быстро перебросить три тысячи новостей на новый сайт. С фотографиями! Александр — замечательный разработчик и человек! Последний раз мы с ним были на связи в начале марта, уже после начала известных событий. Он с Днепра (Украина). Дай Бог живу ему быть!

p.s. могу еще сказать, что контент Youtube я не смог парсить этим компонентом. Я хотел с аккаунта вытянуть список всех видео с описаниями. Но этот контент защищен. Нужная информация содержится вот в таких блоках:

<body dir=«ltr» no-y-overflow><script nonce=«bWOe93ZrXZnCT0wRhQ8peg»>var ytInitialPlayerResponse = {«responseContext»:{«serviceTrackingParams»:[{«service»:«GFEEDBACK»,«params»:[{«key»:«is_alc_surface»,«value»:«false»},{«key»:«ipcc»,«value»:«0»},{«key»:«is_viewed_live»,«value»:«False»},{«key»:«premium_membership»,«value»:«non_member»},{«key»:«has_unlimited_entitlement»,«value»:«False»},{«key»:«has_alc_entitlement»,«value»:«false»},{«key»:«logged_in»,«value»:«1»},{«key»:«e»,«value»:«1714243,9406000,23804281,23882685,23918597,23934970,23940248,23946420,23966208,23983296,23986028,23998056,24001373,24001998, и далее еще много-много буков....

#5 [ЕСТЬ РЕШЕНИЕ] После повторного редактирования записи контента типа "Страница" получаю Notice 11 октября 2022 в 13:09

Пусто

...Изображение
#6 [ЕСТЬ РЕШЕНИЕ] После повторного редактирования записи контента типа "Страница" получаю Notice 11 октября 2022 в 12:27

 bestit, надо смотреть в базе данных в таблице cms_activity_types, есть ли там запись у которой controller = content и name = add.системное_имя_вашего_типа_контента. Если нет, то надо добавить, выглядит это примерно так

Loadырь

Спасибо, Loadырь! Вы и здесь успеваете помогать 😉

Прикладываю мои значения.

Изображение

Сравним две таблицы. Стандартные Страницы ('pages') здесь отображены в первой строке. У них свой одноименный контроллер. А все новые создаваемые типы контента проходят контроллер 'content' и автоматом сюда попадают при создании. При редактировании в мною созданных типах контента Notice не возникает. Также Notice не возникает при создании новой страницы. Возникает только при последующих ее редактированиях.

Второй момент, эта таблица меняется через настройки компонента 'Лента активности'. В столбце 'is_enabled' прописывается '1'. Но управлять можно почему-то только методом добавления контента 'add'. 

Изображение

Можно, конечно, попробовать вставить в БД такую строку: 

  1. INSERT cms_activity_types(is_enabled, controller, name, title, description)
  2. VALUES (0, 'pages', 'update.pages', 'Редактирование страниц', 'редактирует страницу %s');

Здесь я не уверен какое именно значение нужно прописать в столбец 'name': 'update.pages' или 'edit.pages'

Но, в целом, мне кажется, что это не совсем то, что в данной ситуации правильно делать. Ведь то, что редактируется и проходит контроллер 'content не вызывает этот Notice.

Поэтому то, что предлагает Сергей Сергеевич в моем случае мне кажется более правильным. И получается, что логическая ошибка присутствует где-то  в обработке контроллера 'pages' в самой InstantCMS.

Сергей Сергеевич, благодарю! Ваше решение помогло.

#1 [ЕСТЬ РЕШЕНИЕ] После повторного редактирования записи контента типа "Страница" получаю Notice 10 октября 2022 в 21:00

Сайт на версии 2.15.2

Включал режим отладки (обновлялся с 2.15.1). Обновлялся стандартно, по инструкции, все как обычно. Прошло успешно.

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

Notice: Trying to access array offset on value of type bool in ..../public_html/system/controllers/activity/frontend.php on line 71 Warning: Cannot modify header information — headers already sent by (output started at .../public_html/system/controllers/activity/frontend.php:71) in ..../public_html/system/core/controller.php on line 1216

Стал разбираться. При создании новой страницы — все нормально. При повторном редактировании и сохранении только что созданной — предупреждение появляется, при этом страница все же обновляется. Посмотрел в код frontend.php. Функция updateEntry(). 71 строка — это return

Вставил вывод переменной и получил, что переменная $type равна bool(false). Что же тогда получается может быть в $type['id']? Получаю NULL и этот же Notice

  1. public function updateEntry($controller, $name, $subject_id, $entry){
  2.  
  3. $type = $this->model->getType($controller, $name);
  4.  
  5. list($type, $subject_id, $entry) = cmsEventsManager::hook('activity_before_update_entry', [$type, $subject_id, $entry]);
  6.  
  7. return $this->model->updateEntry($type['id'], $subject_id, $entry);
  8. }

Методом научного «тыка» нашел, что если включен стандартный компонент «Лента активности», то при редактировании страницы получаю предупреждение. Если отключаю этот компонент — предупреждение исчезает. Причем в настройках Ленты активности не стоит галка на контенте «Страницы». Впрочем, установка этой галки в этих опциях не меняет ситуацию.

Подскажите, пожалуйста, как можно исправить данную проблему не отключая компонент «Лента активности»?

#7 [ЕСТЬ РЕШЕНИЕ] Восстановление пароля 27 февраля 2022 в 18:11

Всё отлично, вопрос решен.
Допустил небольшую ошибочку в Панель управления Настройки/Сессии/домен прописал с ошибкой и голова кругом два дня.))) 

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

Спасибо за подсказку! Бился несколько дней с похожей ситуацией. Оказалось в config.php  значение параметра 'cookie_domain' не поменял на новое после переноса сайта с локального web сервера на хостинг. Нужно было указать полностью имя нового домена. После этого я смог авторизоваться.

#1 Подсветка синтаксиса html кода в TinyMCE5 26 января 2021 в 19:21
Здравствуйте. Может кто подскажет способ как подсветить исходный html-код страницы в редакторе TinyMCE5?
Кроме дорогой платной подписки в размере 25$/месяц! на тарифе "Cloud Essential" куда включен Advanced Code Editor делающий такую подсветку.

Для 4-ой версии в сети есть какие древние варианты с подключением highlight.js Но там для меня все довольно сложно и еще не понятно, как поведут себя старые библиотеки с 5 версией редактора.
#8 [ЕСТЬ РЕШЕНИЕ] Как поднять карму. Направьте, пожалуйста на путь истинный. 22 октября 2019 в 12:42
Всем добрый день! Настроение от вашего участия уже поднялось! Ну и карма подросла. zstДрузья, спасибо!
Владимир Савенко, Вам особая благодарность. Что-то я все про себя, да про себя… Действительно, главное не забывать помогать другим!
#9 [ЕСТЬ РЕШЕНИЕ] Как поднять карму. Направьте, пожалуйста на путь истинный. 21 октября 2019 в 21:38


люди помогают по моим вопросам, а поднять им рейтинг я не могу.

@bestit
Записывайте всё на бумажку, когда-нибудь карма поднимется, потом всем и поднимите рейтинг, согласно списка laugh

Loadырь

Я уже почти разучился на бумажку записывать. Да и вообще, мне лично трудно регулярно что-то такое вести. Дневники никогда не вел. Типа регулярно планировать тоже не особо получается. Пытался Trello использовать, тоже хватило не на долго...
Loadырь, как я понимаю, Вы разработчик этого форума. Поделитесь алгоритмом поднятия кармы. Хотя бы в каком файле искать? joke
#1 [ЕСТЬ РЕШЕНИЕ] Как поднять карму. Направьте, пожалуйста на путь истинный. 21 октября 2019 в 21:19
Добрый вечер.
Скоро год, как я включился в ряды пользователей этой интересной гибкой системы. Пару сайтов уже в бою. Это не для похвалы пишу, а чтобы как-то представится. Конечно, пока вопросов у меня намного больше, чем я могу кому-то помочь с ответом, но по-возможности, все, что нахожу интересное в системе для обсуждения, стараюсь выносить в посты на форум. Писать где попало, что попало просто для количества — это не "наш метод".

Друзья, подскажите, как повысить уровень в сообществе InstantCMS, чтобы, например, появилась возможность говорить спасибо в карму? А то люди помогают по моим вопросам, а поднять им рейтинг я не могу. У всех ли ограничение на загрузку фото в сообщение на форуме в 5 штук? Блог создать не могу. Карма нулевая… Что делать? В Правилах ответа не нашел. На форуме тоже. Возможно, плохо искал. Короче, ощущаются неудобства. Не хватает рейтинга, чтобы полноценно общаться.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.