Vladimir

Vladimir

+51
Репутация
88
Рейтинг
#1 Список пользователей, добавивших контент в определённую категорию. 24 августа 2022 в 21:52

Если не важны записи с допкатегориями, то как-то так

  1. $this->model_content->filterEqual('category_id', 5)->groupBy('user_id')->get('con_news', function ($item){
  2. return $item['user_id'];
  3. });

Иначе надо джойнить таблицу с биндами категорий.

Loadырь

Супер! Работает! Спасибо большое!

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

Так попробуйте:

  1. $cat_id = 5; /*Номер нужной категории написать вместо 5*/
  2. $category_users = $this->model_users->join('con_news', 'n', 'n.user_id = i.id')->join('con_news_cats', 'nc', 'nc.id = n.category_id AND nc.id = ' . $cat_id)->getUsersIds();
  3. /* Вместо news висать системное имя типа контента */

Я, правда, не проверял., некогда.

Ris

Спасибо! Ваш способ так же работает! Только почему-то ваши способы выдают разные ключи массива. У вас (Ris):

  1. Array ( [1] => 1 [3] => 3 )

У Loadырь:

  1. Array ( [1] => 1 [13] => 3 )

По сути, мне это не важно, мне главное id пользователей и в дальнейшем перебрать массив. 

#1 Список пользователей, добавивших контент в определённую категорию. 24 августа 2022 в 16:33

Как получить список пользователей (id), добавивших контент, в определённую категорию. Весь model контроллера users пролистал, вроде функции не нашёл, в model контроллера content тоже вроде нет. Может экшн category_view контроллера content, метод run? Но там не понятно..) Помогите, если кому понятно, как решить вопрос!

#2 Нужно подписать некоторых пользователей, на определённую категорию, определённого контента. 24 августа 2022 в 15:44

Ааа, столько время на это уходит. При том, я знаю есть люди, у которые на всю мою задачу наверное ушло бы, несколько минут) 

Вообщем, переписал немного код, и ура! Подписчики начали попадать в базу. НО, я не вижу, что-бы в счётчике на странице подписки изменилось число, как будто нет новых подписчиков. Как это исправить???!!! Вот новый код:

  1. $subscriptions = cmsCore::getModel('subscriptions');
  2. $target = array (
  3. // "hash" => "md5(serialize($target)",
  4. "title" => "Новости",
  5. "subject_url" => "news",
  6. "controller" => "content",
  7. "subject" => "news",
  8. "params" => "[]",
  9. );
  10. $subscribe = array (
  11. "user_id" =>"1",
  12. "confirm_token" => "string_random(32, 'test@test.ru')",
  13. );
  14. $subscriptions->subscribe($target, $subscribe);

И передаю всё это дело из экшена в шаблон, я так:

  1. $template = cmsTemplate::getInstance();
  2. $template->render('index', array(
  3. 'subscriptions' => $subscriptions
  4. )
  5. );

И вывожу это дело в шаблоне так, (я знаю, далеко не лучший способ, можете подсказать лучше! Мне просто нужно хотя-бы увидеть, что код отработал без ошибок):

  1. print_r($subscriptions);

Всё-таки, что-то не то. Отписаться не получается. 

#3 Нужно подписать некоторых пользователей, на определённую категорию, определённого контента. 19 августа 2022 в 11:24

 а в $subscribe нужны эти

  1. [user_id] => 1
  2. [confirm_token] => 65a93f9bec3d04946da21aa562513e2b
Loadырь

Ну так они же есть

  1. $subscribe['user_id'] = $addsub;
  2. $subscribe['confirm_token'] = string_random(32, $addsub);

Вот кстати сама функция subscribe, из контроллера subscriptions

  1. public function subscribe($target, $subscribe) {
  2. $is_now_create_list = false;
  3. if(empty($target['hash'])){
  4. $target['hash'] = md5(serialize($target));
  5. }
  6. // проверяем, нет ли такого списка
  7. $subscribe['subscription_id'] = $this->filterEqual('hash', $target['hash'])->getFieldFiltered('subscriptions', 'id');
  8. // создаём список
  9. if(!$subscribe['subscription_id']){
  10. $subscribe['subscription_id'] = $this->insert('subscriptions', $target, true);
  11. $is_now_create_list = $subscribe['subscription_id'];
  12. }
  13. $sid = $this->insert('subscriptions_bind', $subscribe);
  14. $this->reCountSubscribers($subscribe['subscription_id']);
  15. return array($is_now_create_list, $sid);
  16. }
#1 Нужно подписать некоторых пользователей, на определённую категорию, определённого контента. 18 августа 2022 в 23:25

Вообщем задача сформирована в теме. И сделать нужно это по быстрому. Самый быстрый способ, это в базу пользователей руками подписать, в таблице cms_subscriptions_bind, но там есть столбец confirm_token и я не знаю на что это влияет.

Поэтому решил попробовать простой action написать, в контроллере Users. Но не работает.

  1. <?php
  2. class actionUsersAddconaddsub extends cmsAction {
  3. public function run(){
  4. if (!$this->cms_user->is_admin) { cmsCore::error404(); }
  5. $subscriptions = cmsCore::getModel('subscriptions');
  6.  
  7. $addsubuser = [1,2];
  8.  
  9. foreach($addsubuser as $addsub){
  10. $target["title"] = "Статьи";
  11. $target["subject_url"] = '/articles/';
  12.  
  13. $subscribe['user_id'] = $addsub;
  14. $subscribe['confirm_token'] = string_random(32, $addsub);
  15.  
  16. if(!$subscriptions->isSubscribed($target, $subscribe)){
  17. $subscriptions->subscribe($target, $subscribe);
  18. }
  19. }
  20. }
  21. }
  22.  

