Убрать содержимое div из кода... (программисты подскажите пожалуйста)

PozitiFF
На сайте с 15.01.2007
Offline
89
672

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

Буду благодарен если поможете разобраться в таком моменте:

Есть несколько div'ов, которые присутствуют в функционале CMS и удалить совсем их содержимое нельзя по техническим причинам. Но нужно не дать ни пользователям увидеть ни поисковику проиндексировать содержимое дивов.

Использую js метод remove(), но (по крайней мере на денвере) содержимое на долю секунды появляется потом исчезает (скрипт инициализирую в head).

Насколько я понимаю, поисковик быстрее скрипта (ну по идее :)) и при первичной загрузке страницы все же проиндексирует содержимое ненужных дивов? Или нет?

И как решить задачку?

Сам к сожалению не программист, потому и прошу помощи.

Z0
На сайте с 03.09.2009
Offline
827
#1

/ru/forum/896829 почитайте в этой теме, там похожая вроде проблема. А JS выполняется на стороне клиента. От яндекса прячьте через noindex, ну я так думаю :)

З.Ы. Почему нельзя удалить, какие технические причины? Попробуйте выводить через ajax.

J
На сайте с 20.02.2014
Offline
120
jkm
#2

Тут может помочь включение буферизации вывода http://php.net/manual/ru/function.ob-start.php


<?php

function callback($buffer)
{
return preg_replace('~<div id="name">.*</div>~Uis', '', $buffer);
}

ob_start("callback");

Если вставлять это в самом начале index.php, то функция callback получит сгенерированную страницу и может полностью её поменять.

Еще есть вариант подключить файл с этим кодом без редактирования файлов CMS используя директиву auto-prepend-file

PozitiFF
На сайте с 15.01.2007
Offline
89
#3
ziliboba0213:
/ru/forum/896829 почитайте в этой теме, там похожая вроде проблема. А JS выполняется на стороне клиента. От яндекса прячьте через noindex, ну я так думаю :)
З.Ы. Почему нельзя удалить, какие технические причины? Попробуйте выводить через ajax.

Через ajax нельзя. Смысл в том, что если совсем просто объяснить, это вывод на главной странице раздела статей их подразделов с анонсами и т.д. Среди вполне себе обычных разделов есть чисто технический раздел с подразделами, которые показывать ни пользователям не поисковикам не нужно, но и убрать его совсем нельзя, поскольку к контенту подразделов доступ по прямым ссылкам быть должен.

Выводится шаблонно:

echo '<div class="class" id="id">';...

Можно сделать классы уникальные:

echo '<div class="class_id">';....

---------- Добавлено 21.05.2015 в 09:50 ----------

jkm:
Тут может помочь включение буферизации вывода http://php.net/manual/ru/function.ob-start.php

<?php

function callback($buffer)
{
return preg_replace('~<div id="name">.*</div>~Uis', '', $buffer);
}

ob_start("callback");

Если вставлять это в самом начале index.php, то функция callback получит сгенерированную страницу и может полностью её поменять.
Еще есть вариант подключить файл с этим кодом без редактирования файлов CMS используя директиву auto-prepend-file

Пытался, но что-то не работает. Может с CMS конфликтует. Поскольку не программист причину выяснить не могу.

А ~Uis это что?

SN
На сайте с 04.07.2013
Offline
84
#4

а если просто прописать в диве style="display: none" ?

PozitiFF
На сайте с 15.01.2007
Offline
89
#5
SeoNk:
а если просто прописать в диве style="display: none" ?

Дык в коде содержимое останется..)

PozitiFF
На сайте с 15.01.2007
Offline
89
#6

Спасибо всем!!!

Вопрос снят.

Решил на уровне функционала CMS, добавив поле ENUM в таблицу, чекбокс "показывать/не показывать" в админку, и функцию вывода с проверкой значения. Помог добрый человек, подсказал куда копать в функционале CMS.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий