Drupal6 alatt "admin/settings/modulneve" adminisztrációs űrlap létrehozása

Magus képe

Sziasztok!

D5 alatt fejlesztettem pár modult (na nem nagy volumenűeket, de a célnak megfeleltek...), viszont D6-ban nem tudok rájönni, hogy lehet az admin/settings/modulneve oldalon admin felületet létrehozni.

Van pár D5-ös modul, amit upgrade-elni szeretnék (vagy újraírni) D6 alá, illetve lenne teljesen új modul is D6 alá.

Az API-t nézegettem, sima menüpontot tudok létrehozni, (egyelőre) csak az admin form nem műxik :(.

Kérem, aki tud (lehetőleg magyar, vagy könnyen olvasható angol) doksit, az linkelje be, pls.

Próbálkozásom:

function orseolo_omf_perm() {
	return array('access orseolo omf admin');
}
 
function orseolo_omf_menu() {
	$items = Array();
 
	$access = user_access('access orseolo omf admin');
 
	$items['admin/settings/orseolo_omf'] = array(
		'title' => 'Orseolo OMF',
		'description' => 'leírás',
		'page callback' => 'drupal_get_form',
		'page arguments' => 'orseolo_omf_admin_form',
		'access arguments' => array('access orseolo omf admin'),
		'file' => 'orseolo_omf.admin.inc',
	);
	return $items;
}
function orseolo_omf_admin_form() {
	$form['orseolo_omf_alt'] = array(
		'#type' => 'fieldset',
		'#title' => t('Általános'),
		'#weight' => 1,
		'#collapsible' => TRUE,
		'#collapsed' => FALSE,
	);
	$form['orseolo_omf_alt']['orseolo_omf_server'] = array(
	    '#type' => 'textfield',
	    '#title' => t('Server'),
	    '#default_value' => variable_get('orseolo_omf_server', 'http://localhost/server'),
	    '#description' => t("description"),
	);
}

Hatására megjelent az admin oldalon Orseolo OMF link, ráklikkelve elvileg be is hozza az admin/settings/orseolo_omf oldalt, de ugyan azt a listát dobja, mint előtte :(

Köszönöm,
O. Magus

Drupal verzió: 
pp képe

function orseolo_omf_perm() {
    return array('access orseolo omf admin');
}
 
function orseolo_omf_menu() {
    $items = Array();
    // ez ide ugye nem kell ;)
    //$access = user_access('access orseolo omf admin');
 
    $items['admin/settings/orseolo_omf'] = array(
        'title' => 'Orseolo OMF',
        'description' => 'leírás',
        'page callback' => 'drupal_get_form',
        'page arguments' => 'orseolo_omf_admin_form',
        'access arguments' => array('access orseolo omf admin'),
         // ez ide nem kell, csak ha a form külön fájlban van!
        //'file' => 'orseolo_omf.admin.inc',
    );
    return $items;
}
function orseolo_omf_admin_form() {
    $form['orseolo_omf_alt'] = array(
        '#type' => 'fieldset',
        '#title' => t('Általános'),
        '#weight' => 1,
        '#collapsible' => TRUE,
        '#collapsed' => FALSE,
    );
    $form['orseolo_omf_alt']['orseolo_omf_server'] = array(
        '#type' => 'textfield',
        '#title' => t('Server'),
        '#default_value' => variable_get('orseolo_omf_server', 'http://localhost/server'),
        '#description' => t("description"),
    );
// ide vagy egy return $form minimum kéne, de ha már homár akkor legyen rendes beállító form
  return system_settings_form($form);
}
0
0
Magus képe

A return system_settings_form($form); természetesen ott volt a végén, csak nem másoltam be a teljes formot, és ezt elfelejtettem beírni ide a postba a végére, sorry.

Nem tudom mi módosult, mert próbáltam file nélkül is, fájllal is, de meg se mozdult, most h bemásoltam, amit írtál 1in1, így működik, azonban ezt a hibaüzit írja: (az általam generált admin form fölé)

warning: Invalid argument supplied for foreach() in /www/kicsivilag/test/includes/menu.inc on line 258.

Ezzel mit kezdjek?

function orseolo_omf_menu() {
	$items = Array();
	$items['admin/settings/orseolo_omf'] = array(
		'title' => 'Orseolo OMF',
		'description' => 'leírás',
		'page callback' => 'drupal_get_form',
		'page arguments' => 'orseolo_omf_admin_form',
		'access arguments' => array('access orseolo omf admin')
	);
	return $items;
}
0
0

- - - - -
Orseolo Magus
[email protected]

crt képe

Szia.

Próbáld meg ezzel a változtatással:

'page arguments' => array('orseolo_omf_admin_form'),

Üdv: Zoli

0
0
Magus képe

Bocs, hogy nem válaszoltam, egy másik projekttel kellett foglalatoskodnom és nem volt időm erre :(

Sajnos a hiba továbbra is fennáll:

warning: Invalid argument supplied for foreach() in /www/kicsivilag/test/includes/menu.inc on line 258.

function orseolo_omf_menu() {
	$items = Array();
	$items['admin/settings/orseolo_omf'] = array(
		'title' => 'Orseolo OMF',
		'description' => 'leírás',
		'page callback' => 'drupal_get_form',
		'page arguments' =>  array('orseolo_omf_admin_form'),
		'access arguments' => array('access orseolo omf admin')
	);
	return $items;
}
0
0

- - - - -
Orseolo Magus
[email protected]

Pasqualle képe

menu valtoztatas utan (a cache miatt) ujra kell epiteni a menut

/admin/build/modules oldalon (semmit nem kell valtoztatnod csak) nyomj egy mentest

0
0
nevergone képe

Tudsz erre valamilyen jobb módszert, vagy átmeneti kikapcsolást? Modulfejlesztésnél elég kényelmetlen tud lenni.

0
0
crt képe

A fejlesztés idejére a hook_init-be rakott menu_rebuild() nem jó?

Üdv: Zoli

0
0
pp képe

Kirakod a devel blokk-ot és ott törlöd a cache-t. Hatoson devel nélkül nem is értem, hogy hogyan fejlesztetek.

pp

0
0
Magus képe

Még nem próbáltam a devel-t, bár hallottam róla. Készítettem már pár modult (többnyire kisebb lélegzetvételűeket), de eddig nem vettem rá magam. Majd talán most már rá leszek "kényszerítve" ;)
Köszönöm!

0
0

- - - - -
Orseolo Magus
[email protected]

Pasqualle képe

mr.php

require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
 
menu_rebuild();
print('OK');

habar nem tudom miert lenne jobb modszer ez mint nyomni egy gombot a feluleten, de talan gyorsabb..

0
0
Magus képe

Köszi, ez megoldotta a problémát, de csatlakoznék az előttem szólóhoz, ez elég idegesítő.
Ha ürítem a cache táblákat az elég? Mert arra max készítek egy Clear Cache gombot ;)

0
0

- - - - -
Orseolo Magus
[email protected]

Magus képe

A cache nem oldotta meg sajnos:

	db_query("TRUNCATE cache");
	db_query("TRUNCATE cache_filter");
	db_query("TRUNCATE cache_menu");
	db_query("TRUNCATE cache_page");
	db_query("TRUNCATE cache_block");
	db_query("TRUNCATE cache_content");
	db_query("TRUNCATE cache_form");
	db_query("TRUNCATE cache_update");
	db_query("TRUNCATE cache_views");
0
0

- - - - -
Orseolo Magus
[email protected]