Files
smarty/docs/en/programmers/api-functions/api-fetch.xml

158 lines
4.1 KiB
XML
Raw Normal View History

2004-04-13 11:47:32 +00:00
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
2004-04-18 19:22:55 +00:00
<refentry id="api.fetch">
<refnamediv>
2005-05-27 16:25:02 +00:00
<refname>fetch()</refname>
<refpurpose>returns the template output</refpurpose>
2004-04-18 19:22:55 +00:00
</refnamediv>
<refsect1>
2005-05-27 16:25:02 +00:00
<title>Description</title>
2004-04-18 19:22:55 +00:00
<methodsynopsis>
<type>string</type><methodname>fetch</methodname>
<methodparam><type>string</type><parameter>template</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>cache_id</parameter></methodparam>
2005-05-27 16:25:02 +00:00
<methodparam choice="opt"><type>string</type><parameter>$compile_id</parameter>
</methodparam>
2004-04-18 19:22:55 +00:00
</methodsynopsis>
<para>
2005-05-27 16:25:02 +00:00
This returns the template output instead of
<link linkend="api.display">displaying</link> it.
2004-04-18 19:22:55 +00:00
Supply a valid <link
linkend="template.resources">template resource</link>
type and path. As an optional second parameter, you can pass a
2006-09-26 23:29:02 +00:00
<parameter>$cache id</parameter>, see the <link linkend="caching">caching
2004-04-18 19:22:55 +00:00
section</link> for more information.
</para>
2004-04-20 11:37:05 +00:00
&parameter.compileid;
2005-05-27 16:25:02 +00:00
<para>
<example>
<title>fetch()</title>
<programlisting role="php">
2004-04-13 11:47:32 +00:00
<![CDATA[
<?php
2005-05-27 16:25:02 +00:00
include('Smarty.class.php');
2004-04-13 11:47:32 +00:00
$smarty = new Smarty;
$smarty->caching = true;
// only do db calls if cache doesn't exist
2005-05-27 16:25:02 +00:00
if(!$smarty->is_cached('index.tpl')) {
2004-04-13 11:47:32 +00:00
2004-04-18 19:22:55 +00:00
// dummy up some data
2005-05-27 16:25:02 +00:00
$address = '245 N 50th';
2004-04-18 19:22:55 +00:00
$db_data = array(
2005-05-27 16:25:02 +00:00
'City' => 'Lincoln',
'State' => 'Nebraska',
'Zip' => '68502'
2004-04-18 19:22:55 +00:00
);
2004-04-13 11:47:32 +00:00
2005-05-27 16:25:02 +00:00
$smarty->assign('Name','Fred');
$smarty->assign('Address',$address);
2004-04-18 19:22:55 +00:00
$smarty->assign($db_data);
2004-04-13 11:47:32 +00:00
}
// capture the output
2005-05-27 16:25:02 +00:00
$output = $smarty->fetch('index.tpl');
2004-04-13 11:47:32 +00:00
// do something with $output here
echo $output;
?>
]]>
</programlisting>
</example>
</para>
2005-05-27 16:25:02 +00:00
<para>
<example>
<title>Using fetch() to send an email</title>
<para>
2006-09-26 23:29:02 +00:00
The <filename>email_body.tpl</filename> template
</para>
<programlisting>
2005-05-27 16:25:02 +00:00
<![CDATA[
Dear {$contact.name},
Welcome and thankyou for signing up as a member of our user group,
Click on the link below to login with your user name of '{$contact.login_id}'
so you can post in our forums.
2006-09-26 23:29:02 +00:00
http://{$smarty.server.SERVER_NAME}/login/
2005-05-27 16:25:02 +00:00
List master
Some user group
2006-09-26 23:29:02 +00:00
{include file='email_disclaimer.tpl'}
2005-05-27 16:25:02 +00:00
]]>
</programlisting>
<para>
2006-09-26 23:29:02 +00:00
The <filename>email_disclaimer.tpl</filename> template which uses the
<link linkend="language.function.textformat">
<varname>{textformat}</varname></link> modifier.
</para>
<programlisting>
2005-05-27 16:25:02 +00:00
<![CDATA[
{textformat wrap=40}
Unless you are named "{$contact.name}", you may read only the "odd numbered
words" (every other word beginning with the first) of the message above. If you have
violated that, then you hereby owe the sender 10 GBP for each even
numbered word you have read
{/textformat}
2005-05-27 16:25:02 +00:00
]]>
</programlisting>
<para>
2006-09-26 23:29:02 +00:00
The php script using the PHP
<ulink url="&url.php-manual;function.mail">
<varname>mail()</varname></ulink> function
</para>
<programlisting role="php">
2005-05-27 16:25:02 +00:00
<![CDATA[
<?php
// get contact from database eg using pear or adodb
$query = 'select name, email, login_id from contacts where contact_id='.$contact_id;
$contact = $db->getRow($sql);
$smarty->assign('contact', $contact);
mail($contact['email'], 'Subject', $smarty->fetch('email_body.tpl'));
2005-05-27 16:25:02 +00:00
?>
]]>
</programlisting>
</example>
</para>
2005-05-27 16:25:02 +00:00
<para>
See also
2006-09-26 23:29:02 +00:00
<link linkend="language.function.fetch"><varname>{fetch}</varname></link>
<link linkend="api.display"><varname>display()</varname></link>,
<link linkend="language.function.eval"><varname>{eval}</varname></link>,
and
2006-09-26 23:29:02 +00:00
<link linkend="api.template.exists"><varname>template_exists()</varname></link>.
</para>
2004-04-18 19:22:55 +00:00
</refsect1>
</refentry>
2004-04-13 11:47:32 +00:00
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
2004-04-18 19:22:55 +00:00
-->