Меню

Как изменить шапку сайта в зависимости от типа или адреса страницы в Maxsite CMS?

Создание сайтов2852
Как изменить шапку сайта в зависимости от типа или адреса страницы в Maxsite CMS?

Здравствуйте. Уже давно на блоге Константина Белана находил статью про изменение шапки сайта в зависимости от страницы, но только сегодня я смог создать её.

Поехали!

Создаём изменяющуюся шапку сайта

Если вы используете компонент Image-select

Заходим в папку компонента и выбираем файл "image-select.php".

Файл image-celect.php

Покажу, как добавить на главной ссылку на RSS, а в статьях - подписку:

В самом конце файла вставляем:

<?php
if (is_type('home')) // Показываем, что условие должно выполняться только для главной
{
echo '<div class="rss-home"><a href="https://denis-skripnik.name/feed" target="_blank">Чтобы не пропустить новые материалы, подпишитесь на RSS</a></div>'; // Указываем, что выводить
}
else if (is_type('page')) // Условие для остальных страниц
{
echo '<div class="feedburner"><a href="https://feedburner.google.com/fb/a/mailverify?uri=denis-skripnik&amp;loc=ru_RU">Получать новые статьи по e-mail</a></div>';
}
?>

Рекомендую вынести все стили, если они есть (Тег и атрибут style), в отдельный файл, дабы не замедлялась загрузка сайта.

изменённый image-select.php

И давайте попробуем прописать отдельное условие для типа "contact":

else if (is_type('contact')) // Условие для типа "Contact"
{
echo '

Контактная.

'; }
Отличие на странице контактов

Как видите работает и правка отображения для этого типа.


Давайте теперь рассмотрим ещё один довольно интересный метод создания индивидуальных шапок: в зависимости от адреса страницы.

У нас есть страница, имеющая адрес page/about. Давайте сделаем так, чтобы её шапка выглядела иначе.

Для этого добавляем в том-же файле перед условием для остальных страниц:

else if(is_type('page') && mso_segment(2) == 'about') // page - сегмент url, about - то, что после page (В моём случае это page/about)
{
echo '
Страница id134
'; }

Таким образом, файл выглядит так:

Конечная версия файла

То есть весь код имеет такой вид (Тип "contact" исключил, так как это был пример того, что можно использовать любой тип страниц):

<?php
if (is_type('home')) // Показываем, что условие должно выполняться только для главной
{
echo '<div class="rss-home"><a href="https://denis-skripnik.name/feed" target="_blank">Чтобы не пропустить новые материалы, подпишитесь на RSS</a></div>'; // Указываем, что выводить
}
else if(is_type('page') && mso_segment(2) == 'about')
{
echo '<div class="id134">Страница id134</div>';
}
else if (is_type('page')) // Условие для остальных страниц
{
echo '<div class="feedburner"><a href="https://feedburner.google.com/fb/a/mailverify?uri=denis-skripnik&amp;loc=ru_RU">Получать новые статьи по e-mail</a></div>';
}
?>

Если у вас компонент top1

Здесь вы можете также вставлять в конце, а можете просматривать див-блоки и вставлять между ними этот код. Например, menu-icons имеет класс "menu-icons flex flex-vcenter bg-gray900 pad15-rl" (Это первый div блок); Социалки - "t15px t-gray500 links-no-color links-hover-t-gray100"; блок с логотипом и опциями имеет класс "logo-block flex flex-vcenter pad20", а сам логотип - "logo", опции компонента с пустым классом; Меню и форма поиска - "menu-search flex flex-vcenter mar20-rl bg-gray800 flex-wrap-tablet", сама форма не имеет класса, а меню - "w100-tablet".

Обращаю ваше внимание на то, что компонент реализован только с Maxsite CMS 0.90.

Если шапка встроена не компонентом, а в main.php

У меня таких файлов нет, поэтому дам только алгоритм поиска:

  1. Заходите на страницу и выделяете шапку, нажимаете "код элемента";
  2. Изучаете его и копируете, вставляете в поиск и находите в исходном коде страницы;
  3. Выбираете div блок, до, после которого (или в котором) хотите сделать изменения;
  4. Открываем main.php и ищем нужные коды;
  5. Вставляем наш код, сохраняем и проверяем изменения страницы.

И ещё: если у вас есть такие файлы и проблемы, которые не получается решить, присылайте - дам инструкцию.

Советы

Точнее совет, потому что он один: проставляйте блокам, в который прописываете тексты классы, дабы потом задать им стили в style.css для корректного отображения.

Заключение

Благодарю за внимание. Если есть вопросы - задавайте в комментариях - отвечу всем.

Если понравилась статья, прошу поделиться в социальных сетях.

С уважением, Денис Скрипник.

Текущая оценка Общий бал: 0 Проголосовало Проголосовало: 0

help_share

Данная публикация была вам полезна?

Помоги автору сайта, расскажи друзьям...

Комментариев: 21
  •  Александр Каратаев 1 июля 2015 в 17:03:35
    img

    С Maxsite CMS не работал, тут сказать ничего не могу. Но вообще, сейчас всё большую популярность набирает технология формирования динамических заголовков сайта в зависимости от поискового запроса пользователя. Сам я её тоже не использую, лишь бегло глянул в ту сторону, но на заметку себе взял.

    •  Денис Скрипник | 1 июля 2015 в 18:23:15
      img

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

      •  Александр Каратаев 2 июля 2015 в 00:37:51
        img

        В общем и целом выглядит так: при помощи PHP распознаётся поисковый запрос и на основе его разбора формируются title, keywords и description, значения которых подставляются в качестве переменных на страницу.

        Этот же способ можно применить и для формирования других элементов страницы...

        •  Максим 15 июля 2015 в 18:43:17
          img

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

          •  Денис Скрипник | 15 июля 2015 в 20:26:13
            img

            Согласен. Поэтому я и не изучаю эту тему.

  •  Артур 22 ноября 2015 в 16:55:23
    img

    Здравствуй Денис! Слаб я в PHP и видать что-то мудрю не то((

    У меня задача вставить слайдер под меню сайта (MaxSite 0.93), чтоб он выводился только на главной странице. Создал я ушку, создал класс, заключил в див и прописал в конце файла тор1.рhр. Слайдер работает, но когда я его вставляю в рекомендуемый тобою код, выводится ошибка...:

    Помоги пожалуйста решить эту задачу! Спасибо!

  •  Артур 22 ноября 2015 в 17:02:04
    img

    В прошлом своем сообщении, я еще прописал свой вариант кода, но он не вывелся. Жалко((

    •  Денис Скрипник | 22 ноября 2015 в 19:00:42
      img

      Здравствуйте. Не стоит париться с размещением слайдера таким образом. Скопируйте в компоненты шаблона image-nevo-slider из дифолта 0.863, узнайте путь до less файла, активируйте плагин компилятора less и вставьте url less файла и css файла вашего шаблона.

      Потом вставляете в images/nevo-slider.

      У меня всё отлично работает на http://sneg-nsk.ru.

  •  Артур 23 ноября 2015 в 13:27:04
    img

    Огромное Вам спасибо за столь быстрый ответ на мою просьбу, но я только понял где взять image-nevo-slider и куда его скопировать.

    Не пойму в чем простота MS? В вордпрессе, я бы и не знал о такой проблеме... Сто раз пожалел, что перешел на данный движок.

    Может есть проще путь, как запустить на главной тот слайдер, что я уже установил? Или хотя бы, как сделать так, чтоб он работал не только на главной и на одиночных страницах, но и в рубриках? А то в рубриках и записях, теряется путь к картинкам.

    Еще, как вариант:

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

    Голова пухнет с этим замудренным MS

    •  Денис Скрипник | 23 ноября 2015 в 19:04:24
      img

      Зайдите в "Шаблон", вкладка "Шаблоны вывода", установите для главной no-sidebar.

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

      По поводу шаблона sneg-jnsk: установите Макссайт 0.92 или 0.93 и оставьте дифолт - он и будет тем самым шаблоном.

      •  Артур 24 ноября 2015 в 14:51:37
        img

        Сайт на котором у меня проблема со слайдером работает на дефолтном шаблоне Макссайт 0.93 (max.lada-moscow.com). Сайт практически готов, css отработан, осталось только запустить слайдер в шапке сайта под меню, потому я и обратился к Вам за помощью под данным постом. А попросил я у Вас шаблон, потому что не могу найти сборку Максайта 0.863, да бы проделать ваши рекомендации: - "Скопируйте в компоненты шаблона image-nevo-slider из дифолта 0.863, узнайте путь до less файла, активируйте плагин компилятора less и вставьте url less файла и css файла вашего шаблона."

        А на sneg-jnsk все же слайдер работает и именно так, как мне надо...

        •  Денис Скрипник | 24 ноября 2015 в 18:36:22
          img

          Я понял, что вы имели в виду.

          Шаблон тут: https://denis-skripnik.name/uploads/default-0.863_.zip

          •  Артур 25 ноября 2015 в 13:55:18
            img

            Огромнейшее Вам спасибо за помощь!

            •  Денис Скрипник | 26 ноября 2015 в 11:11:16
              img

              ПОжалуйста.

              Если будут вопросы, обращайтесь. А я сейчас начну писать статью про слайдер в 0.90 и далее.

              •  Артур 28 ноября 2015 в 16:55:11
                img

                Вот это дело! Честно говоря, я думал предложить Вам написать подробный пост на тему слайдера от 0.90 и выше, но Вы и сами подхватили эту идею. В Макссайтовском слайдере есть огромный недостаток - это то, что нет возможностей вставить ссылки и описание к изображениям для кликабельности. Было бы очень не плохо, если бы Вы устранили этот недостаток...

                •  Денис Скрипник | 29 ноября 2015 в 17:26:04
                  img

                  Недостаток этот решается. Просто заходите в компонент nevo-slider, файл nevo-slider.php и ищите тег img, а перед ним прописывайте ссылку, после - закрывающий тег. Вот так:

                  
                  
  •  Артур 23 ноября 2015 в 16:54:24
    img

    Подскажите плиз, где можно скачать MS 0.863? Или, как договориться с Вами за шаблончик с http://sneg-nsk.ru?

  •  Артур 30 ноября 2015 в 17:33:57
    img

    Спасибо, попробую. Довольно много полезного я здесь узнал.

    •  Денис Скрипник | 1 декабря 2015 в 14:08:32
      img

      Пожалуйста.

  •  Александр 2 октября 2016 в 23:38:48
    img

    Спасибо за интересную статью! У меня редактирование идет через main.php

    •  Денис Скрипник | 4 октября 2016 в 14:23:39
      img

      Здравствуйте. Пожалуйста. Удачи в создании сайта.

Буду благодарен за каждый оставленный вами комментарий

Добавить Комментарий

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

Похожие публикации