Help! Хоть как-нибудь!

#4 CodeFest 2022, может кто собирается? 22 апреля 2022 в 22:30

Вы придёте?

Vladimir

Нет.

Почему спрашиваете?

Vladimir

Уверен, что на форуме зарегистрированы люди, которые в теме, но посещают его редко. Если мой вопрос вас смущает/раздражает — можете не отвечать.

IamB

В какой теме то? Вы же не придёте...

#5 CodeFest 2022, может кто собирается? 22 апреля 2022 в 21:47

Одна из  основных задач, найти разработчиков под iOs и Android для инстанта.

Vladimir

Можете сформулировать задачи, которые вы этим разработчикам собираетесь поставить? На каком стеке технологий  должны, по вашему мнению, работать эти разработчики?

IamB

Почему спрашиваете? Вы придёте?

#1 CodeFest 2022, может кто собирается? 18 апреля 2022 в 23:17

Думаю сходить на это мероприятие, может кто собирается? Было бы интересно с единомышленниками по instantcms встретиться. Одна из  основных задач, найти разработчиков под iOs и Android для инстанта.

https://12.codefest.ru/

#6 Есть ли сейчас проблемы с оплатой доменов? 23 марта 2022 в 10:00

Всё зависит от срока оплаты домена, вообще наверное лучше перенести. 

1 марта мне namecheap прислал письмо о том что срочно (до 06.03.2022) домены нужно перенести, тут же оформил передачу к рег ру и  7 марта домены перенеслись (там все в зоне .com). 

#7 Как поменять пресет изображений аватарок в списке пользователей? 7 января 2022 в 18:24

пресет micro здесь найти не удалось

Vladimir

Строка github.com/instantsoft/icms2/blob/master/templates/modern/controllers/users/list.tpl.php#L40 выводит персет выбранный в настройках поля в профилях пользователя. Если аватара нет, то выводится «заглушка» в этой строке github.com/instantsoft/icms2/blob/master/templates/modern/controllers/users/list.tpl.php#L42. Размер заглушки можно менять только стилями в css у avatar__inlist

Если не нравится заглушка, то можно использовать вместо нее это

  1. <?php echo html_avatar_image($profile['avatar'], $fields['avatar']['options']['size_teaser'], $profile['nickname'], true); ?>
Loadырь

Спасибо большое! Вопрос решён! А пресет выбирается здесь! /admin/controllers/edit/users/fields_edit/6

#8 Как поменять пресет изображений аватарок в списке пользователей? 7 января 2022 в 17:42

 Vladimir, я конечно могу ошибаться, но вроде сейчас для аватарок пресет можно задать прямо в настройках поля, без правок в шаблоне

Make

Так нет такого «типа контента», соответственно и настроек поля нет. 

#9 Как поменять пресет изображений аватарок в списке пользователей? 7 января 2022 в 16:46

В файле users_list.php (вроде так) меняете  micro на small 

Happy

Вы наверное этот файл имели ввиду? /templates/modern/controllers/users/list.tpl.php

Если да, то пресет micro здесь найти не удалось. 

Если нет, то хз где находится файл users_list.php, подскажете?

Vladimir

тут попробуйте templates/modern/controllers/users/profile_view.tpl.php

Happy

Так этот шаблон вроде отвечает за отображение информации в профиле пользователя, а мне нужно в списке, здесь мойсайт.рф/users

#10 Как поменять пресет изображений аватарок в списке пользователей? 7 января 2022 в 15:36

В файле users_list.php (вроде так) меняете  micro на small 

Happy

Вы наверное этот файл имели ввиду? /templates/modern/controllers/users/list.tpl.php

Если да, то пресет micro здесь найти не удалось. 

Если нет, то хз где находится файл users_list.php, подскажете?

#1 Как поменять пресет изображений аватарок в списке пользователей? 7 января 2022 в 15:28

Как поменять пресет изображений аватарок в списке пользователей? Тот который по адресу мойсайт.рф/users. По умолчания для пользователей с аватаркой там micro стоит размером 32х32, а без аватарки 64х64. Нужно поставить для тех что с аватаркой присет small 64х64.

#1 Платная доработка интернет магазина, встройка виджета почта россии. Цена вопроса 1500 руб. 27 декабря 2021 в 06:09

Добрый день!
 
Появилась необходимость встроить в интернет магазин instantcms.ru/addons/shop-for-instantcms.html виджет почты россии. Разработчик интернет магазина не может этим заняться. Техническая информация по виджету здесь widget.pochta.ru/docs.
То есть на первом этапе, при выборе способа доставки, если выбрать «почту россии» должен появляться стандартный виджет почты россии.
На виджете можно выбрать место доставки, появится цена и время доставки, после можно отметить место (это предусмотренно функционалом виджета, и параметры передаются стандартной функцией виджета callbackFunction, имя этой функции можно менять).
Далее данные о времени доставки и цене должны передаваться на сайт (там вроде всё сделано через javascript) и уже далее передаваться для формирования общей цены. Так же при распечатке счёта должна быть указана эта цена, скажем строкой выше строки «сумма всего» и в строке Курьерская доставка должна быть почта России и срок доставки.  
Я могу сделать тестовый сайт с чистым инстантом и интернет магазином и дать доступ по ftp и к базе данных. Обзор виджета здесь www.youtube.com/watch?v=MwuW5phRzRI
 
Цена вопроса 1500 руб. 

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