Sziasztok
A modul készítés rejtelmeibe szeretnék bele mélyedni. Elkezdtem olvasni és lépésről lépésre csinálni az itt leírtakat. (http://drupal.org/node/17914)
Szép és jó amit leírnak. Kezdésnek pont elég, bár már látom hogy én sokkal több mindent szeretnék megtudni.
A lényeg hogy ezen az oldalon bemutatott dolog nem működik. http://drupal.org/node/22797
A baj az hogy mikor a modulhoz tartozó blokk beállítási oldalára megyek akkor nem jelenik meg az a szövegmező, hanem csak ez a szöveg:
Array
PHP akkor csinál ilyet amikor tömböt akar string-re konvertálni.
Drupal verzión4.6
?ph
function kaListasUser_help($section='') {
$output = '';
switch ($section) {
case "admin/modules#description":
$output = t("HELP KIMENET Displays links to nodes created on this date");
break;
}
return $output;
}//function kaListasUser_help *************************************************
function kaListasUser_perm() {
return array('access content');
}//function kaListasUser_perm() ***********************************************
function kaListasUser_block($op='list', $delta=0) {
// listing of blocks, such as on the admin/block page
if ($op == "list") {
$block[0]["info"] = t('ka Listás User blokk');
return $block;
}else{
// our block content
// content variable that will be returned for display
$block_content = '';
// Get today's date
$today = getdate();
// calculate midnight one week ago
$start_time = mktime(0, 0, 0,$today['mon'],
($today['mday'] - 7), $today['year']);
// we want items that occur only on the day in question, so
//calculate 1 day
$end_time = $start_time + 86400;
// 60 * 60 * 24 = 86400 seconds in a day
$limitnum = variable_get("kaListasUser_maxdisp", 3);
$query = "SELECT nid, title, created FROM " .
"{node} WHERE created >= '" . $start_time .
"' AND created <= '". $end_time . "' LIMIT " . $limitnum;
// get the links
$queryResult = db_query($query);
while ($links = db_fetch_object($queryResult)) {
$block_content.= 'nid).'">'.$links->title.'
';
}
// check to see if there was any content before setting up the block
if ($block_content == '') {
// no content from a week ago, return nothing.
//return;
$block_content='Nincsen NODE';
}
// set up the block
$block['subject'] = 'kaListásUser Blokkja';
$block['content'] = $block_content;
return $block;
}
}//function kaListasUser_block() **********************************************
function kaListasUser_settings() {
// only administrators can access this module
die('bent a settingsben');
if (!user_access("admin kaListasUser")) {
return message_access();
}
$output .= form_textfield(
t("Maximum number of links"),
"kaListasUser_maxdisp",
variable_get("kaListasUser_maxdisp", "3"),
2,
2,
t("The maximum number of links to display in the block.")
);
return $output;
}
?ph
Majd lesznek még további kérdéseim is. :)
Türelmesen várom a gyors válaszokat ;-D
Köszönöm
Sweetchack.
4.5 vs 4.6
// our block content előtt az else-ből csinálj elseif ($op == 'view') -ot.
semmi
Így semmi hatása nincsen az egésznek, csak a Drupal által felkinált beállítási lehetőségek vannak.
Lehet hogy rájöttem, de mé
Lehet hogy rájöttem, de még nem probáltam.
Annyi biztos hogy a kaListasUser_settings() nem is fut le. A függvényben az első sor:
die('bent a settingsben');
De semmi hatás.
Viszont a kaListasUser_block -ban a $op értéke:
configure
A settings függvény tartalmát bemásolom a megfelelő elseif részbe aztán majd meglátom.
az jó úgy
Tehát a xxx_block függvényben
Switch($op){
case 'list':
break;
case 'view':
break;
case 'settings':
//ide kell a xxx_settings() függvény tartalmát másolni
break;
case 'save':
//itt lehet feldolgozni a kitöltött ürlapot
break;
}
A problémám az hogy nem tudom hogyan kell hibaüzenettel visszadobni az ürlapot ha nem megfelelően lett kitöltve.
Return False; esetén is azt írja ki hogy sikeresen mentve lettek a változások. (A block listázó oldalon. Ráadásul angolul. Ez a szöveg nincs lefordítva)
Szóval milyen visszatérési értékkel lehet tájékoztatni a Drupal-t hogy nem sikerült feldogozni az ürlapot?