Задача стоит следующая.
Сделать так, что бы авторизованные и не авторизованные пользователи видели абсолютно разное оформление и контент.
Описываю свое решение, которое меня не устраивает на текующий момент. Ищу альтернативное и более правильное.
Я сделал в page.tpl примерно следующий код:
<?php
if ($user->uid!=0)
include ("da.tpl.php");
else
{
include ("net.tpl.php");
}
?>
получил кажется что хотел, разные сайты. Авторизованный пользователь видит одно - не авторизованный совсем другое.
Так же просто запретил доступ ко всем нодам для не авторизованных пользователей - что бы лишнего не увидели ведь $content в "ДА-тпл" я все же вывожу (что бы видно было сообщения слудебные и/т/д)
Что меня не устраивает в таком варианте - это индексация поисковыми системами.
Так как по понятным причинам, в качестве "главной страницы" у меня выбрана нода та, которая видна только зарегистрированному пользователю получается некоторая околесица. Возвращается роботу ерунда вида "Сайт недоступен." если через вебмастера Яндекса.
Пожалуйста помогите как сделать правильно в моей ситуации? Подозреваю, что нужно сделть кардинально по-другому. Просто мозг затуманен...
Комментарии
Ваш подход вполне приемлим, дешево и сердито, однако не забывайте, что краулеры - это те же анонимусы, и тут по другому никак, т.е. закрыв его от гостей - так же закроете от ботов, минимум нужно размещать какой то адекватный контент, тупо для ботов.
И, к чему бы я придрался - запрещать доступ лучше не через темизацию, а через управление доступом, оно так как-то проще, надежней и более логично.
Спасибо. Правильно ли я понял, что сделать нужно примерно следующее....
Создать новый типа материала и скажем все имеющие ноды перенести в него.
А типа "контент" для обычных нод оставить для ботов только.
Но вот не задача. Если я правильно понял, то "видимость типов материалов" в шестом друпале регулируется одним лишь способом - Модуль node - доступ к содержимому и вся эта беда отвечает сразу за все "типы материалов".
Как мне регулировать возможность доступа (именно на уровне доступа а не редактирования) для отдельно взятых типов материлов?
Или же я что-то надумал нетого ?
я не понимаю в чем проблема.
вы не хотите отдавать в общий доступ содержимое = вы не хотите чтобы это содержимое увидел непойми кто = вы не хотите чтобы это содержимое индексировали поисковики. По другому эта цепочка не складывается. Если поисковик проиндексирует сайт, то содержимое окажется в открытом доступе.
поэтому зачем вы заморачиваетесь вообще яндексом (и гуглом)? Вы же сами _скрыли_ контент, что от них, что от гостей.
даже если запрещать через доступы - анонимысу = поисковики = все равно не смогут зайти на сайт.
потому что, я хочу что бы у меня индексировалась гланая страница - и все.
НО! В таком варианте как сделал я и я объяснил почему даже главная страница не может индексироваться. Как решить проблему?
Ну так и сделайте, чтоб на главной выводилась информация, для анонимусов(в т.ч. поисковики), сами то Вы что видите заходя гостем на главную?
я же выше подробно описал проблему....
На главной выводится блок-или праивльнее регион $content - да! Но! В настройках правах доступа стоит "не показывать ноды никакие пользователям" а настройка главной страницы в "настройках сайта" - одна из страниц друпала - именно на неё-ноду и попадает первым делом авторизованный пользователь.
сделать разные типы содержимого для залогиненных и нет я тоже не могу и выше написал почему так как доступ ко всем нодам регулируется в "доступ к содержимому сайта"
что я могу в итоге сделать?
я же выше подробно описал проблему....
На главной выводится блок-или праивльнее регион $content - да! Но! В настройках правах доступа стоит "не показывать ноды никакие пользователям" а настройка главной страницы в "настройках сайта" - одна из страниц друпала - именно на неё-ноду и попадает первым делом авторизованный пользователь.
сделать разные типы содержимого для залогиненных и нет я тоже не могу и выше написал почему так как доступ ко всем нодам регулируется в "доступ к содержимому сайта"
что я могу в итоге сделать?
Заходя на главную не авторизованный я виже все что я хочу - нужные блоки, регионы и нужное мне оформление! НО! ПОИСКОВИК еще видет то что ему вталкивает index.php а именно загрузку "ноды главной страницы" указанной в "настройках сайта"....
Т.е. У вас стоит еще отдельный логический фильтр для поисковиков, который отделяет их от простых смертных и выдает совсем другую страницу? Если нет - то поисковик видет именно то же, что и обычный гость. А так можете ему через главную хоть обычный HTML скармливать, т.е. это же самое будут видеть и гуглояндексы, и гости
Нет. не совсем так...
Простите если я не правильно объяснил. Попробую еще раз.
Что написано в падже.тпл.пхп - я указал в первом сообщении.
Сами страницы выглядят так
на главной странице (она получается в двух вариантах)
1. зарегистрированный пользователь по-умолчанию попадает на главную страницу а вот тут: admin/settings/site-information в "Главная страница по умолчанию:" - стоит, к примеру node/3
2. не зарегистрированные пользователи попадая на главную видят несколько измененное оформление и они не видят контента. Только блоки-регионы. Потому что вот здесь admin/user/permissions в модуль node в "Доступ к содержимому" стоит не показывать не авторизованным пользователям.
И естественно получается, что поисковик видит бяку. Ведь с индекс.пхп подгружается как бы node/3 - но на самом деле она не подгружается и получается вот такой фейл.
Обычный человек этого не видит и у него нет проблем. Он видит на главной то, что нужно.
Вопрос. Как мне решить проблему так, что бы визуально я сделал то что я сделал но избавился от проблемы с роботами? Потому что в индекс я хочу. Я уже не говорю о том, что я так даже Директ не могу купить ибо "Ваш сервер вернул ошибку: 403 Forbidden"
Решено!
Простите, если не смог объяснить что именно мне нужно. Но если кто-то понял, и столкнется в будущем с такой странной проблемой. То решил я её вот так....
в самый верх node.tpl.php я вставил
<?php
if($user->uid == 0){
echo "Текст, который в моем случае выпадет на главной для не авторизованных пользователей";
return;//а так мы решим ту саму странную проблему. Мне просто не нужен node.tpl не подумал я -)
?>
использовать модуль [module=content_access] -
Спасибо большое за модуль. Не знал, что такой есть. Можно было сделать все гораздо проще в таком случае, но сейчас меня уже устроил мой вариант.