Skip to content
Snippets Groups Projects
blogs.php 3.29 KiB
Newer Older
  • Learn to ignore specific revisions
  • <?php
    	//include our blog functions
    	require_once("../lib/blog/blog.lib.php");
    	//make our command list
    	$request=explode('/',substr($_SERVER['PATH_INFO'], 1));
    
    //bodge - fix this
    array_shift($request);
    
    	//if we have something which might be a username start a blogs instance
    	if ($request[0] != "" and $request[0] != "list"){
    		$blogsingle = new blogs(array_shift($request));
    	} 
    	//otherwise, or if there was no such user, start a bloglist instance
    	if (!isset($blogsingle) || !isset($blogsingle->id)) {
    		$bloglist = new bloglist();
    		$request = array("list");
    	}
    
    
    	$blog = isset($bloglist) ? $bloglist : $blogsingle;
    
    	if (isset($blog->userName)) {
    		if ($session->username==$blog->userName) $smarty->assign("subselect", _("My Blog"));
    		else $smarty->assign("subselect", $blog->userName._("'s Blog"));
    	}
    	
    	ob_start();
    
    $smarty->assign("title", $blog->title);
    
    $smarty->assign("extra_scripts", array("<script type=\"text/javascript\" src=\"$baseurl/js/xmlhttp.js\"></script>"));
    
    	//check we have a valid username before offering a RSS feed
    	if($blog->userName) {
    		$smarty->assign("rss_url", "http://{$_SERVER['HTTP_HOST']}{$blog->httpPath}feed/rss/{$blog->userName}".(($request[0]=="category") ? "/category/".(int)$request[1]:""));
    		$smarty->assign("atom_url", "http://{$_SERVER['HTTP_HOST']}{$blog->httpPath}feed/atom/{$blog->userName}".(($request[0]=="category") ? "/category/".(int)$request[1]:""));
    //		echo "    <link rel=\"alternate\" type=\"application/rss+xml\" title=\"{$blog->title}\" href=\"$rss_url\"/>\n";
    //		echo "    <link rel=\"alternate\" type=\"application/atom+xml\" title=\"{$blog->title}\" href=\"$atom_url\"/>\n";
    	}
    
    ob_start();
        
    $blog->menu();
    
    		// if there was an error, print it here
    		if (isset($blogsingle) && !isset($blogsingle->id)) {
    			error_exc($blogsingle);
    		}
    	    	//run the appropriate command
    		switch (array_shift($request)) {
    			case "entry":
    				$blog->printEntryAndComments(array_shift($request));
    				break;
    			case "category":
    				$blog->printEntries(0,15,'and category = '.(int)array_shift($request)); 
    				break;
    			case "postcomment":
    				$blog->newComment((int)array_shift($request)) ; 
    				break;
    			case "Archive":
    				$blog->printArchive($request);
    				if ($session->username == $blog->userName) $smarty->assign("subselect", _("My Archive"));
    				else $smarty->assign("subselect", $blog->userName._("'s Archive"));
    				break;
    			case "list":
    				$blog->listBlogs();
    				break;
    			default:
    				$blog->printEntries(); 
    		}
    	     ?>
        <div id="bottompanel">
    	<p><? echo _("Validate"); ?> : <a href="http://validator.w3.org/check?uri=referer">XHTML</a> / <a href="http://jigsaw.w3.org/css-validator/check/referer/">CSS</a> / 
    <?
    	if($blog->userName) {
    		echo "<a href=\"http://feedvalidator.org/check.cgi?url=$rss_url\">RSS</a> / <a href=\"http://feedvalidator.org/check.cgi?url=$atom_url\">ATOM</a>";
    	}
    	else {
    		echo "RSS / ATOM";
    	}
    ?>
    	</p>
        </div>
    <?php
    $page = ob_get_contents();
    ob_end_clean();
    
    $smarty->assign("body", $page);
    $smarty->assign("extra_styles", "/css/blog.css");
    
    	//display debuing info as required
    	if($_SESSION[debug]){
    		echo "<div class=\"debug\"><h2>"._("Debug Info")."</h2><pre>\n";
    		echo "**"._("Session")."**\n";
    		print_r($_SESSION);
    		echo "**"._("Request")."**\n";
    		print_r($_REQUEST);
    		echo "**"._("Class")."**\n";
    		print_r($blog);
    		echo "</pre></div>";
    	}
    
    ?>