<?php /** jjsiterator.php * * \brief let the browser iterate over all pages by a chain of meta refresh elements * all request parameters will be reused on each iteration * * @author: Jens Schiffler * @license http://www.gnu.org/licenses/gpl.html GNU General Public License * @version 1.0 2006-03-16 * */ define('JJSITERATOR', '1.0'); ## $JJSIteratorUseSession boolean ## if true: cache pagelist in session data ## otherwise $WikiDir->ls() is called on each refresh SDV($JJSIteratorUseSession, true); if (isset($_REQUEST['jjsiterator'])) { global $WikiDir, $HTMLHeaderFmt, $JJSCMSPrivateSection, $JJSCMSPublicSection; $next = intval($_REQUEST['jjsiterator']); $pause = intval($_REQUEST['jjsiteratordelay']); $pat = $_REQUEST['jjsiteratorpat']; if (true == $JJSIteratorUseSession) { session_start(); } // try to get cached pagelist from session data if (true == $JJSIteratorUseSession && 0 != $next && isset($_SESSION['JJSIteratorPageList'])) { $PageList =& $_SESSION['JJSIteratorPageList']; } else { $PageList =& $WikiDir->ls($pat); if (true == $JJSIteratorUseSession) { $_SESSION['JJSIteratorPageList'] =& $PageList; } } if ($next < count($PageList)) { $pagename = $PageList[$next]; $next++; $refreshurl = FmtPageName('$PageUrl',$pagename); $refreshurl .= '&jjsiterator=' . $next ; // reuse current request parameters in the next call foreach($_REQUEST as $param => $value) { if ($param != 'jjsiterator' && $param != 'n' && session_name() != $param) { $refreshurl .= '&' . urlencode($param) . '=' . urlencode($value); } } $elem = '<!-- ' . $JJSCMSPrivateSection . ' --><meta http-equiv="Refresh" Content="'.$pause. '; URL=' . $refreshurl . '" /><!-- /' . $JJSCMSPrivateSection . ' -->'; $HTMLHeaderFmt['jjsrefresh'] = $elem; } else { if (true == $JJSIteratorUseSession) { $_SESSION['JJSIteratorPageList'] = NULL; unset($_SESSION['JJSIteratorPageList']); } } }