BLOG - An Open Source Diary/Journal/Blog Script
by Jonathan Beckett (jonbeckett@pluggedout.com)
and Kevin A. Sesock (kevin@sesock.com)
===============================================

Version 1.55b


Contents
========
 - Introduction
 - Internet Links for the Blog Project
 - Requirements
 - Installation Steps
 - How to Add/Edit/Remove Blog Entries
 - Development & Support 
 - About the Developer
 - Contact Information
 - Changelog
 

Introduction
============

When Jonathan Beckett first created blog, he created a powerful and
capable PHP/MySQL script that was very easy to work with. As he states
his work was designed as a "starting point", and as such,
his note is included below. Being as I wanted to improve my PHP/MySQL
skills, and also build in some very nice enhancements, I took it upon
myself to include some of the modifications that were available on the
development forums at the time.

Since then, my involvement with this has mushroomed, and I have included
a number of very powerful enhancements that makes Blog more of a turnkey
solution, and not just a learning platform as we see here, although it is
still that to a great degree.

I feel it necessary to note that I have not made these modification on
anyone else's behest other than my own personal drive to learn, and of course,
pure, unadultarated boredom.

If you have problems with this current version, I would recommend visiting the
development forums or e-mailing kevin@sesock.com. This script has been
/heavily/ modified since it's original inception, and Jonathan, who is working
on the next installment, may not have the time to figure out just exactly
what in the hell I have done to his hard work. With that being said, I will
be happy to support your issues as best as I possibly can (within reason).

I should note here, however, that there is no warranty for this software, and
you use it at your own risk. But that's just me playing the Cover Your Ass
game.

Good luck, and good blogging!

Kevin A. Sesock

==================

Blog is an open source Online Diary/Journal solution written
by Jonathan Beckett. It is intended as a "starting point" for you
to build on top of for your own solution - although you must retain
the comments at the top of each page and the accompanying files
(such as this one) detailing things like the project homepage
for the benefit of others.

If you are new to the world of web development, Blog has a development
discussion board (the URL is provided below) for users of the script
to request help and to swap tips with each other.

It is important that the blog script is not seen as a "solution". You
may not be able to just "plug it in and go", so should not complain if
you find your web host causes complications.

If nothing else, please use Blog to help you learn about PHP and MySQL.

Regards

Jonathan Beckett


Internet Links for the Blog Project
===================================

BLOG Project Discussion Forum (contains FAQ and Downloads)
 - http://www.pluggedout.com/forums/viewforum.php?f=5
 
BLOG Project Test Site (latest version)
 - http://blogtest.sesock.com
   UserID: test
   Password: test


Requirements
============
 - PHP 4.x
 - MySQL
 - Crontab Access (Optional)
 - File Permission Access (Optional)


