logo

Extra Block Types (EBT) - Nueva experiencia con Layout Builder❗

Extra Block Types (EBT): tipos de bloques con estilo y personalizables: Presentaciones de diapositivas, Pestañas, Tarjetas, Acordeones y muchos más. Configuraciones integradas para fondo, DOM Box y plugins de JavaScript. Experimenta hoy el futuro de la construcción de diseños.

Módulos de demostración EBT Descargar módulos EBT

❗Extra Paragraph Types (EPT) - Nueva experiencia con Paragraphs

Extra Paragraph Types (EPT): conjunto de módulos basado en párrafos de forma análoga.

Módulos de demostración EPT Descargar módulos EPT

Scroll

Problema con hook_block_info

22/02/2025, by Anónimo (no verificado)

 

 ¡Buen día!

Estoy intentando crear bloques programáticamente.

Lo hago en mi módulo así

function about_block_info(){
	$blocks['about_company'] = array(
		'info' => 'Sobre la empresa',
		'status' => TRUE,
		'region' => '',
		'weight' => 0,
		'visibility' => 1,
		'cache' => DRUPAL_NO_CACHE,
	);
	
	$blocks['first_red_text_item'] = array(
		'info' => 'Texto emergente para la primera columna del bloque rojo (página principal)',
		'status' => TRUE,
		'region' => '',
		'weight' => 0,
		'visibility' => 1,
		'cache' => DRUPAL_NO_CACHE,
	);
	
	return $blocks;
}

function about_block_configure($delta){
	$form = array();
	
	switch($delta){
	case 'about_company':
		$form['about_content_title'] = array(
			'#type' => 'textfield',
			'#title' => 'Título del bloque en la página principal',
			'#size' => 15,
			'#description' => 'Por ejemplo: "Sobre la empresa"',
			'#default_value' => variable_get('about_company_title','Sobre la empresa'),
		);
		$form['about_content_text'] = array(
			'#type' => 'textarea',
			'#title' => 'Texto breve en la página principal',
			"#rows" => 5,
			"#cols" => 20,
			'#description' => 'Se mostrará como texto de vista previa en la página principal',
			'#default_value' => variable_get('about_company_text','Fue la primera institución educativa independiente oficialmente registrada en nuestro país, que en ese momento aún se llamaba URSS. Se creó con el objetivo de formar traductores profesionales de alto nivel, ya que no había análogos de tales instituciones educativas en la URSS en ese momento. '),
		);
		$form['address'] = array(
			'#type' => 'textfield',
			'#title' => 'Dirección de la página con datos sobre la empresa',
			'#size' => 15,
			'#description' => 'Por ejemplo: about',
			'#default_value' => variable_get('about_company_address','about'),
		);
		break;
	
	case 'first_red_text_item':
		$form['first_red_text'] = array(
			'#type' => 'textarea',
			'#title' => 'Texto para el bloque emergente (primera columna)',
			"#rows" => 5,
			"#cols" => 20,
			'#description' => 'Texto emergente',
			'#default_value' => variable_get('first_red_text1',''),
		);
		 $form['first_red_text_address'] = array(
			'#type' => 'textfield',
			'#title' => 'Dirección de la página a la que se refiere el texto emergente',
			'#size' => 15,
			'#description' => 'Por ejemplo: about',
			'#default_value' => variable_get('first_red_text_address1',''),
		); 
		break; 
	
	
	
	}

	return $form;

}


function about_block_save($delta = '', $edit = array()){
	switch($delta){
		case 'about_company':	
			variable_set('about_company_title',$edit['about_content_title']);
			variable_set('about_company_text',$edit['about_content_text']);
			variable_set('about_company_address',$edit['address']);
		break;
		case 'first_red_text_item':	
			variable_set('first_red_text1',$edit['first_red_text']);
			variable_set('first_red_text_address1',$edit['first_red_text_address']);
		break; 
	}
	return;

}

:

 

Así que en el panel de administración el bloque "Sobre la empresa" aparece y funciona correctamente, pero el segundo bloque no. ¿Dónde está el error?