Modulok egy admin menübe csoportosítása

Wathfea képe

Sziasztok!

Van 3 modulom ami egy csoportba tartozik. Azt szeretném elérni, hogy az admin oldalon belül a configuration menüben megjelenjenek egy kategóriában. Ezt miként tudom elérni?

function gft_api_menu() {
  $items['admin/config/gft'] = array(
    'title' => 'GFT settings',
    'description' => 'GFT API settings',
    'page callback' => 'system_admin_menu_block_page',
    'access arguments' => array('administer site configuration'),
    'position' => 'right',
    'weight' => -20,
    'type' => MENU_NORMAL_ITEM,
    'file' => 'system.admin.inc',
    'file path' => drupal_get_path('module', 'system'),
  );
  $items['admin/config/gft/api'] = array(
    'title' => 'GFT API settings',
    'description' => 'GFT API settings',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('gft_api_admin_settings'),
    'access arguments' => array('administer site configuration'),
    'file' => 'gft_api.admin.inc',
  );
  $items['forex'] = array(
    'title' => 'GFT Forex',
    'description' => 'Display forex symbols',
    'access callback' => TRUE,
    'page callback' => 'gft_api_page',
    'type' => MENU_CALLBACK,
  );
  return $items;
}

Ez létrehozza a GFT API csoportot és azon belül megjelenik a GFT API Settings.

A következő modul hook_menu() -je így néz ki:

function gft_kamatrata_menu() {
  $items['admin/config/gft'] = array(
    'title' => 'GFT settings',
    'description' => 'GFT API settings',
    'page callback' => 'system_admin_menu_block_page',
    'access arguments' => array('administer site configuration'),
    'position' => 'right',
    'weight' => -20,
    'type' => MENU_NORMAL_ITEM,
    'file' => 'system.admin.inc',
    'file path' => drupal_get_path('module', 'system'),
  );
  $items['admin/config/gft/gft-kamatrata'] = array(
    'title' => 'GFT Kamatráta',
    'description' => 'GFT Kamatráta',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('gft_kamatrata_admin_settings'),
    'access arguments' => array('administer site configuration'),
    'file' => 'gft_kamatrata.admin.inc',
  );
  $items['kamatrata'] = array(
    'title' => 'Kamatráta',
    'access callback' => TRUE,
    'page callback' => 'gft_kamatrata_page',
  );
  return $items;
}

Hogyan tudom elérni, hogy a GFT API modul által létrehozott csoportba pakolja be magát? Mert így egyáltalán nem jelenik meg az admin/config oldalán a GFT Kamatráta. Nem hogy egy azon csoportban, de egyáltalán nem.

Drupal verzió: 
Sk8erPeter képe

Hali!

Az admin/config/gft útvonalat elég egyszer regisztrálni.

A lényegre: kipróbáltam, először az én tesztoldalamon sem jelent meg; ezután NÁLAM annyi volt a megoldás, hogy Notepad++-szal konvertálni kellett UTF-8-ra BOM nélkül magának a modulnak a fájlját (ANSI-ról), ahol a hook_menu() szerepel (ékezetet tartalmaz, lásd "GFT Kamatráta"), majd törölni a cache-t. Így már megjelent az új menüpont is (ld. jobb oldalt):

új menüpont

1
0
Wathfea képe

