[prev in list] [next in list] [prev in thread] [next in thread] 

List:       smarty-cvs
Subject:    [SMARTY-CVS] cvs: smarty / NEWS Smarty.class.php debug.tpl  /docs getting-started.sgml  /templates d
From:       "Monte Ohrt" <monte () ispi ! net>
Date:       2002-06-25 13:26:48
[Download RAW message or body]

mohrt		Tue Jun 25 09:26:48 2002 EDT

  Added files:                 
    /smarty	debug.tpl 

  Removed files:               
    /smarty/templates	debug.tpl 

  Modified files:              
    /smarty	NEWS Smarty.class.php 
    /smarty/docs	getting-started.sgml 
  Log:
  move debug.tpl to SMARTY_DIR, add to constructor
  
  
["mohrt-20020625092648.txt" (text/plain)]

Index: smarty/NEWS
diff -u smarty/NEWS:1.211 smarty/NEWS:1.212
--- smarty/NEWS:1.211	Mon Jun 24 16:22:14 2002
+++ smarty/NEWS	Tue Jun 25 09:26:47 2002
@@ -1,3 +1,4 @@
+    - move debug.tpl to SMARTY_DIR, add to constructor (Monte)
     - fixed warning message in function.assign_debug_info (Monte)
     - fixed $template_dir, $compile_dir, $cache_dir, $config_dir
       to respect include_path (Monte)
Index: smarty/Smarty.class.php
diff -u smarty/Smarty.class.php:1.285 smarty/Smarty.class.php:1.286
--- smarty/Smarty.class.php:1.285	Mon Jun 24 15:46:48 2002
+++ smarty/Smarty.class.php	Tue Jun 25 09:26:47 2002
@@ -71,7 +71,8 @@
                                                // (relative to Smarty directory)
 
     var $debugging       =  false;             // enable debugging console \
                true/false
-    var $debug_tpl       =  'file:debug.tpl';  // path to debug console template
+    var $debug_tpl       =  '';                // path to debug console template
+                                               // (this gets set in the constructor)
     var $debugging_ctrl  =  'NONE';            // Possible values:
                                                // NONE - no debug control allowed
                                                // URL - enable debugging when \
keyword @@ -210,6 +211,8 @@
                 }
             }
         }
+		// look for debug template in the SMARTY_DIR
+		$this->debug_tpl = SMARTY_DIR.'debug.tpl';
     }
 
 
Index: smarty/docs/getting-started.sgml
diff -u smarty/docs/getting-started.sgml:1.8 smarty/docs/getting-started.sgml:1.9
--- smarty/docs/getting-started.sgml:1.8	Thu May 16 12:15:50 2002
+++ smarty/docs/getting-started.sgml	Tue Jun 25 09:26:48 2002
@@ -116,78 +116,158 @@
   <sect1 id="installing.smarty">
    <title>Installing Smarty</title>
    <para>
-	Installing Smarty is fairly straightforward, there are a few things to be
-	aware of. Smarty creates PHP scripts from the templates. This usually means
-	allowing user "nobody" (or whomever the web server runs as) to have
-	permission to write the files. Each installation of a Smarty application
-	minimally needs a templates directory and a compiled templates directory.
-	If you use configuration files you will also need a directory for those. By
-	default these are named "templates", "templates_c" and "configs"
-	respectively. "templates_c" needs to be writable by the web server user. If
-	you plan on using caching, you will need to create a "cache" directory,
-	also with permission to write files.
+   First install the Smarty library files. These are the PHP files that you DO
+   NOT edit. They only get updated when you upgrade to a new version of Smarty.
+   These files are shared among all applications installed on your server that
+   utilize Smarty.
    </para>
    <note>
 	<title>Technical Note</title>
 	<para>
-    You can get around the need to allow the web server
-    user write access to compile templates. Smarty needs to compile the
-    templates only once. This can be done from the command line, using the
-    CGI version of PHP. example: "php -q index.php". Once the templates are
-    compiled, they should run fine from the web environment. If you change
-    a template, you must recompile from the command line again. If you do
-    not have the CGI version of PHP available and you are concerned about
-    world-writable directory access, you can chmod 777 the compile_dir, let
-    the templates compile once as the web server user, then change the
-    directory mode to 755. If you are using the caching feature of Smarty,
-    the cache directory must always have write access for the web server
-    user.
+	We highly recommend you do not edit the Smarty files unless you know what
+	you're doing. This makes upgrades much easier for you. You DO NOT need to
+	edit these files to configure your applications! Use an instance of the
+	Smarty class, which we'll get to in the sample setup below.
    </para>
    </note>
-   <note>
-   <title>Technical Note</title>
+   
    <para>
-    If you do not have access to the php.ini file, you can
-    change non-server settings (such as your include_path) with the
-    ini_set() command (available in PHP 4.0.4 or later.) example:
-    ini_set("include_path",".:/usr/local/lib/php");
+   Here is a list of the library files that come with Smarty:
    </para>
