Виджет на странице пользователя

InstantCMS 2.X
#1 1 мая 2020 в 16:06
Всем привет!

Подскажите пожалуйста, как правильно реализовать следующее:

Нужно поместить виджет пользователю в профиле, но при этом:

Пользователь 1 — не может видеть этот виджет у Пользователя 2 в профиле.
соответственно Пользователь 2 не может видеть этот виджет у Пользователя 1 в профиле.

Пользователи 1 и 2 должны видеть этот виджет исключительно у себя при просмотре профиля.

Всем бобра:)
#2 1 мая 2020 в 19:28
Надо вывести всего 2 бобрам по виджету или каждому бобру на сайте свой собственный виджет? Выводить на странице профиля (в позициях для вывода виджетов) или именно в профиле (компоненте)?
#3 1 мая 2020 в 19:57

Выводить на странице профиля (в позициях для вывода виджетов)

Олег Васильевич я
Да, то есть я устанавливаю виджет (в позициях для вывода виджетов) для вывода данного виджета на странице профиля всех бобров.
Но этот виджет Бобер 1 должен видеть только у себя на странице профиля, заходя на страницу профиля Бобра 2, Бобер 1 не должен видеть этого виджета:)

То есть, ставлю виджет на странице профиля для всех профилей, но каждый пользователь должен видеть этот виджет только у себя на странице профиля.

P.S. — я заходя к себе на страницу профиля вижу виджет, но заходя к Вам на страницу профиля я данного виджета не вижу.
P.S.S. — Вы заходя к себе на страницу профиля видите тот же виджет, но заходя уже ко мне на страницу профиля Вы этого виджета уже не видите.

Возможно не совсем понятно, прошу прощение за абракадабру))
Сегодня в 19:51
#4 1 мая 2020 в 20:32


То есть, ставлю виджет на странице профиля для всех профилей, но каждый пользователь должен видеть этот виджет только у себя на странице профиля.

MrDinesh
Иными словами, вы ставите один виджет для всех, но каждый видит его только у себя и считает что вы только ему его выставили…
#5 1 мая 2020 в 20:42
Если нужно чтобы любой виджет так вывести можно было, то можно позицию с дополнительной проверкой сделать или оболочку с такой же проверкой сделать. Последнее лучше делать с альтернативным текстом для тех. кому видеть содержимое нельзя (не критично, но может повлиять на формирование сетки текущей страницы).
Можно и новый виджет сделать под это дело...

Возможно не совсем понятно, прошу прощение за абракадабру)

MrDinesh
Пока только одна существенная непонятка: а есть ли у бобров пиво? look
#6 1 мая 2020 в 20:53

а есть ли у бобров пиво?

Олег Васильевич я
У меня есть. Про остальных бобров не знаю.
MrDinesh,
Всё понятно, нужен виджет, который каждый юзер видит только в своём профиле и для каждого этот виджет свой.
Вы лучше расскажите примерно, что за виджет нужен.
В движке уже есть виджет, который виден только владельцу (Аватар пользователя).
Можно сделать новый виджет и на входе воткнуть проверку на свой профиль.
#7 1 мая 2020 в 21:13

Иными словами, вы ставите один виджет для всех, но каждый видит его только у себя и считает что вы только ему его выставили....

vikont
можно и так сказать, возможно как-то добавить такой виджет?
#8 1 мая 2020 в 21:38

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

Ris
Это будет виджет HTML-блок, в этом блоке я буду выводить QR-коды, и этот блок будет доступен в профиле группе пользователей к примеру: "новые".

К примеру USER1 относиться к группе пользователей "новые"
Заходя к себе на страницу профиля он должен видеть QR.
Но USER1 заходя к USER2 в профиле он этого видеть не должен.
Также USER2 заходя на страницу пользователя USER1 не должен видеть этого QR.

Извините если морочу голову:)
#9 1 мая 2020 в 21:42
MrDinesh,
Нет, всё понятно. Каждый юзер видит только свой QR код.
Откуда этот код будет генерироваться? Вы лично каждому юзеру его будете прописывать в виджет?
#10 1 мая 2020 в 22:12

Вы лично каждому юзеру его будете прописывать в виджет?

Ris
Немного не так, это будет только один QR для всех пользователей которые относятся к группе пользователей "новые"
Каждый день я буду менять в ручную QR изменяя адрес расположения SVG, в самом блоке.

Может это поможет, сама тема что хочу сделать:

Пользователи которых я буду переопределять в группу пользователей "водители" должны видеть у себя на странице пользователя QR, который он должен показать и дать отсканировать человеку с которым он будет ехать в машине.
Человек который отсканировал QR вводит полученный номер (код) в соответствующее поле, для того что-бы я действительно знал что человек ехал с одним из водителем из группы пользователей "водители".

Теоретически QR будет одним и тем же для всех водителей 01.01.2020
а вот 02.01.2020 QR будет уже другим, для всех водителей.

я просто буду в блоке-HTML менять один раз в день адрес SVG (QR) который будет отображаться для всех водителей

Как-то так:)
#11 1 мая 2020 в 23:41
MrDinesh,
Ну, теперь и я понял столько же, сколько бобры Олега Василича…
#12 1 мая 2020 в 23:43

Как-то так:)

MrDinesh
И чем для этого "так" не угодил предложенный вариант?

На уровне шаблона:
  1.  
  2. <?php
  3. $core = cmsCore::getInstance();
  4. $user = cmsUser::getInstance();
  5. $uri_arr = explode('/',$core->uri);
  6. ?>
  7. <?php if(end($uri_arr) == $user->id) { ?>
  8. Выводим
  9. <?php } ?>
  10.  
На уровне виджета:
  1.  
  2. $core = cmsCore::getInstance();
  3. $user = cmsUser::getInstance();
  4. $uri_arr = explode('/',$core->uri);
  5.  
  6. if(end($uri_arr) != $user->id) {
  7. return false;
  8. }
  9.  
#13 2 мая 2020 в 09:20

И чем для этого "так" не угодил предложенный вариант?

Олег Васильевич я
как именно это реализовать?
Где что добавить или изменить?

Прошу прощение, не совсем понял что надо сделать:(
#14 2 мая 2020 в 12:26
Первый вариант (чтобы можно было закрыть любой виджет): если собираетесь закрывать позицию, то в main.tpl.php, если собираетесь закрывать через оболочку виджета, то сделайте клон соответствующей и оберните код в условие
Второй вариант — в файле widget.php соответствующего виджета (system\widgets\ваш_виджет или system\controllers\контроллер\виджет). Но это только в случае, если виджет иначе никак не будет использоваться. Лучше сделать клон соответствующего виджета, иначе условие будет работать в любой копии. В этом случае можно и опцию под это дело добавить.
#15 2 мая 2020 в 21:24


Вы лично каждому юзеру его будете прописывать в виджет?

Ris
Немного не так, это будет только один QR для всех пользователей которые относятся к группе пользователей "новые"
Каждый день я буду менять в ручную QR изменяя адрес расположения SVG, в самом блоке.

MrDinesh
Что то мне подсказывает, что это не оптимальное решение.
Лучше сделать компонент, который раз в сутки (время в настройках) создает всем пользователям новые QR коды и показывает их в профиле.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.

Похожие темы

Похожее в блогах

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