Jump to content
  • Sign Up
Sign in to follow this  
yakovjik

Как убрать пустой h1 в шаблоне битрикса?

Recommended Posts

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

Share this post


Link to post
Share on other sites

Для того есть отложенные функции: http://dev.1c-bitrix.ru/api_help/main/general/technology/suspended_functions.php

Вот только беда в том, что эти функции ничего не возвращают, а только выводят в поток.

Мне в своё время удалось такую задачу решить только при помощи глобальной переменной.

Либо, как вариант, можно буферизацию использовать.

Иных способов вывести значение раньше, чем оно задано, не вижу.

Share this post


Link to post
Share on other sites

ради интереса попробовал повозюкаться с шаблоном битрикса на эту тему, получилось фифти\фифти:


<div id="workarea">
<?
if($APPLICATION->ShowTitle(false)) {
echo '<h1 id="pagetitle">
$APPLICATION->ShowTitle(false)
$APPLICATION->ShowProperty("ADDITIONAL_TITLE", "")
</h1>'; }
?>
#WORK_AREA#<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
IncludeTemplateLangFile(__FILE__);
?>
</div>

h1 зараза теперь вообще не выводит.

Share this post


Link to post
Share on other sites

rus, а потому что неправильно.

У этого метода несколько неожиданное поведение: он не возвращает никакого результата.

И потому if($APPLICATION->ShowTitle(false)) не имеет никакого смысла. С таким же успехом можно написать if(false).

Тут суть вот в чём:

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

Как вывести раньше то, что определено позже? Правильно, буферизация в помощь.

Метод SetTitle() устанавливает заголовок. Затем обрабатывается буфер, и в то место, где встречается вызов ShowTitle(), подставляется значение, установленное SetTitle(). То есть, проверять установленность заголовка этой функциоей нельзя. Она не для того.

Есть ещё GetTitle() — с его помощью можно проверять. Но в данном случае тоже неприемлемо, ибо заголовок ещё не задан.

Вообще, не до конца понимаю, почему отложенные функции работают именно так, а не иначе. В этом определённое неудобство есть для разработки.

В своё время, когда у меня была подобная задача, решилось написанием такого компонента:


<?
global $my_title;
$my_title = false;

function myShowTitle($t="title"){
global $APPLICATION;
echo $APPLICATION->AddBufferContent("myGetTitle");
}

function mySetTitle($t){
global $my_title;
if(strlen(trim($t))>0) {
$my_title = "<h1>".$t."</h1>";
} else {
$my_title = $t;
}
}

function myGetTitle(){
global $my_title;
if($my_title === false) {
global $APPLICATION;
$my_title = "<h1>".$APPLICATION->GetTitle()."</h1>";
}
return $my_title;
}


$this->IncludeComponentTemplate();
?>

Чую, что криво. Но работает исправно.

Если кто обругает мой вариант и предложит более правильный — заранее спасибо.

Share this post


Link to post
Share on other sites

И мне понадобилось убрать пустые теги, если не задан заголовок.
Вот нашёл тему - https://dev.1c-bitrix.ru/support/forum/forum6/topic72981/
Т.е. вставляем код в \bitrix\php_interface\init.php :

// функция убирает пустые теги H1, если заголовок пустой
function custom_page_filter(&$content) {
$content = str_replace('<h1></h1>', '', $content); 
} 
AddEventHandler('main', 'OnEndBufferContent', 'custom_page_filter'); 

Всё, больше ничего не требуется, всё работает.

Share this post


Link to post
Share on other sites
В 27.04.2011 в 00:37, yakovjik сказал:

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

как убрать пустой h1...первый h1 пустой, второй с заголовком в статье оформленный h1 http://prntscr.com/h2zm6g /

Как убрать первый пустой?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Member Statistics

    46,837
    Total Members
    159
    Most Online
    Мишкин
    Newest Member
    Мишкин
    Joined
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Спрашивают сейчас

  • Пишут сейчас

    • Как облачные технологии помогают малому и среднему бизнесу экономить   Любой инструмент создают, когда какой-то процесс нужно сделать удобнее, эффективнее, выгоднее. Облака — такой же инструмент. С ними бизнес трансформируется, обретает новую форму и развивается быстрее.   Облака обеспечивают высокую производительность за адекватные деньги. Бизнес, который выбрал облака для решения задач, платит только за то, что использует. В отличие от тех, кто еще работает по старинке.   Давайте разберёмся по порядку.   Бизнес без облачных технологий   Это классическая схема. Так работают многие компании, которые ещё не решились использовать облака.   Представьте небольшой бизнес: 10 сотрудников, каждый из которых работает на своём компьютере и выполняет задачи. Все компьютеры соединены сетевым кабелем в мини-сеть и могут обмениваться между собой информацией.       Ещё где-то на стене висит маршрутизатор, который отвечает за то, чтобы у каждого сотрудника был интернет.   Каждому компьютеру в такой системе требуется:                                  Лицензионные операционные системы и приложения.                                 Периодический ремонт и обслуживание.                                Модернизация при необходимости.   Так каждый компьютер превращается в объект, который регулярно требует вложения денег.   Ещё нужен человек, который постоянно будет в офисе компании на случай, если что-то пойдёт не так. Его функция — быстро прийти на помощь и исправить косяки и поломки, которые возникают в рабочем процессе. Как правило, это штатный ИТ-специалист, которому нужно платить зарплату.     С ростом компании появляются новые рабочие места, оборудование, серверные комнаты. Общий бюджет на содержание и обслуживание оборудования растёт.   Штат ИТ-специалистов тоже растёт. Так появляется новый отдел, сотрудникам которого тоже нужно платить зарплату.     Для малого и среднего бизнеса это нецелесообразно. И этого можно избежать, если начать использовать облака. Чем раньше бизнес понимает это и переносит работу в облака, тем больше получается сэкономить в итоге.   При переходе в облако малый и средний бизнес экономит, а сэкономленные ресурсы направляет на развитие бизнеса.   Бизнес с облачными технологиями   При облачной организации ИТ-инфраструктуры вся информация хранится на виртуальном сервере в облаке, а уже к нему подключены все компьютеры.     Когда бизнес переходит в облако, появляются новые возможности:                                  Использовать старенькие системные блоки в качестве терминалов доступа к облаку.                                Перестать покупать дорогие рабочие станции и новое серверное оборудование.                                 При выходе старых системников из строя покупать недорогие тонкие клиенты.                                 Вычеркнуть из бюджета расходы на содержание и модернизацию оборудования.                                 Перестать тратить деньги на специализированные помещения, электроэнергию.                                 Использовать ресурс ИТ-специалистов для решения задач развития компании.                                 Увеличивать и уменьшать ИТ-инфраструктуру в нужный момент.                                 Организовать мобильную работу сотрудников, сэкономив на офисе.   Некоторые компании боятся переходить облака, только потому, что для них это что-то новое и неизвестное. Но в Украине, как и во всем мире, это уже норма. Как и сопутствующие переходу преимущества.   1.                             Бизнес в облаке платит только за то, что использует. Если требуется увеличить мощность, скорость, производительность или другие характеристики, нужно только сказать об этом провайдеру. Он всё сделает. 2.                             Обновлять или добавлять мощности рабочим станциям не потребуется, потому что теперь вся мощность берётся с сервера. При необходимости её можно добавить или убрать без покупки дополнительного оборудования. 3.                             Если у компании ещё нет ИТ-специалиста, можно доверить администрирование ИТ-инфраструктуры в облаке провайдеру. Это выгоднее, чем нанимать для этих задач отдельного специалиста. Если специалисты в штате уже есть, им можно поручить более серьезные задачи, чем чистить кулеры от пыли и восстанавливать с разной степенью успешности случайно удаленные кем-то из сотрудников данные. 4.                             Облака универсальны. Их легко адаптировать под любые проекты со своим набором характеристик и программ. 5.                             Есть возможность резервного копирования информации и восстановления при необходимости. 6.                             При использовании облаков появляется возможность планировать расходы и избежать спонтанных трат, которые возникают в связи с внезапными неисправностями оборудования в офисе. 7.                             Компании, которые отказываются от облаков и покупают свои серверы в офис, оборудуют серверные комнаты, через 3-5 лет вынуждены обновлять, дополнять или вовсе менять серверы на новые. Это всегда дорого. С облаками этого делать не нужно. При необходимости можно добавить мощности за небольшую плату, но покупать сервер нет необходимости. 8.                             Часто при размещении своего сервера в офисе есть риск, что информация о вашем бизнесе окажется под угрозой. Физические серверы могут изъять или украсть и получить доступ к данным. С облачной инфраструктурой, особенно если облако расположено в зарубежных дата-центрах, этот риск сведён к минимуму. Даже если кто-то получит физический доступ к компьютерам в офисе, не зная реквизитов доступа к облаку, доступ к информации получить не получится. На компьютере её просто не будет. Всё останется на сервере.   У облачных технологий много преимуществ. Для каждого бизнеса есть свои плюсы. Поэтому компании всё чаще отказываются от классической модели инфраструктуры в компании и переходят в облака. Как легко перейти в облако   Чтобы компании убедились в выгодах и почувствовали преимущества использования облаков, мы предоставляет тестовый бесплатный период на 7 дней.   Это хорошая возможность попробовать все функции и примерить решение на свой бизнес.   При этом совсем не обязательно сразу переводить в облако всю компанию. Можно попробовать на филиале, отделе или нескольких сотрудниках.   Закажите тестовую среду или, если у вас есть дополнительные вопросы, задавайте их нашей службе поддержки. Мы работаем для вас 24х7.
    • Воспользуйтесь поиском Google
  • Popular Contributors

×
×
  • Create New...