Re: [PHP] Site Design Strategy

2005-06-03 Thread Jack Jackson



asinning wrote:

This is my first post to this group.  I've been trying to figure this
out on my own, but I keep running into complications, so I've decided
to get some help.  Much thanks for any help!

I've been writing php server application for a couple of years, but now
I'm turning my attention to re-building our company's aging website.
This is a big project and is going to require a solid foundation.

At the crux of this post is the following question:  How do you develop
a very robust, dynamic web-site, but also allow non-technical people to
contribute? There must be an easier way.

Here are my working assumptions and my strategy.  Please help me if I'm
thinking down the wrong path.

Assumptions:

1) Non-technical people in the company need to be able to build pages,
and they should be able to post their pages without bothering me.  We
have a tech-support person who will be able to help them, but she has
zero programming knowledge and only a superficial understanding of
HTML.

2) Every page needs to reside within he shell of the web site.  This
includes

  header(the top-level menu)
  left-side menu (a dynamic, context-specific menu)
  content (this is what the non-technical people will produce)
  footer (your standard fare text-based links)

3) I don't want to use frames, and I don't want to use Dreamweaver
templates.

Strategy:  Currently, I am working on the following model:

 There is a top-level index.php page.  This is the target of EVERY
page on the site.

 The page that gets loaded in depends on the parameters of
query-string.  It's very simple, if the query string reads
?target=products/gsp, then my php will look for a site-relative
document such as products/gsp.htm OR products/gsp/index.hml.  Then,
this document will get included as the content in my shell.

 Well, this works to a degree, but it requires that people use
site-relative paths for all of their graphics and links, which is
way, way to much to ask.  After all, people are using WYSIWIG editors
such as Dreamweaver and even Word to build their pages.  Typically,
site-relative paths don't work in these environments.  They shouldn't
need to upload their document to preview it.

 It also requires that they put their page within a 550 pixel wide
-td- tag.  I'd love to drop that requirement.

So, now I considering the following:  A parser that will convert any
content into includable form.  Relative paths will be translated to
the site-root, etc.  I'm a bit stuck here.



Maybe I've misunderstood but here's a thought:

I'm not sure what they're actually doing with these pages but it's 
usually in my experience something like a headline, a block of text in 
which you can allow certain HTML tags (you can use tidy within PHP) and 
 some images and some links. Is there more that these folks are doing? 
Is there a reason to give them so much flexibility in design? Are these 
home pages as in personal showcases or department-specific offerings?


You probably want to set up each user with their own directory or db 
area so they can upload all their images through your control panel, 
enter their text and have everything in one place for each user.


If you give users the opportunity to put in unlimited matched sets of 
Headline, text block, image float right left or center (cna cation  if 
required) plus strong, em and a limited href capability 99% of 
people  will probably be happy. Make sure you rename all images they 
upload to remove spaces, weird characters and duplicate names. You can 
use a naming convention like user.image.x. or even md5(imagename).


So this way, each user gets a user directory in which all image links 
are relative to that directory, all images are righ there and ties to 
the user.



  It also requires that they put their page within a 550 pixel wide
 -td- tag.  I'd love to drop that requirement.

AAARG. We use a wrapper in XHTML, putting everything in div tags so 
that later, when we change the format, they're not stuck in a td as 
you rightly worry about. Using div and CSS positioning increases 
exponentially your flexibility both now and later. And requires fairly 
modern browsers but according to our logs almost everyone has them. And 
if they come in using lynx it'll still *work* in that they get all the 
info in sensible order. Netscape 4 and IE 4 users are out of luck, but 
then, they often are anyway in terms of support on the web (please let's 
not devolve into a flame war over that statement).



HTH and makes sense.





--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Site Design Strategy

2005-06-03 Thread Greg Donald
On 6/2/05, asinning [EMAIL PROTECTED] wrote:
 At the crux of this post is the following question:  How do you develop
 a very robust, dynamic web-site, but also allow non-technical people to
 contribute? There must be an easier way.

