George,

You do not need to have multiple tiny template files.  We create a website
in Dreamweaver using builtin "library items".  This website has many pages,
sharing the same header and footer library item.  Within the html page we
use only two template constructs:

{VARIABLE_NAME}

and:

<!-- BEGIN DYNAMIC BLOCK: block_name -->
<!-- END DYNAMIC BLOCK: block_name -->

that's it.  Nothing more.  Our naming convention consists of "filename.html"
contains formatting and {VARIABLES}, "filename.phtml" contains template code
to suck-in the template, replace the {VARIABLES} with information, and spit
it back out.

If we need to update all the headers or footers, we update the header or
footer "library item" in Dreamweaver, and all the corresponding pages are
updated.  The header and footer file may be single files somewhere, but
regardless dreamweaver updates every file that needs to be updated and the
site reflects the changes.

We have worked on a broad range of sites, and I have worked on quite a few
independently without dreamweaver, and this seems like the most efficient
setup for designers that are familiar using Dreamweaver.  I personally don't
care for Dreamweaver, but if I am designing a site on my own, I still use
FastTemplate.  The only difference is that using FastTemplate without
Dreamweaver benefits from a separate header and footer HTML file.

This scenario probably is better demonstrated than explained.  Regardless it
works well for us, and has proven advantageous.

Here is an example of a template:
http://www.powerspec.com/support/support_archive.html?selection=4611

Here is an example of the parsed output, notice the file names?
http://www.powerspec.com/support/support_archive.phtml?selection=4611

View the source and you will see where Dreamweaver keeps notes of where
library items should go.

>>The
>>problem seems to be to make sure they don't show up in the saved
>>Dreamweaver html file as well as it's saved library item.

The "problem" you describe is really a feature, if used properly this
feature can pretty handy.  I don't believe that Dreamweaver's "Library
items" are meant to be directly included into php pages.  You are supposed
to allow Dreamweaver to update all the pages affected by the library item
after you make a change to the library item.  Its one of the reasons to use
Dreamweaver.  Its seems possible to write a regex to remove the library item
and replace with a php include(), but this is really what FastTemplate was
made to do in the first place, so you've reinvented the wheel.

Also another reason to consider Template (IMHO) are the programmers who
support them, Sascha Schumann wrote the article I referred you to, Andrei
Zmievski wrote Smarty (another templating system for php).  phplib contains
a templating system, and I'm sure there are countless others.  Templates
seem to be adopted by experieced programmers more often than not.  I haven't
even mentioned the advantages of CachedFastTemplate which is reason alone to
use templates.

If you decide to try it out, I'm happy to relay my experiences.

Robert V. Zwink
http://www.zwink.net/daid.php



-----Original Message-----
From: George Whiffen [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, September 05, 2001 2:34 PM
To: [EMAIL PROTECTED]; Robert V. Zwink
Subject: Re: [PHP] php includes === Dreamweaver library items


Robert,

Thanks for the suggestions, but...

a) I do want to do this and I do think I can.

The big problem is not the templating, php is pretty damn good at that
already.
It's handling the header/footer html which appears on every page.
On the one hand we only want one master copy so there's only one
thing to fix if it's wrong, on the other hand we want the designer's
tools (Dreamweaver in this case), to show the page they're designing
with those headers/footers included while they work locally on their server.
I still think this can be done with Dreamweaver's library items.  They seem
to be
held as separate files with little snippets of html, just as we'd
hold them on the server, so with a little discipline or fancy ftp
synchronisation we can make sure they are up to date.  The problem seems
to be to make sure they don't show up in the saved Dreamweaver html file as
well
as it's saved library item.

b) I looked at FastTemplate and I'm pretty sure I don't want
to use it.

The main difference from a pure php approache seems to be that instead
of embedding real live php in the template (and then hiding it
from the designers), instead you embed your own invented tags that
you then separately translate into the results of some php via tpl
methods.

The disadvantage is that you seem to have to create lots
of itty bitty little .tpl files for every part of the page which
is either repeated or conditional and bunches of other structure
which doesn't do anything to help productivity or maintainability.
I would much rather include the looping/conditional php in the template
itself,
safely tucked away in a php tag e.g. (using the FastTemplate example)

************ mytemplate.html ************
<HTML>
<BODY>
<TABLE>
<TITLE>HALLO</TITLE>
<?php
// Start looping through files
   while($filename = readdir($handle))
   {
       $filesize = filesize($filename);
?>

<TR>
 <TD><?= $filename?></TD>
 <TD><?= $filesize?></TD>
</TR>

<?php
// End of loop through files
   }
