From 8a8fc38a0b13c3be459ae2d46d4fea4a517369bd Mon Sep 17 00:00:00 2001 From: ogerlach Date: Tue, 3 Dec 2013 20:14:19 +0100 Subject: [PATCH] Updated backend for staticpage plugin: 1. Functionality remains mainly unchanged. Only preview display has been changed from subpage-based access to id-based access, because subpage can be ambigous. The new feature required changes to selected(). 2. A hook-in is provided the generate a overview of all static pages when not editing a static page. This makes the overview page more pleasent for users. The functionality of the header remains unchanged. Only a list of pages is generated below the header. The style of this list is taken from entry listing to create a consistent look and feel for users. --- .../UTF-8/lang_de.inc.php | 1 + serendipity_event_staticpage/lang_de.inc.php | 1 + serendipity_event_staticpage/lang_en.inc.php | 1 + .../serendipity_event_staticpage.php | 203 ++++++++++++++++-- 4 files changed, 193 insertions(+), 13 deletions(-) diff --git a/serendipity_event_staticpage/UTF-8/lang_de.inc.php b/serendipity_event_staticpage/UTF-8/lang_de.inc.php index 049f9781..38d71852 100644 --- a/serendipity_event_staticpage/UTF-8/lang_de.inc.php +++ b/serendipity_event_staticpage/UTF-8/lang_de.inc.php @@ -36,6 +36,7 @@ @define('PLUGIN_STATICPAGELIST_FRONTPAGE_DESC', 'Einen Link zur Startseite erstellen'); @define('PLUGIN_STATICPAGELIST_FRONTPAGE_LINKNAME', 'Startseite'); +@define('STATICPAGE_LIST_EXISTING_PAGES', 'Liste vorhandener statischer Seiten'); @define('STATICPAGE_HEADLINE', 'Kopfzeile'); @define('STATICPAGE_HEADLINE_BLAHBLAH', 'Zeigt eine Kopfzeile als Titel der statischen Seite an'); @define('STATICPAGE_TITLE', 'Statische Seiten'); diff --git a/serendipity_event_staticpage/lang_de.inc.php b/serendipity_event_staticpage/lang_de.inc.php index e7d43d53..5baf40cb 100644 --- a/serendipity_event_staticpage/lang_de.inc.php +++ b/serendipity_event_staticpage/lang_de.inc.php @@ -36,6 +36,7 @@ @define('PLUGIN_STATICPAGELIST_FRONTPAGE_DESC', 'Einen Link zur Startseite erstellen'); @define('PLUGIN_STATICPAGELIST_FRONTPAGE_LINKNAME', 'Startseite'); +@define('STATICPAGE_LIST_EXISTING_PAGES', 'Liste vorhandener statischer Seiten'); @define('STATICPAGE_HEADLINE', 'Kopfzeile'); @define('STATICPAGE_HEADLINE_BLAHBLAH', 'Zeigt eine Kopfzeile als Titel der statischen Seite an'); @define('STATICPAGE_TITLE', 'Statische Seiten'); diff --git a/serendipity_event_staticpage/lang_en.inc.php b/serendipity_event_staticpage/lang_en.inc.php index d2735711..43887916 100644 --- a/serendipity_event_staticpage/lang_en.inc.php +++ b/serendipity_event_staticpage/lang_en.inc.php @@ -9,6 +9,7 @@ // // serendipity_event_staticpage.php // +@define('STATICPAGE_LIST_EXISTING_PAGES', 'List of existing static pages'); @define('STATICPAGE_HEADLINE', 'Headline'); @define('STATICPAGE_HEADLINE_BLAHBLAH', 'Shows a headline above the content which is rendered as every other headline in your blog'); @define('STATICPAGE_TITLE', 'Static Pages'); diff --git a/serendipity_event_staticpage/serendipity_event_staticpage.php b/serendipity_event_staticpage/serendipity_event_staticpage.php index 51788a09..f027974f 100644 --- a/serendipity_event_staticpage/serendipity_event_staticpage.php +++ b/serendipity_event_staticpage/serendipity_event_staticpage.php @@ -1406,7 +1406,7 @@ class serendipity_event_staticpage extends serendipity_event static $cached = false; - if (empty($serendipity['GET']['subpage'])) { + if (empty($serendipity['GET']['subpage']) && empty($serendipity['GET']['staticid'])) { return false; } @@ -1423,11 +1423,21 @@ class serendipity_event_staticpage extends serendipity_event $sql_where .= ' AND publishstatus = 1 '; } - $q = "SELECT * - FROM {$serendipity['dbPrefix']}staticpages - WHERE (pagetitle = '" . serendipity_db_escape_string($serendipity['GET']['subpage']) . "' - OR permalink = '" . serendipity_db_escape_string($serendipity['GET']['subpage']) . "') $sql_where - LIMIT 1"; + if ( empty($serendipity['GET']['staticid']) ) + { + $q = "SELECT * + FROM {$serendipity['dbPrefix']}staticpages + WHERE (pagetitle = '" . serendipity_db_escape_string($serendipity['GET']['subpage']) . "' + OR permalink = '" . serendipity_db_escape_string($serendipity['GET']['subpage']) . "') $sql_where + LIMIT 1"; + } + else + { + $q = "SELECT * + FROM {$serendipity['dbPrefix']}staticpages + WHERE (id = '" . serendipity_db_escape_string($serendipity['GET']['staticid']) . "') $sql_where + LIMIT 1"; + } $page = serendipity_db_query($q, true, 'assoc'); if (is_array($page)) { $this->staticpage =& $page; @@ -2033,7 +2043,7 @@ class serendipity_event_staticpage extends serendipity_event echo ''; if (!empty($serendipity['POST']['staticPreview'])) { - $link = $serendipity['baseURL'] . $serendipity['indexFile'] . '?serendipity[subpage]=' . $this->staticpage['pagetitle'] . '&serendipity[staticPreview]=1'; + $link = $serendipity['baseURL'] . $serendipity['indexFile'] . '?serendipity[staticid]=' . $this->staticpage['id'] . '&serendipity[staticPreview]=1'; echo '