wir

wir

+5
Репутация
4
Рейтинг
#1 [ЕСТЬ РЕШЕНИЕ] Хук content_TK_before_list плюс Шаблон default_list.tpl.php 5 апреля 2022 в 15:00

Добрый день.
ICMS 2.15.1
Хук — content_TK_before_list 
Шаблон — default_list.tpl.php

Попытка перебрать элементы в хуке

  1. class onContentContentTkBeforeList extends cmsAction {
  2.  
  3. public function run($data){
  4.  
  5. list($ctype, $items) = $data;
  6.  
  7. foreach($items as $item){
  8. $item['new_bind'] = 8888888;
  9. print_r($item);
  10. }
  11. $items['new_bind_msg'] = 55555;

и вывести их в шаблоне заканчивается вот так

  1. // Из хуковского принта внутри дампа выводятся $item['new_bind'] = 8888888;
  2.  
  3. <div data-test-hook="<?php print_r($items); ?>"></div> // Не выводятся внутри дампа $item['new_bind'] = 8888888;
  4.  
  5. <?php foreach($items as $item){ ?>
  6.  
  7. <div data-cookie-chats="<?php print_r($items['new_bind_msg']); ?>" // Выводится 55555

не могу объяснить такое противоречивое поведение.
Прошу помощи у знатоков!

Как добиться того чтобы в шаблоне выводилась переменная  $item['new_bind'] 

#1 [ЕСТЬ РЕШЕНИЕ] user[id] и user[slug] 26 февраля 2022 в 07:52

CEH9I, благодарю вас за развернутый ответ!

#2 [ЕСТЬ РЕШЕНИЕ] user[id] и user[slug] 25 февраля 2022 в 13:51

Дорогой, CEH9I, совершенно с вами согласен. И все же дампы говорят о том что если user[slug] не был заполнен пользователем, то в user[slug] возвращается user[id].

При этом код с user[slug] прекрасно работает не прибегая к условиям empty или isset. Когда user[slug] в БД нет. то отображает user[id].

Интересует вопрос на сколько это надежно, нет ли каких-то условий?

#1 [ЕСТЬ РЕШЕНИЕ] user[id] и user[slug] 24 февраля 2022 в 14:58

Добрый день.

В дампах обратил внимание, что user[slug]  принимает значение  user[id]  если он не определен пользователем.
Вопрос к знатокам: Можно ли заменить user[id]  на  user[slug]   из  getUser($user_id)  при формировании ссылок в профиле пользователя?

P.S. В БД обратил внимание, что некоторые (не все) ячейки в user[slug] были заполнены цифрой совпадающей с user[id]. Почему это происходит? При каких условиях? 

#3 Работа в команде 23 февраля 2022 в 09:17

Добрый день.
Это очень интересная, трендовая тема.
Могли бы вы составить набросок на ТЗ по пунктам, чтобы можно было обсуждать и дополнять? Функционал, какие «механизмы» уже существуют в ICMS (в коробке и от разработчиков), чем хотелось бы дополнить?

#4 [ЕСТЬ РЕШЕНИЕ] Нотисы в 2.15.1 в Профиле пользователя 22 февраля 2022 в 09:02

wir, пересохраните настройки компонента «Профили пользователей»

Fuze

Да, все верно!
Неожиданное решение, как в квесте, сразу не догадаешься. 
Fuze, с Вами очень приятно иметь дело! 🙂

#1 [ЕСТЬ РЕШЕНИЕ] Нотисы в 2.15.1 в Профиле пользователя 21 февраля 2022 в 12:41

Нотисы в 2.15.1 в Профиле пользователя при редактировании на вкладке приватность

Notice: Undefined index: is_wall in/home/c14137/test.um-ek.ru/www/system/controllers/wall/hooks/user_privacy_types.phpon line11

  1. <?php
  2.  
  3. class onWallUserPrivacyTypes extends cmsAction {
  4.  
  5. public function run() {
  6.  
  7. $users_options = cmsController::loadOptions('users');
  8.  
  9. $types = [];
  10.  
  11. if ($users_options['is_wall']) {

При выключенной Стене.

#5 [ЕСТЬ РЕШЕНИЕ] Поддержка языковых файлов из отдельной специальной директории /system/languages/ru/fields/ 28 января 2022 в 18:19

Zau4manSonat, всё верно. Константы доступны после создания объекта поля.

Если нужно использовать константу для свойства $title, то это нужно делать в конструкторе, как, например, тут.

Fuze

Все верно !
Всем участникам большое спасибо !
Юбиляра еще раз поздравляем с ЮБИЛЕЕМ !!!

Изображение

#6 [ЕСТЬ РЕШЕНИЕ] Поддержка языковых файлов из отдельной специальной директории /system/languages/ru/fields/ 28 января 2022 в 12:36

 wir, я не уверен, но наверное нужно не создавать /system/languages/ru/fields/field_name/field_name.php, а надо просто /system/languages/ru/fields/field_name.php?

Panda58dev

Нет, так не работает и файл не подцепляется.
В релизе написано

пример использования — поле «Категории контента»;

#1 [ЕСТЬ РЕШЕНИЕ] Поддержка языковых файлов из отдельной специальной директории /system/languages/ru/fields/ 28 января 2022 в 11:58

Добрый день.

Для полей добавлена поддержка языковых файлов из отдельной специальной директории /system/languages/ru/fields/

Решил использовать эту возможность последнего релиза.

Создал одноименную с полем директорию по указанному пути и в ней одноименный php-файл со списком define
Сделал вставки  ' _F_ ' в константах поля, как в поле Категории.
В системном файле указал 

  1. protected $use_language = true;

но все время получаю Warning: Use of undefined constant

Причем если действовать по старому правилу, т.е. вставить код в system/languages/ru/language.php, то все работает.
Но при этом если запустить одновременно и языковой файл поля, то выдает нотисы, что константы уже определены в нем, т.е. файл подключен.

Что я недоучитываю при создании языкового файла поля?

#7 Юбилей 40 лет Fuze! 28 января 2022 в 10:09

С днем рождения !  С юбилеем !

Творческих успехов, здоровья, финансового благополучия, личного счастья ..........

#8 [ЕСТЬ РЕШЕНИЕ] Нотисы в поле "Список людей" InstantSoft на 2.15 6 января 2022 в 15:07

СПАСИБО БОЛЬШОЕ ЗА РАЗЪЯСНЕНИЯ !

Думаю можно закрыть тему.

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

!!!

#9 [ЕСТЬ РЕШЕНИЕ] Нотисы в поле "Список людей" InstantSoft на 2.15 6 января 2022 в 14:08
  • public function getStringValue($value) {
  • return '';
  • }
Нифигаccе о-го-гошеньки

Спасибо Fuze и Нифигаccе о-го-гошеньки. Отличное академическое решение. 
А здесь на выходе должна быть пустая строка?

#1 [ЕСТЬ РЕШЕНИЕ] Нотисы в поле "Список людей" InstantSoft на 2.15 6 января 2022 в 13:15

На 2.15 вылетает несколько нотисов в поле «Список людей» по классическим запросам:

$this->item['ctype_name'],   $this->item['id'],   $this->item['user_id']  в самом начале страницы, после первого <div> в <body>

  1. <body>
  2. <div id="popup-manager"></div><br>
  3. <b>Notice</b>: Undefined index: ctype_name in <b>.../system/fields/pplist.php</b> on line <b>134</b><br>
  4. <br>
  5. <b>Notice</b>: Undefined index: id in <b>.../system/fields/pplist.php</b> on line <b>136</b><br>
  6. <br>
  7. <b>Notice</b>: Undefined index: id in <b>.../system/fields/pplist.php</b> on line <b>150</b><br>
  8. <br>
  9. <b>Notice</b>: Undefined index: user_id in <b>.../system/fields/pplist.php</b> on line <b>176</b><br>

А в поле шаблона и в var_dump($item) они присутствуют.

Очевидно что поле срабатывает еще до формирования страницы. Как этого избежать на 2.15   ?

#10 Создание связи в Записи ТК из формы 3 июля 2021 в 10:38

Конечно нужно. Запись в таблицу контента ..fields, например.
Возможно таким волшебным образом решится и вопрос с группами).

Lora

Вы предлагаете вносить изменения в настройки полей при каждом создании Записи ТК? Или не об этом…
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.