Искать  
 
   
 
Закрытие или редирект не нужных любому глазу страниц
Отправлено: 18 Январь 2010 03:57 A.M.   [ Игнорировать ]
Студент
Avatar
RankRank
Всего сообщений:  107
Зарегистрирован  2009-08-05

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

Часто вообще об этом не помнил, но в последних проектах стал использовать вот это:

{if segment_1 == "avtor" AND segment_2 == ""}
{redirect
="404"}
{
/if} 

Так нормально? Или есть более лучший вариант?

 Подпись 

Серёга я

Профиль
 
 
Отправлено: 18 Январь 2010 01:40 P.M.   [ Игнорировать ]   [ # 1 ]
Студент
Avatar
RankRank
Всего сообщений:  150
Зарегистрирован  2008-02-02

Что за ссылки имеешь в виду? опиши подробнее.

В обще, если надо спрятать конкретные ссылки, можно их вообще не выводить в шаблоне:

{if username != "avtor"}
<a href="#">link</a>
{/if} 

А если содержимое этих страниц надо спрятать, можно в шаблоне страницы тем же условием вывод ограничить.

Ещё, если нужно скрыть контент конкретных страниц от роботов, можно robots.txt написать.

 Подпись 

Запустил WEB-BRICKS - ресурс для web-мастеров. Прошу любить и жаловать!

Профиль
 
 
Отправлено: 18 Январь 2010 02:12 P.M.   [ Игнорировать ]   [ # 2 ]
Sr. Member
RankRankRankRank
Всего сообщений:  987
Зарегистрирован  2008-09-27

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

Профиль
 
 
Отправлено: 18 Январь 2010 02:13 P.M.   [ Игнорировать ]   [ # 3 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  644
Зарегистрирован  2009-04-11

может  это http://eedocs.fdcore.ru/new/download/85/

 Подпись 

Няшка, программист, фотограф, подкастер, блоггер и CEO студии FDCore Studio

Профиль
 
 
Отправлено: 18 Январь 2010 03:09 P.M.   [ Игнорировать ]   [ # 4 ]
Студент
Avatar
RankRank
Всего сообщений:  107
Зарегистрирован  2009-08-05

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

Есть страницы авторов site.ru/avtor/sergey/ и site.ru/avtor/masha/ , но страница site.ru/avtor/ как бы не планировалось, но иногда для уменьшения кода в шаблоне получается, так что любой может в адрессной строке набрать site.ru/avtor/ и увидит какую нибудь баламуть.

Так вот в таких шаблонах я делал так, если segment_1 == avtor а следующий сегмент пустой, то делаем редирект. Наверно всё таки у меня норм метод.

LG Access не то тоже, польза в нём есть, но в моём случае это слишком сложно =)

 Подпись 

Серёга я

Профиль
 
 
Отправлено: 20 Январь 2010 12:21 A.M.   [ Игнорировать ]   [ # 5 ]
Студент
Avatar
RankRank
Всего сообщений:  150
Зарегистрирован  2008-02-02
rufer - 18 Январь 2010 03:09 P.M.

но иногда для уменьшения кода в шаблоне получается, так что любой может в адрессной строке набрать site.ru/avtor/ и увидит какую нибудь баламуть.

При твоём условии любой может с таким же успехом набрать что-то типа: site.ru/avtor/petya/ и тогда ту же баламуть увидит, если у тебя теги вывода базируются на втором сегменте.

Можно, конечно, если авторов мало (2-3), использовать условие !=

{if segment_1 == "avtor" AND (segment_2 != "name1" || segment_2 != "name2")}
{redirect
="404"}
{
/if} 

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

 Подпись 

Запустил WEB-BRICKS - ресурс для web-мастеров. Прошу любить и жаловать!

Профиль
 
 
Отправлено: 20 Январь 2010 02:43 P.M.   [ Игнорировать ]   [ # 6 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  891
Зарегистрирован  2008-01-07

я думаю можно просто:

{if no_results}
{redirect
="404"}
{
/if} 
Профиль
 
 
Отправлено: 20 Январь 2010 02:55 P.M.   [ Игнорировать ]   [ # 7 ]
Студент
Avatar
RankRank
Всего сообщений:  107
Зарегистрирован  2009-08-05

Я так пробывал, но результата тоже нет. Пример.

{if segment_2 == url_title}
{uslugi}
{
/if}

{if no_results}
{redirect
="404"}
{
/if} 

Если потом прописать вместо услуги что нибудь другое никуда не редиректерит ...

 Подпись 

Серёга я

Профиль
 
 
Отправлено: 20 Январь 2010 03:01 P.M.   [ Игнорировать ]   [ # 8 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  891
Зарегистрирован  2008-01-07

ты пробовал между тегами exp:weblog:entries ?

Профиль
 
 
Отправлено: 20 Январь 2010 03:04 P.M.   [ Игнорировать ]   [ # 9 ]
Студент
Avatar
RankRank
Всего сообщений:  107
Зарегистрирован  2009-08-05
budulay - 20 Январь 2010 03:01 P.M.

ты пробовал между тегами exp:weblog:entries ?

да как пологается между ними, иначе поле {uslugi} ничего бы не выводило wink

ДОБАВЛЕНО

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

{if segment_2 == url_title}
{uslugi}
{if
:else}
{redirect
="404"}
{
/if} 

а вообще как работает этот no_results, в документации сказано, что придётся часто с ним работать ... хз ниразу им не пользовался, а если и пробывал, то безрезультатно!

 Подпись 

Серёга я

Профиль
 
 
Отправлено: 20 Январь 2010 03:10 P.M.   [ Игнорировать ]   [ # 10 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  891
Зарегистрирован  2008-01-07

а какие параметры для weblog:entries ?

Профиль
 
 
Отправлено: 20 Январь 2010 03:11 P.M.   [ Игнорировать ]   [ # 11 ]
Администратор
RankRankRankRank
Всего сообщений:  1354
Зарегистрирован  2008-01-02
rufer - 20 Январь 2010 03:04 P.M.

а вообще как работает этот no_results, в документации сказано, что придётся часто с ним работать ... хз ниразу им не пользовался, а если и пробывал, то безрезультатно!

нормально работает. Так пробовал?

{exp:weblog:entries weblog="news" limit="15" username="{segment_2}"}

<h3>{title}</h3>

{body}

{if no_results}
{redirect
="weblog/noresult"}
{
/if}

{
/exp:weblog:entries} 
 Подпись 

booooring…

Профиль
 
 
Отправлено: 20 Январь 2010 03:20 P.M.   [ Игнорировать ]   [ # 12 ]
Студент
Avatar
RankRank
Всего сообщений:  107
Зарегистрирован  2009-08-05
budulay - 20 Январь 2010 03:10 P.M.

а какие параметры для weblog:entries ?

блин решение с {if:else} не удачно, т.к. сегмент 1 тоже теперь редиректит, хотя там список всех услуг.
конструкция такая, конечн маленько подчистил хтмл код

{exp:weblog:entries weblog="uslugi" limit="1" disable="categories|category_fields|member_data|pagination|trackbacks"}

<h1 class="ss">#<a href="{path={segment_1}}">Услуги</a>
{if segment_2 == url_title}
 
#<a href="{path={segment_1}/{url_title}}">{title}</a></h1>
{/if}

{
/exp:weblog:entries}

{exp
:weblog:entries weblog="uslugi" disable="categories|category_fields|member_data|pagination|trackbacks"}

{if segment_2 
== ""}
{uslugi_prev}
{
/if}

{if segment_2 
== url_title}
{uslugi}
{
/if}

{if no_results}
{redirect
="404"}
{
/if} 

{
/exp:weblog:entries} 

так no_results не работает

 Подпись 

Серёга я

Профиль
 
 
Отправлено: 20 Январь 2010 03:32 P.M.   [ Игнорировать ]   [ # 13 ]
Администратор
RankRankRankRank
Всего сообщений:  1354
Зарегистрирован  2008-01-02

1. рекомендую освоить плагин Reeposition,  что бы не делать такие конструкции с двумя {exp:weblog:entries} (или, на крайний случай использовать плагин, который делает запрос только на title).

2. попробуй так:

{exp:weblog:entries weblog="uslugi" disable="categories|category_fields|member_data|pagination|trackbacks" 
{if segment_2 != ""}url_title ="{segment_2}"{/if}}

{if segment_2 
== ""}
{uslugi_prev}
{
/if}

{if segment_2 
!= ""}
{uslugi}
{
/if}

{if no_results}
{redirect
="404"}
{
/if} 

{
/exp:weblog:entries} 

p.s. {if:else} - это сложное условие, оно обрабатывается в самую последнюю очередь парсером, поэтому, скорей всего,  и не работает.

 Подпись 

booooring…

Профиль
 
 
Отправлено: 20 Январь 2010 03:47 P.M.   [ Игнорировать ]   [ # 14 ]
Студент
Avatar
RankRank
Всего сообщений:  107
Зарегистрирован  2009-08-05

Аааа! Calm и budulay спасибо всё работает как надо!

2calm

1. Да Reeposition уже начал пользоваться, но думаю этот проект переписывать не буду, а вообще репозитион штука классная, много свободы даёт!
2. Всё работает! Если честно не думал, что такая конструкция будет работать, т.к. условие внутри exp:weblog:entries, казалось не возможным, для меня это что-то новое!
3. Да про {if:else} ты как то писал уже мне, что лучше от него отказываться ...

 Подпись 

Серёга я

Профиль
 
 
Отправлено: 20 Январь 2010 03:56 P.M.   [ Игнорировать ]   [ # 15 ]
Администратор
RankRankRankRank
Всего сообщений:  1354
Зарегистрирован  2008-01-02
rufer - 20 Январь 2010 03:47 P.M.

2. Всё работает! Если честно не думал, что такая конструкция будет работать, т.к. условие внутри exp:weblog:entries, казалось не возможным, для меня это что-то новое!

просто держи в голове порядок парсинга - что после чего свои теги использует. Т.к. segment_x и чистый {if} парсяться  одними из первых (до модулей), то когда модуль weblog начинай парсить свои теги, он уже видит

{exp:weblog:entries weblog="uslugi" disable="categories|category_fields|member_data|pagination|trackbacks" 
url_title ="Chot_v_segmente"

это же позволяет нам делать конструкции следующего вида(просто для примера - как функционально, в данном случае, это не оправдано):

{if segment_2 != ""}
{exp
:weblog:entries weblog="uslugi" disable="categories|category_fields|member_data|pagination|trackbacks" 
url_title ="{segment_2}"}
{
/if}
{if segment_2 
== ""}
{exp
:weblog:entries weblog="uslugi" disable="categories|category_fields|member_data|pagination|trackbacks"}
{
/if}

{if segment_2 
== ""}
{uslugi_prev}
{
/if}

{if segment_2 
!= ""}
{uslugi}
{
/if}

{if no_results}
{redirect
="404"}
{
/if} 

{
/exp:weblog:entries} 
 Подпись 

booooring…

Профиль