0 Пользователей и 1 Гость просматривают эту тему.
  • 9 Ответов
  • 745 Просмотров
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Всем привет!
Хочется по красоте вывести в статье ссылку на редактирования таким образом, чтобы статья на редактирование открывалась в админке, а не с фронта (с фронта мне не нравится - надо всякие бутстрапы подключать и вообще...).
Есть такая функция в API?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
В API - вряд ли. А так, в принципе можно, но есть 2 проблемы:
-авторизация,
-отключение проверки разрешения на редактирование в контроллере, что, полагаю, нежелательно с точки зрения безопасности (не вникал, но раз поставили, значит для чего-то нужно).
Не будь паразитом, сделай что-нибудь самостоятельно!
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
ну замени ссылку на
Цитировать
/administrator/index.php?option=com_content&task=article.edit&id=ID
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
ну так и придется делать.
+ проверку на ID юзера или даже IP-шник, чтобы казать или скрывать ссылку (я так понимаю, если с фронта не залогинен, то только отдельным запросом можно достать группу юзера по ID?)
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
интересно, а можно как-то вытянуть с фронта инфу о залогинивании с бэкэенда?
может через сессию можно как-то определить, что админ сайт просматривает?
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
ну так и придется делать.
+ проверку на ID юзера или даже IP-шник, чтобы казать или скрывать ссылку (я так понимаю, если с фронта не залогинен, то только отдельным запросом можно достать группу юзера по ID?)
если ты не залогинен, не знаю какую ты группу собрался там доставать)
если залогинен, то группу можно проверить так
Код
$user = JFactory::getUser();
if (in_array('id группы', $user->groups)) {
    //выводим ссылку
}
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
да у меня ум за разум уже. параллельно 3 сайт ан WP - там нет такого деления. типа, зологинился с бэкенда, с фронта видишь панель редактирования...
вот такое хочу замутить )). даешь унификацию интерфейсов! )). пока что через IP придется

а косвенно узнать, через сессию?
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
да у меня ум за разум уже. параллельно 3 сайт ан WP - там нет такого деления. типа, зологинился с бэкенда, с фронта видишь панель редактирования...
вот такое хочу замутить )). даешь унификацию интерфейсов! )). пока что через IP придется

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

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
да судя по всему мне одному надо такую фичу ))
нагуглил 1 грустную тему на инглише, в которой ответили, что типа "архитектурой разведено".
наверно, так и придется делать - для залогининных с фронта админов ставить куку на полгода, а в статье по ней казать ссыль.
сасибо за пинание в правильную сторону )
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
в общем, поработал топором :)
отдельным микрофайлом в корне сайта устанавливаю или обнуляю куку по GET запросу (1 - показывать ссылку, 0 - не показывать),
Код
ваш сайт/ИМЯ_ФАЙЛА.php?show=1

содержимое файла
Код
	$se_flag = filter_var ( $_GET[show], FILTER_SANITIZE_NUMBER_INT); //очищаем переменную от всего, кроме цифер
//echo $se_flag;
setcookie ("ShowEdit", $se_flag, time()+3*24*60*60); // ставим куку на 3 дня

а в шаблон врезал вот это

Код
	if (filter_var ( $_COOKIE["ShowEdit"], FILTER_SANITIZE_NUMBER_INT)){
$path="";
$btName="РЕДАКТИРОВАТЬ МАТЕРИАЛ";
if(showPage(array('option'=>'com_content', 'view'=>'article'))) $path='"/administrator/index.php?option=com_content&task=article.edit&id='.$_REQUEST[id].'"';
if(showPage(array('option'=>'com_content', 'view'=>'category')) || showPage(array('option'=>'com_content', 'view'=>'categories'))){
$path='"/administrator/index.php?option=com_categories&task=category.edit&id='.$_REQUEST[id].'"';
$btName="РЕДАКТИРОВАТЬ КАТЕГОРИЮ";
}
if ($path!="") echo '<a target="blank" href='.$path.'>'.$btName.'</a>';

}
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться