<?php

// Pageframe class fuer neues CD
// Version 20101222/pp
// optionale utf8-Codierung
// passt Links zu Sprachversionen an

class Pageframe {
    var $url_hiddenpage;    // URL der hidden page in der CMS-Publikation
    var $nav_hiddenpage;    // Navigationstitel der hidden page in der CMS-Publikation
    var $referer;
    var $fontsize;
    var $content;

    function Pageframe( $url_hiddenpage, $nav_hiddenpage ) {
        $this->url_hiddenpage = $url_hiddenpage;
        $this->nav_hiddenpage = $nav_hiddenpage;
        $this->referer  = ( ( array_key_exists( "referer", $_REQUEST ) ) ? $_REQUEST["referer"] : "/" );
        $this->fontsize = ( ( array_key_exists( "fontsize", $_REQUEST ) ) ? $_REQUEST["fontsize"] : "normal" );

        // this is work in progress
        $requeststring = "?";
        $first  = TRUE;
        while ( list( $key, $value ) = each( $_REQUEST ) ) {
            $requeststring .= ( ( $first ) ? "" : "&" ).$key."=".$value;
            $first  = FALSE;
        }

        if ( $filehandle = fopen( $this->url_hiddenpage.$requeststring, "r" ) ) {
            $this->content = "";
            while ( !feof( $filehandle ) ) {
                $this->content .= fread( $filehandle, 8192 );
            }
            fclose( $filehandle );
        }

        // strip line feed
        $this->content = preg_replace( "/[\n\r]*/", "", $this->content );
    }



    // this will return everything before the content div
    function pageheader( $url_redirect, $nav_redirect, $cms_domain = "", $local_css = "" ) {
		global $language_versions;
		
        $pageheader = substr( $this->content, 0, strpos( $this->content, "<div class=\"content\">" ) );
			
			// strip print button
			$pageheader = preg_replace("/<a\s[^>]*id=\"printView\"[^\|]*\|\s/sU","",$pageheader);
			
			// utf8 encoding
			if ($GLOBALS['utf8_encoding']) $pageheader = str_replace( "charset=iso-8859-1", "charset=utf-8", $pageheader);
			
			if ( $cms_domain != "" ) {
			    // replace "/uzh/authoring/  by "http://www.uzh.ch/uzh/authoring/
			    $pageheader = str_replace( "\"/uzh/authoring/", "\"http://www.{$cms_domain}.uzh.ch/uzh/authoring/", $pageheader);
			
			    // replace "/{$cms_domain}/  by  "http://cms.uzh.ch/lenya/{$cms_domain}/
			    $pageheader = str_replace( "\"/{$cms_domain}/", "\"http://cms.uzh.ch/lenya/{$cms_domain}/", $pageheader);
            }
			
			
			
			// replace nav_hiddenpage by $nav_redirect
            $pageheader = str_replace( $this->nav_hiddenpage, $nav_redirect, $pageheader );
			
			// replace url_hiddenpage by $url_redirect
			$redirect = explode ("_", basename ($url_redirect, ".html")); 
			$docID_redirect = $redirect[0];
			
			$hiddenpage = explode ( "_", basename ($this->url_hiddenpage, ".html")); 
			$docID_hiddenpage = $hiddenpage[0];
			
			$pageheader = str_replace( "/{$docID_hiddenpage}", "/{$docID_redirect}", $pageheader );
			
			// strip unused navigation item
            $pageheader = str_replace( "<li><a href=\"{$url_redirect}\">{$nav_redirect}</a></li>", "", $pageheader );
            // case unizh:tabs="true"
			$pageheader = str_replace( "<a href=\"{$url_redirect}\">{$nav_redirect}</a><div class=\"linkseparator\">&#8226;</div>", "", $pageheader );
            
			
			// add local css
			if (strlen($local_css) > 4 ) $pageheader = str_replace("</head>", "<link href=\"{$local_css}\" rel=\"stylesheet\" type=\"text/css\" /></head>", $pageheader );
			
			// utf8 encoding
			if ($GLOBALS['utf8_encoding']) {
				$pageheader = utf8_encode ($pageheader);
				header('content-type: text/html; charset: utf-8');
			}
			echo $pageheader;
			
            
        }
		
		

        // this will return everything after the content div
        function pagefooter() {
            
            $pagefooter = substr( $this->content, strpos( $this->content, "<div class=\"footertopnav\">" ) );
            
			// utf8 encoding
            if ($GLOBALS['utf8_encoding']) $pagefooter = utf8_encode ($pagefooter);

            echo $pagefooter;
        }
    }

?>
