News Block
From GeeklogWiki
Revision as of 13:16, 7 May 2009 by Dirk (talk | contribs) (merged all the separate pages into one page)
Contents
Introduction
The Headline News block is a Geeklog phpblock for displaying links to featured news stories made available from ANY RDF/RSS compatible content feed. Included in the source code is a list of many popular RDF/RSS feeds. These feeds are available for public use on Moreover: http://w.moreover.com/categories/category_list_xml.html.
= Features
Headline News block features are as follows:
- Displays links to stories for RDF/RSS compatible news feeds. The block utilizes the same code base as the standard Geeklog Portal block.
- Consists of four views: default view, detailed view, category view, and administration view:
- Default view is the main phpblock view (home page block). Registered users can customize the news provider. Anonymous users will receive the default provider set by the news administrator.
- Detailed view is a secondary view where users can view specific feeds before setting their default provider.
- Category view is a secondary view where users can view specific feeds sorted by category.
- Administration view is where a user configures his/her default news feed and where the site news admin sets the default news feed. The news admin can also add, update, or delete RDF/RSS feeds.
- Has built in MySQL caching.
- Has a built in block timer for measuring the execution time of the block.
List of files with descriptions
FILE: | DESCRIPTION: |
---|---|
/path/to/geeklog/public_html/news/display_news.php | Core phpblock. |
/path/to/geeklog/public_html/news/news_details.php | View specific feeds before setting default provider. |
/path/to/geeklog/public_html/news/top_news.php | Top news feeds. |
/path/to/geeklog/public_html/news/admin.php | News administration page. |
Instructions - New install
- Extract the code to /public_html.
A new directory named "news" will be created for you. - Run the SQL script: news-sql.sql
The script will create one new table named gl_newsblock and make updates to gl_userprefs and gl_groups tables. - Add the following to the /path/to/geeklog/system/lib-database.php
--- CODE BEGINS ---
$_TABLES['newsblock'] = $_DB_table_prefix . 'newsblock';
--- CODE ENDS --- - Add the phpblock: news.phpblock
- The first step is to add the contents of news.phpblock to lib-custom.php.
- The second step is to simply create the phpblock and reference the phpblock_getnews function.
- Set the default news provider for anonymous or guest users:
- First add your admin user to the "News Admin" group. Do this via the Geeklog user administration.
- Second, login as the admin user and click the "Edit" link on the news block. You will be presented with options for setting the global default news provider.
- Select the appropriate links to set the defaults.
Notes
- If the block display looks off (bad alignment, incorrect content, ect). Delete the news_cache and set news_cache_expire = 1 for the suspect user (uid 1 = anonymous) in gl_userprefs. This will re-paint the block with updated content.
- The block also has a built in timer. To enable the timer, uncomment the following lines in lib-custom.php:
- //$_NEWS_TIMER = new timerobject();
- //$_NEWS_TIMER->startTimer();
- AND uncomment the lines in display_news.php
- //$boxtitle.= "<small><br>Created this block in <b>";
- //$boxtitle.= $_NEWS_TIMER->stopTimer();
- //$boxtitle.= "</b> seconds.</small>";
- You can adjust the cache values by editing the display_news.php file. By default, cache is stored for 30 minutes. To change the value, edit the following lines of code and replace 30 with your preference:
- if ($age_minutes > 30) // if cache is more than 30 minutes old
- if ($user_age > 30) // if cache is more than 30 minutes old
- You will need to do this in two places in the display_news.php page, once for logged in users and once for anonymous users.
- You can turn on a message that displays the last update time of the cache. By default this message is turned off. To enable the message uncomment the following lines of code in display_news.php (lines below shown without comments):
- // ADD cache age message is more than 1 minute old -- off by default
- if ($user_age > 2)
- {
- $boxtitle.= "
Last updated $user_age minutes ago."; - }
- // ADD cache age message is more than 1 minute old -- off by default
- if ($age_minutes > 2)
- {
- $boxtitle.= "
Last updated $age_minutes minutes ago."; - }
Changes
- Fixed hard coded tables and added 'gl_' prefix to all code - 7/22/02
- Created a MySQL based cache and removed the existing file cache - 6/1/2002
- Changed the "expiree" events logic - 6/1/2002
- Fixed backslashes with the stripslashes() - thanks Dirk!
- Now uses RDF/RSS feeds...no more parsing ABCNews.com!
- Fixed caching bug
- Version 1.4 (July 23, 2002)
Fourth public production release
- Danny Ledger