diff --git a/include/genpage.inc.php b/include/genpage.inc.php
index 398f440d..c489bfa5 100644
--- a/include/genpage.inc.php
+++ b/include/genpage.inc.php
@@ -1,189 +1,10 @@
false,
- 'uriargs' => implode('/', serendipity_getUriArguments($uri, true)),
- 'view' => $serendipity['view'],
- 'viewtype' => isset($serendipity['viewtype']) ? $serendipity['viewtype'] : ''
-);
-
-if ((empty($uri_addData['uriargs']) || trim($uri_addData['uriargs']) == $serendipity['indexFile']) && empty($serendipity['GET']['subpage'])) {
- $uri_addData['startpage'] = true;
-}
-
-$serendipity['plugindata']['smartyvars'] = $uri_addData; // Plugins can change this global variable
-serendipity_plugin_api::hook_event('genpage', $uri, $uri_addData);
-serendipity_smarty_init();
-if (count($serendipity['plugindata']['smartyvars']) > 0) {
- $serendipity['smarty']->assign($serendipity['plugindata']['smartyvars']);
-}
-
-$leftSidebarElements = serendipity_plugin_api::count_plugins('left');
-$rightSidebarElements = serendipity_plugin_api::count_plugins('right');
-$serendipity['smarty']->assignByRef('leftSidebarElements', $leftSidebarElements);
-$serendipity['smarty']->assignByRef('rightSidebarElements', $rightSidebarElements);
-
-switch ($serendipity['GET']['action']) {
- // User wants to read the diary
- case 'read':
- if (isset($serendipity['GET']['id'])) {
- $entry = array(serendipity_fetchEntry('id', $serendipity['GET']['id']));
- if (!is_array($entry) || count($entry) < 1 || !is_array($entry[0])) {
- unset($serendipity['GET']['id']);
- $entry = array(array());
- $serendipity['head_subtitle'] = '';
- $serendipity['smarty']->assign('head_subtitle', $serendipity['head_subtitle']);
- $serendipity['view'] = '404';
- $serendipity['content_message'] = URL_NOT_FOUND;
- serendipity_header('HTTP/1.0 404 Not found');
- serendipity_header('Status: 404 Not found');
- }
-
- serendipity_printEntries($entry, 1);
- } else {
- serendipity_printEntries(serendipity_fetchEntries($serendipity['range'] ?? null, true, $serendipity['fetchLimit']));
- }
- break;
-
- // User searches
- case 'search':
- $r = serendipity_searchEntries($serendipity['GET']['searchTerm']);
- if (strlen($serendipity['GET']['searchTerm']) <= 3) {
- $serendipity['smarty']->assign(
- array(
- 'content_message' => SEARCH_TOO_SHORT,
- 'searchresult_tooShort' => true
- )
- );
- break;
- }
-
- if (is_string($r) && $r !== true) {
- $serendipity['smarty']->assign(
- array(
- 'content_message' => sprintf(SEARCH_ERROR, $serendipity['dbPrefix'], $r),
- 'searchresult_error' => true
- )
- );
- break;
- } elseif ($r === true) {
- $serendipity['smarty']->assign(
- array(
- 'content_message' => sprintf(NO_ENTRIES_BLAHBLAH, '' . $serendipity['GET']['searchTerm'] . ''),
- 'searchresult_noEntries' => true
- )
- );
- break;
- }
-
- $serendipity['smarty']->assign(
- array(
- 'content_message' => sprintf(YOUR_SEARCH_RETURNED_BLAHBLAH, '' . $serendipity['GET']['searchTerm'] . '', '' . serendipity_getTotalEntries() . ''),
- 'searchresult_results' => true,
- 'searchresult_fullentry' => $serendipity['GET']['fullentry'] ?? null
- )
- );
-
- serendipity_printEntries($r);
- break;
-
- // Show the comments
- case 'comments':
- serendipity_printCommentsByAuthor();
- // use 'content_message' for pagination?
- break;
-
- // Show the archive
- case 'archives':
- $serendipity['head_subtitle'] = ARCHIVES;
- $serendipity['smarty']->assign('head_subtitle', $serendipity['head_subtitle']);
- serendipity_printArchives();
- break;
-
-
- case 'custom':
- if ($serendipity['smarty_custom_vars']) {
- $serendipity['smarty']->assign($serendipity['smarty_custom_vars']);
- }
- break;
-
- case 'empty':
- break;
-
- // Welcome screen or whatever
- default:
- serendipity_printEntries(serendipity_fetchEntries(null, true, $serendipity['fetchLimit']));
- break;
-}
-
-if ($serendipity['GET']['action'] != 'search' && !empty($serendipity['content_message'])) {
- $serendipity['smarty']->assign('content_message', $serendipity['content_message']);
-}
-
-
-if ($serendipity['smarty']->getTemplateVars('searchresult_tooShort') == null) {
- $serendipity['smarty']->assign(
- array(
- 'searchresult_tooShort' => false
- )
- );
-}
-if ($serendipity['smarty']->getTemplateVars('searchresult_error') == null) {
- $serendipity['smarty']->assign(
- array(
- 'searchresult_error' => false
- )
- );
-}
-if ($serendipity['smarty']->getTemplateVars('searchresult_noEntries') == null) {
- $serendipity['smarty']->assign(
- array(
- 'searchresult_noEntries' => false
- )
- );
-}
-if ($serendipity['smarty']->getTemplateVars('searchresult_results') == null) {
- $serendipity['smarty']->assign(
- array(
- 'searchresult_results' => false
- )
- );
-}
-if ($serendipity['smarty']->getTemplateVars('content_message') == null) {
- $serendipity['smarty']->assign(
- array(
- 'content_message' => false
- )
- );
-}
-if ($serendipity['smarty']->getTemplateVars('ARCHIVES') == null) {
- $serendipity['smarty']->assign(
- array(
- 'ARCHIVES' => ''
- )
- );
-}
-if ($serendipity['smarty']->getTemplateVars('ENTRIES') == null) {
- $serendipity['smarty']->assign(
- array(
- 'ENTRIES' => ''
- )
- );
-}
-
-serendipity_smarty_fetch('CONTENT', 'content.tpl');
-$serendipity['smarty']->assign('ENTRIES', '');
-
-
-/* vim: set sts=4 ts=4 expandtab : */
+$pg = new PageGenerator($serendipity);
+$pg->render();
diff --git a/lib/Serendipity/PageGenerator.php b/lib/Serendipity/PageGenerator.php
new file mode 100644
index 00000000..2cb8127f
--- /dev/null
+++ b/lib/Serendipity/PageGenerator.php
@@ -0,0 +1,198 @@
+serendipity =& $serendipity;
+ }
+
+ public function render()
+ {
+ // TODO: REMOVE ME!
+ $serendipity =& $this->serendipity;
+ include_once('serendipity_config.inc.php');
+ include_once(S9Y_INCLUDE_PATH . 'include/plugin_api.inc.php');
+
+ $uri = $_SERVER['REQUEST_URI']; // need to define this again here, as index.php (2.1) no longer includes this file
+ $uri_addData = array(
+ 'startpage' => false,
+ 'uriargs' => implode('/', serendipity_getUriArguments($uri, true)),
+ 'view' => $this->serendipity['view'],
+ 'viewtype' => isset($this->serendipity['viewtype']) ? $this->serendipity['viewtype'] : ''
+ );
+
+ if ((empty($uri_addData['uriargs']) || trim($uri_addData['uriargs']) == $this->serendipity['indexFile']) && empty($this->serendipity['GET']['subpage'])) {
+ $uri_addData['startpage'] = true;
+ }
+
+ $this->serendipity['plugindata']['smartyvars'] = $uri_addData; // Plugins can change this global variable
+ \serendipity_plugin_api::hook_event('genpage', $uri, $uri_addData);
+ serendipity_smarty_init();
+ if (count($this->serendipity['plugindata']['smartyvars']) > 0) {
+ $this->serendipity['smarty']->assign($this->serendipity['plugindata']['smartyvars']);
+ }
+
+ $leftSidebarElements = \serendipity_plugin_api::count_plugins('left');
+ $rightSidebarElements = \serendipity_plugin_api::count_plugins('right');
+ $this->serendipity['smarty']->assignByRef('leftSidebarElements', $leftSidebarElements);
+ $this->serendipity['smarty']->assignByRef('rightSidebarElements', $rightSidebarElements);
+
+ switch ($this->serendipity['GET']['action']) {
+ // User wants to read the diary
+ case 'read':
+ if (isset($this->serendipity['GET']['id'])) {
+ $entry = array(serendipity_fetchEntry('id', $this->serendipity['GET']['id']));
+ if (!is_array($entry) || count($entry) < 1 || !is_array($entry[0])) {
+ unset($this->serendipity['GET']['id']);
+ $entry = array(array());
+ $this->serendipity['head_subtitle'] = '';
+ $this->serendipity['smarty']->assign('head_subtitle', $this->serendipity['head_subtitle']);
+ $this->serendipity['view'] = '404';
+ $this->serendipity['content_message'] = URL_NOT_FOUND;
+ serendipity_header('HTTP/1.0 404 Not found');
+ serendipity_header('Status: 404 Not found');
+ }
+
+ serendipity_printEntries($entry, 1);
+ } else {
+ serendipity_printEntries(serendipity_fetchEntries($this->serendipity['range'] ?? null, true, $this->serendipity['fetchLimit']));
+ }
+ break;
+
+ // User searches
+ case 'search':
+ $r = serendipity_searchEntries($this->serendipity['GET']['searchTerm']);
+ if (strlen($this->serendipity['GET']['searchTerm']) <= 3) {
+ $this->serendipity['smarty']->assign(
+ array(
+ 'content_message' => SEARCH_TOO_SHORT,
+ 'searchresult_tooShort' => true
+ )
+ );
+ break;
+ }
+
+ if (is_string($r) && $r !== true) {
+ $this->serendipity['smarty']->assign(
+ array(
+ 'content_message' => sprintf(SEARCH_ERROR, $this->serendipity['dbPrefix'], $r),
+ 'searchresult_error' => true
+ )
+ );
+ break;
+ } elseif ($r === true) {
+ $this->serendipity['smarty']->assign(
+ array(
+ 'content_message' => sprintf(NO_ENTRIES_BLAHBLAH, '' . $this->serendipity['GET']['searchTerm'] . ''),
+ 'searchresult_noEntries' => true
+ )
+ );
+ break;
+ }
+
+ $this->serendipity['smarty']->assign(
+ array(
+ 'content_message' => sprintf(YOUR_SEARCH_RETURNED_BLAHBLAH, '' . $this->serendipity['GET']['searchTerm'] . '', '' . serendipity_getTotalEntries() . ''),
+ 'searchresult_results' => true,
+ 'searchresult_fullentry' => $this->serendipity['GET']['fullentry'] ?? null
+ )
+ );
+
+ serendipity_printEntries($r);
+ break;
+
+ // Show the comments
+ case 'comments':
+ serendipity_printCommentsByAuthor();
+ // use 'content_message' for pagination?
+ break;
+
+ // Show the archive
+ case 'archives':
+ $this->serendipity['head_subtitle'] = ARCHIVES;
+ $this->serendipity['smarty']->assign('head_subtitle', $this->serendipity['head_subtitle']);
+ serendipity_printArchives();
+ break;
+
+
+ case 'custom':
+ if ($this->serendipity['smarty_custom_vars']) {
+ $this->serendipity['smarty']->assign($this->serendipity['smarty_custom_vars']);
+ }
+ break;
+
+ case 'empty':
+ break;
+
+ // Welcome screen or whatever
+ default:
+ serendipity_printEntries(serendipity_fetchEntries(null, true, $this->serendipity['fetchLimit']));
+ break;
+ }
+
+ if ($this->serendipity['GET']['action'] != 'search' && !empty($this->serendipity['content_message'])) {
+ $this->serendipity['smarty']->assign('content_message', $this->serendipity['content_message']);
+ }
+
+ if ($this->serendipity['smarty']->getTemplateVars('searchresult_tooShort') == null) {
+ $this->serendipity['smarty']->assign(
+ array(
+ 'searchresult_tooShort' => false
+ )
+ );
+ }
+ if ($this->serendipity['smarty']->getTemplateVars('searchresult_error') == null) {
+ $this->serendipity['smarty']->assign(
+ array(
+ 'searchresult_error' => false
+ )
+ );
+ }
+ if ($this->serendipity['smarty']->getTemplateVars('searchresult_noEntries') == null) {
+ $this->serendipity['smarty']->assign(
+ array(
+ 'searchresult_noEntries' => false
+ )
+ );
+ }
+ if ($this->serendipity['smarty']->getTemplateVars('searchresult_results') == null) {
+ $this->serendipity['smarty']->assign(
+ array(
+ 'searchresult_results' => false
+ )
+ );
+ }
+ if ($this->serendipity['smarty']->getTemplateVars('content_message') == null) {
+ $this->serendipity['smarty']->assign(
+ array(
+ 'content_message' => false
+ )
+ );
+ }
+ if ($this->serendipity['smarty']->getTemplateVars('ARCHIVES') == null) {
+ $this->serendipity['smarty']->assign(
+ array(
+ 'ARCHIVES' => ''
+ )
+ );
+ }
+ if ($this->serendipity['smarty']->getTemplateVars('ENTRIES') == null) {
+ $this->serendipity['smarty']->assign(
+ array(
+ 'ENTRIES' => ''
+ )
+ );
+ }
+
+ serendipity_smarty_fetch('CONTENT', 'content.tpl');
+ $this->serendipity['smarty']->assign('ENTRIES', '');
+ }
+}
diff --git a/lib/Serendipity/Routing.php b/lib/Serendipity/Routing.php
index b72413bb..63f86a74 100644
--- a/lib/Serendipity/Routing.php
+++ b/lib/Serendipity/Routing.php
@@ -5,6 +5,8 @@
namespace Serendipity;
+use Serendipity\PageGenerator;
+
class Routing
{
protected $serendipity;
@@ -25,9 +27,8 @@ class Routing
$this->serendipity['uriArguments'][] = PATH_ARCHIVES;
}
- // TODO: REMOVE - BACKWARDS COMPATIBILITY
- $serendipity =& $this->serendipity;
- include(S9Y_INCLUDE_PATH . 'include/genpage.inc.php');
+ $pg = new PageGenerator($this->serendipity);
+ $pg->render();
}
public function serve404()
@@ -37,9 +38,8 @@ class Routing
$this->serendipity['content_message'] = URL_NOT_FOUND;
header('HTTP/1.0 404 Not found');
header('Status: 404 Not found');
- // TODO: REMOVE - BACKWARDS COMPATIBILITY
- $serendipity =& $this->serendipity;
- include(S9Y_INCLUDE_PATH . 'include/genpage.inc.php');
+ $pg = new PageGenerator($this->serendipity);
+ $pg->render();
}
/* Attempt to locate hidden variables within the URI */
@@ -135,9 +135,9 @@ class Routing
}
$this->serendipity['head_subtitle'] = $this->serendipity['blogTitle'];
$this->serendipity['GET']['action'] = 'comments';
- // TODO: REMOVE - BACKWARDS COMPATIBILITY
- $serendipity =& $this->serendipity;
- include(S9Y_INCLUDE_PATH . 'include/genpage.inc.php');
+
+ $pg = new PageGenerator($this->serendipity);
+ $pg->render();
}
public function serveJS($js_mode)
@@ -159,9 +159,8 @@ class Routing
// the fix below
$this->serendipity['GET']['action'] = 'empty';
- // TODO: REMOVE - BACKWARDS COMPATIBILITY
- $serendipity =& $this->serendipity;
- include(S9Y_INCLUDE_PATH . 'include/genpage.inc.php');
+ $pg = new PageGenerator($this->serendipity);
+ $pg->render();
// HOTFIX: The staticpage plugin spews out a 404 error in the genpage hook,
// because it assumes that all "normal" content pages could belong to it.
@@ -215,9 +214,9 @@ class Routing
$this->serendipity['GET']['action'] = 'search';
$this->serendipity['GET']['searchTerm'] = urldecode(serendipity_specialchars(strip_tags(implode(' ', $search))));
- // TODO: REMOVE - BACKWARDS COMPATIBILITY
- $serendipity =& $this->serendipity;
- include(S9Y_INCLUDE_PATH . 'include/genpage.inc.php');
+
+ $pg = new PageGenerator($this->serendipity);
+ $pg->render();
}
public function serveAuthorPage($matches)
@@ -246,9 +245,8 @@ class Routing
$this->serendipity['head_subtitle'] = $this->serendipity['blogTitle'];
}
- // TODO: REMOVE - BACKWARDS COMPATIBILITY
- $serendipity =& $this->serendipity;
- include(S9Y_INCLUDE_PATH . 'include/genpage.inc.php');
+ $pg = new PageGenerator($this->serendipity);
+ $pg->render();
}
public function serveCategory($matches)
@@ -292,9 +290,8 @@ class Routing
$this->serendipity['head_subtitle'] = $this->serendipity['blogTitle'];
}
- // TODO: REMOVE - BACKWARDS COMPATIBILITY
- $serendipity =& $this->serendipity;
- include(S9Y_INCLUDE_PATH . 'include/genpage.inc.php');
+ $pg = new PageGenerator($this->serendipity);
+ $pg->render();
}
public function serveArchive()
@@ -304,9 +301,8 @@ class Routing
$this->locateHiddenVariables($this->serendipity['uriArguments']);
- // TODO: REMOVE - BACKWARDS COMPATIBILITY
- $serendipity =& $this->serendipity;
- include(S9Y_INCLUDE_PATH . 'include/genpage.inc.php');
+ $pg = new PageGenerator($this->serendipity);
+ $pg->render();
}
public function gotoAdmin()
@@ -322,12 +318,13 @@ class Routing
public function servePlugin($matches) {
$this->serendipity['view'] = 'plugin';
- // TODO: REMOVE - BACKWARDS COMPATIBILITY
- $serendipity =& $this->serendipity;
if (strpos($matches[2], 'admin/') !== false) {
- include(S9Y_INCLUDE_PATH . 'include/genpage.inc.php');
+ $pg = new PageGenerator($this->serendipity);
+ $pg->render();
}
+ // TODO: REMOVE - BACKWARDS COMPATIBILITY
+ $serendipity =& $this->serendipity;
\serendipity_plugin_api::hook_event('external_plugin', $matches[2]);
}
@@ -418,9 +415,8 @@ class Routing
header('Status: 404 Not found');
}
- // TODO: REMOVE - BACKWARDS COMPATIBILITY
- $serendipity =& $this->serendipity;
- include(S9Y_INCLUDE_PATH . 'include/genpage.inc.php');
+ $pg = new PageGenerator($this->serendipity);
+ $pg->render();
}
public function serveArchives()
@@ -513,8 +509,7 @@ class Routing
$this->serendipity['head_subtitle'] .= sprintf(ENTRIES_FOR, $date);
}
- // TODO: REMOVE - BACKWARDS COMPATIBILITY
- $serendipity =& $this->serendipity;
- include(S9Y_INCLUDE_PATH . 'include/genpage.inc.php');
+ $pg = new PageGenerator($this->serendipity);
+ $pg->render();
}
}