как сделать форму добавления контента блоком на главной странице?

Главные вкладки

Аватар пользователя kmi kmi 30 мая 2008 в 0:48

день добрый!

подскажите, пожалуйста - нужно решить следующую задачу: добавление контента (определнного типа - скажем, он называется "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 = '

'. l(drupal_ucfirst($type->name), "node/add/$type_url_str", array('title' => $title)) .'

';
$out .= '

'. filter_xss_admin($type->description) .'

';
$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;
?>

Комментарии

Аватар пользователя kmi kmi 30 мая 2008 в 18:27

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

Аватар пользователя kmi kmi 30 мая 2008 в 18:27

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

Аватар пользователя Valeratal Valeratal 2 июня 2008 в 17:27

Эм, а как вывести список доступных для добавления видов нод для пользователей
Каким кодом? (в блок уж сам запихну)

Аватар пользователя Nikit Nikit 3 июня 2008 в 6:57

2Valetaral
в общем то к теме не относиться
но вот запрос:

SELECT a.type
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