• Обратная связь
  • Карта сайта
  • Отзыв
  • Комментарии
  • Форум
discord
Технические заметки
  • Главная
  • Лекции
  • Практикум
  • Обзоры
  • Сравнение
  • Нормы
  • События
  • Вход
ГлавнаяMaxSite CMS
Как должна работать насосная станция противопожарного водопровода.
Загрузка файлов комъюзерами - плагин для MaxSite CMS.

Пользовательские пункты в меню и breadcrumbs в MaxSite CMS.

24 февраля 2019 г.Просмотров: 2961Комментарии: 0
MaxSite CMSMaxSite

Любой плагин может создавать как дополнительные публичные страницы сайта, так и персональные личные страницы пользователей. В первом случае не мешало бы сделать интеграцию в уровни хлебных крошек, во втором - вывод ссылки на страницу в меню пользователя.

Как в MaxSite CMS плагину добавить свои пункты в меню пользователя и свои уровни в breadcrumbs?

Эта задача так или иначе всплывала раньше и решал ее через пень-колоду. Формальную постановку задачи получилось сделать при разработке плагина "Загрузка файлов комъюзерами". Плагин создает как страницу для просмотра загрузок другими пользователями, так и страницу для управления пользователем своими загрузками.

Свой пункт в меню комюзера для MaxSite CMS.

Эта задача решается на удивление легко.

Давайте посмотрим на содержимое файла-компонента _menu.php - можем это сделать прямо из админки.

Видно, что наша цель достигается при помощи хука "main_menu_add_comuser".

Пропишем в файле index.php плагина строчки:

# функция автоподключения плагина
function comuser_uploader_autoload($args = array())
{    
    mso_hook_add( 'main_menu_add_comuser', 'comuser_uploader_menu'); // добавление в меню ссылки на загрузки
    *******
    *******
    *******
}
function comuser_uploader_menu() 
{
    *******
    *******
    *******
  return NR .  $profile_slug . '/uploads | ' . $uploads_title;
}

В результате чего получим красивый результат:

Добавление своих пунктов в хлебные крошки.

С хлебными крошками немного сложнее.

Посмотрим на содержимое файла-компонента _breadcrumbs.php - там нет ничего такого, что нам нужно.

Добавим несколько строчек кода (можем это сделать прямо из админки):

if (isset($breadcrumbs2)) 
{
  echo $breadcrumbs2;
  if (isset($breadcrumbs3)) 
  {
     echo $breadcrumbs3;
     if (isset($breadcrumbs4)) 
     {
       echo $breadcrumbs4;
     }
  }
}

Теперь в файле, который в плагине отвечает за генерацию страницы сайта, пропишем строчки:

// для компонента хлебных крошек
$breadcrumbs2 = '<a class="i-angle-right mar10-l" href="' . getinfo('siteurl') . $profiles_slug . '">' . $options_template['profiles_title'] . '</a>';
$breadcrumbs3 = '<span class="i-angle-right mar10-l">' . $options_template['uploads_title'] .'</span>';  
$breadcrumbs4 = '<span class="i-angle-right mar10-l bold">' . $comusers_nik .'</span>';
// начало вывода  
require(getinfo('shared_dir') . 'main/main-start.php');
echo NR . '<div class="type type_users_form">' . NR;

Строчки должны быть обязательно перед вызовом main-start.php.

Теперь мы можем видеть такое:

Конечно, после каждого обновления MaxSite CMS необходимо будет снова добавлять строчки в компонент _breadcrumbs.php. Ну или же создать свой компонент.

Модифицированные компоненты из шаблона default MaxSiteCMS-103.

В архиве компоненты top1_1, _menu1 и _breadcrumbs1.

Скачать: components_tmb.zip.

Компонент _breadcrumbs1 выводит, заданные заранее переменные $breadcrumbs2(-4).

Компонент _menu1 содержит меню с перенесенным вправо пунктом меню пользователя.

Компоненты top1_1 изменен лишь для того чтобы он выводил не базовые, а измененные компоненты.

Версия MaxSite 106.

В текущей версии MaxSite (106) появился компонент breadcrumbs (не путать с рассмотренным выше _breadcrumbs).

Этот компонент позволяет добавлять свои элементы в вывод хлебных крошек (github.com/maxsite/cms/issues/393).

Поэтому пришлось добавить поддержку такого варианта в плагины: comuser_uploader, dialog, profile.

