PHP - Incluir función php en archivo tpl

 
Vista:

Incluir función php en archivo tpl

Publicado por Jose Luis (1 intervención) el 08/09/2011 09:07:11
Hola a todos

Tengo una duda de ver como podría utilizar una función php en un archivo tpl.

Básicamente tengo un archivo tpl que genera una pantalla donde tengo un listado de registros, que en la parte derecha, para cada registro, tiene tres iconos.

La parte de los tres iconos es lo que estoy intentando retocar en el archivo tpl. Necesito comprobar una condición en la BD para cada registro, para ver si ha de mostrarse uno de los iconos o no.

Para hacer esta comprobación he diseñado una función php, que pasádo el id del registro devuelve true o false dependiendo de si se cumple la condición o no.

La idea es poder llamar a esa función en PHP y de algún modo condicionar el mostrado de ese icono en el archivo tpl al resultado de la llamada.

La función PHP es esta, el problema es que no se como integrarla para su cometido en el archivo tpl. (esta incluida dentro de un fichero php de funciones)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function ComprobarInformes($id)
	{
 
		//Nos dice si el paciente tiene informes adjuntos o no.
		$query_String='SELECT a.filename FROM notes a, pacie_pacientes_notes_c b WHERE a.id=b.pacie_pacif8fdesnotes_idb AND
						a.filename IS NOT NULL AND
						b.pacie_pacia506cientes_ida=\''.$id.'\'';
		$result	= ExecuteQuery_String($query_String);

			$num	= ExecuteQuery_String($query_String);

			if ($num>0)
 				   {
 		       
 				       this->assign ('respuesta', true);
			           
				    }
			else {this->assign ('respuesta', false);}
	}

Y la intento incluir en el archivo tpl en la parte en la que se muestran los tres iconos de esta forma:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{if $pageData.access.edit}
 
					<a title='{$editLinkString}' href="#" onMouseOver="javascript:lvg_nav('{if $params.dynamic_module}{$rowData[$params.dynamic_module]}{else}{$pageData.bean.moduleDir}{/if}', '{$rowData.ID}', {if $act}'{$act}'{else}'e'{/if}, {$offset}, this)" onFocus="javascript:lvg_nav('{if $params.dynamic_module}{$rowData[$params.dynamic_module]}{else}{$pageData.bean.moduleDir}{/if}', '{$rowData.ID}', {if $act}'{$act}'{else}'e'{/if}, {$offset}, this)">
					<img border=0 src='{sugar_getimagepath file='edit_inline.gif'}'>
					</a>
{include_php file='custom/modules/Pacie_Pacientes/Comprobacines.php'}
{if ComprobarInformes($rowData.ID)}
						<a title='Ver Informes' href="#" onMouseOver="javascript:lvg_nav('{if $params.dynamic_module}{$rowData[$params.dynamic_module]}{else}{$pageData.bean.moduleDir}{/if}', '{$rowData.ID}', {if $act}'{$act}'{else}'e'{/if}, {$offset}, this)" onFocus="javascript:lvg_nav('{if $params.dynamic_module}{$rowData[$params.dynamic_module]}{else}{$pageData.bean.moduleDir}{/if}', '{$rowData.ID}', {if $act}'{$act}'{else}'e'{/if}, {$offset}, this)">
						<img border=0 src='{sugar_getimagepath file='pdf_icon.png'}'>
						</a>
					{/if}
<a title='Acceso Pacs' href="#" onMouseOver="javascript:lvg_pacs('{if $params.dynamic_module}{$rowData[$params.dynamic_module]}{else}{$pageData.bean.moduleDir}{/if}', '{$rowData.ID}', {if $act}'{$act}'{else}'e'{/if}, {$offset}, this)" onFocus="javascript:lvg_nav('{if $params.dynamic_module}{$rowData[$params.dynamic_module]}{else}{$pageData.bean.moduleDir}{/if}', '{$rowData.ID}', {if $act}'{$act}'{else}'e'{/if}, {$offset}, this)">
					<img border=0 src='{sugar_getimagepath file='radioactivo_logo.png'}'>
					</a>
				{/if}


Si no incluyo la función el listado (pantalla completa) se muestra correctamente, pero si la incluyo únicamente me muestra un registro y me descoloca la pantalla.

¿Podríais indicarme si mi método a seguir es correcto?. Si no, ¿Como puedo hacer que basándose en una condición del registro, para lo que necesito una consulta a BD, muestre el icono de enlace o no?

Alguna sugerencia o ejemplo por favor?, será muy agradecida!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder