На время проведения реконструкции сайт переведён в режим "ТОЛЬКО ЧТЕНИЕ" (Read only). Приносим свои извинения!
MaxHub
Полезности по Maxsite CMS

Как вывести название рубрики в мета тег description?

Вопросы-ответы / 5 мая 2018

Здравствуйте!

Мне нужно вывести в мета тег description названия рубрик записи.

Например, название можно вывести так: mso_head_meta('title')

Но как это можно реализовать с названиями категорий...

Подскажите, пожалуйста, может, кто знает.

Комментариев: 4
  1. В чём конкретно проблема? Не смогли найти код вывода и разобраться какими средствами можно кастомизировать вывод?

  2. Совершенно верно smile

  3. Стыдно признаться, но все так и есть...

  4. При работе с движком очень рекомендую освоить любое средство поиска текстовой строки во всех файлах папки. Я использую встроенные средства Far manager, но у вас может быть любое другое, удобное для вас.

    Для начала делаем поиск текста «meta name="description"» в папке \application\maxsite\ (да и вообще, при решении любого вопроса по шаблону вам скорее всего будет нужно искать именно по этой папке).

    Этот поиск однозначно показывает файл \application\maxsite\templates\default\custom\template.php. Если его открыть, то вас в нём должна заинтересовать функция my_default_head_section, в которой и прописан вывод мета-поля description.

    Как видно по коду - вывод мета-поля прописан жёстко и единственный вариант его изменить - кастомизировать всю функцию, а точнее, её код.

    В принципе, можно прямо тут всё и поправить так, как вам нужно. Функция не является частью ядра системы и принадлежит шаблону. Но, конечно, нужно учитывать, что я даю ссылки на default-шаблон, а он может затереться при обновлении движка. Поэтому, имеет смысл вести речь о вашем собственном шаблоне на основе дефолтного. Тогда точно ваши правки не исчезнут после обновления.

    Если вам как-то ссыкотно править "стандартную" функцию, то можно продолжить поиски для места кастомизации. Логичным было бы поискать место вызова функции my_default_head_section - может там будет место удобно всё поменять?

    Да, будет. Простым поиском находим, что функция вызывается из файла \application\maxsite\templates\default\main\blocks\body-start.php кодом:

    if ($fn = mso_fe('custom/head-section.php')) 
     require($fn); // подключение HEAD из файла
    else 
     my_default_head_section(); // подключение через функцию

    Из кода видно, что достаточно создать в подпапке custom папки шаблона файл head-section.php и весь вывод секции head всех страниц будет определяться уже содержимым этого файл. Если лениво писать код с нуля, то можно просто скопипастить в него код функции my_default_head_section и кастомизировать его под собственные нужды.

    Вот собственно и всё, что нужно знать о кастомизации вывода секции HEAD.

    Хотя нет. Есть ещё одна новая штука, которая появилась в движке совсем недавно. Я про возможность задания мета-полей для рубрик через файл my-category-meta.php. Его заготовка находится в файле \application\maxsite\templates\default\custom\-my-category-meta.php - вам нужно переименовать файл (убрать - в начале имени) и отредактировать задание массива внутри. После сохранения этого файла в админ-панели управления рубриками вы должны заметить указанные вами значения. Фишка настолько новая, что сам я ей пока не пользовался и поэтому у вас есть отличная возможность поэкспериментировать самостоятельно и отписаться здесь на сайте о ваших успехах.