не отображается страница с добавленными элементами

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

Аватар пользователя gizi gizi 27 октября 2016 в 15:20

При добавлении новых элементов в форму, появляется страница с записью save(в бд элементы тож добавляются),но далее на этой стр отображается page not found и эти добавленные + старые элементы не отображаются,хотя должны.Как решить эту проблему в 7 друпале?или где можно почерпнуть эту информацию?

Лучший ответ

Аватар пользователя xakd xakd 1 ноября 2016 в 23:20
1

Короче все равно не ясно, мы тут специфику сайта не видим. Зашлите мне в личку свой скайп - как будет время стукну, Тут у вас какая-то мелочь, посмотрим, подумаем.
Вы тут описываете частности, но общая задумка ускользает - поэтому и непонятно, судя по всему.

Комментарии

Аватар пользователя gizi gizi 31 октября 2016 в 20:50

да,вручную,заполнение полей формы типа фио, почта,но я добавляю элементы(названия картин) и должен появиться список из старых картин и новых,а вместо этого not found.Вообще я пытаюсь написать модуль по книге Drupal 7 Module Development следующих авторов:Matt Butcher
Greg Dunlap
Matt Farina
Larry Garfield
Ken Rickard
John Albin Wilkins(по подобию главы 6)
те изначально в хук меню добавляю итемы с ссылками
$items['artwork/add'] = array(
'title' => 'Add new artwork',
'page callback' => 'artwork_add_page',
'access arguments' => array('create artworks'),
'weight' => 1,
'menu_name' => 'management',
'file' => 'artwork.controller.inc',
);
foreach (artwork_types() as $type) {
$type_url_str = str_replace('_', '-', $type->type);
$items['artwork/add/' . $type_url_str] = array(
'title' => $type->name,
'title callback' => 'check_plain',
'page callback' => 'artwork_add',
'page arguments' => array(2),
'access arguments' => array('create artwork'),
'description' => $type->description,
);
}
$items['artwork/%artwork'] = array(
'title callback' => 'artwork_page_title',
'title arguments' => array(1),
'page callback' => 'artwork_page_view',
'page arguments' => array(1),
'access arguments' => array('view artworks'),
'type' => MENU_CALLBACK,
);
$items['artwork/%artwork/view'] = array(
'title' => 'View',
'type' => MENU_DEFAULT_LOCAL_TASK,
'weight' => -10,
);
для каждого прописываю коллбэки,все как в книге,но почему не работает

function artwork_add_page() {
$item = menu_get_item();
$links = system_admin_menu_block($item);
foreach ($links as $link) {
$items[] = l($link['title'], $link['href'],
$item['localized_options'])
. ': ' . filter_xss_admin($link['description']);
}
return theme('item_list', array('items' => $items));
}

function artwork_add($type) {
global $user;
$types = artwork_types();
$type = isset($type) ? str_replace('-', '_', $type) : NULL;
if (empty($types[$type])) {
return MENU_NOT_FOUND;

}

$artwork = entity_get_controller('artwork')->create($type);
drupal_set_title(t('Create @Name', array('@Name' =>
$types[$type]->name)), PASS_THROUGH);
return drupal_get_form($type . '_artwork_form', $artwork);
}

unction artwork_page_view($artwork, $view_mode = 'full') {
// Remove previously built content, if exists.
$artwork->content = array();
if ($view_mode == 'teaser') {
$artwork->content['title'] = array(
'#markup' => filter_xss($artwork->title),
'#weight' => -5,
);
}
// Build fields content.
field_attach_prepare_view('artwork',

array($artwork->aid => $artwork),
$view_mode);
entity_prepare_view('artwork', array($artwork->aid => $artwork));
$artwork->content += field_attach_view('artwork', $artwork,
$view_mode);
return $artwork->content;
}

Аватар пользователя gizi gizi 31 октября 2016 в 21:04

Пардон

$items['artwork/add'] = array(
'title' => 'Add
ew artwork'
,
'page callback' => 'artwork_add_page',
'access arguments' => array('create artworks'),
'weight' => 1,
'menu_name' => 'management',
'file' => 'artwork.controller.inc',
);
foreach (artwork_types() as $type) {
$type_url_str = str_replace('_', '-', $type->type);
$items['artwork/add/' . $type_url_str] = array(
'title' => $type->name,
'title callback' => 'check_plain',
'page callback' => 'artwork_add',
'page arguments' => array(2),
'access arguments' => array('create artwork'),
'description' => $type->description,
);
}
$items['artwork/%artwork'] = array(
'title callback' => 'artwork_page_title',
'title arguments' => array(1),
'page callback' => 'artwork_page_view',
'page arguments' => array(1),
'access arguments' => array('view artworks'),
'type' => MENU_CALLBACK,
);
$items['artwork/%artwork/view'] = array(
'title' => 'View',
'type' => MENU_DEFAULT_LOCAL_TASK,
'weight' => -10,
);

для каждого прописываю коллбэки,все как в книге,но почему не работает

function artwork_add_page() {
$item = menu_get_item();
$links = system_admin_menu_block($item);
foreach ($links as $link) {
$items[] = l($link['title'], $link['href'],
$item['localized_options'])
. ': ' . filter_xss_admin($link['description']);
}
return theme('item_list', array('items' => $items));
}

function artwork_add($type) {
global $user;
$types = artwork_types();
$type = isset($type) ? str_replace('-', '_', $type) : NULL;
if (empty($types[$type])) {
return MENU_NOT_FOUND;

}

$artwork = entity_get_controller('artwork')->create($type);
drupal_set_title(t('Create @Name', array('@Name' =>
$types[$type]->name)), PASS_THROUGH);
return drupal_get_form($type . '_artwork_form', $artwork);
}

unction artwork_page_view($artwork, $view_mode = 'full') {
// Remove previously built content, if exists.
$artwork->content = array();
if ($view_mode == 'teaser') {
$artwork->content['title'] = array(
'#markup' => filter_xss($artwork->title),
'#weight' => -5,
);
}
// Build fields content.
field_attach_prepare_view('artwork',

array($artwork->aid => $artwork),
$view_mode);
entity_prepare_view('artwork', array($artwork->aid => $artwork));
$artwork->content += field_attach_view('artwork', $artwork,
$view_mode);
return $artwork->content;
}

Аватар пользователя xakd xakd 1 ноября 2016 в 8:24

gizi wrote:

появляется страница с записью save

Чего появляется, где?
gizi wrote:

далее на этой стр отображается page not found
НА какой на этой?

Вы уже научитесь доступно писать, тут телепатов нет.

Аватар пользователя gizi gizi 1 ноября 2016 в 20:24

буду исправляться,есть страница с формой для ввода названия картин,при нажатии добавить,новые картины добавляются,эта страница сменяется страницей нот фоунд, где сверху выскакивает подсказка,что картины сохранены,но вместо нот фоунд должны быть отображены названия картин

Аватар пользователя xakd xakd 1 ноября 2016 в 23:20
1

Короче все равно не ясно, мы тут специфику сайта не видим. Зашлите мне в личку свой скайп - как будет время стукну, Тут у вас какая-то мелочь, посмотрим, подумаем.
Вы тут описываете частности, но общая задумка ускользает - поэтому и непонятно, судя по всему.

Аватар пользователя gun_dose gun_dose 1 ноября 2016 в 21:27

У вас в экшенах формы стоит переадресация на artwork/%artwork? Страница artwork/%artwork отображается? Что в её коллбэках?