PHP Classes

File: index.php

Recommend this page to a friend!
  Classes of Anthony Rogers   RSS Read   index.php   Download  
File: index.php
Role: Example script
Content type: text/plain
Description: Example usage of RSSread
Class: RSS Read
Parse RSS feeds and output as HTML pages
Author: By
Last change: updated description
Date: 18 years ago
Size: 9,150 bytes
 

Contents

Class file image Download
<?php
/*--------------------------------------------------------------*\
 * Copyright (C) 2006-2007 Anthony K Rogers roganty@gmail.com *
 *--------------------------------------------------------------*
 * This file is part of RSSread. It gives an example of *
 * implementing RSSread using both methods *
 *--------------------------------------------------------------*
 * version 1.2 *
 * copyright 2006 *
\*--------------------------------------------------------------*/

 
require_once("rss_read.class.php");
?>
<html>
<head>
<title>rssRead Test Page</title>
<style type="text/css">
<!--
 div.form{ text-align: center; }
 div.line{ padding: 2px 0px 3px 0px; }
 div.line div{ display: inline;}
 div.line div textarea{ vertical-align: text-top; }
-->
</style>
<script type="text/javascript">
<!--
<?php
 
/* Javascript for the form */
?>
var exampleConfig = new Array();
//Roganty's RSS feed - the one codded in the script
exampleConfig[0] = new Array();
exampleConfig[0][0] = "http://roganty.jubiiblog.co.uk/syndication.php?action=article"; //rssFeed
exampleConfig[0][1] = 3; //numPosts
exampleConfig[0][2] = "s"; //whichOne
exampleConfig[0][3] = 3; //num[Sentences|Words|Chars]
exampleConfig[0][4] = false; //stripLinks
exampleConfig[0][5] = "_blank"; //postLinkTarget
exampleConfig[0][6] = "<b>[title]<\/b>\r\n<p>[post]\r\n<font class=\"LinkReadMore\">[[link,target=_blank]read more[/link]]<\/font><\/p>\r\n"; //outputFormat
exampleConfig[0][7] = "<hr width=\"65%\" />"; //joinOutputBy
//BBC UK News RSS feed
exampleConfig[1] = new Array();
exampleConfig[1][0] = "http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/uk/rss.xml"; //rssFeed
exampleConfig[1][1] = 5; //numPosts
exampleConfig[1][2] = "n"; //whichOne
exampleConfig[1][3] = -1; //num[Sentences|Words|Chars]
exampleConfig[1][4] = true; //stripLinks
exampleConfig[1][5] = "_blank"; //postLinkTarget
exampleConfig[1][6] = "<div class=\"rssfeed\">[link,target=_blank][title][/link]\r\n<br />[post]<\/div>\r\n"; //outputFormat
exampleConfig[1][7] = "<hr width=\"65%\" />"; //joinOutputBy

function populateForm(whichEg){
 var egNum = ( whichEg == "roganty" ) ? 0 : 1; //roganty or bbc
 //alert(whichEg +":"+ egNum);
 for( var i = 1; i <= 7; i++ ){
  //loop through the thingy adding the data to the appropriate form element
  var elementType = document.confForm.elements[i].type;
  var elementName = document.confForm.elements[i].name;
  //alert(document.confForm.elements[i].value);
  //alert(document.confForm.elements[i].type);
  if( elementType == "select-one" ){
   if( elementName == "whichone" ){
    switch( exampleConfig[egNum][2] ){
     case "s" : document.confForm.elements[i].options[0].selected = true; break;
     case "w" : document.confForm.elements[i].options[1].selected = true; break;
     case "c" : document.confForm.elements[i].options[2].selected = true; break;
     case "n" : document.confForm.elements[i].options[3].selected = true; break;
    }
   }else
   if( elementName == "striplinks" ){
    if( exampleConfig[egNum][4] ) document.confForm.elements[i].options[0].selected = true;
    else
    if(! exampleConfig[egNum][4] ) document.confForm.elements[i].options[1].selected = true;
   }
  }else
  if( elementType == "text" || elementType == "textarea" ){
   document.confForm.elements[i].value = exampleConfig[egNum][i - 1];
  }
 }
 //now we need to submit the form
 document.confForm.submit();
}

//-->
</script>
</head>
<body>
<?php
/* This is where we configure the output
 */

//Configure? true or false
$configure = ( isset($_POST["configure"]) ) ? $_POST["configure"]: false;
$arrForm = array(); //array used for the form values

//Call the class
$RSSread = new RSSread($configure);
/* If we didn't want the script to be configured we would type:
 * $RSSread = new RSSread(); -or-
 * $RSSread = new RSSread(false);
 * But if we did want to configure the script, type:
 * $RSSread = new RSSread(true);
 */

