Source of file SiteMessageControllerExtension.php
Size: 1,700 Bytes - Last Modified: 2021-12-24T06:39:32+00:00
/var/www/docs.ssmods.com/process/src/code/SiteMessageControllerExtension.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | <?php class SiteMessageControllerExtension extends Extension { /** * Before the class is initialised, insert required CSS/Javascript * @return NULL */ public function onAfterInit() { Requirements::css(SITEMESSAGES_DIR . '/css/fonts.css'); Requirements::css(SITEMESSAGES_DIR . '/css/main.css'); Requirements::javascript('framework/thirdparty/jquery/jquery.js'); Requirements::javascript(SITEMESSAGES_DIR . '/javascript/sitemessages.js'); } /** * Get all site messages that have not be closed (cookie stored) to be displayed on the page * @return DataList A DataList of site messages */ public function getSiteMessages() { $today = date('Y-m-d H:i:s'); $unique_cookies = array(); // Create an array of sm_ cookies found in the browser foreach($_COOKIE as $key => $value) { if($this->getValidCookie($key) && $value == "closed") { $unique_cookies[] = $key; } } // Get site messages from the database $messages = SiteMessage::get() ->where("Permanent = 1 OR (Start < '$today' AND End > '$today')") ->exclude('Unique', $unique_cookies); // Prepare site message DataList for the template if($messages) { $all_messages = $this->owner->customise( array( "SiteMessages" => $messages ) ); return $all_messages->renderWith("SiteMessage"); }else { return FALSE; } } /** * Select the sm_ prefixed cookies from the browser * @param String $cookie The cookie name to be checked * @return Boolean If TRUE, the cookie is prefixed with sm_ */ public function getValidCookie($cookie) { $prefix = substr($cookie, 0, 3); if($prefix == "sm_") { return TRUE; } } } |