Редирект на регистрацию, гостя, при нажатии на кнопку добавлении новости
Я сделал по простому, виджет кнопка-картинка( добавить новость), которая показывается только группе гости с ссылкой на регистрацию.
это не подходит, я ссылку указал в нужном мне файле tpl, html кодом, а не виджетом. При вашем методе видно, что можно, что-то добавлять, только авторизованным, а мне это не подходит.
Вы уже описали логику, теперь просто осталось написать это на пыхапе.Как сделать кнопку добавления новости, с условием, если нажимает гость, происходит редирект на страницу регистрации?
Вот кнопка добавления контента из \templates\default\controllers\content\category_view.tpl.php
if (cmsUser::isAllowed($ctype['name'], 'add')) { if (!$category['id'] || $user->isInGroups($category['allow_add'])){ 'class' => 'add', 'href' => $href )); } }
if (!$category['id'] || $user->isInGroups($category['allow_add'])){ if (cmsUser::isAllowed($ctype['name'], 'add')){ } else {$href = href_to('/auth/register');} 'class' => 'add', 'href' => $href )); }
Если я правильно понял ТС, то не совсем все будет работать как он хотелпросто переделываете её так:
Спойлер
Код PHP:
if (!$category['id'] || $user->isInGroups($category['allow_add'])){
if (cmsUser::isAllowed($ctype['name'], 'add')){
$href = href_to($ctype['name'], 'add', isset($category['path'])? $category['id']: '');
} else
{$href = href_to('/auth/register');}
$this->addToolButton(array(
'class' => 'add',
'title' => sprintf(LANG_CONTENT_ADD_ITEM, $ctype['labels']['create']),
'href' => $href
));
}
И все работает, как Вы хотели.
Ему нужна простая проверка авторизован юзер или нет. Курим маны здесь http://docs.instantcms.ru/dev/controllers/user и прописываем что-то вроде этого:
if (!cmsUser::isLogged()) { 'class' => 'add', 'href' => href_to('/auth/register') )); } //... а тут уже идёт стандартный код добавления записи // предполагаю cmsUser::isAllowed гостей не допустит внутрь блока =) if (cmsUser::isAllowed($ctype['name'], 'add')) { if (!$category['id'] || $user->isInGroups($category['allow_add'])){ 'class' => 'add', 'href' => $href )); } }
Ну я ж проверил предварительно.
Всё работает.
Да, про такое я что-то не подумал...
Протестировал. Работает!P.S. код не тестировал
Если я правильно понял ТС, то не совсем все будет работать как он хотелпросто переделываете её так:
Спойлер
Код PHP:
if (!$category['id'] || $user->isInGroups($category['allow_add'])){
if (cmsUser::isAllowed($ctype['name'], 'add')){
$href = href_to($ctype['name'], 'add', isset($category['path'])? $category['id']: '');
} else
{$href = href_to('/auth/register');}
$this->addToolButton(array(
'class' => 'add',
'title' => sprintf(LANG_CONTENT_ADD_ITEM, $ctype['labels']['create']),
'href' => $href
));
}
И все работает, как Вы хотели.
Ему нужна простая проверка авторизован юзер или нет. Курим маны здесь http://docs.instantcms.ru/dev/controllers/user и прописываем что-то вроде этого:
P.S. код не тестировал
if (!cmsUser::isLogged()) { 'class' => 'add', 'href' => href_to('/auth/register') )); } //... а тут уже идёт стандартный код добавления записи // предполагаю cmsUser::isAllowed гостей не допустит внутрь блока =) if (cmsUser::isAllowed($ctype['name'], 'add')) { if (!$category['id'] || $user->isInGroups($category['allow_add'])){ 'class' => 'add', 'href' => $href )); } }
У меня в файле есть div, а в нем прописана ссылка такого вида <a href="***/poster/add">Предложить событие</a>
куда и какой более правильный мне вставлять предложенный код? Спасибо всем за помощь кстати!
Оберните эту ссылку в php с условием:
<?php if (cmsUser::isLogged()){ ?> <a href="***/poster/add">Предложить событие</a> <?php } else {?> <a href="/auth/register";>Зарегистрироваться и предложить событие </a> <?php } ?>
Bormed,
Оберните эту ссылку в php с условием:
Предложить событие Зарегистрироваться и предложить событие
Спасибо! Теперь все ОК!