From 7f1f4ebb93caaae4612965d0cc4559bf6e2b5e42 Mon Sep 17 00:00:00 2001 From: Michael Joseph Date: Fri, 9 May 2003 15:24:43 +0000 Subject: [PATCH] initial presentation files for dashboard news --- presentation/lookAndFeel/knowledgeTree/administration/news/editNewsBL.php | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ presentation/lookAndFeel/knowledgeTree/administration/news/manageNewsBL.php | 42 ++++++++++++++++++++++++++++++++++++++++++ presentation/lookAndFeel/knowledgeTree/administration/news/newsUI.inc | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 242 insertions(+), 0 deletions(-) create mode 100644 presentation/lookAndFeel/knowledgeTree/administration/news/editNewsBL.php create mode 100644 presentation/lookAndFeel/knowledgeTree/administration/news/manageNewsBL.php create mode 100644 presentation/lookAndFeel/knowledgeTree/administration/news/newsUI.inc diff --git a/presentation/lookAndFeel/knowledgeTree/administration/news/editNewsBL.php b/presentation/lookAndFeel/knowledgeTree/administration/news/editNewsBL.php new file mode 100644 index 0000000..f73927f --- /dev/null +++ b/presentation/lookAndFeel/knowledgeTree/administration/news/editNewsBL.php @@ -0,0 +1,76 @@ +fileSystemRoot/lib/dashboard/DashboardNews.inc"); +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternMainPage.inc"); +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc"); +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternTableSqlQuery.inc"); +require_once("$default->uiDirectory/administration/news/newsUI.inc"); + +/** + * $Id$ + * + * Business logic for editing a news item + * + * Licensed under the GNU GPL. For full terms see the file DOCS/COPYING. + * + * @version $Revision$ + * @author Michael Joseph , Jam Warehouse (Pty) Ltd, South Africa + * @package presentation.lookAndFeel.knowledgeTree.administration.news + */ + +if (checkSession()) { + global $default; + + // instantiate my content pattern + $oContent = new PatternCustom(); + + if (isset($fNewsID)) { + // we have an id, so instantiate the news object + $oDashboardNews = DashboardNews::get($fNewsID); + if ($fUpdate) { + // overwrite the news attributes and save + + // only overwrite synopsis, body and rank if they've different + if ($oDashboardNews->getSynopsis() <> $fSynopsis) { + $oDashboardNews->setSynopsis($fSynopsis); + } + if ($oDashboardNews->getBody() <> $fBody) { + $oDashboardNews->setBody($fBody); + } + if ($oDashboardNews->getRank() <> $fRank) { + $oDashboardNews->setRank($fRank); + } + // if we have a new image + // TODO: check that it is an image + if (strlen($_FILES['fImage']['name']) > 0) { + $oDashboardNews->setImageFile($_FILES['fImage']['tmp_name']); + } + + if ($oDashboardNews->update()) { + $default->log->info("editNewsBL.php successfully updated dashboard news id=$fNewsID"); + // redirect to view page + redirect("$default->rootUrl/control.php?action=viewNews"); + } else { + // update failed + $default->log->error("editNewsBL.php DB error updating dashboard news id=$fNewsID; ($fSynopsis, $fBody, $fRank)"); + $oContent->setHtml(renderErrorMessage("An error occurred while updating this news item.")); + } + } else { + // display the edit form + $oContent->setHtml(renderEditNewsPage($oDashboardNews)); + } + } else { + // no news id, so display an error message + $oContent->setHtml(renderErrorMessage("No news item was selected for editing")); + } + + // build the page + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); + $main->setCentralPayload($oContent); + $main->setFormEncType("multipart/form-data"); + $main->setFormAction($_SERVER['PHP_SELF']); + $main->setHasRequiredFields(true); + $main->render(); +} +?> \ No newline at end of file diff --git a/presentation/lookAndFeel/knowledgeTree/administration/news/manageNewsBL.php b/presentation/lookAndFeel/knowledgeTree/administration/news/manageNewsBL.php new file mode 100644 index 0000000..78bca42 --- /dev/null +++ b/presentation/lookAndFeel/knowledgeTree/administration/news/manageNewsBL.php @@ -0,0 +1,42 @@ +fileSystemRoot/lib/dashboard/DashboardNews.inc"); +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternMainPage.inc"); +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc"); +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternTableSqlQuery.inc"); +require_once("$default->uiDirectory/administration/news/newsUI.inc"); + +/** + * $Id$ + * + * This page handles the administration of dashboard news items + * + * Licensed under the GNU GPL. For full terms see the file DOCS/COPYING. + * + * @version $Revision$ + * @author Michael Joseph , Jam Warehouse (Pty) Ltd, South Africa + * @package presentation.lookAndFeel.knowledgeTree.administration.news + */ + +if (checkSession()) { + + // instantiate my content pattern + $oContent = new PatternCustom(); + + if (isset($fNewsID)) { + // we have an id, so we're either deleting, editing or previewing a current item + } else { + // no news id, so list the current news items + $oContent->setHtml(renderViewNewsPage()); + } + + //$main->setFormAction("$default->rootUrl/presentation/lookAndFeel/knowledgeTree/create.php?fRedirectURL=".urlencode("$default->rootUrl/control.php?action=addLinkSuccess&fLinkID=")); + //$main->setHasRequiredFields(true); + + // build the page + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); + $main->setCentralPayload($oContent); + $main->render(); +} +?> \ No newline at end of file diff --git a/presentation/lookAndFeel/knowledgeTree/administration/news/newsUI.inc b/presentation/lookAndFeel/knowledgeTree/administration/news/newsUI.inc new file mode 100644 index 0000000..53bca4d --- /dev/null +++ b/presentation/lookAndFeel/knowledgeTree/administration/news/newsUI.inc @@ -0,0 +1,124 @@ +uiDirectory/administration/adminUI.inc"); + +/** + * $Id$ + * + * This page controls browsing for documents- this can be done either by + * folder, category or document type. + * The relevant permission checking is performed, calls to the business logic + * layer to retrieve the details of the documents to view are made and the user + * interface is contructed. + * + * Licensed under the GNU GPL. For full terms see the file DOCS/COPYING. + * + * @version $Revision$ + * @author Michael Joseph , Jam Warehouse (Pty) Ltd, South Africa + * @package presentation.lookAndFeel.knowledgeTree.documentmanagement + */ + +/** + * Displays an error message + */ +function renderErrorMessage($sErrorMessage) { + $sToRender = ""; + $sToRender .= ""; + $sToRender .= "

$sErrorMessage

"; + return $sToRender; +} + +function renderNewsPopupJavascript() { + global $default; + return "\n\n\n\n"; +} + +/** + * Displays the current news items + */ +function renderNewsTable() { + global $default; + $sQuery = "SELECT id, synopsis, body, rank, if((length(image)>0),'yes','no') as image, 'Edit' AS edit, 'Preview' AS preview, 'Delete' AS del " . + "FROM $default->owl_news_table ORDER BY rank ASC"; + $aColumns = array("synopsis", "body", "rank", "image", "edit", "preview", "del"); + $aColumnHeaders = array("Synopsis", "Body", "Rank", "Image"); + $aColumnTypes = array(1,1,1,1,3,3,3); + $aDBColumnArray = array("id"); + $aQueryStringVariableNames = array("fNewsID"); + $aLinkURLs = array(4=> "$default->rootUrl/control.php?action=editNews", + 5=> "$default->rootUrl/control.php?action=previewNews", + 6=> "$default->rootUrl/control.php?action=removeNews"); + + $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "10%", $aLinkURLs,$aDBColumnArray,$aQueryStringVariableNames); + $oPatternTableSqlQuery->setTableHeading("Dashboard News"); + $oPatternTableSqlQuery->setDisplayColumnHeadings(true); + return $oPatternTableSqlQuery->render(); +} + +/** + * Displays the edit/add news item form + * + * @param DashboardNews the news item to modify + */ +function renderModifyAddNewsForm($oDashboardNews = null) { + global $default; + + $sToRender = ""; + $sToRender .= ""; + $sToRender .= ""; + $sToRender .= ""; + $sToRender .= ""; + $sToRender .= (isset($oDashboardNews) ? "getID() . "\">" : ""); + $sToRender .= ""; + $sToRender .= "\n"; + $sToRender .= "
SynopsisgetSynopsis() : "") . "\">
BodygetBody() : "") . "\">
RankgetRank() : "") . "\">
Image
graphicsUrl/widgets/submit.gif\" border=\"0\">\n"; + $sToRender .= "rootUrl/control.php?action=viewNews\">graphicsUrl/widgets/cancel.gif\" border=\"0\">
"; + return $sToRender; +} + +/** + * Displays the edit news page + */ +function renderEditNewsPage($oDashboardNews) { + global $default; + + $sToRender .= "" . renderHeading("Edit Dashboard News") . "
"; + $sToRender .= "\n"; + $sToRender .= renderModifyAddNewsForm($oDashboardNews); + $sToRender .= "
\n"; + return $sToRender; +} + +/** + * Displays the add new new item page + */ +function renderNewNewsPage() { + global $default; + + $sToRender .= "" . renderHeading("View Dashboard News") . "
"; + $sToRender .= "\n"; + $sToRender .= renderModifyAddNewsForm(); + $sToRender .= "
\n"; + return $sToRender; +} +/** + * Displays a list of news items + */ +function renderViewNewsPage() { + global $default; + + $sToRender .= "" . renderHeading("View Dashboard News") . "
"; + $sToRender .= "\n"; + $sToRender .= renderNewsTable(); + $sToRender .= "
\n"; + return $sToRender; +} +?> \ No newline at end of file -- libgit2 0.21.4