день добрый!
подскажите, пожалуйста - нужно решить следующую задачу: добавление контента (определнного типа - скажем, он называется "new") минуя стадию "create content" и необходимость выбора типа контента.
т.е. нужно, чтобы на главной странице отображался блок, содержащий то же, что и по ссылке
сайт/node/add/new
как я понял, это можно сделать, вставив в блок кусок php из модуля node - функцию node_add.
вот только никак не соображу, куда здесь нужно вставить параметр "new" (назвиние типа создаваемого контента).
в php я не специалист - помогите, плз.
спасибо!
ЗЫ - вот сам код, через который я пробую достичь цели:
<?php
global $user;
$types = node_get_types();
$type = isset($type) ? str_replace('-', '_', $type) : NULL;
// If a node type has been specified, validate its existence.
if (isset($types[$type]) && node_access('create', $type)) {
// Initialize settings:
$node = array('uid' => $user->uid, 'name' => $user->name, 'type' => $type);
drupal_set_title(t('Submit name', array('name' => $types[$type]->name)));
$output = drupal_get_form($type .'_node_form', $node);
}
else {
// If no (valid) node type has been provided, display a node type overview.
foreach ($types as $type) {
if (function_exists($type->module .'_form') && node_access('create', $type->type)) {
$type_url_str = str_replace('_', '-', $type->type);
$title = t('Add a new s.', array('s' => $type->name));
$out = '
';
$out .= '
';
$item[$type->type] = $out;
}
}
if (isset($item)) {
uksort($item, 'strnatcasecmp');
$output = t('Choose the appropriate item from the list:') .'
- '. implode('', $item) .'
';
}
else {
$output = t('No content types available.');
}
}
return $output;
?>
Комментарии
можешь использовать http://drupal.org/project/formblock или оттуда взять примерный код.
о, спасибо большое!
всегда удивлялся, что на друпал.орг довольно сложно найти нужную вещь, хотя, она там наверняка есть...
о, спасибо большое!
всегда удивлялся, что на друпал.орг довольно сложно найти нужную вещь, хотя, она там наверняка есть...
Эм, а как вывести список доступных для добавления видов нод для пользователей
Каким кодом? (в блок уж сам запихну)
2Valetaral
в общем то к теме не относиться
но вот запрос:
FROM
node_type a
join users b on b.uid = %uid
inner join users_roles c on c.uid = b.uid
inner join permission d on d.rid = c.rid
WHERE locate(concat('create ', a.type), d.perm)>0
%uid ставишь с $user->uid