Как правильно сделать разное отображение не авторизованным и авторизованным пользователям? [Решено]

Аватар пользователя realburnis realburnis 27 сентября 2012 в 16:09

Задача стоит следующая.
Сделать так, что бы авторизованные и не авторизованные пользователи видели абсолютно разное оформление и контент.

Описываю свое решение, которое меня не устраивает на текующий момент. Ищу альтернативное и более правильное.

Я сделал в page.tpl примерно следующий код:

<?php

if  ($user->uid!=0
     include (
"da.tpl.php");
         else     
        {
           include (
"net.tpl.php");
        }
?>

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

Так же просто запретил доступ ко всем нодам для не авторизованных пользователей - что бы лишнего не увидели ведь $content в "ДА-тпл" я все же вывожу (что бы видно было сообщения слудебные и/т/д)

Что меня не устраивает в таком варианте - это индексация поисковыми системами.
Так как по понятным причинам, в качестве "главной страницы" у меня выбрана нода та, которая видна только зарегистрированному пользователю получается некоторая околесица. Возвращается роботу ерунда вида "Сайт недоступен." если через вебмастера Яндекса.

Пожалуйста помогите как сделать правильно в моей ситуации? Подозреваю, что нужно сделть кардинально по-другому. Просто мозг затуманен...

Комментарии

Аватар пользователя sg85 sg85 27 сентября 2012 в 16:41

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

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

Аватар пользователя realburnis realburnis 27 сентября 2012 в 17:01

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

Но вот не задача. Если я правильно понял, то "видимость типов материалов" в шестом друпале регулируется одним лишь способом - Модуль node - доступ к содержимому и вся эта беда отвечает сразу за все "типы материалов".

Как мне регулировать возможность доступа (именно на уровне доступа а не редактирования) для отдельно взятых типов материлов?

Или же я что-то надумал нетого ?

Аватар пользователя Geldora Geldora 27 сентября 2012 в 17:44

я не понимаю в чем проблема.

вы не хотите отдавать в общий доступ содержимое = вы не хотите чтобы это содержимое увидел непойми кто = вы не хотите чтобы это содержимое индексировали поисковики. По другому эта цепочка не складывается. Если поисковик проиндексирует сайт, то содержимое окажется в открытом доступе.

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

даже если запрещать через доступы - анонимысу = поисковики = все равно не смогут зайти на сайт.

Аватар пользователя realburnis realburnis 27 сентября 2012 в 18:03

потому что, я хочу что бы у меня индексировалась гланая страница - и все.
НО! В таком варианте как сделал я и я объяснил почему даже главная страница не может индексироваться. Как решить проблему?

Аватар пользователя sg85 sg85 27 сентября 2012 в 18:13

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

Аватар пользователя realburnis realburnis 27 сентября 2012 в 18:15

я же выше подробно описал проблему....

На главной выводится блок-или праивльнее регион $content - да! Но! В настройках правах доступа стоит "не показывать ноды никакие пользователям" а настройка главной страницы в "настройках сайта" - одна из страниц друпала - именно на неё-ноду и попадает первым делом авторизованный пользователь.

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

что я могу в итоге сделать?

Аватар пользователя realburnis realburnis 27 сентября 2012 в 18:15

я же выше подробно описал проблему....

На главной выводится блок-или праивльнее регион $content - да! Но! В настройках правах доступа стоит "не показывать ноды никакие пользователям" а настройка главной страницы в "настройках сайта" - одна из страниц друпала - именно на неё-ноду и попадает первым делом авторизованный пользователь.

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

что я могу в итоге сделать?

Аватар пользователя realburnis realburnis 27 сентября 2012 в 18:17

Заходя на главную не авторизованный я виже все что я хочу - нужные блоки, регионы и нужное мне оформление! НО! ПОИСКОВИК еще видет то что ему вталкивает index.php а именно загрузку "ноды главной страницы" указанной в "настройках сайта"....

Аватар пользователя sg85 sg85 27 сентября 2012 в 18:55

Т.е. У вас стоит еще отдельный логический фильтр для поисковиков, который отделяет их от простых смертных и выдает совсем другую страницу? Если нет - то поисковик видет именно то же, что и обычный гость. А так можете ему через главную хоть обычный HTML скармливать, т.е. это же самое будут видеть и гуглояндексы, и гости

Аватар пользователя realburnis realburnis 27 сентября 2012 в 20:43

Нет. не совсем так...
Простите если я не правильно объяснил. Попробую еще раз.

Что написано в падже.тпл.пхп - я указал в первом сообщении.
Сами страницы выглядят так

на главной странице (она получается в двух вариантах)
1. зарегистрированный пользователь по-умолчанию попадает на главную страницу а вот тут: admin/settings/site-information в "Главная страница по умолчанию:" - стоит, к примеру node/3

2. не зарегистрированные пользователи попадая на главную видят несколько измененное оформление и они не видят контента. Только блоки-регионы. Потому что вот здесь admin/user/permissions в модуль node в "Доступ к содержимому" стоит не показывать не авторизованным пользователям.

И естественно получается, что поисковик видит бяку. Ведь с индекс.пхп подгружается как бы node/3 - но на самом деле она не подгружается и получается вот такой фейл.

Обычный человек этого не видит и у него нет проблем. Он видит на главной то, что нужно.

Вопрос. Как мне решить проблему так, что бы визуально я сделал то что я сделал но избавился от проблемы с роботами? Потому что в индекс я хочу. Я уже не говорю о том, что я так даже Директ не могу купить ибо "Ваш сервер вернул ошибку: 403 Forbidden"

Аватар пользователя realburnis realburnis 27 сентября 2012 в 22:03

Решено!

Простите, если не смог объяснить что именно мне нужно. Но если кто-то понял, и столкнется в будущем с такой странной проблемой. То решил я её вот так....

в самый верх node.tpl.php я вставил

<?php
if($user->uid == 0){
echo 
"Текст, который в моем случае выпадет на главной для не авторизованных пользователей";
return;
//а так мы решим ту саму странную проблему. Мне просто не нужен node.tpl не подумал я -)
?>
Аватар пользователя WebRemake WebRemake 28 сентября 2012 в 3:24

"realburnis" wrote:
сделать разные типы содержимого для залогиненных и нет я тоже не могу и выше написал почему так как доступ ко всем нодам регулируется в "доступ к содержимому сайта"
что я могу в итоге сделать?

использовать модуль [module=content_access] -

Аватар пользователя realburnis realburnis 28 сентября 2012 в 10:21

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