Тип поля "Список пользователей" помогите доработать! 2.X

 
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1839
https://disk.yandex.ru/d/OVLFwapN2YWTQA
Посетитель
small user social cms
Сообщений: 58
Мне надо вывод такой во фронтеде при редактировании записи, а не в админки.
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1839
Какая разница? Самый простой вариант. В вашем tpl.php файле.
Код PHP:
  1. <input type="text" onclick="icms.UsList(this)" name="<?php echo $field->element_name; ?>" id="uslist" class="" value="<?php echo $value; ?>" />
  2. <div></div>
  3. <?php ob_start(); ?>
  4. <script>
  5. icms.UsList = function(e){
  6.  
  7. if(e.value != '') alert(e.value);// Если поле не пустое отправляете запрос на сервер, там выполняете поиск по букве, возвращаете совпадения и выводите в div.
  8. }
  9. </script>
  10. <?php $this->addBottom(ob_get_clean()); ?>
Но думаю, если поискать,то и системными методами можно обойтись.
P.S. Хотя наверное onchange лучше использовать.
Редактировалось: 1 раз (Последний: 4 мая 2021 в 14:21)
Посетитель
small user social cms
Сообщений: 58
Lora:

Какая разница? Самый простой вариант. В вашем tpl.php файле.
Код PHP:
  1.  
  2.  

не работает
Тип поля \"Список пользователей\" помогите доработать!
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1839
Что не работает? Вы похоже вообще не кодер. Зачем писали, помогите? Заказали бы разработку. Рублей за пятьсот, думаю, вам бы сделали. А если хотите сами, то начните с чего попроще.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4094
@CEH9I:
Спасибо за ответ, но вылезает ошибка
Добавьте эту строку https://github.com/instantsoft/icms2/blob/master/system/fields/list.php#L180
в ваш файл \system\fields\us.php где-то после этого
Код PHP:
  1. $this->data['selected'] = explode(',', $value);
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4094
Сейчас поглядел код этого поля для вывода на фронте. Заметил это
Код PHP:
  1. $getmodel = new cmsmodel;
  2. $getmodels=$getmodel->get('users_fields',false,'name');
  3. $val=explode(',', $value);
  4. $users_model = cmsCore::getModel('users');
  5. foreach ($val as $key => $uset){
  6. $use = href_to_profile($users_model->getUser($uset));
  7. $userr=$users_model->getUser($uset);
  8. $card_fields['email'] = 1;
  9. $content_model = cmsCore::getModel('content');
  10. $content_model->setTablePrefix('');
  11. $content_model->orderBy('ordering');
  12. $fields = $content_model->getContentFields('users');
Дальше смотреть не стал. Печалька. Тормоза вас ждут на сайте. Особенно, если в списке его выведете.
Посетитель
small user social cms
Сообщений: 58
Loadырь:

Сейчас поглядел код этого поля для вывода на фронте. Заметил это
Код PHP:
  1. $getmodel = new cmsmodel;
  2. $getmodels=$getmodel->get('users_fields',false,'name');
  3. $val=explode(',', $value);
  4. $users_model = cmsCore::getModel('users');
  5. foreach ($val as $key => $uset){
  6. $use = href_to_profile($users_model->getUser($uset));
  7. $userr=$users_model->getUser($uset);
  8. $card_fields['email'] = 1;
  9. $content_model = cmsCore::getModel('content');
  10. $content_model->setTablePrefix('');
  11. $content_model->orderBy('ordering');
  12. $fields = $content_model->getContentFields('users');
Дальше смотреть не стал. Печалька. Тормоза вас ждут на сайте. Особенно, если в списке его выведете.

после добавления кода выше, ошибка пропала, но поле для ввода текста не появилось.

И насчет кода что в нем не так? Доступ к этому полю для изменения будет только админ

Тип поля \"Список пользователей\" помогите доработать!
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4094
@CEH9I:
после добавления кода выше, ошибка пропала, но поле для ввода текста не появилось.
Поле для ввода и не появится. Появиться должен обычный селектор, в котором при количестве строк (пользователей) более 8 появится поле для фильтрации по этому списку в селекторе. И судя по скрину, селектор с мультивыбором появился, но в консоли браузера есть кучка ошибок яваскриптов, которые блокируют появление этого "поля для ввода".
@CEH9I:
И насчет кода что в нем не так?
Никакой оптимизации по запросам в бд. Создаются экземпляры модели до цикла два раза и во время цикла по количеству пользователей выбранных админом. И это работает при выводе на сайте для всех, даже для гостей. Если админ выберет 50 пользователей, то это будут 50 запросов в бд, только для того, чтобы вывести Логин и ссылку на каждого пользователя. И так для каждого вывода этого поля. В списке у вас выводится допустим 15 записей. Если это поле вывести в списке, то умножайте 15*50 = ... Дальше сюда можно добавить пару виджетов со списками записей с этим полем из других разделов или типов контента и в результате несложных математических вычислений вы поймете сколько у вас будет запросов в бд для получения только логина и ссылки на профиль пользователя.
В начало страницы
Предыдущая темаПерейти на форум:
Страницы: Первая Предыдущая 1 2
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.