?>
</TABLE>
</BODY>
</HEAD>
etc.

************ myphpprogram ****************
Then the master php just has :

//standard stuff....

$handle = opendir(...);

//error checking

include(mytemplate.html)

close($handle);


The template can then include any number of loops and conditionals all in
the
same full previewable/editable html page. It's not going to be a perfect
copy of the final page i.e. each repeating section only appears once and
conditionals always appear, but that's impossible anyway until you actually
execute the page on the server.

But compared to the FastTemplate approach this is less code, less files,
less things to go wrong, same amount of coordination with the designers,
more educative for the designers (some might even get curious and look at
the php!), and it does mean the designers get a whole page to work
on/preview.

I guess FastTemplate may improve reusability of the html formats
by splitting the html into separate chunks.  That might matter for system
admin/software engineering type applications where you might list the same
kind of data in the same format more than once.  But in my world of database
applications that almost never happens!  You just don't show the same data
in the same format in more than one place or on more than one page.  If you
do, it's usually an indicator that you've failed to structure your web pages
properly i.e. you should be reusing the page, not just bits of it.




Robert V. Zwink wrote:
>
> I dont' think you can do this, or that you would want to do this.  Library
> items in Dreamweaver (as I understand it) are snippets of HTML that
> Dreamweaver marks as updatable accross the entire site.  They are not
> "included" into the HTML, dreamweaver keeps track of where they need to
go,
> then updates the entire HTML page.  The html page does not "include" the
> library item, Dreamweaver handles updating the pages the library item
> applies.
>
> If you want to make your life easier familiarize the php developer(s) with
> FastTemplate.  Check out:
> http://www.phpbuilder.com/columns/sascha19990316.php3
> for more information.
>
> I hope this helps.
>
> Robert Zwink
> http://www.zwink.net/daid.php
>
> -----Original Message-----
> From: George Whiffen [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, September 05, 2001 10:40 AM
> To: [EMAIL PROTECTED]
> Subject: [PHP] php includes === Dreamweaver library items
>
> Hi,
>
> Has anyone experience of using Dreamweaver library item files (.lbi)s as
> php includes?
>
> We've got a standard header and footer to go across all pages on a site
with
> the navigation etc.  We want both the designers, (using Dreamweaver), and
> the
> php programmers to have access to these includes, so that the Dreamweavers
> can
> view the pages automatically with the headers/footers shown, and the
> programmers
> can still maintain the pages and includes without Dreamweaver.
>
> I don't fully understand how Dreamweaver library files work, so I guess my
> questions are :
>
> a) Can you use a url for a Dreamweaver libary file rather than using a
local
> file
> so we can all share a single master copy?
>
> b) Can we tell Dreamweaver to include the libary file's html when
previewing
> but
> exclude it when saving, so we don't end up with the library code twice,
once
> embedded by
> Dreamweaver on the save and once included by php at execution?  (I insist
on
> the live page
> using the master version as I'm not prepared to trust the Dreamweavers to
> rebuild the
> pages when the library files change!)
>
> I guess I've got workarounds if the answers to these prove negative.
>
> For a) I can bully the Dreamweavers into keeping the master/local copies
in
> step,
> and for b) I guess I can get the php to strip out the Dreamweaver copy of
> the
> library code at execution with a little bit of spoofing of Dreamweaver
about
> where
> php starts and ends i.e. something like....
>
> <?php turn_into_an_include(<<<ENDLIBRARY
> ?>
>
>    dreamweaver library item tags and text
>
> <!--
> ENDLIBRARY
> );
> //--><?php
> ?>
>
> where turn_into_an_include is a function which just finds the library file
> name
> in the passed string of library code and includes it from the appropriate
> server
> directory.
>
> Of course, this is a bit clumsy, any better suggestions?
>
> Many thanks,
>
> George
>
> ?>
>
> c) In the worst case I guess, we can live with local and master copies of
> library
> files and remind the Dreamweavers to always update the master when they
make
> changes get the php
> code
> to strip out the embedded library file html at execution time and replace
it
> with
> an appropriate include statement of the server copy.  I've got an idea how
> to do this by as anyone else tried this?
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> To contact the list administrators, e-mail: [EMAIL PROTECTED]

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to