Re: [PHP] Site Design Strategy
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
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
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
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
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
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
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
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
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