Installation Steps
==================
  1. Place the unzipped files somewhere into your web root.
     (make the lib and images folders if necessary and copy their contents over).
     
  2. Change the config.php script to suit your settings.
     (make sure you set the username, password and database name to match
      the place you ran the SQL script).

  3. If you are upgrading from a previous version of blog, make sure you backup all
     of your data, including your Database schema, data, and all the files in your
     blog directory. Failure to do so could result in the irrevocable loss of data!
     You have been warned! Additionally, you'll need to re-add the data from config.php
     and html_user.php into the database, and update your options. Settings are now
     handled in the database, and no manual configuration of .php files is necessary.
      
  4. Browse to http://www.yourblogsite.com/install.php. This will start the
     installation script. Follow the prompts.
    
  5. While the installation script should take care of most of this, you might
     need shell access to your web server to change the modes
     on some files/folders. The ./images/upload folder will need to be world-writable,
     as will the rss.xml, song.txt, and links-update-cache.xml files. To set these,
     you'll need to issue the following commands at a command line interface
     (make sure you're in your blog folder first):
     chmod 777 images/upload
     chmod 777 rss.xml
     chmod 777 lib/song.txt
     chmod 777 lib/links-update-cache.xml
     Remember, this is only if the install/upgrade script is unable to set these.
     
  6. Feel free to upload an avatar image to the images/logo directory. This will
     be some recognizable "avatar" or picture that identifies you. It should be
     standard avatar size (79 x 79 pixels), and if you name the file avatar.gif,
     it will replace the question mark image and automatically be included. If
     you don't, you can always change the file location in the Options.
     
  7. To use the Winamp "Currently Listening to" section, you must have a plug-in
     for Winamp called the "Now Playing Plugin". You can get this plug-in free from
     the following web address:
     
     http://www.cc.jyu.fi/~ltnevala/nowplaying/NPSetup.exe
     
     Run the installer, click next a few times and start winamp, open preferences, 
     goto general, choose "Now playing plugin" and then Configure. Goto HTTP Post 
     and enable it, in the url box enter the url to the song.php e.g. 
     www.myserver.com/blog/lib/song.php. Then goto General Options and choose 
     Enable Plugin. That should be it.
     
  8. If you don't want any of the new stuff in your blog (The RSS link, the Winamp 
     stuff, etc.) just go into index.php and comment out what you don't need. The
     function names are pretty self-explanatory.
     
  9. If you want your links to show as updated when a fellow blogger posts
     something to their blog, similar to how blogrolling.com works, you'll
     need to add a crontab entry. Most webservers, especially those that use
     systems such as cPanel, make this easy. If not, you can always edit crontab
     via a Shell interface (SSH or Telnet). To do this, access your webserver
     via a Shell and enter the following commands:
     "crontab -e"
     A list of current cron jobs will show up. Don't worry about any of these.
     Go to the first empty line, and enter the following, then save:
     0,20,40 * * * * wget -q -r http://yourblogsite.com/update.php (where your
     blogsite name is in the url).
     This will check for updated blogs 3 times an hour. You can check more or
     less frequently, but if you choose to run this cron job more frequently,
     it actually won't check for updated links any more frequently, due to the
     way that weblogs.com works.
     When a friend's blog updates (if they use a common blog system or manually
     ping weblogs.com) then shortly thereafter you'll see that link bolded in
     your links panel. Please realize that this won't track updated links from
     sites that are not blogs, or who do not ping weblogs.com
     
  10. Finally, once you've set everything up, make sure all your settings are
      like you want them in the admin view. Add some categories, taglines, profile
      information, and links and start having fun.
     


How to Add/Edit/Remove Items
============================
Use the admin.php page - it will prompt for a login (using the
username and password you entered in at the start), and from there it
should be self explanatory.


Development & Support
=====================
If you want to help with Blog or want some support, feel free to
visit the Blog discussion forums at the following URL...
http://www.pluggedout.com/forums/viewforum.php?f=5


About The Developer
===================
The Blog script was written by Jonathan Beckett. In the daytime
he is a professional software and website developer, working in both
the Windows and Linux worlds. He's usually got time to reply to emails,
but he would encourage you to visit the BLOG forum if you are stuck.

The current incarnation was written by Kevin A. Sesock, with Jonathan's
core being the basis for the edits. In the daytime, he is a professional
computer technician, specializing in the field of Assistive Technology &
Accessibility for persons with disabilities. He dabbles in various
development environments as a hobby, and is preparing to venture into the
enterprise in software development by developing an Open Source PHP/ADOdb
website validation system (as soon as he takes a break from Blog for a
while). He checks his e-mail an insane amount of times every day.

Additionally, many others have contributed code and assistance to this
version of blog. If you require assistance, the forums are going to be
your best bet.


Contact Information
===================
 - Name     : Jonathan Beckett
 - Location : Marlow, Bucks, United Kingdom
 - E-Mail   : jonbeckett73@yahoo.co.uk
 - URL      : http://www.pluggedout.com/development/forums/
 
 - Name     : Kevin A. Sesock
 - Location : Oklahoma, United States
 - E-mail   : kevin@sesock.com
 - URL      : http://blog.sesock.com

Changelog
=========
The following items have been changed from version 1.55a to this
version, 1.55b. Note that this is a highly modified version,
using quite a bit of community written code, and is probably no longer
entirely supported by Jonathan Beckett, as many of these changes have
not been his. Instead, your best bet for support is the forums, as many
of these community members are regulars there.

Legend:
+ Feature Addition
- Bug Fix
& Modification

From 1.55b RC2 to 1.55b Stable

- Fixed XML image display (again)
- Fixed comments adding, deleting and editing (again)
- Fixed Category editing
- Fixed slashes in the Title and Headers
- A few more clean-up fixes to the install script
- Removed PHP Session ID from the URL. Sessions sent via cookies only (for security
  and link cleanliness).