-   </note>
+   <example>
+    <title>Smarty library files list</title>
+    <screen>
+Smarty.class.php
+Smarty_Compiler.class.php
+Config_File.class.php
+/plugins/(all files)</screen>
+   </example>
+
    <para>
-    Copy the Smarty.class.php, Smarty.addons.php and Config_File.class.php
-    scripts to a directory that is in your PHP include_path. NOTE: PHP will
-    try to create a directory alongside the executing script called
-    "templates_c". Be sure that directory permissions allow this to happen.
-    You will see PHP error messages if this fails. You can also create the
-    directory yourself before hand, and change the file ownership
-    accordingly. See below.
+   Place these library files in a directory located within your PHP
+   include_path. Your include_path is usually set in your php.ini file, and you
+   can get your current include_path setting from the phpinfo() function. Call
+   Smarty in your applications like this:
    </para>
-   <note>
-   <title>Technical Note</title>
+
+   <example>
+    <title>Loading Smarty library files from include_path</title>
+    <screen>
+// Smarty.class.php will be found in your include_path
+require('Smarty.class.php');
+$smarty = new Smarty;</screen>
+   </example>
+  
    <para>
-    If you don't want to use include_path to find the
-    Smarty files, you can set the SMARTY_DIR constant to the full path to
-    your Smarty library files. Be sure the path ends with a slash!
+   If you would like to place your library files outside of your include path,
+   you must supply the absolute path in your application via the SMARTY_DIR
+   constant. SMARTY_DIR must end with a slash. Lets say we place our Smarty
+   library files in /usr/local/lib/php/Smarty/.
    </para>
-   </note>
+ 
+   <example>
+    <title>Loading Smarty library files directly</title>
+    <screen>
+define(SMARTY_DIR,'/usr/local/lib/php/Smarty/');
+require(SMARTY_DIR.'Smarty.class.php');
+$smarty = new Smarty;</screen>
+   </example>
+
+   <para>
+	Now we need to setup the directories for our application. These are
+	$template_dir, $compile_dir, $config_dir and $cache_dir. It is your
+	discretion to have your applications share any of these directories, or
+	make them separate. None of these directories need be in the document root
+	of your web server, so keep them out of there to avoid the issue of prying
+	eyes getting to these files directly with a browser.
+   </para>
+   <para>
+   Lets take a look at an example of a complete file structure for all of our
+   files:
+   </para>
+  
+   <example>
+    <title>Example file structure</title>
+    <screen>
+/usr/local/lib/php/Smarty/Smarty.class.php
+/usr/local/lib/php/Smarty/Smarty_Compiler.class.php
+/usr/local/lib/php/Smarty/Config_File.class.php
+/usr/local/lib/php/Smarty/plugins/*.php
+
+/web/www.mydomain.com/smarty/templates/
+/web/www.mydomain.com/smarty/templates_c/
+/web/www.mydomain.com/smarty/configs/
+/web/www.mydomain.com/smarty/cache/
+
+/web/www.mydomain.com/docs/myapp/index.php</screen>
+   </example>
+
+   <para>
+   Smarty will need write access to the $compile_dir and $cache_dir, so be sure
+   the web server user can write to them. This is usually user "nobody" and
+   group "nobody". For OS X users, the default is user "web" and group "web".
+   </para>
+   <example>
+    <title>Setting file permissions</title>
+    <screen>
+
+chown nobody:nobody /web/www.mydomain.com/smarty/templates_c/
+chmod 550 /web/www.mydomain.com/smarty/templates_c/
+
+chown nobody:nobody /web/www.mydomain.com/smarty/cache/
+chmod 550 /web/www.mydomain.com/smarty/cache/
+
+/web/www.mydomain.com/docs/index.php</screen>
+   </example>
+   
+   <para>
+   In this example, index.php is in our document root under the subdirectory
+   "myapp". Lets edit this file and call a Smarty template.
+   </para>
+   
+   <example>
+    <title>Editing index.php</title>
+    <screen>
+
+// contents of /web/www.mydomain.com/docs/myapp/index.php
+
+define(SMARTY_DIR,'/usr/local/lib/php/Smarty/');
+require(SMARTY_DIR.'Smarty.class.php');
+
+$smarty = new Smarty;
+
+/*
+   NOTE: the following four lines do not need to be set if
+   /web/www.mydomain.com/smarty/ is in your include_path.
+*/
+
+$smarty->template_dir = '/web/www.mydomain.com/smarty/templates/';
+$smarty->compile_dir = '/web/www.mydomain.com/smarty/templates_c/';
+$smarty->config_dir = '/web/www.mydomain.com/smarty/configs/';
+$smarty->cache_dir = '/web/www.mydomain.com/smarty/cache/';
+
+$smarty->display('index.tpl');</screen>
+   </example>
+   
+   <para>
+   Before we execute this, we need to create the index.tpl file that Smarty will
+   load. This will be located in your $template_dir.
+   </para>
+
    <example>
