Why Linux Journal converted to Drupal and how it went
We had been looking for a "Content Management System" for quite a while, and one of our employees discovered Drupal while researching CMS software on the web. Drupal appeared to be much more flexible than PHP Nuke, which we were using, and the more we looked at it the more impressed we became. At that time all of the features we thought we would need, except one, which we decided to write a module to provide, were on the table to be implemented in the next Drupal release.
We decided to convert Linux Gazette to Drupal in order to become familiar with Drupal under real life high usage conditions and to setup Doc Searls' IT Garage to experiment with Drupal's blogging and other interactive abilities. After we were satisfied with Drupal's ability to handle the traffic at Linux Gazette as well as its interactive abilities at Doc Searls' IT Garage and had set up and tested Drupal's flexibility by creating several sites for internal corporate use, we decided to create a Drupal site to replace the Linux Journal PHP Nuke site that we were using for Linux Journal. We started out with version 4.3 of Drupal but by the time we decided to convert Linux Journal to Drupal, version 4.4 was out so we started building our new site using that version. There were not any major problems, just the typical learning curve requiring new ways of looking at problems, nothing we could see that would prevent us from using Drupal for the new site. Most of our time was devoted to developing methods to convert the old articles and content of Linux Journal magazine to the new format required in the new site.
One thing that Drupal did not provide was a method that we could use to display static content in the main center section without the other content that Drupal normally puts there. We wanted to be able to link to static html and text files and have only that file be displayed in the center section. To do that Mitch Frazier created a module he called xstatic.module. The xstatic module allows you to define one or more base directories that can be used for storing HTML files, PHP files, text files, and image files. When the xstatic module is used in the URL, the argument to it is interpreted as a file path name. This file path name is searched for relative to all each of the predefined xstatic directories. The file type extensions are appended automatically. If the file is found its contents are displayed in the main (center) section of the Drupal page. If the file is a php file it is first evaluated and the result is displayed. This allowed us to create anything we wanted in the center, without having to create a node, while maintaining a consistent Drupal "look" with the site's header, sidebars, and footer intact. The xstatic module gave us a great way to separate all information that is not editorial content from the marketing and business oriented pages as well as providing us with a simple way to quickly integrate existing HTML files into the site.
After converting 10 years of articles and getting the "look and feel" we wanted, we decided to do the roll over from PHP Nuke to Drupal at 8am on Nov. 1st. Unfortunately on the evening of Oct. 30, while doing the final move of the articles to the new site, we discovered that Anonymous users could not leave their name or email address when making comments. This was a feature we "had" to have and was only available on version 4.5. On earlier versions of Drupal you had to have an account before your name would appear with your comment. This was a "show stopper" and even though we had less than 48 hours to do it in, we decided to install a new 4.5 site and bring over the blocks, theme and other changes we created for the earlier version. Mitch Frazier had it working in 24 hours and we spent the rest of the time before the roll out testing and doing minor cleanup.
The new site has been well received by Linux Journal subscribers and www.linuxjournal.com readers. Lots of helpful suggestions have been made and new features implemented because of them. Because of this warm reception, when we decided to create a publication called TUX, which is primarily for the new Linux user, we decided to use Drupal for its web site. Since we were short of time, we simply cloned the Linux Journal site. We then made cosmetic changes and cleaned up the database. This allowed us to have a working site while we worked on a completely new layout and design. The new TUX layout and design has been finished and is now in place. Steven Wittens, one of the core Drupal developers helped us with the look and feel of the new TUX site which is based on the phptemplate theme.
On the Linux Journal site, Drupal version 4.5 is handling 400,000 hits per day, and MySQL is handling the storage and the searches for 5,000 articles and over 14,000 comments. We are currently using these contributed modules; print, spam, subscriptions and themedev on both the Linux Journal and TUX sites. We are also considering using weblink, userpost and webforms as well. We are very pleased with the power and stability of Drupal and because of this are creating internal Drupal sites to be used for information dispersal and coordination between employees and departments. We are considering using a node level permission module that Matt Westgate is developing to control access to information in these internal sites. We are constantly amazed at how versatile and powerful Drupal is and at the new uses we find for it.
The Drupal Community has been a great help in answering questions and making suggestions that allowed us to create, design and convert our existing web site to Drupal as well as create new ones. To return the favor we are planning on releasing the xstatic module that Mitch Frazier created, some time after the first of the year. Mitch is also working on a few other new ideas and we will be releasing them after they are fully developed and researched.
Many thanks to the Drupal Community from the staff of Linux Journal, TUX, Doc Searls' IT Garage and Linux Gazette.
--
Keith Daniels
Web Coordinator
SSC Publications, Inc.
Publishers of:
Linux Journal
TUX
Doc Searls' IT Garage
Linux Gazette
A42
Groups of Linux Users Everywhere