rávezettél a megoldásra. A probléma egyébként nekem nem a karakterkódolás volt, hanem nem tetszett neki a kötőjel  $items['admin/config/gft/gft-kamatrata'] = array(.... helyett  $items['admin/config/gft/kamatrata'] = array(.... kellett. Így már megjelennek a menüpontok.
Még egyszer köszönöm!

1
0
Sk8erPeter képe

Nincs mit!
Hmm, ez furcsa, hogy a kötőjel nem működik, én úgy tudom, annak gond nélkül kellene mennie, én legalábbis hoztam már létre kötőjellel útvonalat, és azzal nem volt probléma.
A karakterkódolás hibája viszont kifejezetten megfigyelhető volt, amikor az általad mutatott kódot kipróbáltam, nálam tényleg nem jelent meg a menüpont egész addig, amíg Notepad++ szerint hagyományos ANSI volt a kódolás, és a címben ékezetes karaktereket használtam - pedig cache-t is töröltem. Amint konvertáltam UTF-8-ra (BOM nélkül persze), és cache-t ürítettem, akkor már megjelent.
De a lényeg, hogy sikerült! :)

Szerk.:
most izgatott a dolog, ezért kipróbáltam egy kötőjeles útvonalat a Te kódod alapján, és azzal semmi probléma nincsen.

Felhasználtam a Te kódodat így, hogy beleraktam egy kötőjelet az úvonalba:

  $items['admin/config/gft/api-test'] = array(
    'title' => 'GFT API-TEST settings',
    'description' => 'GFT API-TEST settings',
    'page callback' => 'test_output',
    'page arguments' => array('testModule_admin_settings'),
    'access arguments' => array('administer site configuration'),
    'file' => 'testModule.admin.inc',
  );

A testModule.admin.inc fájlban a test_output() függvény tartalma meg csak ennyi:

    function var_export_drupal_set_message($var, $text = '...', $type = 'status') {
        // $type: pl. 'status'
        drupal_set_message($text . ': <pre>' . var_export($var, TRUE) . '</pre><hr />', $type);
    }
 
 
    function test_output($asd){
        var_export_drupal_set_message(__FUNCTION__, 'function');
        var_export_drupal_set_message($asd, '$asd');
 
        $output = '<p>ASDASDASDASDASDASDASDA</p>';
 
        return $output;
    }

Itt egy screenshot arról, hogy működik:
működik kötőjellel

Szóval őszintén szólva én most nem értem, hogyhogy nálad a kötőjel volt a gond. :)
Biztos nem az említett karakterkódolással vagy ehhez hasonlóval van összefüggésben?

0
0
Wathfea képe

pontosan, hogy mi okozta a problémát, mert megnyitottam a fileokat notepad++-ban ahogy írtad és nekem alapból UTF-8 without BOM volt a kódolás. Aptana Studioban fejlesztek és ott ez van beállítva alapból.
Ezek után én a következőket tettem. Átállítottam ANSI-ra majd vissza UTF-8 ra mentettem, uninstall , clear cache, install és nem jelent meg. Amint kiszedtem a kötőjelet és végigcsináltam a fenti lépés sort már megjelent.
Nah most hozzátenném, hogy nagyjából 2 hete foglalkozom drupal fejlesztéssel főleg moduláris szinten így lehetséges, hogy alapból valami rossz volt a modulomban ami miatt nem tetszett neki a kérdőjel, de mindenesetre most működik. Legalábbis ami modul megjelenését illeti a menüben :D

Életre még nem tudom kelteni :( pedig "csak" drupal 6-ról kéne átírni 7-re :D

0
0
Sk8erPeter képe

Hm, hát ha alapból UTF-8 volt BOM nélkül, akkor az úgy jó, az a helyes (NetBeans is ezt hozza létre alapból).
Egyébként engem meg szokott lepni, hogy a Notepad++ szerint legalábbis alapból ANSI a kódolása a Drupal core fájloknak, hogy ez vajon miért van.
Na mindegy, hogy a konkrét témára térjek, Notepad++-ban a sima karakterkódolások közti "átkapcsolások" helyett érdemes inkább a konvertálásra menni (alatta van párral), hogy ne okozzon gondot.
Pl. ha egy ékezetes karaktereket tartalmazó UTF-8 szöveget "átkapcsolsz" csak simán - konvertálás helyett - ANSI-ra, akkor elég randák lesznek az ékezetes karakterek.

"lehetséges, hogy alapból valami rossz volt a modulomban ami miatt nem tetszett neki a kérdőjel"
Mármint itt gondolom a kötőjelre gondoltál.
A D6-ról D7-re konvertálással kapcsolatos kérdéseidet esetleg feltehetnéd külön szálban, addig is, hátha ennek hasznát veszed:
http://drupal.hu/comment/63205#comment-63205

1
0
Wathfea képe

Köszi a tippeket és igen a kötőjelre gondoltam. :) Már raktam ki külön kérdést. :) amit linkeltél, meg használom is a javát sikerült átírnom vele. :) Itt van ami nem működik: http://drupal.hu/forum/sql-lek%C3%A9rdez%C3%A9s-hiba/15897

0
0
Sk8erPeter képe

Nincs mit, és bocs, az ezelőtti hozzászólásomnál nem figyeltem rá, hogy éppen Te kérdeztél abban a topicban, amit belinkeltem. :))

Egyébként majd ha van egy kis plusz időd, akkor próbáld meg kikísérletezni, mi lehet az oka, hogy kötőjellel nem működik, és biztos-e, hogy az a probléma okozója, nem az ékezetes karakterrel volt-e a gond; engem legalábbis nagyon izgat a dolog, hogy mi lehet a háttérben. :)

0
0