если не сложно подскажите... что еще нужно добавить чтобы
при if (!isset($_GET['destination'])) выполнение ссылки было доступно только пользователю с ролью admin (цифровое значение роли), а всех других перекидывало на страницу не доступности страницы + вывод сообщения...
При клике на ссылку если юзер - админ - выводилась форма создания, а если просто юзер... то редирект на страницу недоступности с выводом сообщения какого нить...
ребята всем привет!
я у вас впервые также первый раз использую друпалик, он мне понравился хороший cms ешник, мне тут одна компания гос.предприятие дали задание до завтрашнего утра предоставить им в 3 вариантах шаблона сайт, я вот скачал шаблоны с офф.сайта вставил все как полагается но нигде я не увидел как в header можн вставить допустим фото этого гос.предприятия, извините меня за глупый вопрос, просто я никогда в друпале этого не делал, вообщем мне надо сделать сайт там многие менюшки в основном будут идти в виде ссылок, извиняюсь если не так выражасюь.
1. разное отображение поля формы ноды при создание при разных условиях (первый фрагмент кода)
2. создается страница (Моя страница)
как связать воедино это все дело. чтобы на созданную страницу редирект был только при условии что юзер наживем node/add/facts (форма - facts_node_form)
При клике на ссылку если юзер - админ - выводилась форма создания, а если просто юзер... то редирект на страницу недоступности с выводом сообщения какого нить...
- Даете права на создание facts только роли "админ" !
- Ничего писать не надо больше
- При попытке пользователя без прав "админ" перейти по ссылке node/add/facts - он будет переброшен на страницу drupal_access_denied
Создавать можно только по node/add/facts , а что у Вас 521 ? Я так понимаю что Вы хотите создавать не по родной ссылке для определённой роли - не знаю для чего Вам такое извращение, но в ракурсе Друпал Вам надо создать в _menu( новый page типа node/add/facts/destination/%node и у него определить 'access callback' по ролям
destination=node/521
Однако я не могу не заметить, что Вы не изращене не ответили на вопрос - "почему 521 два раза ???
Но в любом случае 1 Вараинт
hook_menu(
.. 'node/add/facts/destination/%node 2 Вариант (movetone)
hook_form_alter(
if( ... && isset($_GET['destination'])){
drupal_access_denied();
drupal_exit();
}
Комментарии
hook_form_alter
Это вы мне уже говорили, там много чего есть...
Отличный хук - согласен с Вами.
Подскажите в хуке нашел следующее
<?php [form_id] => Array
(
[#type] => hidden
[#value] => facts_node_form
[#id] => edit-facts-node-form
[#parents] => Array
(
[0] => form_id
)
)
[
#id] => facts-node-form[#method] => post
[#action] => /node/add/facts/521?destination=node/521 ?>
как мне записать [#action] сюда...
<?php function mymodule_form_alter(&$form, $form_state, $form_id) {
if (
$form_id == 'facts_node_form'){}
}
?>не так ведь же
$form[#action] == '/node/add/facts/521?destination=node/521'
if(isset($_GET['destination']))
<?php if(isset($_GET['destination'])) {
return
TRUE;}
else {
return
FALSE;}
?>
не так?
Темизация это не return true, а изменение $form
мм то есть если в адресе встречается destination
делаем форум как хотим и в любые дивы обкручиваем?
Можете менять содержимое $form
супер. все как доктор прописал.
если не сложно подскажите... что еще нужно добавить чтобы
при if (!isset($_GET['destination'])) выполнение ссылки было доступно только пользователю с ролью admin (цифровое значение роли), а всех других перекидывало на страницу не доступности страницы + вывод сообщения...
Так так, "выполнение ссылки" - а теперь постановку задачи пожалуйста огласите на человеческом языке, как пользователь.
При клике на ссылку если юзер - админ - выводилась форма создания, а если просто юзер... то редирект на страницу недоступности с выводом сообщения какого нить...
(hook_menu || hook_menu_alter) && 'access callback'![](http://drupal.ru/files/regular_smile.gif)
сузим задачу...
где access callback использовать? в каком хуке... для ограничения...
допустим создам пермишен для модуля своего юзать ссылку без destination
в противном случае нет доступа...
ребята всем привет!
я у вас впервые также первый раз использую друпалик, он мне понравился хороший cms ешник, мне тут одна компания гос.предприятие дали задание до завтрашнего утра предоставить им в 3 вариантах шаблона сайт, я вот скачал шаблоны с офф.сайта вставил все как полагается но нигде я не увидел как в header можн вставить допустим фото этого гос.предприятия, извините меня за глупый вопрос, просто я никогда в друпале этого не делал, вообщем мне надо сделать сайт там многие менюшки в основном будут идти в виде ссылок, извиняюсь если не так выражасюь.
hook_menu || hook_menu_alter
блин или или...... ну Вы написали. буду пробовать.
Ну например
<?phpfunction mymodule_menu() {
$items = array();
$items['my-page'] = array(
'title' => 'Моя страница',
'page callback' => 'my_first_page',
'access callback' => TRUE
);
return $items;
}
function my_first_page() {
$page = array();
return $page;
}
?>
как это связать с этим тогда???
<?phpfunction mymodule_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'facts_node_form'){
if (isset($_GET['destination'])) {
$form['field_reference_to_fact_the_song'][und][0][nid]['#title'] = '';
$form['field_reference_to_fact_the_song'][und][0][nid]['#description'] = '';
}
else {
$form['field_reference_to_fact_the_song'][und][0][nid]['#title'] = 'Песня';
}
}
}
?>
1. разное отображение поля формы ноды при создание при разных условиях (первый фрагмент кода)
2. создается страница (Моя страница)
как связать воедино это все дело. чтобы на созданную страницу редирект был только при условии что юзер наживем node/add/facts (форма - facts_node_form)
При клике на ссылку если юзер - админ - выводилась форма создания, а если просто юзер... то редирект на страницу недоступности с выводом сообщения какого нить...
- Даете права на создание facts только роли "админ" !
- Ничего писать не надо больше
- При попытке пользователя без прав "админ" перейти по ссылке node/add/facts - он будет переброшен на страницу drupal_access_denied
так ведь вопрос в том что юзер обычный по node/add/facts/521?destination=node/521 должен создавать. так что доступ к созданию всех юзеров должен быть
Создавать можно только по node/add/facts , а что у Вас 521 ? Я так понимаю что Вы хотите создавать не по родной ссылке для определённой роли - не знаю для чего Вам такое извращение, но в ракурсе Друпал Вам надо создать в _menu( новый page типа node/add/facts/destination/%node и у него определить 'access callback' по ролям
не это пример ссылки с destination
еще раз напишу как это написано выше я сейчас могу создать ноду
способ 1. node/add/facts/521?destination=node/521
способ 2. node/add/facts
в первом случае я создаю из конкретной ноды
во втором случае... по общей ссылке из меню создания нод...
так вот общую ссылку для обычных юзеров нужно редеректить на др страницу как вариант доступа нет с текстом сообщения каким нить (о причине).
вот и вся... задача никакого извращения.
destination=node/521
Однако я не могу не заметить, что Вы не изращене не ответили на вопрос - "почему 521 два раза ???
Но в любом случае
1 Вараинт
hook_menu(
.. 'node/add/facts/destination/%node
2 Вариант (movetone)
hook_form_alter(
if( ... && isset($_GET['destination'])){
drupal_access_denied();
drupal_exit();
}
ой... ну такая ссылка у меня строится через Custom Contextual Links
что-то так не очень. а редирект на страницу
<?phpfunction mymodule_menu() {
$items = array();
$items['my-page'] = array(
'title' => 'Моя страница',
'page callback' => 'my_first_page',
'access callback' => TRUE
);
return $items;
}
function my_first_page() {
$page = array();
return $page;
}
?>
Вместо
drupal_access_denied();
drupal_exit();
использовать
drupal_goto()
с этим разобрался. а что бы возвращала на туже страницу на которой был перед тем как кликнуть по ссылке...
drupal_get_destination() использовать?
я попробовал что -то белый экран...
destination берет из $_GET['destination'], иначе $_SERVER['HTTP_REFERER']
и что в моем случае нужно применить?
Вы у руля.