Sziasztok!
2napja kezdtem el foglalkozni a drupal rendszerrel. Kesobbiekben modulokat szeretnek hozza fejleszteni. PHP ismeretekkel rendelkezem, de meg igy se erzem teljesen ezt a nagyszeru rendszert.
Elso korben egy teljesen egyszeru vendegkonyvet szeretnek fejleszteni.
Leirom meddig jutottam, es melyek a szamomra nem vilagos dolgok.
Minden eszrevetelt szivesen fogadok a koddal kapcsolatban, mert biztosan lehet mindezt szebben s jobban.
Szoval a modulom neve guestbook lesz. Egyenlore semmi bonyolult muveletet nem szeretnek vele csinalni, csak tudja a kovetkezoket.
? Menupontbol elerheto legyen
? De ha akarom egy mar meglevo oldalam aljara is kitudjam tenni.
? Allithato legyen ra jogosultsag. Jelenleg ket felet kulomboztetek meg: 1. lathato e a menurendszerben a vendegkonyv, 2. moderalhatoak e a hozzaszolasok. A moderalas is teljesen egyszeruen van megoldva, csak egy id-t kell beirni, es submit gomb, s delete from db-t hiv.
? Legyen egy urlap, kerjen be email cimet, nevet, es hozzaszolas szoveget (az email kitoltese ne legyen kotelezo)
? A hozzaszolasok jelenjenek meg az urlap alatt lapozhato listaban (ez meg nincs meg)
? Kesobb ha mar a hozzaszolasok megjelenitese is megvan, szeretnem ha a hsz.-okhoz, egy kepet is fel tudjon tolteni aki akar. (de ez most nagyon raer)
A vendegkonyvbol meg a legfontosabb dolog hianyzik... Nem tudja megjeleniteni a hozzaszolasokat. EZT a reszt meg nem irtam meg. Tudom van valami db_query_range meg pager is, majd azzal probalom megoldani mindezt. De most ettol tetkintsunk el.
Ami kerdesek felmerultek bennem:
1.Mi van akkor, ha tobbszor akarom felhasznalo a modult egy site-on?
2.function guestbook_block($op = 'list', $delta = 0, $edit = array()) view op mire jo, azt kellene hasznalnom a megjelenitesre, a mostani menu 'callback'=>'guestbook_page' helyett?
Ugy altalaban kicsit sotetben tapogatozom, ezert erdekelne a velemenyetek az eddigi rovid kodrol. Van e esely, hogy ebbol legyen is valami, vagy kezdjek hozza maskepp? ;)
Eszreveteleiteket elore is koszonom!
Udv: Zoli
//az adatbazis tablat letrehozo install fajlt nem teszem mar ide, a db a kovetkezokbol all //h_id int(11) autoincrement ; user_name varchar(50) ; user_email varchar(50) ; user_desc text ; ts datetime function guestbook_menu($may_cache) { $items = array(); if ($may_cache) { $items[] = array( 'path' => 'admin/content/guestbook', 'title' => t('Guestbook'), 'description' => t('Guestbook descriptions'), 'callback'=>'guestbook_page', 'access' => user_access('use the guestbook')); } return $items; } function guestbook_block($op = 'list', $delta = 0, $edit = array()) { switch ($op) { case 'list': $blocks[0]['info'] = t('Guestbook'); return $blocks; break; } return $block; } function guestbook_perm() { return array('use the guestbook','moderate guestbook'); } function guestbook_page() { if (user_access('use the guestbook')) { $output=drupal_get_form('guestbook_form'); if (user_access('moderate guestbook')) $output.=drupal_get_form('guestbook_form1') ; } else $output=t('Ehhez nincs jogosultságod!'); return $output; } function guestbook_form() { $form['user']=array( '#type' => 'textfield', '#title' => t('Neved*')); $form['email']=array( '#type' => 'textfield', '#title' => t('E-mail címed')); $form['desc']=array( '#type' => 'textarea', '#title' => t('Hozzászólásod*')); $form['submit']=array( '#type' => 'submit', '#value'=> t('Hozzászólás elküldése')); return $form; } function guestbook_form_submit($form_id,$form_values) { db_query('INSERT INTO guestbook_texts (user_name,user_email,user_desc,ts) VALUES("'.$form_values['user'].'","'.$form_values['email'].'","'.$form_values['desc'].'",NOW())'); drupal_set_message('Aha'); } function guestbook_form_validate($form_id, $form_values) { if ($form_values['user'] == '') form_set_error('', t('A név mező kitöltése kötelező')); if ($form_values['desc'] == '') form_set_error('', t('A hozzászólás mező kitöltése kötelező')); } function guestbook_form1() { $form['hid']=array( '#type' => 'textfield', '#size' => '10', '#title' => t('Hozzászólás azonosítója')); $form['submit']=array( '#type' => 'submit', '#value'=> t('Hozzászólás eltávolítása')); return $form; } function guestbook_form1_validate($form_id,$form_values) { if (empty($form_values['hid'])) form_set_error('',t('A hozzászólás azonosítót kötelező kitölteni!')); if ((int)$form_values['hid']<=0) form_set_error('',t('A hozzászólás azonosító csak szám lehet!')); } function guestbook_form1_submit($form_id,$form_values) { db_query('DELETE FROM guestbook_texts WHERE h_id='.$form_values['hid'].' LIMIT 1'); }
Jó felé haladsz, de mégse ;)
Azt gondolom tudod, hogy teljesen feleslegesen kódolsz, hacsak nem az a célod, hogy megtanuld a modul fejlesztést.
Javasolnám olvasd el a Drupal kódolási alapszabályait.
1.Mi van akkor, ha tobbszor akarom felhasznalo a modult egy site-on?
mit jelent többször akarom felhasználni? Ha ezt meg tudod mondani, akkor a kérdésre is válaszoltál. Picit konkretizáljuk!
2.function guestbook_block($op = 'list', $delta = 0, $edit = array()) view op mire jo, azt kellene hasznalnom a megjelenitesre, a mostani menu 'callback'=>'guestbook_page' helyett?
szezon a fazonnal keveredve van. Blokkot tudsz ezzel a hook-kal megjeleníteni, a view-nél kell átadni egy tömböt, amiben benne van a cím és a tartalom. Ne keverd össze azzal, amikor egy oldalt akarsz megjeleníteni.
Ugy altalaban kicsit sotetben tapogatozom, ezert erdekelne a velemenyetek az eddigi rovid kodrol. Van e esely, hogy ebbol legyen is valami, vagy kezdjek hozza maskepp? ;)
nézd át a fordítható kód készítéséről szóló fejezetet és a form API-t bemutatót is!
Mint írtam fentebb, egy teljesen felesleges dolgon pörögsz, de gyakorlásnak tökéletes ;))
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu