Меню действий

Меню действий

#16 8 декабря 2016 в 22:03

В профиле пользователя нужна позиция для виджетов. Это можно реализовать?

Александр Потапов
теоретически можно))
1. В схему шаблона (..\templates\default\scheme.html) прописываете позицию.
2. Вставляете немного модифицированный (на предмет получения виджетов) выше код
3. В ..\templates\default\controllers\users\profile_view.tpl.php в нужное место прописываем <?php $this->widgets('название_позиции'); ?>
#17 8 декабря 2016 в 22:13


В профиле пользователя нужна позиция для виджетов. Это можно реализовать?

Александр Потапов
теоретически можно))
1. В схему шаблона (..\templates\default\scheme.html) прописываете позицию.
2. Вставляете немного модифицированный (на предмет получения виджетов) выше код
3. В ..\templates\default\controllers\users\profile_view.tpl.php в нужное место прописываем

Val

второй пункт можно подробнее?
#18 8 декабря 2016 в 22:31

2. Вставляете немного модифицированный (на предмет получения виджетов) выше код

Val
Вот это будет сложнее. В общем-то, в этом вся проблема))
#19 8 декабря 2016 в 22:32
facepalm


2. Вставляете немного модифицированный (на предмет получения виджетов) выше код

Val
Вот это будет сложнее. В общем-то, в этом вся проблема))

DK
#20 8 декабря 2016 в 23:07

второй пункт можно подробнее?

Александр Потапов
примерно так:
  1. <?php
  2. cmsCore::getInstance()->runWidgets();
  3. $this->widgets('название_позиции');
  4. unset($this->widgets);
  5. ?>
#21 8 декабря 2016 в 23:18

  1. unset($this->widgets);

Val
Не могли бы Вы расшифровать значение вот этого? Изначально всё было так же, только без этой строчки. В итоге все виджеты на странице дублировались.
#22 8 декабря 2016 в 23:30

В итоге все виджеты на странице дублировались.

DK
=) Вот чтобы не дублировались эта строчка удаляет все виджеты которые были отрендерены ранее.
Это костыльный вариант, но вариант))

cmsCore::getInstance()->runWidgets(); // получаем все виджеты на странице и формируем их html-вид
$this->widgets('название_позиции'); // выводим только виджеты из указанной позиции
unset($this->widgets); // удаляем полученные ранее в шаге 1 виджеты
чуть позже движок снова вызывает метод cmsCore::getInstance()->runWidgets(); и уже системно показывает виджеты

если нужно выводить один виджет лучше генерить его как я показывал выше, без дополнительных расходов.
В принципе не исключается и более системный подход вместо слепой генерации всех виджетов ( cmsCore::getInstance()->runWidgets(); ), делаем запрос в БД, получаем виджеты привязанные к нашей позиции, затем уже их рендерим и показываем.
#23 8 декабря 2016 в 23:47

Вот чтобы не дублировались эта строчка удаляет все виджеты которые были отрендерены ранее.

Val
Я в php -0. И вот так по-тихонечку, шаг за шагом, да может и стану +0)) Спасибо Вам большое!
#24 27 февраля 2018 в 16:26
Здравствуйте! Скажите пожалуйста — где находится код — меню действий пользователя? pastenow.ru/b7d30d8047c7518b086f1f984064bb8a
#25 27 февраля 2018 в 16:41
@tirlako, полагаю это виджет Меню Действий расположенный в сайдбаре.
#26 27 февраля 2018 в 16:41
Посмотрите через инспектор кода.
#27 27 февраля 2018 в 17:11


Посмотрите через инспектор кода.

Developper

Не совсем понял вас — объясните пожалуйста
#28 5 февраля 2019 в 22:46

Файл \templates\default\controllers\users\profile_view.tpl.php найти
Код PHP:
<?php echo html_avatar_image($profile['avatar'], 'normal', $profile['nickname']); ?>
заменить на
Код PHP:
<?php echo html_avatar_image($profile['avatar'], 'normal', $profile['nickname']); ?>
<?php $this->toolbar(); ?>

Evanescence
С обновленной InstantCMS 2.11.0 нет такого кода
  1. <?php echo html_avatar_image($profile['avatar'], 'normal', $profile['nickname']); ?>
  2.  
#29 6 февраля 2019 в 19:22

С обновленной InstantCMS 2.11.0 нет такого кода

ignat
Это вывод аватарки пользователя. Соответственно в новой версии надо искать
  1. <div id="avatar" class="block">
  2. <?php echo html_avatar_image($profile['avatar'], $fields['avatar']['options']['size_full'], $profile['nickname'], $profile['is_deleted']); ?>
  3. сюда вставляем вывод меню
  4. </div>
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.