Use a framework like MVC.  Your PHP code would be seperate from your
design templates.  Smarty is a heavy-weight for templating.  I use
eval() for most of my own hobby project templating.

 1) Non-technical people in the company need to be able to build pages,
 and they should be able to post their pages without bothering me.We
 have a tech-support person who will be able to help them, but she has
 zero programming knowledge and only a superficial understanding of
 HTML.

Sounds like a CMS.  I use this web based HTML editor when I need to
let designers play in my projects:
http://www.htmlarea.com/

   The page that gets loaded in depends on the parameters of
 query-string.  It's very simple, if the query string reads
 ?target=products/gsp, then my php will look for a site-relative
 document such as products/gsp.htm OR products/gsp/index.hml.  Then,
 this document will get included as the content in my shell.

You might look into Apache's mod_rewrite to help clean those URLs up. 
Search engines love nice clean URLs if that sort of thing matters to
you.


-- 
Greg Donald
Zend Certified Engineer
http://destiney.com/

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Site Design Strategy

2005-06-03 Thread Angelo Zanetti
what you are looking for is a CMS system
something like www.plone.org
also there is an rich text HTML area which you can use on your site,
check this out:
http://www.solmetra.com/en/disp.php/en_products/en_spaw/en_spaw_intro

it might help

hope it does.

Angelo 



Greg Donald wrote:

On 6/2/05, asinning [EMAIL PROTECTED] wrote:
  

At the crux of this post is the following question:  How do you develop
a very robust, dynamic web-site, but also allow non-technical people to
contribute? There must be an easier way.



Use a framework like MVC.  Your PHP code would be seperate from your
design templates.  Smarty is a heavy-weight for templating.  I use
eval() for most of my own hobby project templating.

  

1) Non-technical people in the company need to be able to build pages,
and they should be able to post their pages without bothering me.We
have a tech-support person who will be able to help them, but she has
zero programming knowledge and only a superficial understanding of
HTML.



Sounds like a CMS.  I use this web based HTML editor when I need to
let designers play in my projects:
http://www.htmlarea.com/

  

  The page that gets loaded in depends on the parameters of
query-string.  It's very simple, if the query string reads
?target=products/gsp, then my php will look for a site-relative
document such as products/gsp.htm OR products/gsp/index.hml.  Then,
this document will get included as the content in my shell.



You might look into Apache's mod_rewrite to help clean those URLs up. 
Search engines love nice clean URLs if that sort of thing matters to
you.


  



Re: [PHP] Site Design Strategy

2005-06-03 Thread Greg Donald
On 6/3/05, Angelo Zanetti [EMAIL PROTECTED] wrote:
  what you are looking for is a CMS system
  something like www.plone.org
  also there is an rich text HTML area which you can use on your site, check
 this out:
 http://www.solmetra.com/en/disp.php/en_products/en_spaw/en_spaw_intro
  
  it might help
  
  hope it does.

There's no need to reply to me directly since I'm on the list.

Besides that I'm not the requester.  Try using a threaded email
client, it is a mailing list after all.


-- 
Greg Donald
Zend Certified Engineer
http://destiney.com/

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Site Design Strategy

2005-06-03 Thread Rory Browne
On 6/3/05, Greg Donald [EMAIL PROTECTED] wrote:
 On 6/3/05, Angelo Zanetti [EMAIL PROTECTED] wrote:
   what you are looking for is a CMS system
   something like www.plone.org
   also there is an rich text HTML area which you can use on your site, check
  this out:
  http://www.solmetra.com/en/disp.php/en_products/en_spaw/en_spaw_intro
 
   it might help
 
   hope it does.
 
 There's no need to reply to me directly since I'm on the list.
FYI that happens automaticly when you reply to all, which a lot of
people do for mailing lists.

 
 Besides that I'm not the requester.  Try using a threaded email
 client, it is a mailing list after all.
