phpMyFAQ is a multilingual, completely database-driven FAQ-system. It supports various databases to store all data, PHP 4.1.0 (or higher) is needed in order to access this data. phpMyFAQ also offers a multi-language Content Management-System with a WYSIWYG editor and an Image Manager, flexible multi-user support with LDAP support, a news-system, user-tracking, language modules, enhanced automatic content negotiation, templates, extensive XML-support, PDF-support, a backup-system, a dynamic sitempa and an easy to use installation script.
This documentation should help you with installing and administrating phpMyFAQ.
phpMyFAQ is published unter the Mozilla Public License Version 1.1 (MPL). This license guarantees you the free usage of phpMyFAQ, access to the sourcecode and the right to modify and distribute phpMyFAQ.
The only restrictions apply to the copyright, which remains at all times at Thorsten Rinne. Any modified versions of phpMyFAQ will also fall under the terms of MPL. Any other program, that may only be accessing certain functions of phpMyFAQ is not affected by these restrictions and may be distributed under any type of license.
A commercial usage or commercially distribution of phpMyFAQ, e.g. on CD-ROMs, is allowed, as long as the conditions mentioned above are met.
We decided to use MPL as the licensing model for phpMyFAQ because we feel that it is a good compromise between the protection of the openness and free distribution on the one hand and the interaction with other software regardless of its licensing model. When compared to other licensing models its text is short and easily comprehensible, even for newcomers.
This documentation is licensed under a Creative Commons License.
If you should run into any problems using phpMyFAQ check out our support forums at forum.phpmyfaq.de. There is no support for free by phone or email, please refrain from calling or mailing us.
The phpMyFAQ team offers the following paid services:
If you're interested, just take a look at our support page.
© 2001 - 2005 by Thorsten Rinne and phpMyFAQ Team under the Mozilla Public License. All rights reserved.
If you find phpMyFAQ useful and want to express your appreciation, have a look at my amazon.de Wishlist. I also accept online donations through PayPal. Please use the button below to make a donation online:
2.a. Requirements for phpMyFAQ
phpMyFAQ addresses a database system via PHP. In order to install it you will need a webserver that meets the following requirements:
You can only run phpMyFAQ successfully, when the PHP directive safe_mode is set to off, further constraints affect the directives open_basedir and disable_functions, which can be set in the central php.ini or the httpd.conf respectively.
In case PHP runs as module of the Apache, you will have to be able to do a chown on the files before installation. The files and directories must be owned by the Apache user.
You can determine which versions your webserver is running by creating a file called info.php with the following content:
<?php phpinfo(); ?>
Upload this file to your webspace and open it using your browser. The installation-script checks which version of PHP is installed on your server. Should you not meet the requirements, you cannot start the installation process.
In case you only have PHP3 or PHP 4.0.x installed you cannot use phpMyFAQ.
phpMyFAQ uses a WYSIWYG online editor. It uses a non-standard feature based on JavaScript implemented in Mozilla Firefox 0.7+ (any platform), Mozilla 1.3+ (any platform) and Internet Explorer 5.5+ for Windows, therefore the editor will only work in one of these browsers. You have to enable JavaScript. Safari and Konquerer aren't supported by this time but future versions should work.
Please unzip the downloaded archive on your harddisk.
You can modify the layout of phpMyFAQ using templates. A description of how this is done can be found below. Copy all unzipped files to your webserver in a directory using FTP. A good choice would be the directory faq/.
Important:
Writing permission for your script is needed in this directory to be able to configure the files data.php and config.php during installation. This is the case if you're running PHP as CGI or as mod_php with disabled safe-mode. The installation script will stop when your webserver isn't configured as needed.
It might help to set chmod 777 to the whole phpMyFAQ directory to avoid problems during the installation. If you're running a very restrictive mod_php installation you should keep the chmod 777 for the following files and directories even after the succesful installation:
Open your browser and type in the following URL:
http://www.example.com/faq/install/installer.php
Substitute www.example.com with your actual domain name. When the site is loaded enter the address of your database server (e.g. db.provider.com), your database username and password as well as the database name. The datebase must be availible before running the installation script. You can leave the prefix-field empty. If you are planning on using multiple FAQs in one database you will have to use a tableprefix, though (i.e. sport for a sports-FAQ, weather for a weather-FAQ, etc.). Please note that only letters and an underline: "_" can be used as the prefix.
If your PHP was compiled with the LDAP extension you can add your LDAP information, too. You have to insert your LDAP informations, too.
When using multiple FAQs you need to install them independently into different directories (e.g. faq1/, faq2/. faq3/ etc.). In addition you can enter your language, default here is English. Furthermore you should register your name, your email address and - very importantly - your password. You must enter the password twice and it have to be at least six places long. Then click the button "install" to initialize the tables in your database.
You can enter the public area of your FAQ by entering
http://www.example.com/faq/index.php
into your browser's address field. Your FAQ will be empty and presented in the the standard layout.
To configure phpMyFAQ point your browser to
http://www.example.com/faq/admin/index.php
Use the username admin and your selected password for your first login into the admin section.
2.e. Notes regarding the search-function
The boolean fulltext-search will only work with MySQL and if there are some entries in the database (5 or more). The term you are looking for should also not be in more than 50% of all your entries, or it will automatically be excluded from search. This is not a bug, but rather a feature of MySQL. Please remember that you need MySQL 4.1 to use the boolean fulltext search for languages like Arabic, Chinese, Hebrew, Korean or Japanese.
2.f. Automatic content negotiation
To set the default language in your browser you have to set a variable that gets passed to the web server. How this is done depends on the browser you are using.
Edit -> Preferences -> Navigator -> Languages
System preferences -> International -> Language
File -> Preferences -> LanguagesLinux/*BSD versions 5.x and 6.x:
File -> Preferences -> Document -> Languages
Tools or View or Extras -> Internet Options -> (General) LanguagesMacOS:
Edit -> Preferences -> Web Browser -> Language/Fonts
If you're able to edit the php.ini file, please check that the variable file_upload = On is set; otherwise the file upload will not work for the attachments.
2.h. Enabling mod_rewrite support
Apache Webserver
If you want to enable the search engine optimization you have to rename the file _.htaccess to .htaccess in the root directory where your FAQ is located. Then you have to activate the mod_rewrite support in the admin backend in the configuration page.
IIS Webserver
If you want to enable the search engine optimization you have to rename the file _httpd.ini to httpd.ini in the root directory where your FAQ is located. Then you have to activate the mod_rewrite support in the admin backend in the configuration page.
If you're entered the correct LDAP information during the installation you have to enable the LDAP support in the configuration in the admin backend. After this action phpMyFAQ reads the full username and email address from LDAP and fills this information automatically into the input forms in the public frontend.
Not every (X)HTML tag is supported by the PDF export. Currently we're supporting the following tags in the PDFs:
Starting with phpMyFAQ 1.5.4 the system provides a search plugin for Mozilla Firefox. This plugin can be created in the admin section and every user in the frontend can install it. With an installed search plugin you can search through the phpMyFAQ installation with the search box in upper right corner of Mozilla Firefox. For further informations about Mozilla Firefox, please visit the homepage of the Mozilla Foundation.
Upgrading to phpMyFAQ 1.5.x is possible from the following versions:
If you're running an older version of phpMyFAQ we recommend a new and fresh install.
3.a. Upgrading from phpMyFAQ 1.3.x
Upgrading from 1.3.x to 1.5.x is a major upgrade. Please make a full backup before you run the upgrade! Nevertheless the update from phpMyFAQ 1.3.x to the current release is fairly simple. First you have to delete all files except:
Copy the new files to your webspace and open the following URL in your browser:
http://www.example.com/faq/install/update.php
Choose your currently installed phpMyFAQ version and click the button of the update script, your version will automatically be updated. It is possible that your attached images or documents are gone. You have to reinsert them in the new Image Manager. Additionally you have to reorder your categories.
After that you have to convert the BBCode from phpMyFAQ 1.3.x into XHTML code because phpMyFAQ 1.5.0 doesn't support BBCode anymore.. This will be done by a convert script. Open the following URL in your browser:
http://www.example.com/faq/install/bbcode2xhtml.php
Maybe this update will work some seconds due to the fact that in all entries the BBCode have to converted into XHTML.
Note: You cannot update from MySQL to another database.
3.b. Upgrading from phpMyFAQ 1.4.x
Updating from phpMyFAQ 1.4.x is fairly simple. Via FTP copy all new files from the update zip file except:
Open the following URL in your browser:
http://www.example.com/faq/install/update.php
Choose your installed phpMyFAQ version and click the button of the update script, your version will automatically be updated.
Note: You cannot update from MySQL to another database. You have to add the RSS links from the XHTML header into your 1.4.x based templates.
3.c. Modifying templates for phpMyFAQ 1.5.x
The 1.3.x and 1.4.x templates are not compatible with phpMyFAQ 1.5.x, so please take the default XHTML templates from the package. If you need help to integrate phpMyFAQ into your website feel free to contact us.
Updating phpMyFAQ 1.5.x is fairly simple. Via FTP copy all new files from the update zip file except:
Open the following URL in your browser:
http://www.example.com/faq/install/update.php
Choose your installed phpMyFAQ version and click the button of the update script, your version will automatically be updated.
If you update from a version prior to phpMyFAQ 1.5.4 you have to add the following string into the file template/search.tpl:
{msgFirefoxPluginTitle}
If the Firefox search plugin is created, the installation link to the plugin will appear automatically on the search page.
Prerequisites:
If you would like to migrate your existing data into your phpMyFAQ database we recommend the following steps:
id lang active keywords thema content author email comment datum
In case you do not have any data already in the phpMyFAQ database your "id" field counts from 1 otherwise look at your current xx_faqdata to find out the highest "id" number to start counting from. The field "lang" contains the language you prefer. In my case you´ll find "de" becuase my preferred language is German. Set "active" to "yes" (without qoutation marks of course) otherwise the data won´t display later. You can leave out "keywords" for now but remember that you´ll need them in case you want to find your FAQs by keywords. "thema" describes the FAQ topic or in other words the question. "content" contains the answer to the frequently asked question. "author" and "email" shold be seld-explanatory. "comment" is just a value and can be "y" or "n". I´d prefer "n" to disable users from commenting but this is up to you. You should be careful with "datum" as this value strongly depends on the format. An example would look like this: 20050401090000 in other words: 4digits year (2005), 2 digits month (04), 2 digits day (01), 2 digits hour (09), 2 digits minutes (00) and 2 digits seconds (00). Your table could look like this now:
id lang active keywords thema content author email comment datum 1 de yes FAQ Is there any better solution than phpMyFAQ? No! John Doe john@doe.com n 20050401090101
Be aware that the fields containing numbers should default to "number" with 0 decimals otherwise phpMyAdmin could do wrong. Now you are ready to export to csv. Do yourself a favour and avoid any spaces in the filename, UNIXes could have trouble to read the filename otherwise.
That´s it. Should you have any trouble it is a good time to restore your data from the backup you saved earlier. Then edit the imported records and reassign the record to the categories.
The administration of phpMyFAQ is completely browser-based. The admin area can be found under this URL:
http://www.example.com/faq/admin/index.php
If you have lost your password, there you can reset it. A new random password will be generated and sent to you via e-mail. Please change it after your successful login with the generated password.
After entering your username and password you can log into the system. On the startpage you can see the admin menu on the left, some statistics about visits, entries and comments on the right. At the bottom of the main admin page you'll see a button for version information. If you click on that button your version of phpMyFAQ will check the latest version number from our website www.phpmyfaq.de. We do not log anything in this process!
The menu contains the following sections:
phpMyFAQ offers a flexible management of privileges (or rights) for different users in the admin area. It is possible to assign different priviledges to real people (represented by the term users). Those priviledges are very detailed and specific, so that you could allow a certain user to edit but not to delete an entry. It is very important to contemplate which user shall get which priviledges. You could edit an entry by completely deleting all content, which would be equivalent to deleting the whole entry. The number of possible users is not limited by phpMyFAQ.
In the main screen of the user administration you'll see an overview of all active user profiles, whereas a combination of "1" and "0" represents the priviledges of a user. A "1" symbolizes that a user has this priviledge, a "0" shows that a user cannot perform a certain action. The order is essentially the same as the listing of the "Rights" when creating or editing a user.
Keep in mind that new users have no priviledges at all, you will have to assign them by editing the user's profile. The admin user cannot be deleted, nor can the name be changed.
phpMyFAQ lets you create different categories and nested sub-categories for your FAQ. You can also re-arrange your categories in a different order. It is possible to use varius languages per category, too. For accessibility reasons you should add a small description for every category.
You can create entries directly in the admin area. Created entries are NOT published by default. The meaning of the fields is as follows:
You can edit and delete all records as well.
phpMyFAQ offers you the ability to post news on the starting page of your FAQ. In the administration area you can create new items, edit existing news or delete them.
phpMyFAQ lets visitors contribute to the FAQ by asking questions. Every visitor is able to view these open questions in the public area, and may give an answer. If you wish to get rid of open questions you can do so using this section. Alternatively you can take over a question and answer it yourself and hereby add it to the FAQ.
Below every entry visitors have the chance to rate the overall quality of an article by giving ratings from 1 to 5 (whereas 1 is the worst, 5 the best rating). In the statistics the average rating and number of votes becomes visible for every rated entry. To give you a quick overview entries with an average rating of 2 or worse are displayed in red, an average above 4 results in a green number.
phpMyFAQ can save the login information to the admin area as a cookie on your computer. Although this feature may be very comfortable it is a potential security hole. Only use cookies if you are the only person using the computer.
This functions lets you keep track of your visitors. Every visitor is assigned an id when coming to your starting page, that identifies him during his whole visit. Using the information gathered here you could reconstruct the way visitors use your FAQ and make neccessary adjustments to your categories, content or keywords. There is also a search function that you can use to look for a certain IP, the number of minimum actions or the date of a visit.
The adminlog allows you to track any actions taken by users in the admin area of phpMyFAQ. If you feel you have an intruder in the system you can find out for sure by checking the admin log.
This section lets you change your password. It is possible to deny this function for a certain user, which is very reasonable for group accounts. In order to change the password you need to have "Change Password" enabled for this user.
Here you can edit the general settings of phpMyFAQ. Should you want to enter multiple email addresses in the configuration separate them by a comma (",").
Using the backup function it is possible to create a copy of the database to a single file. This makes it possible to restore the FAQ after a possible "crash" or to move the FAQ from one server to another. It is recommended to make regular backups of your FAQ.
You can export your contents of your FAQ in four formats:
You can enter the title and a description for your unique Firefox search plugin for your version of phpMyFAQ. If you want to change the title or the description just re-create the plugin.
If you want an own favicon for the Firefox search box you have to change the PNG image file called pmfsearch.png in the folder images/. If you don't change it the phpMyFAQ logo will be used.
Clicking on Logout will end the current session. It is recommended to logout before closing the browser to prevent exploits.
In phpMyFAQ 1.5.0 code and layout are almost completely seperated. The layout is based on several templates, that you can modify to suit your own needs. The most important files for phpMyFAQ's layout can be found in the directory template/. All original templates are XHTML 1.0 valid and we don't use tables for layout reasons.
Note: You can change the layout of the admin area using the CSS file admin.css.
5.a. The file template/index.tpl
The default layout of phpMyFAQ is saved in the index.tpl file. This is a normal HTML-file including some variables in curly brackets, serving as placeholders for content.
Example:
<span class="useronline">{userOnline}</span>
The template-parser of the FAQ converts the placeholder {userOnline} to the actual number of visitors online.
You can change the template as you wish, but you may want to keep the original template in case something goes wrong. Theoretically you can use any editor for changing the templates, test using Dreamweaver were successful. Modifying the files with Microsoft Frontpage, Adobe GoLive or NetObjects Fusion may mess up the template, since they alter the source-code.
5.b. The file template/style.css
All formattings such as fonts and the like can be modified in the CSS-file style.css. The colors are defined in the file colors.css. More info can be found at the official W3C website.
You need an other template design or more XHTML/CSS features? Then write us an email and we can talk about it.
Thank you for using phpMyFAQ! :-)
Author: Thorsten Rinne
Co-Authors: Stephan Hochhaus, Markus Gläser
Last Change: 2005-11-15
© 2001-2005 phpMyFAQ Team
This documentation is licensed under a Creative Commons License.