From 1.55b RC1 to 1.55b RC2

- Fixed XML image display
- No more view count incrementing when logged in as admin
- Fixed RSS Feed, preventing problems with malformed xml (xml special entities)
- Cleaned up category listviews and add forms
- Fixed comment editing and removal
- Fixed install script (major fixes here)
- Fixed display in calendar of Draft views.
- Fixed calendar views with Drafts and Pre-Posts (not shown in Standard view)
- Updated links section now more reliable (using blogrolling, not weblogs.com)
- Fixed problem in instructions that would cause most web servers to overload
  with too many files (links updating)

History: From 1.55a to 1.55bRC1...

- Broken Comment Views in Admin view fixed
- Broken URL's in comments fixed
- Comment E-mail notification slashes fixed (again)
- Links in RSS.xml now actually directing to selected entry (again)
- Used better way to pick random Fortune Cookie (tagline)
- RSS now shows all text in description
- RSS now shows all entries
- Fixed calendar view
& Database.php went through major Spring cleaning
- Search, archive, and category views now working again (Oops. Uhhh, sorry? :-/)
& Avatar now an email link.
+ Pre-Posting capability of entries. (Kevin A. Sesock)
+ Drafts and Pre-Posts now identified in listview for admins. (Kevin A. Sesock)
+ Added ability to have a category without an image for sorting purposes. (Kevin A. Sesock)
+ Install/Upgrade Script (dirtydevil, Kevin A. Sesock)
& Time Zones (finally!) (Kevin A. Sesock)
& Expanded Command Center (Kevin A. Sesock)
+ Quote Modification panel (Kevin A. Sesock)
+ Comment IP Logging (Kevin A. Sesock)
+ Full-fledged database-based control panel (Kevin A. Sesock)
+ Links now stored in database (Kevin A. Sesock)
+ Profile information now stored in database (Kevin A. Sesock)
+ Recently Updated linked blogs (like blogrolling.com) (Mike Little, Kevin A. Sesock)

History: From 1.54 to 1.55a...

+ Added in categories with images and views (Kevin A. Sesock)
+ Added in "Draft" entries capability (Kevin A. Sesock)
+ Added Search functionality (Aerik, Kevin A. Sesock)
+ Added in Taglines or Random Quotes (Kevin A. Sesock)
+ Added in comment deletion and editing (Ryan Thian)
& Modified Admin login form to include link back to index.php
& Reorganized links into "Command Panel" for admins
- Fixed multiple Weblog ping issue
- Fixed image upload problem (again)
- Incorrect links in RSS fixed
- Fixed category and archive views to not show items if draft.
- Cleanup of Image Upload Script HTML
- Fixed slashes in comment notification emails

History: From 1.51b to 1.54...

+ Winamp "Now Playing" (SoulSniper)
+ Comment E-mail Notification (SoulSniper/Kevin Sesock)
+ RSS Generator (Jon Beckett/SoulSniper/Kevin Sesock (primarily Jon))
+ Ping weblogs.com by (Christian Schmidt/Kevin Sesock)
+ Smiley Generator/Integration (SoulSniper)
+ Code/Quote (SoulSniper)
+ Last X Entries cookie (SoulSniper)
+ Swear Filter (SoulSniper)
+ Image Uploader (Aerik)
+ Archive Section by SoulSniper/Craig_RT
+ Current Time by SoulSniper
+ Option for addcomments off (Craig_RT)
- Fixed problem with editing entries with "'" in the titles
& Showing last X entries instead of by month (Jon)
& Modifiable Date/Times (Jon/Craig_RT/Many others)
& Entries sorted by date, not blog id (Craig_RT)
& Calendar no longer navigates to months past available entries (Craig_RT)
- Fixed linebreak in comments issue
- Fixed & issue in admin blogview
& No longer increments view counter in admin mode
+ Copyright Line
+ Avatar section (SoulSniper)
- Fixed remove issue


Wishlist
========
The following are items we will be working on before we backport into 1.6
once Jon gets done with it (it's currently in Alpha revisions right now)

- Fix Winamp security issue (1.56)
& Tighten HTML (1.56)
+ Technorati Implementation (1.56)
+ Amazon.com Integration (1.56)

+ And many, many others