-    <title>Example of installing Smarty</title>
+    <title>Editing index.tpl</title>
     <screen>
-# be sure you are in the web server document tree
-# this assumes your web server runs as user "nobody"
-# and you are in a un*x environment
-gtar -zxvf Smarty-[version].tar.gz
-mkdir templates_c
-chown nobody:nobody templates_c
-chmod 700 templates_c
-# if you are using caching, do the following
-mkdir cache
-chown nobody:nobody cache
-chmod 700 cache</screen>
+
+{* contents of /web/www.mydomain.com/smarty/templates/index.tpl *}
+
+Hello World!</screen>
    </example>
+   
    <para>
-    Next, try running the index.php script from your web browser.
+   Now load the index.php file from your web browser. You should see "Hello
+   World!" That's it for the basic setup for Smarty!
    </para>
+   
   </sect1>
 
   <sect1 id="smarty.constants">

Index: smarty/debug.tpl
+++ smarty/debug.tpl
{* Smarty *}

{* debug.tpl, last updated version 2.0.1 *}

{assign_debug_info}

<SCRIPT language=javascript>
	if( self.name == '' ) {ldelim}
	   var title = 'Console';
	{rdelim}
	else {ldelim}
	   var title = 'Console_' + self.name;
	{rdelim}
	_smarty_console = window.open("",title.value,"width=680,height=600,resizable,scrollbars=yes");
  _smarty_console.document.write("<HTML><TITLE>Smarty Debug \
Console_"+self.name+"</TITLE><BODY bgcolor=#ffffff>");  \
_smarty_console.document.write("<table border=0 width=100%>");  \
_smarty_console.document.write("<tr bgcolor=#cccccc><th colspan=2>Smarty Debug \
Console</th></tr>");  _smarty_console.document.write("<tr bgcolor=#cccccc><td \
colspan=2><b>included templates & config files (load time in \
seconds):</b></td></tr>");  {section name=templates loop=$_debug_tpls}
		_smarty_console.document.write("<tr bgcolor={if %templates.index% is \
even}#eeeeee{else}#fafafa{/if}><td colspan=2><tt>{section name=indent \
loop=$_debug_tpls[templates].depth}&nbsp;&nbsp;&nbsp;{/section}<font color={if \
$_debug_tpls[templates].type eq "template"}brown{elseif $_debug_tpls[templates].type \
eq "insert"}black{else}green{/if}>{$_debug_tpls[templates].filename}</font> <font \
size=-1><i>({$_debug_tpls[templates].exec_time|string_format:"%.5f"}){if \
%templates.index% eq 0} (total){/if}</i></font></tt></td></tr>");  {sectionelse}
		_smarty_console.document.write("<tr bgcolor=#eeeeee><td colspan=2><tt><i>no \
templates included</i></tt></td></tr>");	  {/section}
	_smarty_console.document.write("<tr bgcolor=#cccccc><td colspan=2><b>assigned \
template variables:</b></td></tr>");  {section name=vars loop=$_debug_keys}
		_smarty_console.document.write("<tr bgcolor={if %vars.index% is \
even}#eeeeee{else}#fafafa{/if}><td valign=top><tt><font \
color=blue>{ldelim}${$_debug_keys[vars]}{rdelim}</font></tt></td><td nowrap><tt><font \
color=green>{$_debug_vals[vars]|@debug_print_var}</font></tt></td></tr>");  \
{sectionelse}  _smarty_console.document.write("<tr bgcolor=#eeeeee><td \
colspan=2><tt><i>no template variables assigned</i></tt></td></tr>");	  {/section}
	_smarty_console.document.write("<tr bgcolor=#cccccc><td colspan=2><b>assigned config \
file variables (outter template scope):</b></td></tr>");  {section name=config_vars \
loop=$_debug_config_keys}  _smarty_console.document.write("<tr bgcolor={if \
%config_vars.index% is even}#eeeeee{else}#fafafa{/if}><td valign=top><tt><font \
color=maroon>{ldelim}#{$_debug_config_keys[config_vars]}#{rdelim}</font></tt></td><td><tt><font \
color=green>{$_debug_config_vals[config_vars]|@debug_print_var}</font></tt></td></tr>");
  {sectionelse}
		_smarty_console.document.write("<tr bgcolor=#eeeeee><td colspan=2><tt><i>no config \
vars assigned</i></tt></td></tr>");	  {/section}
	_smarty_console.document.write("</table>");
	_smarty_console.document.write("</BODY></HTML>");
	_smarty_console.document.close();
</SCRIPT>



-- 
Smarty CVS Mailing List (http://cvs.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic