Foros del Web » Programando para Internet » PHP »

Capturar el html de un template que se ha ejecutado con smarty

Estas en el tema de Capturar el html de un template que se ha ejecutado con smarty en el foro de PHP en Foros del Web. Hola a todos Estoy a ver si pudiese guardar el html de un template actual para mandarselo a las funciones que general pdfs(estoy con las ...
  #1 (permalink)  
Antiguo 27/02/2009, 04:22
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 16 años, 4 meses
Puntos: 16
Capturar el html de un template que se ha ejecutado con smarty

Hola a todos
Estoy a ver si pudiese guardar el html de un template actual para mandarselo a las funciones que general pdfs(estoy con las HTML2FPDF).
he probado lo siguiente

- Con smarty he intentado la funcion capture pero no me funciona, me salen errores en el template y en el archivo del pdf me salta un error de que el recurso que estoy pasando esta vacio.

-También he probado con fetch de smarty pero claro...coge el template, pero no el contenido.

- he probado desde la funcion que me construye la url las funciones highlight_file() y show_source() pero el servidor las tiene deshabilitadas. Quiero pensar que ya que estas funciones son para coger paginas externas tambien las hay de páginas internas que tengan menos problema con el servidor. si no, de todos modos cualquier sugerencia será bien recibida, por que no se por donde tirar.
Muchas gracias de antemano.
Un saludo
  #2 (permalink)  
Antiguo 27/02/2009, 04:25
 
Fecha de Ingreso: enero-2008
Mensajes: 52
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Capturar el html de un template que se ha ejecutado con smarty

Con el fetch deberia retornarte el contenido del template ejecutado

Código PHP:
$var $smarty->fetch("pagina.tpl.html"); 
en var deberia quedar el resultado del template tal y como se mostraria en la página.
  #3 (permalink)  
Antiguo 27/02/2009, 04:43
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 16 años, 4 meses
Puntos: 16
No sé, voy a seguri probando. por que pasa que si doy la ruta del template, este no tiene la información de dentro, ya que se genera el contenido a partir de la url. Y si paso la url me dice que no encuentra el template.
A lo mejor stoy haciendo algo mal

Gracias por responder tan rápido

Ya me esta queriendo coger el template pero a la que se encuentra con las etiquetas smarty { funcion tal} me dice que no las reconoce... estas etiquetas sacan la informacion a partir de la url ¿falla por esto?¿Cómo lo puedo solucionar?


Muchas gracias



edito:

el error es este: Smarty error: [in C:\AppServ\www\xxxx\xxxxx/templates/modules/products/productsProduct.html line 4]: [plugin] unknown tag - 'base' (core.load_plugins.php, line 118)
he leido sobre core.load_plugins.php y viene a ser que convierta estas funciones en plugins (o eso he entendido, nu se)
aiis

Última edición por GatorV; 27/02/2009 a las 09:50
  #4 (permalink)  
Antiguo 27/02/2009, 09:51
 
Fecha de Ingreso: enero-2008
Mensajes: 52
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Capturar el html de un template que se ha ejecutado con smarty

Podrias poner el codigo del template de smarty?
Estas llamando a funciones de tu php desde smarty?

Para pasarle valores a las plantillas tienes que asignarlas antes de llamar al template:

Código PHP:
$smarty->assign("var""value); 
  #5 (permalink)  
Antiguo 02/03/2009, 02:56
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 16 años, 4 meses
Puntos: 16
Respuesta: Capturar el html de un template que se ha ejecutado con smarty

el template es este:

Código:
<div class="dades" style="padding: 0 0 0 20px;" align="left">
                {include file="dades.html"}
                <br /><br />
                <a href="http://validator.w3.org/check?uri=referer">XHTML</a> | 
    			<a href="http://jigsaw.w3.org/css-validator/check">CSS</a> | 
    			<a href="http://www.w3.org/WAI/WCAG1A-Conformance">WAI-A</a> 
            </div>
        </div>
        <div id="mainContent">
            <div class="langs">
	            <a href="{linkLang lang='cat'}" title="[[Canviar idioma a catal&agrave;]]" >Catal&agrave; </a> | 
			    <a href="{linkLang lang='cas'}" title="[[Canviar idioma a espa&ntilde;ol]]" >Espa&ntilde;ol </a> |
			<a href="{linkLang lang='fra'}" title="[[Canviar idioma a franc&eacute;s]]" >Français </a> |
    			<a href="{linkLang lang='eng'}" title="[[Canviar idioma a ingl&eacute;s]]" >Ingl&eacute;s</a> |
	    		<a href="{linkLang lang='por'}" title="[[Canviar idioma a portugu&eacute;s]]" >Portugu&eacute;s</a> |
	    		<a href="{linkLang lang='ale'}" title="[[Canviar idioma a alem&aacute;n]]" >Alem&aacute;n</a>
	        </div>
		    <div id="mainContentHead">
			    <div id="rootie" style="text-transform:capitalize;">
                    <a href="{link section="index" path="/section"}">[[Inici]]</a> |
        			<a href="{link module="Products"}">[[Productes]]</a>
                    {prodCategorieData var='cat'}
                    {if $cat}
                        | <a href="{prodCategorieLink}">{$cat}</a>
                    {/if}                   
                </div>
			</div>
            {* Altres productes de la mateixa categoria *}
            {if $cat}
                {prodProductsCount var='products'}
                {if $products > 0}
                    {* Llistat dels productes de la categoria seleccionada*}
                    <div class="image01">
				
            		    <div align="left">
                           <table width="501" border="0" cellpadding="0" cellspacing="0">
					<tr>
							<td> <h1>[[Categoria]] {$cat}</h1></td></tr></table>
                            <br />
                            <div align="left">
                                ({$products}                                
                                {if $products == 1}
                                    [[producte relacionat]])
                                {else}
                                    [[productes relacionats]])
                                {/if}
                            </div>
                            <br />
						    <div class="products-table">
                               <table width="100%" border="0" cellspacing="3" cellpadding="1">
                                <tr>
                                {prodSelectProducts}
                                        {counter assign="cont"}
                                         <td width="33%">
							             	<div align="left" style=" text-indent: 4px;">
                                             <a href="{prodProductLink}">
                                                 {prodProductValue name='name'}
                                             </a>
								            </div>
                                          </td>
                                        {if $cont is div by 2 && $cont < $products}
                                            </tr>
                                            <tr>
                                        {/if}                                    
                                {/prodSelectProducts}
                                </tr>
                                </table> 
						    </div>                               
                        </div>
			        </div>
                {/if}
            {/if}
            <h2 style="margin-top: 20px;" align="left" >
                {prodProductValue name='name' var="nom"}
                {$nom}
            </h2>
            <div id="producte01">
        	    {prodProductValue name='image' var="img"}
                {if $img}
                    {img src=$img fileType='productsImages' width='240' height='320' border="0"}
    			{else}
            		<div style="width:240px;"><img src="imatges/logo.png" alt="[[Conserves Ferrer]]" width="224" height="134" border="0" /></div>
        		{/if}
            </div>
            <div id="producte02" style="padding:15px 0 0 0;">
                
                {prodSelectFields}
                    {prodFieldProperty property="colName" var="colName"}
                    {prodFieldProperty property="colType" var="colType"}
                    {if $colName != 'name' && $colName != 'description' && $colType != 'image'}
                        {if $colType == 'file'}
                            {prodProductValue var='file'}
                            {if $file}
                                <div class="addpdf" style="border-bottom: 1px solid  #50351D; padding: 3px 0;">
                                    <strong>{prodField}:</strong>
                                    <a href="{file path=$file fileType='productsPdf'}" target="_blank" >
                                        <img src="images/icon-pdf.gif" alt="[[Pdf]]" border="0" />
                                    </a>
                                </div>
                            {/if}
                        {else}
                            {* Els camps sense valor no apareixen*}
                            {prodProductValue var="valor"}
                            {if $valor != '' && $valor != 0}
                            <div style="border-bottom: 1px solid  #50351D; padding: 3px 0;">
                                <strong>{prodField}:</strong>
                                {$valor}
                            </div>
                            {/if}
                        {/if}
                    {/if}
                    {if $colName == 'description'}
                        {prodProductValue var="desc"}
                    {/if}
                {/prodSelectFields}
				<div class="white-button" style="margin: 20px 10px; width: 150px; background-color: #352300;" >
					<div align="center"><a href="javascript:;"  onclick="MM_openBrWindow('{prodProductLink print='1'}','imprimir','scrollbars=yes,resizable=yes,width=630,height=600')" >[[pàgina per imprimir]]</a></div>
			</div>
			<div class="white-button" style="margin: 20px 10px; width: 150px; background-color: #352300;" >
					<div align="center">	<form name="pdf" action="{prodProductLinkPDF}" method="post">
					<input type="hidden" name="dates" value="{$prova}" />
					
					<input type="submit" name="PDF" value="PDF" />
					
					</form></div>
			</div>
   		    </div>
            <br class="clearfloat"/>
            {if $desc}
                <div id="subcontent2" style="padding-top: 3px;">
                    <div style="border-bottom: 1px solid  #50351D; margin-bottom: 15px;">
                        <h2>{$nom}</h2>
                    </div>
            	  {$desc}
                </div>
            {/if}
			
        </div>
		  
    <!-- end #container -->
Genera una ficha de producto con campos dinamicos y un listado de productos relacionados.

Estoy pasando por post código html, sólo por ver si funciona, y si que funciona, pero fetch no me funciona y capture tampoco... a lo mejor estoy haciendo algo mal.

Muchas gracias
  #6 (permalink)  
Antiguo 02/03/2009, 04:39
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 16 años, 4 meses
Puntos: 16
Respuesta: Capturar el html de un template que se ha ejecutado con smarty

finalmente lo conseguí con fetch. Ahora me está dando este fallo, pero aún estoy mirando de que va.
FPDF error: Alpha channel not supported algo de los png... muchas gracias por todo

Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:36.