I'm not sure what Angelo uses but gmail is threaded, and the same
thing happens with my mail client.

 
 
 --
 Greg Donald
 Zend Certified Engineer
 http://destiney.com/
 
 --
 PHP General Mailing List (http://www.php.net/)
 To unsubscribe, visit: http://www.php.net/unsub.php
 


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Site Design Strategy

2005-06-03 Thread Greg Donald
On 6/3/05, Rory Browne [EMAIL PROTECTED] wrote:
  There's no need to reply to me directly since I'm on the list.
 FYI that happens automaticly when you reply to all, which a lot of
 people do for mailing lists.

I hit 'reply to all' as well, then I remove everything but
[EMAIL PROTECTED]  It's not that hard, really.

 I'm not sure what Angelo uses but gmail is threaded, and the same
 thing happens with my mail client.

Threaded -- as in not replying directly to a person who didn't ask the
question.  I replied with answers/opinions to the original poster but
then you replied to me as if I were the one asking the question.  Just
a matter of paying attention to what's going on I guess.  A threaded
email client helps in that regard is why I suggested it.

Do what you want, I dunno why I even made any suggestions.


-- 
Greg Donald
Zend Certified Engineer
http://destiney.com/

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Site Design Strategy

2005-06-03 Thread Angelo Zanetti
threaded in terms of the posts being shown in a tree view kinda way...
so if I reply to your post in a threaded mail cleint it will be shown
under your post/reply/message
where as if I replied to the origional it will be seen on the same level
as the others who replied to the origional post for the first time. hope
im making sense. its just a hierarchical way of showing threads.

by the way i'm using thunderbird!


Greg Donald wrote:

On 6/3/05, Rory Browne [EMAIL PROTECTED] wrote:
  

There's no need to reply to me directly since I'm on the list.
  

FYI that happens automaticly when you reply to all, which a lot of
people do for mailing lists.



I hit 'reply to all' as well, then I remove everything but
[EMAIL PROTECTED]  It's not that hard, really.

  

I'm not sure what Angelo uses but gmail is threaded, and the same
thing happens with my mail client.



Threaded -- as in not replying directly to a person who didn't ask the
question.  I replied with answers/opinions to the original poster but
then you replied to me as if I were the one asking the question.  Just
a matter of paying attention to what's going on I guess.  A threaded
email client helps in that regard is why I suggested it.

Do what you want, I dunno why I even made any suggestions.


  



Re: [PHP] Site Design Strategy

2005-06-03 Thread Angelo Zanetti
threaded in terms of the posts being shown in a tree view kinda way...
so if I reply to your post in a threaded mail cleint it will be shown
under your post/reply/message
where as if I replied to the origional it will be seen on the same level
as the others who replied to the origional post for the first time. hope
im making sense. its just a hierarchical way of showing threads.

by the way i'm using thunderbird!

Also some mailing lists are setup so that when you reply all it will
send the message to the people who posted the message previously. I
suppose this is to help with message filtering etc...  but other mailing
lists if you reply all it will just sent the message to the mailing list
address.



Greg Donald wrote:

On 6/3/05, Rory Browne [EMAIL PROTECTED] wrote:
  

There's no need to reply to me directly since I'm on the list.
  

FYI that happens automaticly when you reply to all, which a lot of
people do for mailing lists.



I hit 'reply to all' as well, then I remove everything but
[EMAIL PROTECTED]  It's not that hard, really.

  

I'm not sure what Angelo uses but gmail is threaded, and the same
thing happens with my mail client.



Threaded -- as in not replying directly to a person who didn't ask the
question.  I replied with answers/opinions to the original poster but
then you replied to me as if I were the one asking the question.  Just
a matter of paying attention to what's going on I guess.  A threaded
email client helps in that regard is why I suggested it.

Do what you want, I dunno why I even made any suggestions.


  



Re: [PHP] Site Design Strategy

2005-06-03 Thread Mark Cain
Here is what I use:

The articles (non-technical user supplied content is stored in a database
e.g. mySQL with a table named something like article_content).  The table
has columns such as

CREATE TABLE article_content (
  id int(11) NOT NULL auto_increment,
  page_name varchar(35) NOT NULL default '',
  side char(1) NOT NULL default '',
  position int(2) NOT NULL default '0',
  title varchar(35) NOT NULL default '',
  leader_length int(11) NOT NULL default '0',
  creation_time datetime NOT NULL default '-00-00 00:00:00',
  last_edit datetime NOT NULL default '-00-00 00:00:00',
  editor int(11) NOT NULL default '0',
  content longtext NOT NULL,
  PRIMARY KEY  (id)
) TYPE=MyISAM;

Each user is assigned a security level in a user database that grants them
access (table name something like 'editors')

Each article has an hidden (no decoration) editor's link at the end of the
article.  It could be the last word, the final punctuation, or a graphic.
When you click the editor's link the user is challenged against the user
name and password in the database and appropriate data stuffed into
sessions.

Once authentication is complete the article content is delivered for editing
via a JavaScript CMS such as xinha or tinymce.

Upon completion of editing, the content is stuffed back into the database.

The template for all the website is as follows:

require('/home/pathtofile/phplib/class.articles.php');
require('/home/pathtofile/pieces/header.txt');
require('/home/pathtofile/pieces/column1.txt');
require('/home/pathtofile/pieces/column2.txt');
get_article(L);
require('/home/pathtofile/pieces/column3.txt');
get_article(R);
require('/home/pathtofile/pieces/footer.txt');

The function get_article() pulls the content from the database for the
referring page (e.g index.html) where the page_name matches the referrer and
the side matches L or R.  I use position to rank the articles on the page.
A page with lower position (e.g. 1) gets displayed first and then any 2
articles, then 3, etc.  I use the 0 as a 'non published' indicator which
allows an editor to work on an article and then hide it until the right time
or to repost a recurring article at certain times..

Works wonderfully well and elevates my perceived status to that of near
genius!

Here is a link to see it in action or at least to see the finished content.
The entire web site is maintained by non-technical volunteers and they have
populated hundreds of articles on dozen of pages.
:
http://www.southshorechurch.com/index.htl?php_gen

If you need more info or functions to make this work, let me know.

Hope this helps,

Mark Cain


 .
- Original Message -
From: asinning [EMAIL PROTECTED]
To: php-general@lists.php.net
Sent: Thursday, June 02, 2005 9:56 PM
Subject: [PHP] Site Design Strategy


 This is my first post to this group.  I've been trying to figure this
 out on my own, but I keep running into complications, so I've decided
 to get some help.  Much thanks for any help!

 I've been writing php server application for a couple of years, but now
 I'm turning my attention to re-building our company's aging website.
 This is a big project and is going to require a solid foundation.

 At the crux of this post is the following question:  How do you develop
 a very robust, dynamic web-site, but also allow non-technical people to
 contribute? There must be an easier way.

 Here are my working assumptions and my strategy.  Please help me if I'm
 thinking down the wrong path.

 Assumptions:

 1) Non-technical people in the company need to be able to build pages,
 and they should be able to post their pages without bothering me.  We
 have a tech-support person who will be able to help them, but she has
 zero programming knowledge and only a superficial understanding of
 HTML.

 2) Every page needs to reside within he shell of the web site.  This
 includes

header(the top-level menu)
left-side menu (a dynamic, context-specific menu)
content (this is what the non-technical people will produce)
footer (your standard fare text-based links)

 3) I don't want to use frames, and I don't want to use Dreamweaver
 templates.

 Strategy:  Currently, I am working on the following model:

   There is a top-level index.php page.  This is the target of EVERY
 page on the site.

   The page that gets loaded in depends on the parameters of
 query-string.  It's very simple, if the query string reads
 ?target=products/gsp, then my php will look for a site-relative
 document such as products/gsp.htm OR products/gsp/index.hml.  Then,
 this document will get included as the content in my shell.

   Well, this works to a degree, but it requires that people use
 site-relative paths for all of their graphics and links, which is
 way, way to much to ask.  After all, people are using WYSIWIG editors
 such as Dreamweaver and even Word to build their pages.  Typically,
 site-relative paths don't work in these environments.  They shouldn't
 need to upload