xstatic.module release
I am in the process of contributing the module now.
As soon as the CVS "paper work" is approved, I will upload the module for final review prior to release.
It shouldn't be long.....
I would like for anyone interested to review the README.txt file contents that I am posting below and point out any errors, anything I left out or didn't explain properly so I can fix or add them before I release the module.
Thanks
Keith Daniels
---------------
README.txt
--------------
The xstatic module enables the display of external HTML, php and text files that must be stored in the directory specified on the administer >> settings >> xstatic page or in subdirectories of that directory. The default directory name is xsfiles. You can define one or more base directories that can be used to store HTML files, PHP files, text files, and image files. The included file xstatic_template.html can be used as a model for inserting the body code for your HTML or XHTML page.
When xstatic is specified immediately after the site URL, the text after /xstatic/ is interpreted as a file path. This file path is searched for in all of the predefined xstatic directories. The file type extensions are appended automatically so you don't have to specify them in your links. If the file is found its contents are displayed in the main (center) section of the drupal page. If the file is a php file it is first evaluated and the result is displayed. This allows you to create anything you want in the center section, without having to create a node, while maintaining a consistent Drupal "look" with the site's header, sidebars, and footer remaining intact
The module works like this, if you link to a file, lets say abc.html as:
http://www.your-site.com/xsfiles/subs/index/abc.html
the webserver sees that that is a real file so it sends the file, and only the file to you. On the other hand if you link to it as:
http://www.your-site.com/xstatic/subs/index/abc.html
the webserver sees that no such file exists so it passes the request to drupal, drupal then passes the request to the xstatic module. The module then searches for the file and if found, reads the file, extracts the HTML body of the file, wraps it in all the drupal dressings and displays it.
Because of this, if you store any images or other non HTML, php or text files in the xsfile directory that are linked to from other pages (xstatic or drupal) you have to specify it as /xsfiles/happy.png (if the graphics file name is happy.png) instead of /xstatic/happy.png or it will NOT load the file as part of your page.
Note: there are a few oddities like HTML table header align="center" arguments are not passed through when an HTML file is displayed by the xstatic module. When you view the HTML file directly with a browser the header is centered -- if you load it into drupal as an xstatic file it is not centered. We are talking about HTML code here not CSS. This problem can be solved by creating a class in a linked CSS file and applying it to the table header tag.
Declarations for importing an external CSS file in the header of an HTML file stored in the xsfiles directories and displayed by the xstatic module will not be loaded. This is because the xstatic module strips the header from the file so anything declared there is deleted.
When xstatic spits out a page it encloses it in:
< div class="xstatic-html" ><br><br/> < /div >Because of this, any HTML tag defined with .xstatic-html in a CSS file imported by the drupal template -- will have this class automaticly applied to all similar HTML tags in any HTML file displayed by the xstatic module -- without having to declare class="xstatic-html" in the HTML file.
Example:
h1.xstatic-html {<br> color: red<br>}will cause any h1 header in any html file displayed by the xstatic module to be red.
Watch out for strange stuff though. One of the unexpected things that happen to me recently was when I tried something like this:
body {<br> background-color: red;<br> font: verdana;<br>}Any time I used a table it had a different background color and font than everything else, so I had to add:
table {<br> background-color: inherit;<br> font: inherit;<br>}So that it would use the value defined by the body tag.
Have fun and remember if at first it doesn't work... try something different... :-)
see
see also
http://drupal.org/node/19909
I searched in Module CVS for
I searched in Module CVS for the download, but did not found the xstatic module. Where can we get it?
thanks, holger
http://www.ebec.net . . .
http://www.stnetwork.de . . .
that's great
that it works...but all these things seem so scattered.