Получилось сразу три способа вывода хлебных крошек.

Вывод хлебных крошек шаблонными файлами самого плагина можно отключить, если осуществляется вывод компонентом.

В итоге код формирования хлебных крошек получился такой:

// хлебные крошки
    
$discussion_link = '<a href="' . $siteurl . $options['discussion_slug'] .'/' . $comment_discussion_id . '">' . $discussion_title . '</a>';
$comment_link = '<a href="' . $siteurl . $options['goto_slug'] . dialog_get_url($comment_discussion_id , $comment_id) . '" title ="' . $options['comment_page'] . '">' . $options['comment_number'] . $comment_id . '</a>';
    
// вывод отключается по опции
if ($options['bread_out']) 
    echo '<div class="breadcrumbs">' . $main_link  . $options['breadcrumbs_razd'] . $discussion_link . $options['breadcrumbs_razd'] . $comment_link . $options['breadcrumbs_razd'] . $options['title_edit_comment_form'] . '</div>';
 
// для компонента хлебных крошек top1_1
$breadcrumbs2 = '<span class="i-angle-right mar10-l">' . $main_link .'</span>';  
$breadcrumbs3 = '<span class="i-angle-right mar10-l">' . $discussion_link .'</span>'; 
$breadcrumbs4 = '<span class="i-angle-right mar10-l">' . $comment_link .'</span>'; 
$breadcrumbs3 = '<span class="i-angle-right mar10-l bold">' .  $options['title_edit_comment_form'] .'</span>'; 
 
// для компонента хлебных крошек breadcrumbs    
$comp_breadcrumbs_add = array();
$comp_breadcrumbs_add[$options['name']] = $siteurl . $options['main_slug'];
$comp_breadcrumbs_add[$discussion_title] = $siteurl . $options['discussion_slug'] .'/' . $comment_discussion_id;
$comp_breadcrumbs_add[$options['comment_number'] . $comment_id] = $siteurl . $options['goto_slug'] . dialog_get_url($comment_discussion_id , $comment_id);
$comp_breadcrumbs_add[$options['title_edit_comment_form']] = '';
 
// переворачиваем, если указано в опциях 
if ($options['reverse_breadcrumbs']) array_reverse($comp_breadcrumbs_add);
mso_set_val('comp_breadcrumbs_add', $comp_breadcrumbs_add);

  • Плагины MaxSite CMS
    • Плагин profile личного кабинета для MaxSite CMS
    • Плагин My_ESP8266 для MaxSiteCMS.
    • Версия 02 плагина My_ESP8266 для MaxSiteCMS.
    • Настраиваемое облако меток для MaxSite CMS.
    • Загрузка файлов комъюзерами - плагин для MaxSite CMS.
    • Пользовательские пункты в меню и breadcrumbs в MaxSite CMS.
    • Плагин личного кабинета комюзера profile2 для MaxSite CMS .
      • Алгоритм расстановки пожарных извещателей согласно СП 484
    • Плагин алфавитный каталог для MaxSite CMS
    • Цветные блоки на основе UniCSS - плагин для MaxSite CMS
    • Похожие по меткам страницы для MaxSite CMS
    • Плагин форума Dialog для MaxSite CMS.
    • Галерея изображений для MaxSite CMS Taggallery-2-0
    • Галерея изображений для MaxSite CMS Taggallery-2-5
    • Плагин tags_tree дерева меток для MaxSite CMS
    • Плагин CSV Banner для импорта списка товаров AliExpress в MaxSite CMS

Еще записи по теме

Новая версия плагина галерей для MaxSite CMS Taggallery-2.2.
Новая версия плагина галерей для MaxSite CMS Taggallery-2.2.
Новая версия плагина галерей для MaxSite CMS Taggallery-2.1
Новая версия плагина галерей для MaxSite CMS Taggallery-2.1
Галерея изображений для MaxSite CMS Taggallery-2-0
Галерея изображений для MaxSite CMS Taggallery-2-0
Компонент для MaxSite CMS, создающий в header коллаж из изображений
Компонент для MaxSite CMS, создающий в header коллаж из изображений
Сравнение показаний двух датчиков DHT11 в динамике.
Сравнение показаний двух датчиков DHT11 в динамике.
Выводим картинки в компоненте для MaxSite CMS.
Выводим картинки в компоненте для MaxSite CMS.
Оставьте комментарий.

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question


Выберите для анонимного комментирования (комментарий будет опубликован после проверки).

     

  

