PozitiFF

PozitiFF
Рейтинг
89
Регистрация
15.01.2007

Сергей снова помог в верстке.

Готов неизменно рекомендовать его как крайне ответственного и грамотного в своем деле человека!

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

Вопрос снят.

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

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

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

Может вот это Вам подойдет:


Замена элементов

Замена элемента новым содержимым: replaceWith()
Метод replaceWith() позволяет заменять элемент или набор элементов новым содержимым. Вы можете передать замещающий контент в любой из следующих форм:

Объект элемента, который создан с помощью функции JavaScript DOM, такой как document.getElementById() или document.createElement()
Строка HTML, представляющая замещающий контент
Объект jQuery, содержащей элемент (или элементы), который будет использоваться для замещения
Возвратная функция, которая должна возвращать замещающий HTML код
Ниже приводится пример, который показывает метод replaceWith() в действии. Производится замещение первого параграфа новой строкой HTML, второй параграф замещается объектом элемента, а третий параграф заменяется результатом функции, которая возвращает текущее время:


<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">

$( init );

function init() {

// Заменяем параграф в #myDiv1 новым параграфом
$('#myDiv1>p').replaceWith( "<p>Новый параграф с текстом</p>" );

// Заменяем параграф в #myDiv2 горизонтальной линией
var hr = document.createElement('hr');
$('#myDiv2>p').replaceWith( hr );

// Заменяем параграф в #myDiv3 строкой с текущим временем
$('#myDiv3>p').replaceWith( currentTime );

function currentTime() {
var currentTime = new Date();
var currentHours = currentTime.getHours ( );
var currentMinutes = currentTime.getMinutes ( );
var currentSeconds = currentTime.getSeconds ( );

// Pad the minutes and seconds with leading zeros, if required
currentMinutes = ( currentMinutes < 10 ? "0" : "" ) + currentMinutes;
currentSeconds = ( currentSeconds < 10 ? "0" : "" ) + currentSeconds;

return ( "<p>Текущее время: " + currentHours + ":" + currentMinutes + ":" + currentSeconds + "</p>" );
}
}

</script>

</head>
<body>

<div id="myDiv1">
<p>Параграф с текстом</p>
</div>

<div id="myDiv2">
<p>Параграф с текстом</p>
</div>

<div id="myDiv3">
<p>Параграф с текстом</p>
</div>

</body>
</html>

После выполнения:


<body>

<div id="myDiv1">
<p>Новый параграф с текстом</p>
</div>

<div id="myDiv2">
<hr />
</div>

<div id="myDiv3">
<p>Текущее время: 13:52:17</p>
</div>

</body>
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 это что?

proksey-net:
для начала - вы отправляете форму. Используйте
<form target = '_parent' ... >

Искренне Вас благодарю за то что пытаетесь помочь, но я не программист, о чём написал в первом посте. Использовать где?

Я понимаю, что истина где-то здесь, но..:


var displayContent = function() {
$c.parent().find('.loader').hide();
$c.parent().parent().find('#b_close').show();
$c.fadeIn(function(){
// Focus on the first form input if there's one
$(this).find('input[type=text]:first').trigger('focus');

// Check for paging
$('.prettyPopin a[rel=internal]').click(function(){
$link = $(this);

// Fade out the current content
$c.fadeOut(function(){
$c.parent().find('.loader').show();

// Submit the form
$.get($link.attr('href'),function(responseText){
// Replace the content
$c.html(responseText);

_refreshContent($c);
});
});
return false;
});


// Submit the form in ajax
$('.prettyPopin form').bind('submit',function(){
$theForm = $(this);
// Fade out the current content
$c.fadeOut(function(){
$c.parent().find('.loader').show();

// Submit the form
$.post($theForm.attr('action'), $theForm.serialize(),function(responseText){
// Replace the content
$c.html(responseText);

_refreshContent($c);
});
});
return false;
});
});
$('.prettyPopin a[rel=close]:gt(0)').click(function(){ closeOverlay(); return false; });
};
proksey-net:
а класс вы поставили prettyPopin для input как и для a?

Этот input type=submit берется из модуля и должен работать не только в модальных окнах, но и на обычных страницах.

Задача - чтобы <input> так же как и <a> уже внутри prettyPopin без rel=internal выдавали результат в родительском окне, а не чтобы input появлялся в модальном при нажатии на него))

pimandr:
При беглом осмотре похоже, что
$(this).find('input***91;type=text***93;:first').trigger('focus');
нужно заменить на
$(this).find('input***91;rel=internal***93;:first').trigger('focus');

Нет, так не получается. Всё равно открывается не в родительском, а в модальном.

Ladycharm:
- это ссылка на html-содержимое модального окна?

Именно так. Отдельный .html файл.

Правда без head и body

---------- Добавлено 27.04.2015 в 11:15 ----------

burunduk:
нет, но если js открыт для индексации и сама страница с которой грузится контент, то гугл может в результатах поиска связать контент
если там будет фрейм, то как отдельную страницу

Кусок кода, куда выводится содержимое не внутри JS, просто часть кода.

Вывод содержимого скорее по принципу работы галереи jquery по id

Вот и смысл задачи скорее в том, что индексация нужна, но не внутри страницы куда выводится, а как отдельной страницы.

---------- Добавлено 27.04.2015 в 12:02 ----------

burunduk:
... то гугл может в результатах поиска связать контент...

А как Яндекс отреагирует?

В принципе из ответов все более менее понятно.

Спасибо!

Всего: 474