Перейти к содержимому

Реферальная программа Мегаплана


Скрыть пункт меню от пользователей

#11 1putnik

1putnik
  • Пользователь
  • 96 сообщений
  • Репутация: 8
0

Отправлено 01 Октябрь 2015 - 14:04

@Evgeniy3200, ну тут, похоже, 3 модуля в левой колонке. Вожможно файл меню находится в папке modules, а пункты меню в БД. 


  • 0

#12 Evgeniy3200

Evgeniy3200
    Topic Starter
  • Пользователь PRO
  • 1 145 сообщений
  • Репутация: 264

Отправлено 01 Октябрь 2015 - 14:18

пункты меню в БД
ну сами пункты в любом случае по идее должно записаться в БД. Но тут я тоже не силен, можно ил в самой БД прописать к нужному пункту скрипт? 
  • 0

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



#13 Evgeniy3200

Evgeniy3200
    Topic Starter
  • Пользователь PRO
  • 1 145 сообщений
  • Репутация: 264

Отправлено 01 Октябрь 2015 - 15:29

Нашел еще одно очень простое решение, которое выполняет задачу:

 

при генерации пункта меню ему задается уникальный id. При помощи этого id я нужному пункту меню просто применяю css класс display: none

 

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

 

Вопрос в другом - как к такой манипуляции отнесется поисковик? 

но если выбирать из двух зол, то этот метод мне кажется более правильным, чем сносить полностью пункт меню чтобы ссылки потом отдавали 404ошибку.

 

Что думаете?


  • 0

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



#14 ShowPrint

ShowPrint
  • Пользователь PRO
  • 1 701 сообщений
  • Репутация: 405

Отправлено 01 Октябрь 2015 - 16:59

Евгений, ты о какой 404 ошибке говоришь? Пункт меню это и есть ссылка: нет ссылки - нет ошибки...чтобы ссылки потом отдавали 404ошибку

 

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

 

Однако останусь при своём мнении:

 

У меня нет полной уверенности, что если страница есть в sitemap.xml, но на нее нет ссылок с сайта, то она 100% будет в индексе, и что по отношению к ней не будет применено каких-нибудь понижающих выдачу санкций со стороны алгоритмов ПС...

 

В качестве перестраховки - оставил бы рабочие ссылки на страницу где-нибудь на сайте, спрятанные - чтоб никто не увидел и не ходил...У меня нет полной уверенности, что если страница есть в sitemap.xml, но на нее нет ссылок с сайта, то она 100% будет в индексе, и что по отношению к ней не будет применено каких-нибудь понижающих выдачу санкций со стороны алгоритмов ПС...

 

Кстати если работать с display:none, то можно вообще сделать скрипт на js или jQ которые будут присваивать display:none элементам уже после загрузки страницы... так ссылки индексироваться будут, а видны не будут...

 

Более того, можно сделать хитрый симбиоз с помощью php, в самом конце страницы перед </body> (закрывающим) можно сделать следующую конструкцию:

<?php
$dat = date(m.d);
if(1001 <= $dat AND $dat <= 1231) //1001 - 1 октября, 1231 - 31 декабря (для примера)
{echo "<script>document.getElementById('нужныйID').style.display='none'</script>";}
?>

Это будет скрещивание скрипта @1putnik, и твоего "стилевого" решения, и моя паранойя будет спать спокойно - для ПС ссылка будет действующей...

 

P.S. Если не html5, то тег <script> для валидности лучше прописать как <script type='text/javascript'>


Сообщение отредактировал ShowPrint: 01 Октябрь 2015 - 18:24

  • 0
MasterWEBS: третий дом - моё хобби и увлечение... Второй дом: работа - не меньше 12 часов в день...
Первый дом - под охраной: "Осторожно - злая жена!" (дрессировалась долго и надёжно) /*ссылку не просите - не дам!*/


#15 Evgeniy3200

Evgeniy3200
    Topic Starter
  • Пользователь PRO
  • 1 145 сообщений
  • Репутация: 264

Отправлено 01 Октябрь 2015 - 17:57

Про 404 за два три месяца пока раздел открыт для всех его поисковики проиндексирую и поставят в выдачу. А когда я просто снесу пункт меню то ссылка окажется битой, т.к. Уже проиндексирована. Плюс ссылка будет рекламиться в соц сетях и есть вероятность что люди оттуда будут идти и после того, как я скрою раздел. Отовсюда удалить ссылку не смогу и не надо. И я хочу чтобы люди поподали не в пустотоу а на страницу, хоть и не с самой актуальной информацией. Хотя актуальность базируется только на точной дате и цене, а текстовая информация будет по сути правильной и пользователь получит хотя бы представление об услуге, которую можно будет заказать позже, когда начнется сезон. И об этом я на странице также сообщу)

Вариант с php+js очень даже подходит, мне нравится и всем будет хорошо)) +1 в карму.

Тогда сразу вопрос по теме, если у меня таких три пункта меню и каждый имеет свой уникальный ид, как будет выглядеть код?
  • 0

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



#16 ShowPrint

ShowPrint
  • Пользователь PRO
  • 1 701 сообщений
  • Репутация: 405

Отправлено 01 Октябрь 2015 - 18:23

А когда я просто снесу пункт меню то ссылка окажется битой

Видимо я чего-то не так понимаю... Ты когда пункт меню сносишь (не физически, а скрываешь) - у тебя нет самой ссылки, а проиндексированная страница остается... Откуда возьмется 404-я??? Она же появляется когда пытаешься открыть несуществующую страницу, а страница-то остается, она есть!!! (Убивается) Скрывается только видимый юзверю переход на эту страницу...  :unsure:

Оффтопик

 

По коду:

<?php
// если период скрытия для всех трех ссылок одинаков
$dat = date(m.d);
if(1001 <= $dat AND $dat <= 1231) //1001 - 1 октября, 1231 - 31 декабря (для примера)
{echo "
  <script>
    document.getElementById('нужныйID-1').style.display='none';
    document.getElementById('нужныйID-2').style.display='none';
    document.getElementById('нужныйID-3').style.display='none';
  </script>";
}

// если для каждой ссылки свой период скрытия, то тогда так:
$dat = date(m.d);
if(1001 <= $dat AND $dat <= 1231) //1001 - 1 октября, 1231 - 31 декабря (для примера)
{echo "<script>document.getElementById('нужныйID-1').style.display='none'</script>";}
if(0901 <= $dat AND $dat <= 1130) //0901 - 1 сентября, 1130 - 30 ноября (для примера)
{echo "<script>document.getElementById('нужныйID-2').style.display='none'</script>";}
if(0801 <= $dat AND $dat <= 1031) //0801 - 1 августа, 1031 - 31 октября (для примера)
{echo "<script>document.getElementById('нужныйID-3').style.display='none'</script>";}
?>

Если я конечно ничего не напутал в очередной раз...  :rolleyes:


Сообщение отредактировал ShowPrint: 01 Октябрь 2015 - 18:27

  • 0
MasterWEBS: третий дом - моё хобби и увлечение... Второй дом: работа - не меньше 12 часов в день...
Первый дом - под охраной: "Осторожно - злая жена!" (дрессировалась долго и надёжно) /*ссылку не просите - не дам!*/


#17 miketomlin

miketomlin
  • Пользователь
  • 261 сообщений
  • Репутация: 35

Отправлено 01 Октябрь 2015 - 18:46

@ShowPrint, он говорит, что структура движка такова, что когда "сносишь" пункт меню, соответствующая страница/раздел становится недоступным. Было найдено вполне приемлемое решение со стилями. Но опять получается ручная работа. Попробуйте сделать внедрение этого стиля на PHP по времени.

 

Нет ничего страшного в том, что ссылка полность исчезает с сайта, а страница по ссылке остается доступной. Как было сказано, это даже хорошо при условии размещения на странице инфы о «сезонности», чтобы те посетители, которые попадают на страницу по прямым переходам, были в курсе. Полностью "отрубить" пункт наверняка можно и не сложно, но нужно "копать".


Сообщение отредактировал miketomlin: 01 Октябрь 2015 - 18:47

  • 1

#18 ShowPrint

ShowPrint
  • Пользователь PRO
  • 1 701 сообщений
  • Репутация: 405

Отправлено 01 Октябрь 2015 - 18:51

@miketomlin, понятно где собака порылась... Я-то вымирающий "динозавр", верстающий "ручками"...  :D

 

Но собственно о "сносе" речи ка-то и не было... Говорили, насколько я понял о "скрытии"... А "удалить" и "не показывать" - вещи разные... Понял, что это cms-ные заморочки, будем считать - разобрались...

 

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


  • 0
MasterWEBS: третий дом - моё хобби и увлечение... Второй дом: работа - не меньше 12 часов в день...
Первый дом - под охраной: "Осторожно - злая жена!" (дрессировалась долго и надёжно) /*ссылку не просите - не дам!*/


#19 miketomlin

miketomlin
  • Пользователь
  • 261 сообщений
  • Репутация: 35

Отправлено 01 Октябрь 2015 - 18:59

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


Хотя лично мне обычно не в лом вручную год в копирайте менять. Это к примеру.


  • 0

#20 ShowPrint

ShowPrint
  • Пользователь PRO
  • 1 701 сообщений
  • Репутация: 405

Отправлено 01 Октябрь 2015 - 19:07

@miketomlin,

 

Отбрасываете год и смотрите, попадает ли после этого текущая дата в опред. диапазон времени года

А вот это:

$dat = date(m.d);
if(1001 <= $dat AND $dat <= 1231) //1001 - 1 октября, 1231 - 31 декабря (для примера)
{echo "<script>document.getElementById('нужныйID-1').style.display='none'</script>";}

не то, о чем говорим, не?

 

 

на один раз

В смысле один раз прописать и каждый год цикл показа будет повторяться... ;)  


Сообщение отредактировал ShowPrint: 01 Октябрь 2015 - 19:08

  • 0
MasterWEBS: третий дом - моё хобби и увлечение... Второй дом: работа - не меньше 12 часов в день...
Первый дом - под охраной: "Осторожно - злая жена!" (дрессировалась долго и надёжно) /*ссылку не просите - не дам!*/


robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru