Скрытие блока по средствам JS

Главные вкладки

Аватар пользователя skill skill 8 сентября 2013 в 18:40

Добрый день уважаемые. На этом форуме в процессе поиска уже несколько раз поднимался вопрос скрытия блока обширного сквозного меню, но кроме <!--noindex--> и <!--googleoff: all--> ничего конкретного предложено не было. В сети нашел решение, но как заставить его работать на друпал не знаю в php и js ноль. Вобщем что сделал:
В файле page.tpl.php в нужном мне месте вставляю пустой блок <div id="hidden"></div>,
создаю файл hidden.php с кодом <?php print render($page['menu_top']); ?> который выводит регион,
далее создаю js файл с кодом

<script type="text/javascript">
$(document).ready(function() {
$('#hidden').load('ПУТЬ К ФАЙЛУ/hidden.php');
});
</script>

и подключаю этот файл через template.php следующим образом drupal_add_js('ПУТЬ К ФАЙЛУ/hidden.js', 'file');
Но в шаблоне выводится только <div id="hidden"></div> и не работает js , в разделе производительность галку с объединения файлов js снял и кеш чистил, но результата нет. В чем ошибка может быть?
И еще. В данном примере я пытаюсь вывести целый регион этим JS-ом. В этом регионе расположено сложное сквозное меню с большим числом ссылок сформированных wievs и двух вкладок с js формами партнерок. У меня есть опасения что js формы будут работать не корректно. В идеале мне нужно выводить через JS только два блока со ссылками. Но как сделать это я вообще не понимаю.
Заранее благодарю за помощь!

Комментарии

Аватар пользователя Niklan Niklan 8 сентября 2013 в 18:47

"skill" wrote:
$('#hidden').load('ПУТЬ К ФАЙЛУ/hidden.php');

Тему не читал, это не нравится чот в коде.

Мне кажется это должно быть реализовано на колбэке.

Аватар пользователя serega111 serega111 8 сентября 2013 в 18:53

Идите учите друпал, php и js. У вас подход к решению проблему неверный в корне. Если нужно срочно, то вам в раздел размещения заказов

Аватар пользователя skill skill 8 сентября 2013 в 18:57

serega111 wrote:
Идите учите друпал, php и js. У вас подход к решению проблему неверный в корне. Если нужно срочно, то вам в раздел размещения заказов

Отличный ответ. Насчет "корня" вынужден не согласиться, а вот на счет того что код не подходящий тут безусловно)))

Аватар пользователя skill skill 8 сентября 2013 в 18:54

В дополнение ко второй части вопроса поясню использую MD Megamenu платный модуль с мегадрупала ком и могу в пункты меню вставлять любые блоки в том числе и с представлениями. Так вот как раз вывод конкретных блоков более интересен чем целого региона.

Аватар пользователя skill skill 8 сентября 2013 в 19:17

webpavilion wrote:
ajaxblocks попробуйте.

Этот модуль ни коим образом не скроет содержимое от индексации ПС, а у меня главная задача отдать роботу ПС пустой див а пользователю удобное меню, дабы не терять вес с нод, и в то же время не ущемлять навигацию.

Аватар пользователя skill skill 8 сентября 2013 в 19:02

Niklan wrote:
"skill" wrote:
использую MD Megamenu платный модуль с мегадрупала

https://drupal.org/project/megamenu бесплатно делает тоже самое лол

Ну вы посмейтесь, а потом поставьте два модуля и сравните функционал

Аватар пользователя drupby drupby 8 сентября 2013 в 19:22

"skill" wrote:
дабы не терять вес с нод, и в то же время не ущемлять навигацию.

это называется seo головного мозга

Аватар пользователя skill skill 8 сентября 2013 в 19:26

drupby wrote:
"skill" wrote:
дабы не терять вес с нод, и в то же время не ущемлять навигацию.

это называется seo головного мозга

Да, можете это назвать именно так. А за ответ по существу, как всегда, Спасибо!

Аватар пользователя skill skill 8 сентября 2013 в 19:31

И SEO головного мозга считаю немного лучшим, чем отсутствие оного вовсе. Запулить на страницу меню из сотни ссылок и сделать целевую страницу нулевкой по весу это дааа, это гут ))) и никакого seo, как вы там говорите, этого, как его... мозга!

Аватар пользователя drupby drupby 8 сентября 2013 в 19:53

"skill" wrote:
создаю файл hidden.php с кодом <?php print render($page['menu_top']); ?> который выводит регион

открой в браузере site.ru/ПУТЬ К ФАЙЛУ/hidden.php и посмотри ,что он выводит - убедишься в своем диагнозе

Аватар пользователя alex_shut alex_shut 8 сентября 2013 в 22:20

я чтото плохо читал про hhtml5, или таки средствами разметки нонче можно показать поисковикам чего зя брать, а чего низзя?

Аватар пользователя k_dmitry k_dmitry 8 сентября 2013 в 23:51

"skill" wrote:
Этот модуль ни коим образом не скроет содержимое от индексации ПС, а у меня главная задача отдать роботу ПС пустой див а пользователю удобное меню, дабы не терять вес с нод, и в то же время не ущемлять навигацию.

это клоакинг, по существу: menu_attributes, всем пунктам меню ноуиндекс, ноуфаллоу

Аватар пользователя skill skill 9 сентября 2013 в 0:16

k_dmitry wrote:
"skill" wrote:
Этот модуль ни коим образом не скроет содержимое от индексации ПС, а у меня главная задача отдать роботу ПС пустой див а пользователю удобное меню, дабы не терять вес с нод, и в то же время не ущемлять навигацию.

это клоакинг, по существу: menu_attributes, всем пунктам меню ноуиндекс, ноуфаллоу


Клоакинг, клоакингу рознь и анализируя конкурентов, именно крупных конкурентов, входящих в 10-ку по LI в моей тематике - пользуются люди и пользуются успешно. И как показывает практика по всем закрывающим атрибутам и ноуиндексам вес по ссылкам уходит и уходит существенно. Конечно не в каждой тематике такое треба, и еще много зависит от перелинковки в целом но...
И... можете закрывать тему. От местного народа трудно получить помощь, разве что еще кто по умничает и диагнозы поставит)))

Аватар пользователя skill skill 9 сентября 2013 в 0:34

kosHta wrote:
"skill" wrote:
От местного народа трудно получить помощь

Ваших кирпичей хватит вполне, для дальнейшего строительства.

Если бы умел все это выстроить в рабочую модель помощи бы не просил)))

Аватар пользователя Svetozarrr Svetozarrr 9 сентября 2013 в 9:09

"skill" wrote:
в разделе производительность галку с объединения файлов js снял и кеш чистил, но результата нет.

Так а, собственно, нужный вам js-файл подключился или нет, а то из вышенаписанного не совсем это ясно? Галку с объединения снять можно, но толку от этого, если скрипта и в помине в коде страницы нет.
Кстати, если скрипт лежит в отдельном файле с расширением .js, не нужно его код в теги брать

Аватар пользователя skill skill 10 сентября 2013 в 15:09

JS файл подключился но регион как был пустым дивом так им и остался. Попробовал в ПХП файле заменить вывод региона на <?php if (isset($page['menu_top'])) { echo render($page['menu_top']); } ?> но результата нет.

Аватар пользователя drupby drupby 10 сентября 2013 в 15:43

"skill" wrote:
Попробовал в ПХП файле заменить вывод региона на <?php if (isset($page['menu_top'])) { echo render($page['menu_top']); } ?> но результата нет.

бида-пичаль
php не пробывал учить ,хотя бы основы?

Аватар пользователя skill skill 10 сентября 2013 в 16:16

Вот не лень же поучать)))Учить да, не пробовал))) Но по аналогии именно таким образом в template.php выводятся другие регионы и тот который нужно. Но видать через отдельный файл нужно как то иначе.

Аватар пользователя Niklan Niklan 10 сентября 2013 в 16:35

"skill" wrote:
таким образом в template.php

"drupby" wrote:
echo render($page['menu_top'])

я даже не пробовал, но уверен что это там не прокатит. Temaplate.php не для этого. В нем максимум результат рендера можно передать на страницу, но никак не принтить. Куда он запринтит?

Аватар пользователя drupby drupby 10 сентября 2013 в 16:36

"skill" wrote:
Но видать через отдельный файл нужно как то иначе.

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

Аватар пользователя skill skill 10 сентября 2013 в 16:59

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

Интересно, где ты нашел просьбу о решении с нуля, алгоритм полностью предложен встает вопрос в правильности кода двух файлов JS и PhP и в том и другом 3-4 строчки кода, а поучений и подъе...ок на два дня. Сколько на твой взгляд будут стоить эти 8 строк кода ась? Да если подумать и самому себе сказать по чесноку то руб 300 макс., а вот кому нужно за эти 300 р. себе голову морочить. А объективно, эта работа больше не стоит. Поэтому топик и создан именно здесь.

Аватар пользователя drupby drupby 10 сентября 2013 в 17:19

"skill" wrote:
алгоритм полностью предложен встает вопрос в правильности кода двух файлов JS и PhP

так я же тебе говорил как проверить

"drupby" wrote:
открой в браузере site.ru/ПУТЬ К ФАЙЛУ/hidden.php и посмотри ,что он выводит

посмотри ,что выводит твой файл ,а точнее что не выводит
и вчитайся в текст ошибки

Аватар пользователя skill skill 10 сентября 2013 в 17:34

"drupby" wrote:
посмотри ,что выводит твой файл ,а точнее что не выводит
и вчитайся в текст ошибки

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

Аватар пользователя drupby drupby 10 сентября 2013 в 17:46

"skill" wrote:
Именно таким образом не выводит ровным счетом ничего, даже ошибок не выводит

значит вывод ошибок на сервере выключен
вставь вначале файла

error_reporting(E_ALL);
ini_set("display_errors", 1);
Аватар пользователя skill skill 10 сентября 2013 в 18:30

C первым вариантом <?php print render($page['menu_top']); ?> Fatal error: Call to undefined function render() in, а со вторым <?php if (isset($page['menu_top'])) { echo render($page['menu_top']); } ?> просто полная пустота

Аватар пользователя drupby drupby 10 сентября 2013 в 18:45

"skill" wrote:
, а со вторым <?php if (isset($page['menu_top'])) { echo render($page['menu_top']); } ?> просто полная пустота

а если без проверки
echo render($page['menu_top']);

Аватар пользователя drupby drupby 10 сентября 2013 в 19:12

потому что в файле не определены ни функция render ни переменная $page
посмотри в файл index.php и увидишь как происходит бутстрап

Аватар пользователя serega111 serega111 10 сентября 2013 в 20:32

"skill" wrote:
Интересно, где ты нашел просьбу о решении с нуля, алгоритм полностью предложен встает вопрос в правильности кода двух файлов JS и PhP и в том и другом 3-4 строчки кода

вот именно, что алгоритм в корне неверный, я об этом сказал еще вначале. Если бы он был верный, чтобы нам мешало подсказать вам, где у вас ошибка?

Аватар пользователя skill skill 10 сентября 2013 в 20:52

"serega111" wrote:
вот именно, что алгоритм в корне неверный, я об этом сказал еще вначале. Если бы он был верный, чтобы нам мешало подсказать вам, где у вас ошибка?

Первый вменяемый ответ по теме, без посылов к "учебникам". Раз неверный сменю раздел форума )))