Выберите если нужно войти или зарегистрироваться и оставить комментарий от своего аккаунта.

Войти, используя

(обязательно)

Подписка на новости
discord

Email:

Регистрация

Вход через
Разделы
  • Пожарная сигнализация124
    • Инструкции13
    • Проекты2
  • Автоматика55
  • Отопление33
  • Мониторинг30
  • Электрика16
  • Пожаротушение32
  • Умный дом32
  • Arduino12
  • Гаджеты32
  • MaxSite CMS26
Актуальное
  • СП 484
  • Автоматизация теплого пола
  • Болид vs Рубеж
  • С2000-АСПТ
  • ПЦН в кармане
  • Системы противопожарной зашиты
  • Cloud IoT
  • Проектирование
  • Программирование
  • Ссылки
Последние комментарии
Можно ли использовать независимый расцепитель в противопожарных системах
  • Владимир Мельников » Непрерывный контроль целостности цепей управления - надуманная задача. При составлении нормативных документов соответствующее требование ничем не обосновано. Дело в том,...
  • Андрей » Непрерывный контроль целостности цепей управления - надуманная задача. Но и сама пожарная сигнализация зачастую тоже надуманная затея, по крайней мере на...
Какие бывают табло "Выход" и как их правильно подключить
  • Андрей » табличка выход горит настолько ярко, как светильник, что ночью не возможно спать Хорошие видимо таблички. Обычно они еле светятся...
  • Андрей » В пансионате думаю можно и переделать алгоритм работы - чтобы загоралась только во время тревоги.
Достаточно ли на объекте установить один пожарный прибор?
  • Андрей » с блоками для Гранит Видел такой пару раз в старинных Гранитах. Работали.
Последние загрузки
Все загрузки
Дискуссии на форуме
  • КПБ
  • Выбор ОПС для коттеджа
  • Отключение питания раздвижных дверей при пожарном сценарии.
Реклама

100pcs/Pack E0508 E7508 E1008 E1508 E2508 Insulated Ferrules Terminal Block Cord End Wire Connector Electrical Crimp Terminator

Solenoid Valve 12V/24V/110V/220V Electric Valve Brass 1/4" 3/8" 1/2" 3/4" 1" Normally Closed Air Solenoid for Water Oil gas

Free Driver USB Wifi Adapter 600Mbps Wi fi Adapter 5ghz Antenna USB Ethernet PC Wi-Fi Adapter Lan Wifi Dongle AC Wifi Receiver

Пожарка 126 Проектирование 98 Болид 64 Лекции 58 Социальное 53 Рубеж 49 Обзор 46 Автоматика 45 Инженерные системы 38 Адресные системы 35 Курьез 35 Практикум 35 Пожаротушение 34 Отопление 33 Интернет Вещей 29 MaxSite 28 ГОСТ 26 Терморегуляторы 24 Облачный Сервис 24 Мониторинг 22 Теплый пол 21 Плагин 21 Сравнение 20 AliExpress 20 ППУ 20 СП 484 19 Законы Ома 19 Техобслуживание 19 Вентиляция 19 Эксплуатация 18 Астра 17 ППК 17 Клапана 15 Электрика 14 С2000-АСПТ 14 Оповещение 13 Рубикон 13 Arduino 13 WiFi 12 С2000М 12 Ritm 11 Датчики 11 Насосная Станция 11 Гранд Магистр 11 Юнитест 10 ESP8266 10 ВЭРС 9 ПЦН 9 Авария 8 Сценарии 8 Жилой дом 8 Отзыв 7 Программирование 7 Taggallery 7 Сообщества 7 Диспетчеризация 7 Плазма-Т 6 Освещение 6 Спрут-2 5 ПО 5 С2000-СП4 5 Гаджеты 5 GeoRITM 4 Радиоканал 4 МПН 4 МПТ 4 РИП 3 ИПДЛ 3 My_ESP8266 3 Баня 3 Firesec3 3 Рубеж-2ОП 3 Navigard 3 Версет 3 Visio 3 Гранит 3 Учет ресурсов 3 ТО 2 Security Hub 2 Zigbee 2 Гидравлика 2
  • Обратная связь
  • Карта сайта
  • Отзыв
  • События
  • Комментарии
  • Форум
© Технические заметки 2026. Работает на MaxSite CMS. ( Вход )
Автор не несет ответственность за последствия применения материалов сайта на практике.