if( $configure ){
 
/* If true get the variables from the $_POST variable
  * This will be used for both setting the values in
  * the form and for configuring the script output
  */
 
$RSSconf = array(); //The array used to configure the output
 
$arrForm[0] = $_POST["rssfeed"];
 
$arrForm[1] = $_POST["numposts"];
 
$arrForm[2] = $_POST["whichone"];
 
$arrForm[3] = $_POST["numlength"];
 
$arrForm[4] = $_POST["striplinks"];
 
$arrForm[5] = $_POST["postlinktarget"];
 
$RSSconf["outputFormat"] = $_POST["outputformat"]; //script output variable
 
$arrForm[6] = htmlspecialchars(stripslashes($_POST["outputformat"]));
 
$RSSconf["joinOutputBy"] = $_POST["joinoutputby"]; //script output variable
 
$arrForm[7] = htmlspecialchars(stripslashes($_POST["joinoutputby"]));
}else
if(!
$configure ){
 
/* If false grab the variables from the sript
  * This is used in displaying the appropriate
  * values in the form
  */
 
$arrForm[0] = $RSSread->rssFeed;
 
$arrForm[1] = $RSSread->numPosts;
 
$arrForm[2] = $RSSread->whichOne;
 switch(
$arrForm[2] ){
  case
"s" : $arrForm[3] = $RSSread->numSentences; break;
  case
"w" : $arrForm[3] = $RSSread->numWords; break;
  case
"c" : $arrForm[3] = $RSSread->numChars; break;
  case
"n" : $arrForm[3] = -1; break;
 }
 
$arrForm[4] = ( $RSSread->stripLinks ) ? "y" : "n";
 
$arrForm[5] = $RSSread->postLinkTarget;
 
$arrForm[6] = htmlspecialchars(stripslashes($RSSread->outputFormat));
 
$arrForm[7] = htmlspecialchars(stripslashes($RSSread->joinOutputBy));
}


if(
$configure ){
 
//This is where we configure the script output
 
 
$RSSconf["rssFeed"] = $arrForm[0];
 
$RSSconf["numPosts"] = $arrForm[1];
 
$RSSconf["whichOne"] = $arrForm[2];
 
$RSSconf["postLinkTarget"] = $arrForm[5];
 
 
//which variable to change?
 
switch( $arrForm[2] ){
  case
"s" : $RSSconf["numSentences"] = $arrForm[3]; break;
  case
"w" : $RSSconf["numWords"] = $arrForm[3]; break;
  case
"c" : $RSSconf["numChars"] = $arrForm[3]; break;
 }
 
$RSSconf["stripLinks"] = ( $arrForm[4] == "y" ) ? true : false;
 
 
/* This is where we call the ScriptConfig function
  * passing it the array we have just built up
  * from the variables posted from the form
  */
 
$RSSread->ScriptConfig($RSSconf);
}

/* The rest of the page below is just HTML
 * code and PHP code setting the form values
 */

?>
<div id="main">
<div id="mainTitle" style="text-align: center"><h1>rssRead<?=" v". $RSSread->RSSreadVersion; ?> Test Page</h1></div>
<hr width="80%" />
<div id="configTitle" style="text-align: center"><b>rssRead Configuration</b></div>
<hr width="50%" />
<div class="form">
<form name="confForm" action="index.php" method="post">
<input type="hidden" name="configure" value="true" />
<div class="line" style="background-color: #cccccc">
<div>The RSS Feed URL:<input type="text" size="35" name="rssfeed" value="<?=$arrForm[0]; ?>" /></div>
<div>Number of posts to display:<input type="text" size="5" name="numposts" value="<?=$arrForm[1]; ?>" /></div>
</div><div class="line" style="background-color: #999999">
<div>How to shorten the posts:<select name="whichone">
<option value="s"<?=( $arrForm[2] == "s" ) ? " selected=\"true\"" : "";?>>By Sentences</option>
<option value="w"<?=( $arrForm[2] == "w" ) ? " selected=\"true\"" : "";?>>By Words</option>
<option value="c"<?=( $arrForm[2] == "c" ) ? " selected=\"true\"" : "";?>>By Characters</option>
<option value="n"<?=( $arrForm[2] == "n" ) ? " selected=\"true\"" : "";?>>No Shortening</option>
</select></div>
<div>Number of Sentences/Words/Characters to shorten to:<input type="text" size="5" name="numlength" value="<?=$arrForm[3]; ?>" /></div>
</div><div class="line" style="background-color: #cccccc">
<div>Remove links from RSS:<select name="striplinks">
<option value="y"<?=( $arrForm[4] == "y" ) ? " selected=\"true\"" : "";?>>Yes</option>
<option value="n"<?=( $arrForm[4] == "n" ) ? " selected=\"true\"" : "";?>>No</option>
</select></div>
<div>Target to open RSS post links in:<input type="text" size="25" name="postlinktarget" value="<?=$arrForm[5]; ?>" /></div>
</div><div class="line" style="background-color: #999999">
<div>The format to output the RSS posts in:<textarea cols="40" rows="3" name="outputformat"><?=$arrForm[6]; ?></textarea></div>
</div><div class="line" style="background-color: #cccccc">
<div>How to join the posts:<input type="text" size="30" name="joinoutputby" value="<?=$arrForm[7]; ?>" /></div>
</div>
<div><input type="submit" value="Submit" /><input type="reset" value="Reset" /></div>
<hr width="50%" />
<div>
<input type="button" value="Roganty's RSS Feed" onclick="populateForm('roganty')" />
<input type="button" value="BBC UK News RSS Feed" onclick="populateForm('bbc')" />
</div>
</form>
</div>
<hr width="80%" />
<div id="outputTitle" style="text-align: center"><b>rssRead Output</b></div>
<hr width="50%" />
<div id="rssFeed"><?php
/* This is where the magic happens!
 * we have now configured the output
 *
 * now we can print out the RSS feed
 */
print $RSSread->RSSoutput();

?></div>
<hr width="80%" />
</div>
</body>
</html>