bmazsi képe

Ez esetben helyesbítek, én nem találtam jobb megoldást..., de ha van, természetesen én is kíváncsi vagyok rá! :)

0
0
pp képe

Ehhez miért kell neked a template??

Simán a $content változóban visszaadod amit fentebb írtál és az jelenik meg benne és pont. Beállítod az info-ban, hogy oldalra gyorstárazza, és akkor nem lesz gyász.

A hook_block-ot valósítod meg ugye?

Vagy nem értem mit keresel az admin oldalon a blokk tartalmának beállításakor.

Az, hogy mi van a blokkban az nem smink, hanem modul. Az, hogy hogyan néz ki az meg már smink. Persze a kettő összefügg, de azért az ezen az oldalon ez azon meg az jelenik meg az jól láthatóan nem smink, hanem modulban megvalósítandó.

Jó lenne, ha a kódot amivel létrehoztad a blokkot bemásolnád. Lehet nagyon rossz felé indultál el.

pp

0
0
hosszu.kalman képe

Azt, hogy modulból hozod létre a blokkokat az szerintem jó dolog, viszont a különböző funkciót ellátó blokkoknak érdemes külön blokkot készíteni (modulból). Tehát ha van mondjuk egy blokkod amiben egy kategória hírei vannak, akkor jó lehet ha a kategóriától függ hogy mi jelenik meg benne, de az eseményeket már ne rakd bele. Én a helyedbe létrehoznék külön egy események blokkot is.

A tartalmát érdemes sminkelhetővé tenni és tpl fájlba kirakni (kevesebb memóriát eszik, jobban elkülönül), de szerintem ezért nem érdemes a theme_block() fgv-t felülvágnod a hook_theme_registry_alter-rel, elég szerintem kb ennyi:

/**
 * Implementation of hook_theme().
 * 
 * Define the following templates:
 *  - mymodule_news_block
 *  - mymodule_events_block
 *
 * @return Array of defined theme functions
 *
 * @see mymodule-news-block.tpl.php
 * @see mymodule-events-block.tpl.php
 */
function mymodule_theme($existing, $type, $theme, $path) {
  return array(
    'mymodule_news_block' => array(
      'arguments' => array(
        'title' => NULL,
        'body' => NULL,
        'link' => NULL,
      ),
      'template' => 'mymodule-news-block',
      'path' => drupal_get_path('module', 'mymodule') . '/theme',
    ),
    'mymodule_events_block' => array(
      'arguments' => array(
        'title' => NULL,
        'body' => NULL,
        'link' => NULL,
      ),
      'template' => 'mymodule-events-block',
      'path' => drupal_get_path('module', 'mymodule') . '/theme',
    ),
  );
}

Két template fájlod lesz így, külön lehet formázni a híreket és az eseményeket is.

0
0
sgabe képe

A különböző tartalmakhoz használj külön-külön blokkokat és azt jelenítsd meg amelyikre éppen szükséged van. Minden blokknak külön beállítható a láthatósága és külön sminkelhető egy block-[region|[module|-delta]].tpl.php fájl segítségével.

Szerintem jobb lenne még egyszer átgondolni azt is, kell-e ehhez külön modul. 90%-ban a szükséges tartalom előállítható pl. Views segítségével.

0
0
sgabe képe

Alapból felkínálja a blokk modul a block-[region|[module|-delta]].tpl.php sablon fájl használatát.

0
0
ludensjanos képe

Joomla!Nap 2010. okt. 09. CEU Konferenciaközpont, Budapest
A belépő ára: 3990 Ft.

A Drupal Hétvége pedig ingyenes!

"Többet megtudhatsz másokról egy óra játék, mint egy év beszélgetés alatt."(Platón)

pp képe

Támogatóinknak hála.

pp

york képe

DB szinten is kompatibilis a drupallal?
Ha igen, akkor talan nem lehet gond az oda vissza valtas.

0
0
Th0m4s képe

// $Id$
 
function fb_help($path, $arg) {
	$output = '';
	switch ($path) {
		case "admin/help#fb":
			$output = "<p>".t("Ez egy súgószöveg.")."</p>";
			break;
	}
	return $output;
}
function fb_prem() {
	return array('access fb', 'administer fb');
}
 
function fb_block($op = 'list', $delta = 0, $edit = array() ) {
	if( $op == 'list' ) {
		$block = array();
		$block[0]["info"] = t('fb Core');
		return $block;
	}
	else if( $op == 'view' ) {
		$block = array();
		$block['subject'] = 'fb Core';
		$block['content'] = 'saved content: '. variable_get("fb_maxdisp", 3);
		return $block;
	}
}
function fb_admin() {
	$form = array();
	$form['fb_maxdisp'] = array(
		'#type'			=> 'textfield',
		'#title'		=> t('Maximum number of links'),
		'#default_value'=> variable_get('fb_maxdisp', 3),
		'#size'			=> 2,
		'#maxlength'	=> 2,
		'#description'	=> t("The maximum numbers of links to display in the block."),
		'#required'		=> TRUE
	);
	return system_settings_form($form);
}
function fb_admin_validate($form, &$form_state) {
	$maxdisp = $form_state['values']['fb_maxdisp'];
	if( !is_numeric($maxdisp) ) {
		form_set_error('fb_maxdisp', t('You must enter an integer.'));
	}
	else if( $maxdisp <= 0 ) {
		form_set_error('fb_maxdisp', t('Maximum number of links must be positive.'));
	}
}
function fb_menu() {
	$items = array();
	$items['admin/settings/fb'] = array(
		'title'			=> 'Fb Core module settings',
		'description'	=> 'Description of module settings page',
		'page callback'	=> 'drupal_get_form',
		'page arguments'=> array('fb_admin'),
		'access arguments'=> array('administer fb'),
		'type'			=> MENU_NORMAL_ITEM
	);
	return $items;
}
function fb_theme($existing, $type, $theme, $path) {
	return array(
		'fb_news_block' => array(
			'template'	=> 'fb_news_block',
			'path'		=> drupal_get_path('module', 'fb'),
			'arguments' => array(
				'title' => null,
				'body'	=> null,
				'link'	=> null
			)
		)
	);
}

Eddig ennyiről lenne szó.

@pp: a template azért kellene, mert a modulban nem szeretnék html-ezni, továbbá egy hírek tartalom elrendezése teljesen más, mint egy eseményeké

@hosszu.kalman: átírtam a hook_theme fv-t (egyelőre csak egy tpl-lel, mint látható), de nem akarja használni a template-et. Gyorstár ürítés megvolt.

@sgabe: köszönöm, a blokkrendszer világos és tényleg jobb alternatívának tűnik, de a template azért még kéne. Views későbbi okok miatt nem kerülhet szóba.

0
0
drifter képe

De persze legyen mentés. Egy oldalt migráltam sima drupalról pressflowra (tkp. mercuryra de az is pressflow alapú), simán ment.

0
0