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

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. — Вы заходя к себе на страницу профиля видите тот же виджет, но заходя уже ко мне на страницу профиля Вы этого виджета уже не видите.

Возможно не совсем понятно, прошу прощение за абракадабру))
#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.