/** * Writes the skins and templates to the database * * @param $allowOverwrite * set to 1 when allowed to overwrite existing skins with the same name * (default = 0) */ function writeToDatabase($allowOverwrite = 0) { $existingSkins = $this->checkSkinNameClashes(); $existingTemplates = $this->checkTemplateNameClashes(); // if not allowed to overwrite, check if any nameclashes exists if (!$allowOverwrite) { if (sizeof($existingSkins) > 0 || sizeof($existingTemplates) > 0) { return _SKINIE_NAME_CLASHES_DETECTED; } } foreach ($this->skins as $skinName => $data) { // 1. if exists: delete all part data, update desc data // if not exists: create desc if (in_array($skinName, $existingSkins)) { $skinObj = SKIN::createFromName($skinName); // delete all parts of the skin $skinObj->deleteAllParts(); // update general info $skinObj->updateGeneralInfo($skinName, $data['description'], $data['type'], $data['includeMode'], $data['includePrefix']); } else { $skinid = SKIN::createNew($skinName, $data['description'], $data['type'], $data['includeMode'], $data['includePrefix']); $skinObj = new SKIN($skinid); } // 2. add parts foreach ($data['parts'] as $partName => $partContent) { $skinObj->update($partName, $partContent); } } foreach ($this->templates as $templateName => $data) { // 1. if exists: delete all part data, update desc data // if not exists: create desc if (in_array($templateName, $existingTemplates)) { $templateObj = TEMPLATE::createFromName($templateName); // delete all parts of the template $templateObj->deleteAllParts(); // update general info $templateObj->updateGeneralInfo($templateName, $data['description']); } else { $templateid = TEMPLATE::createNew($templateName, $data['description']); $templateObj = new TEMPLATE($templateid); } // 2. add parts foreach ($data['parts'] as $partName => $partContent) { $templateObj->update($partName, $partContent); } } }
function event_InitSkinParse($data) { global $blogid, $CONF, $manager; $feedurl = array('rss1.xml', 'index.rdf', 'rss2.xml', 'atom.xml'); $reqPaths = explode('/', serverVar('PATH_INFO')); $reqPath = end($reqPaths); $feeds = in_array($reqPath, $feedurl, true); if (!$feeds) { return; } else { $p_info = trim(serverVar('PATH_INFO'), '/'); $path_arr = explode('/', $p_info); switch (end($path_arr)) { case 'rss1.xml': case 'index.rdf': $skinName = 'feeds/rss10'; break; case 'rss2.xml': $skinName = 'feeds/rss20'; break; case 'atom.xml': $skinName = 'feeds/atom'; break; } if (SKIN::exists($skinName)) { $skin =& SKIN::createFromName($skinName); $data['skin']->SKIN($skin->getID()); $skinData =& $data['skin']; $pageType = $data['type']; if (!$CONF['DisableSite']) { ob_start(); $skinID = $skinData->id; $contents = $this->getSkinContent($pageType, $skinID); $actions = SKIN::getAllowedActionsForType($pageType); $dataArray = array('skin' => &$skinData, 'type' => $pageType, 'contents' => &$contents); $manager->notify('PreSkinParse', $dataArray); PARSER::setProperty('IncludeMode', SKIN::getIncludeMode()); PARSER::setProperty('IncludePrefix', SKIN::getIncludePrefix()); $handler = new ACTIONS($pageType, $skinData); $parser = new PARSER($actions, $handler); $handler->setParser($parser); $handler->setSkin($skinData); $parser->parse($contents); $dataArray = array('skin' => &$skinData, 'type' => $pageType); $manager->notify('PostSkinParse', $dataArray); $feed = ob_get_contents(); ob_end_clean(); $eTag = '"' . md5($feed) . '"'; header('Etag: ' . $eTag); if ($eTag == serverVar('HTTP_IF_NONE_MATCH')) { header('HTTP/1.0 304 Not Modified'); header('Content-Length: 0'); } else { if (extension_loaded('mbstring')) { $feed = mb_convert_encoding($feed, 'UTF-8', _CHARSET); $charset = 'UTF-8'; } else { $charset = _CHARSET; } header('Content-Type: application/xml; charset=' . $charset); header('Generator: Nucleus CMS ' . $nucleus['version']); // dump feed echo $feed; } } else { echo '<' . '?xml version="1.0" encoding="ISO-8859-1"?' . '>'; ?> <rss version="2.0"> <channel> <title><?php echo $this->hsc($CONF['SiteName'], ENT_QUOTES); ?> </title> <link><?php echo $this->hsc($CONF['IndexURL'], ENT_QUOTES); ?> </link> <description></description> <docs>http://backend.userland.com/rss</docs> </channel> </rss> <?php } } exit; } }
function event_InitSkinParse(&$data) { global $skinid; $this->checkHTML(); $this->checkWAP(); $this->checkDevice(); /* Device accepts WAP : $this->acceptWAP == TRUE Device accepts HTML : $this->acceptHTML == TRUE Device is mobile : $this->isMobile = TRUE */ if ($this->getOption('MD_wapenabled') == "yes") { if ($this->acceptHTML && $this->acceptWAP == 1 && $this->isMobile == 1 && $this->getOption('wapurl') != '') { /* Redirect to WAP Compatible version of Blog) */ $url = 'Location: ' . $this->getOption('wapurl'); header($url); exit; } elseif ($this->acceptHTML && $this->acceptWAP == 1 && $this->isMobile == 1 && $this->getOption('wapurl') == '') { if (SKIN::exists($this->getOption('wapskin'))) { $newskin = SKIN::createFromName($this->getOption('wapskin')); $newskinid = $newskin->id; $data['skin']->id = $newskin->id; $data['skin']->name = $newskin->name; $data['skin']->description = $newskin->description; $data['skin']->contentType = $newskin->contentType; $data['skin']->includeMode = $newskin->includeMode; $data['skin']->includePrefix = $newskin->includePrefix; } } } if ($this->getOption('MD_mobileenabled') == "yes") { /* Redirect to HTML Compatible version of Blog optimzed for mobile use) */ if ($this->acceptHTML == 1 && $this->isMobile == 1 && $this->getOption('mobileurl') != '') { $url = 'Location: ' . $this->getOption('mobileurl'); header($url); exit; } elseif ($this->acceptHTML == 1 && $this->isMobile == 1 && $this->getOption('mobileurl') == '') { if (SKIN::exists($this->getOption('mobileskin'))) { $newskin = SKIN::createFromName($this->getOption('mobileskin')); $newskinid = $newskin->id; $data['skin']->id = $newskin->id; $data['skin']->name = $newskin->name; $data['skin']->description = $newskin->description; $data['skin']->contentType = $newskin->contentType; $data['skin']->includeMode = $newskin->includeMode; $data['skin']->includePrefix = $newskin->includePrefix; } } } /* Else just parse the blog as usual */ }
function event_InitSkinParse(&$data) { global $blogid; if (!$this->testlogin($data)) { if (intrequestvar('iteration') < $this->getBlogOption($blogid, 'login_iteration')) { $skinName = trim($this->getBlogOption($blogid, 'sub_skin')); if (SKIN::exists($skinName)) { $skin =& SKIN::createFromName($skinName); // copied from NP_SkinSwitcher.php $data['skin']->SKIN($skin->getID()); } } else { $this->doError = TRUE; $this->errorMessage = _ACCSSCNTRL_INVALID_USERPASS; return; } } if (!$this->testblog($data)) { $this->doError = TRUE; $this->errorMessage = _ACCSSCNTRL_CONTENTS_PROHIBIT; } }
function event_InitSkinParse(&$data) { global $CONF; if (!$this->isSmartPhone()) { return; } $request_uri = $_SERVER['REQUEST_URI']; if (strpos($request_uri, '.php') !== false && strpos($request_uri, 'index.php') === false) { return; } if (isset($_GET['viewmode']) && preg_match('/^[01]{1}$/', $_GET['viewmode'])) { $viewmode = intGetVar('viewmode'); } elseif (isset($_COOKIE['viewmode']) && preg_match('/^[01]{1}$/', $_COOKIE['viewmode'])) { $viewmode = intCookieVar('viewmode'); } else { $viewmode = 1; } if (!isset($_COOKIE['viewmode']) || $_COOKIE['viewmode'] != $viewmode) { setcookie('viewmode', $viewmode, 0, $CONF['CookiePath'], $CONF['CookieDomain'], $CONF['CookieSecure']); } if ($viewmode == 1) { $optionSpskinname = htmlspecialchars($this->getOption('spskinname'), ENT_QUOTES, _CHARSET); if (!SKIN::exists($optionSpskinname)) { $SkinName = $data['skin']->name; } else { $SkinName = $optionSpskinname; } } elseif ($viewmode == 0) { $SkinName = $data['skin']->name; } else { return; } $skin =& SKIN::createFromName($SkinName); $data['skin']->SKIN($skin->getID()); return; }
function event_InitSkinParse(&$data) { $DefaultPCSkinName_str = $data['skin']->name; $DefaultMobileSkinName_str = $data['skin']->name . "/" . $this->getOption('as2m_mobile_name'); $DefaultSPSkinName_str = $data['skin']->name . "/" . $this->getOption('as2m_smartphone_name'); //Mobile if ($this->isMobile() && SKIN::exists($DefaultMobileSkinName_str)) { $DefaultSkinName = $DefaultMobileSkinName_str; } elseif ($this->isMobile() && !SKIN::exists($DefaultMobileSkinName_str)) { $DefaultSkinName = $DefaultPCSkinName_str; } //SmartPhone if ($this->isSmartPhone() && !SKIN::exists($DefaultSPSkinName_str)) { //1=>SmartPhone > default if ($this->getOption('as2m_sp_pri') == 1) { $DefaultSkinName = $DefaultPCSkinName_str; //2=>SmartPhone > Mobile > default } elseif ($this->getOption('as2m_sp_pri') == 2) { if (SKIN::exists($DefaultMobileSkinName_str)) { $DefaultSkinName = $DefaultMobileSkinName_str; } else { $DefaultSkinName = $DefaultPCSkinName_str; } } } elseif ($this->isSmartPhone() && SKIN::exists($DefaultSPSkinName_str)) { $DefaultSkinName = $DefaultSPSkinName_str; } //other if (!$this->isSmartPhone() && !$this->isMobile()) { $DefaultSkinName = $DefaultPCSkinName_str; } if ($this->isDoCoMo()) { $CarrierSkinName = $data['skin']->name . "/" . $this->getOption('as2m_docomo_name'); $this->CarrierName = "docomo"; $this->CarrierShortName = "d"; } elseif ($this->isVodafone()) { $CarrierSkinName = $data['skin']->name . "/" . $this->getOption('as2m_softbank_name'); $this->CarrierName = "softbank"; $this->CarrierShortName = "s"; } elseif ($this->isEZweb()) { $CarrierSkinName = $data['skin']->name . "/" . $this->getOption('as2m_au_name'); $this->CarrierName = "ezweb"; $this->CarrierShortName = "e"; } elseif ($this->isWillcom()) { $CarrierSkinName = $data['skin']->name . "/" . $this->getOption('as2m_wilcom_name'); $this->CarrierName = "willcom"; $this->CarrierShortName = "w"; } elseif ($this->isiPhone()) { $CarrierSkinName = $data['skin']->name . "/" . $this->getOption('as2m_iphone_name'); $this->CarrierName = "iphone"; $this->CarrierShortName = "ip"; } elseif ($this->isAndroid()) { $CarrierSkinName = $data['skin']->name . "/" . $this->getOption('as2m_android_name'); $this->CarrierName = "android"; $this->CarrierShortName = "an"; } else { $this->CarrierName = "pc"; } //CarrierSkin > DefaultSkin if (SKIN::exists($CarrierSkinName)) { $SkinName = $CarrierSkinName; } else { $SkinName = $DefaultSkinName; } $skin =& SKIN::createFromName($SkinName); $data['skin']->SKIN($skin->getID()); return; }