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

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

24 февраля 2019 г.Просмотров: 3169Комментарии: 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

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

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

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
  • Автоматика58
  • Отопление33
  • Мониторинг30
  • Электрика17
  • Пожаротушение32
  • Умный дом32
  • Arduino12
  • Гаджеты32
  • MaxSite CMS26
Актуальное
  • СП 484
  • Автоматизация теплого пола
  • Болид vs Рубеж
  • С2000-АСПТ
  • ПЦН в кармане
  • Системы противопожарной зашиты
  • Cloud IoT
  • Проектирование
  • Программирование
  • Ссылки
Последние комментарии
Можно ли использовать независимый расцепитель в противопожарных системах
  • Виталий » "Примечание. В статье применяется аббревиатура СПА (системы противопожарной автоматики), которая может резать глаза. Но к ней стоит привыкать, ибо аббревиатуру...
  • Андрей » Неправда Ваша. "Мысль изречённая есть ложь." Но это и не система сигнализации, а система оповещения.
  • Андрей » Замечательная статья, все по делу, все по полочкам, основательный инженерный подход, спасибо! И я тоже проходил подобные искания и копания,...
  • Андрей » Спасибо. Если данный участок расположен внутри щита (шкафа) управления вентиляцией, то контролировать его целостность не требуется, т.к. этот участок не подпадает...
  • Андрей » Думаю для данного случая подходит вариант из п.3.20: "между системой пожарной автоматики и другими инженерными системами" Корпус щита, шкафа вентиляции не является...
Последние загрузки
Все загрузки
Дискуссии на форуме
  • КПБ
  • Выбор ОПС для коттеджа
  • Отключение питания раздвижных дверей при пожарном сценарии.
Реклама

Wire Connector 50 / 100PCS Orange Mini Quick Connector Universal Compact Wire Connector Plug-in Wire Terminal Home Connector

LOMVUM TRUE RMS Multimeter 6000 COUNTS High Precision Digital Multimeter NCV Smart Multimeter Auto Ranging AC/DC Flashlight

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

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