aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mod/riverdashboard/actions/add.php59
-rw-r--r--mod/riverdashboard/actions/delete.php36
-rw-r--r--mod/riverdashboard/languages/en.php11
-rw-r--r--mod/riverdashboard/start.php6
-rw-r--r--mod/riverdashboard/views/default/riverdashboard/sitemessage.php83
5 files changed, 193 insertions, 2 deletions
diff --git a/mod/riverdashboard/actions/add.php b/mod/riverdashboard/actions/add.php
new file mode 100644
index 000000000..944c45b8b
--- /dev/null
+++ b/mod/riverdashboard/actions/add.php
@@ -0,0 +1,59 @@
+<?php
+
+ /**
+ * Elgg site message: add
+ *
+ * @package ElggSiteMessage
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider Ltd <info@elgg.com>
+ * @copyright Curverider Ltd 2008-2009
+ * @link http://elgg.org/
+ **/
+
+ // Make sure we're logged in and are admin (send us to the front page if not)
+ admin_gatekeeper();
+
+ // Make sure action is secure
+ action_gatekeeper();
+
+ // Get input data
+ $message = get_input('sitemessage');
+ //$access = 1; //it is for all logged in users
+
+ // Make sure the message isn't blank
+ if (empty($message)) {
+ register_error(elgg_echo("sitemessages:blank"));
+ forward("mod/riverdashboard/");
+
+ // Otherwise, save the message
+ } else {
+
+ // Initialise a new ElggObject
+ $sitemessage = new ElggObject();
+ // Tell the system it's a site wide message
+ $sitemessage->subtype = "sitemessage";
+ // Set its owner to the current user
+ $sitemessage->owner_guid = $_SESSION['user']->getGUID();
+ // For now, set its access to logged in users
+ $sitemessage->access_id = 1; // this is for all logged in users
+ // Set description appropriately
+ $sitemessage->title = '';
+ $sitemessage->description = $message;
+ // Before we can set metadata, we need to save the message
+ if (!$sitemessage->save()) {
+ register_error(elgg_echo("sitemessage:error"));
+ forward("mod/riverdashboard/");
+ }
+ // Success message
+ system_message(elgg_echo("sitemessages:posted"));
+
+ // add to river
+ add_to_river('river/sitemessage/create','create',$_SESSION['user']->guid,$sitemessage->guid);
+
+ // Forward to the activity page
+ forward("mod/riverdashboard/");
+
+ }
+
+
+?> \ No newline at end of file
diff --git a/mod/riverdashboard/actions/delete.php b/mod/riverdashboard/actions/delete.php
new file mode 100644
index 000000000..dfce90984
--- /dev/null
+++ b/mod/riverdashboard/actions/delete.php
@@ -0,0 +1,36 @@
+<?php
+
+ /**
+ * Elgg site message: delete
+ *
+ * @package ElggBlog
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider Ltd <info@elgg.com>
+ * @copyright Curverider Ltd 2008-2009
+ * @link http://elgg.org/
+ */
+
+ // Make sure we're logged in (send us to the front page if not)
+ gatekeeper();
+
+ // Get input data
+ $guid = (int) get_input('message');
+
+ // Make sure we actually have permission to edit
+ $message = get_entity($guid);
+ if ($message->getSubtype() == "sitemessage" && $message->canEdit()) {
+
+ // Delete it!
+ $rowsaffected = $message->delete();
+ if ($rowsaffected > 0) {
+ // Success message
+ system_message(elgg_echo("sitemessage:deleted"));
+ } else {
+ register_error(elgg_echo("sitemessage:notdeleted"));
+ }
+ // Forward to the river
+ forward("mod/riverdashboard/");
+
+ }
+
+?> \ No newline at end of file
diff --git a/mod/riverdashboard/languages/en.php b/mod/riverdashboard/languages/en.php
index 3a9a64ce7..9bf31018f 100644
--- a/mod/riverdashboard/languages/en.php
+++ b/mod/riverdashboard/languages/en.php
@@ -4,6 +4,17 @@
'mine' => 'Mine',
'filter' => 'Filter',
+
+ /**
+ * Site messages
+ **/
+
+ 'sitemessages:announcements' => "Site announcements",
+ 'sitemessages:posted' => "Posted",
+ 'sitemessages:river:created' => "Site admin, %s,",
+ 'sitemessages:river:create' => "posted a new site wide message",
+ 'sitemessages:add' => "add message",
+ 'sitemessage:deleted' => "site message deleted",
);
diff --git a/mod/riverdashboard/start.php b/mod/riverdashboard/start.php
index 0c765ffa5..275d5d055 100644
--- a/mod/riverdashboard/start.php
+++ b/mod/riverdashboard/start.php
@@ -27,5 +27,11 @@
}
register_plugin_hook('init','system','riverdashboard_init');
+
+ // Register actions
+ global $CONFIG;
+ register_action("riverdashboard/add",false,$CONFIG->pluginspath . "riverdashboard/actions/add.php");
+ register_action("riverdashboard/delete",false,$CONFIG->pluginspath . "riverdashboard/actions/delete.php");
+
?> \ No newline at end of file
diff --git a/mod/riverdashboard/views/default/riverdashboard/sitemessage.php b/mod/riverdashboard/views/default/riverdashboard/sitemessage.php
index bf99e7dd3..8b8aaf3b0 100644
--- a/mod/riverdashboard/views/default/riverdashboard/sitemessage.php
+++ b/mod/riverdashboard/views/default/riverdashboard/sitemessage.php
@@ -10,9 +10,88 @@
* @link http://elgg.com/
*
*/
+
+ //grab the current site message
+ $site_message = get_entities("object", "sitemessage", 0, "", 1);
+ foreach($site_message as $mes){
+ $message = $mes->description;
+ $dateStamp = friendly_time($mes->time_created);
+ $delete = elgg_view("output/confirmlink",array(
+ 'href' => $vars['url'] . "action/riverdashboard/delete?message=" . $mes->guid,
+ 'text' => elgg_echo('delete'),
+ 'confirm' => elgg_echo('deleteconfirm'),
+ ));
+ }
+
+?>
+
+ <div class="contentWrapper">
+
+<?php
+
+ //if there is a site message
+ if($site_message){
?>
-<div class="contentWrapper">
-<p>This would be a message from the site admin. This would be a message from the site admin. This would be a message from the site admin. This would be a message from the site admin.</p>
+ <?php
+
+ echo "<h3>" . elgg_echo("sitemessages:announcements") . "</h3>";
+ echo "<p><small>" . elgg_echo("sitemessages:posted") . ": " . $dateStamp;
+ //if admin display the delete link
+ if(isadminloggedin())
+ echo " " . $delete . " ";
+ echo "</small></p>";
+ //display the message
+ echo "<p>" . $message . "</p>";
+
+ //display the input form to add a new message
+ if(isadminloggedin()){
+ //action
+ $action = "riverdashboard/add";
+ $link = elgg_echo("sitemessages:add");
+ $input_area = elgg_view('input/text', array('internalname' => 'sitemessage', 'value' => ''));
+ $submit_input = elgg_view('input/submit', array('internalname' => 'submit', 'value' => elgg_echo('save')));
+ $form_body = <<<EOT
+
+ <p><a class="manifest_details">{$link}</a></p>
+ <div class="manifest_file">
+ {$input_area}<br />{$submit_input}
+ </div>
+
+EOT;
+?>
+
+<?php
+ //display the form
+ echo elgg_view('input/form', array('action' => "{$vars['url']}action/$action", 'body' => $form_body));
+
+ }//end of admin if statement
+?>
+<?php
+ //if there is no message, add a form to create one
+ }else{
+
+ if(isadminloggedin()){
+
+ //action
+ $action = "riverdashboard/add";
+ $link = elgg_echo("sitemessages:add");
+ $input_area = elgg_view('input/text', array('internalname' => 'sitemessage', 'value' => ''));
+ $submit_input = elgg_view('input/submit', array('internalname' => 'submit', 'value' => elgg_echo('save')));
+ $form_body = <<<EOT
+
+ <p><a class="manifest_details">{$link}</a></p>
+ <div class="manifest_file">
+ {$input_area}<br />{$submit_input}
+ </div>
+EOT;
+?>
+<?php
+ //display the form
+ echo elgg_view('input/form', array('action' => "{$vars['url']}action/$action", 'body' => $form_body));
+
+ }//end of admin check
+ }//end of main if
+?>
</div> \ No newline at end of file