Első modulom... és kérdéseim...

ZzzZzz képe

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');
	}
pp képe

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

0
0