Frequently Asked Questions
Q: So you mean, this is free?!?
A: Yes, SPINE is free software. It's released under the GPL. This mean that you can use and change the source code for any purpose you desire. The only restriction is that if you distribute the software (or your modified version of the software), you must do so under the GPL. In a nutshell, you must make the source code available to whoever you distribute the software and you cannot restrict that person from also redistributing the results. See COPYING and COPYRIGHT for more information on the GPL.
Q: Can I run multiple sites with this?
A: Yes, you can run several sites with this engine. You can use one database or use a database per site. You can define subsites, subdomains, define a default database, password or user. See INSTALL on how to add different sections.
Q: Where are all the files? Don't I need config files and stuff?
A: All of the data is now stored in either the database or directly in apache's httpd.conf. You don't need any external files. This has the advantage that shell call exploits are not possible. It's also a lot easier to maintain several sites. The downside is that a quick hack by editing the files directly is no longer possible. You can however edit the entries in the database if you have SQL skills.
Q: So where do I put the other files?
A: You mean the .pm files? You put the both the SPINE/* and the Apache/* files in the shared perl modules directory. You can easily install the perl modules with:
perl Makefile.PL make
and as root (superuser)
This will make sure the files get copied into the right directories (plus, it generates man pages too ;) )
Q: I only see .html files on my site. Is this normal?
A: SPINE now works extremly transparently. You can generate any type of content without actually having that content. You can even make the visitor think he's visiting an ASP, JSP or PHP based site.
Q: So there is no way of knowing if a website is using SPINE.
A: Well, there is a server signature in the generated error message, but that can be removed as well.
Q: Hey. Between releases, you changed the database table structure.
A: Didn't you see this is all still under development? It's quite stable but some features haven't been implemented yet so they will be fixed in next releases. Upgrading to a next version will probably break your current setup.
Q: I'd like to have one of those editor components in my administration section.
A: There are no plans in included that functionality in the core. There are plans of providing this feature as a patch. One of the reasons for this is that editor components abuse certain browser features and are not really cross-browser compatible. You will probably have to choose between a patch for Mozilla and one for Internet Explorer.
Q: I know this runs on Apache. What about IIS?
A: SPINE is written for mod_perl, a modular version of perl that attaches itself to the Apache core and allows slick interaction between Apache processes and perl code. IIS currently doesn't support mod_perl. When it does, I might perform some tests. I realize the CGI version did (probably) work on a Windows platform but we just had to make certain sacrifices.
Q: Can I program my own components or even have extras in the administration?
A: SPINE has a really flexible and modular design. It's quite easy to write your own handlers. Check the Developers Notes for more information on both tag and administration handlers.
Q: Your SQL file does not work with *SOME RDBMS*. Are there any plans in supporting *THAT RDBMS*?
A: I'm always open for suggestions. I realize that using a different DBD will require adjusting both the stub data as some of the code. If you would like to share some of your knowledge on specific issues regarding this problem, don't hesitate to contact me.
Q: You hardly have any documentation.
A: Yes, this is one of the vices of probably most programmers. They don't document. Bother me enough about it and I might just write some documentation.
Q: So how does it all work?
A: You create page (called a 'content'). You can name it just about anything. A content contains your general page contents. You select a style (similar to a page theme, layout) and you're done.
Q: So what are all the tags about?
A: Besides the normal HTML tags, SPINE uses it's own set of tags to indicate where to insert components. A good example is the title tag. Each content has a title attribute and you can insert that title in your content or style by adding a <?SPINE_Title?> tag. Most tags are mapped to a SPINE Plugin and might require some parameters. Check the Plugin documentation to learn more about this.
Q: These tags look a lot like PHP tags. Are you using PHP?
A: The reason why the tags look like PHP tags is a legacy issue. The original SPINE concept was based on a CMS that was built in PHP in the late 1990s. To preserve compatibility, the tag formatting remained unchanged.
Q: So what if I already have a predesigned page. Can I create a content out of it?
A: You have two options. First, you can just keep the file and copy it in the defined location. SPINE can mix virtual and actual files without problems. If you wish to use some of the SPINE features (such as a page counter), you should create a content. But you can keep the existing page layout completly. Create a new content page, copy the existing page layout HTML into the content body field and set the content style to 'blank'. The blank style is an empty style.
Q: I always need a style in a content?
A: Yes. The style body is merged with the content body to generate the actual page. There is an empty style (called 'blank') that can be used if you want to store your entire page layout in the content.
Q: If I can keep my entire layout in the content, why would I use styles?
A: Styles allow you to define a page layout once and apply it to multiple contents. You can easily update your page style without having to change all the contents that are applied to it.
Q: So what should I store in the style and what should I store in the content?
A: The style typically contains your page layout. It's the part of your page that is the same for every content. For simple sites, you use a single style and map it to all your contents. Nothing stops you from using a different style for each content.
Q: Where exactly is the content inserted in the style?
A: SPINE looks for a specific tag in the style that indicates where to insert the content. Each content that has this style defined, will be inserted into the style on the place of the marker.
Q: I see that the content and the style have several extra fields in the administration. What are they all about?
A: Each of those fields is either used for page generation or can be used as a tag. For instance, the permissions are used for access control. The Title attribute is mapped to the <?SPINE_Title?> tag.
Q: What if I don't want to create a HTML file but a CSS file. Can I store it in SPINE too?
A: Yes. Create a content with the CSS extension (e.g style.css) and copy your CSS data into the content body. Set the style to 'blank' (unless you have a style somewhere that has some predefined CSS that you want merged with the content). Also set the correct content type. By default contents are set to content type 'text/html'. For CSS files, you need 'text/css'.
Q: What are these content types?
A: When a webserver serves data to a browser (e.g Internet Explorer), the browser needs to know how to handle the data. This is usually done by specifying what kind of data is sent. Normally, the webserver sends a header along with the data. The header defines the data type (e.g text/html for HTML files, text/plain for text files, etc). Normally this happens transparently. Your webserver usually guesses what data is sent. SPINE does not guess. You have to specify what data type you're sending. If you leave the content type field empty, SPINE assumes you're sending 'text/html' (aka HTML) data.
Q: So what else can SPINE display?
Q: How come I can't access certain pages but when I log in into the administration section, they are clearly there and I can edit them?
A: There are a number of possibilities but the most common reason why this happens is that you are not logged in when you try to load the pages. Try logging in (without going to the administration section) and then loading the pages.
Q: How come certain pages don't show up in the search results but when I log in into the administration section, they are clearly there and I can edit them?
A: See the previous question. The search engine will only return pages to which you have access.
Q: When I search for a specific page with the search engine, the page is not in the results, although I have access to it.
A: The search engine uses search keywords and does not search on body contents. Define the keywords in the content administration.
Q: The search engine is very limited. How come this does not support the features you normally would expect from a search engine.
A: Because that's normally part of the normal functionality of a content management system. The search engine is provided as a very basic tool. Extra plugins might offer the functionality you require.
Q: I want to keep notes on the content. Can I do this?
A: The content and style administration have comment fields. This information is purely for administrative purposes. You can use it to add notes on a current pages, keep a changes log or add copyright information.
Q: I have a number of CGI scripts I want to use on my page. I wish to include the required forms in a content. Can I do this?
A: Ofcourse. For a CGI script, a content is just like a normal HTML file. You can do whatever you want in it.
Q: Does SPINE support *FEATURE*?
A: SPINE currently focusses on what Content Management Systems are all about. There are plugins included that provide some of the basic requirements of website creating. External plugins might support the features you need.
Q: What are navigation bars all about?
A: Navigation bars are groups of links (sometimes buttons). The Administration backend has a navigation bar section where you can manage navigation bars.
Q: So can I mix images with plain links in a navigation bar?
A: Yes. If you don't define an image link, the label is used as a link.
Q: So what about adding plain text in a navigation bar?
A: If you don't specify a link, the label appears as plain text.
Q; What if I want to open the link in a different window or frame?
A: Each button on the navigation bar has extra preferences. Click on the Preferences icon on the right side, next to the delete button. The Preferences pane has a field to define the target frame or window.
Q: What if I want to define a specific CSS class to the button?
A: See above. The Preferences pane has a field to define a CSS class for the button.