public function execute() { wfProfileIn(__METHOD__); // check rights if (!ThemeDesignerHelper::checkAccess()) { $this->displayRestrictionError(); wfProfileOut(__METHOD__); return; } Wikia::setVar('OasisEntryControllerName', 'ThemeDesigner'); wfProfileOut(__METHOD__); }
public function execute() { wfProfileIn(__METHOD__); global $wgOut, $wgExtensionsPath; // check rights if (!ThemeDesignerHelper::checkAccess()) { $this->displayRestrictionError(); wfProfileOut(__METHOD__); return; } $wgOut->allowClickjacking(); $this->setHeaders(); $wgOut->setPageTitle('Example Page Title'); $wgOut->addScript('<script src="' . $wgExtensionsPath . '/wikia/ThemeDesigner/js/ThemeDesignerPreview.js"></script>'); $wgOut->addLink(array("type" => "text/css", "rel" => "stylesheet", "href" => AssetsManager::getInstance()->getSassCommonURL('/extensions/wikia/ThemeDesigner/css/ThemeDesignerPreview.scss'))); $wgOut->addHtml(F::app()->renderView('ThemeDesigner', 'Preview')); // page header: use static date global $wgHooks; $wgHooks['PageHeaderIndexAfterExecute'][] = 'SpecialThemeDesignerPreview::modifyHeaderData'; wfProfileOut(__METHOD__); }
public function saveSettings($settings, $cityId = null) { global $wgCityId, $wgUser; $cityId = empty($cityId) ? $wgCityId : $cityId; // Verify wordmark length ( CONN-116 ) if (!empty($settings['wordmark-text'])) { $settings['wordmark-text'] = trim($settings['wordmark-text']); } if (empty($settings['wordmark-text'])) { // Do not save wordmark if its empty. unset($settings['wordmark-text']); } else { if (mb_strlen($settings['wordmark-text']) > 50) { $settings['wordmark-text'] = mb_substr($settings['wordmark-text'], 0, 50); } } if (isset($settings['favicon-image-name']) && strpos($settings['favicon-image-name'], 'Temp_file_') === 0) { $temp_file = new LocalFile(Title::newFromText($settings['favicon-image-name'], 6), RepoGroup::singleton()->getLocalRepo()); $file = new LocalFile(Title::newFromText(self::FaviconImageName, 6), RepoGroup::singleton()->getLocalRepo()); $file->upload($temp_file->getPath(), '', ''); $temp_file->delete(''); Wikia::invalidateFavicon(); $settings['favicon-image-url'] = $file->getURL(); $settings['favicon-image-name'] = $file->getName(); $file->repo->forceMaster(); $history = $file->getHistory(1); if (count($history) == 1) { $oldFaviconFile = array('url' => $history[0]->getURL(), 'name' => $history[0]->getArchiveName()); } } if (isset($settings['wordmark-image-name']) && strpos($settings['wordmark-image-name'], 'Temp_file_') === 0) { $temp_file = new LocalFile(Title::newFromText($settings['wordmark-image-name'], 6), RepoGroup::singleton()->getLocalRepo()); $file = new LocalFile(Title::newFromText(self::WordmarkImageName, 6), RepoGroup::singleton()->getLocalRepo()); $file->upload($temp_file->getPath(), '', ''); $temp_file->delete(''); $settings['wordmark-image-url'] = $file->getURL(); $settings['wordmark-image-name'] = $file->getName(); $file->repo->forceMaster(); $history = $file->getHistory(1); if (count($history) == 1) { $oldFile = array('url' => $history[0]->getURL(), 'name' => $history[0]->getArchiveName()); } } if (isset($settings['background-image-name']) && strpos($settings['background-image-name'], 'Temp_file_') === 0) { $temp_file = new LocalFile(Title::newFromText($settings['background-image-name'], 6), RepoGroup::singleton()->getLocalRepo()); $file = new LocalFile(Title::newFromText(self::BackgroundImageName, 6), RepoGroup::singleton()->getLocalRepo()); $file->upload($temp_file->getPath(), '', ''); $temp_file->delete(''); $settings['background-image'] = $file->getURL(); $settings['background-image-name'] = $file->getName(); $settings['background-image-width'] = $file->getWidth(); $settings['background-image-height'] = $file->getHeight(); $imageServing = new ImageServing(null, 120, array("w" => "120", "h" => "65")); $settings['user-background-image'] = $file->getURL(); $settings['user-background-image-thumb'] = wfReplaceImageServer($file->getThumbUrl($imageServing->getCut($file->getWidth(), $file->getHeight(), "origin") . "-" . $file->getName())); $file->repo->forceMaster(); $history = $file->getHistory(1); if (count($history) == 1) { $oldBackgroundFile = array('url' => $history[0]->getURL(), 'name' => $history[0]->getArchiveName()); } } $reason = wfMsg('themedesigner-reason', $wgUser->getName()); // update history if (!empty($GLOBALS[self::WikiFactoryHistory])) { $history = $GLOBALS[self::WikiFactoryHistory]; $lastItem = end($history); $revisionId = intval($lastItem['revision']) + 1; } else { $history = array(); $revisionId = 1; } // #140758 - Jakub // validation // default color values foreach (ThemeDesignerHelper::getColorVars() as $sColorVar => $sDefaultValue) { if (!isset($settings[$sColorVar]) || !ThemeDesignerHelper::isValidColor($settings[$sColorVar])) { $settings[$sColorVar] = $sDefaultValue; } } // update WF variable with current theme settings WikiFactory::setVarByName(self::WikiFactorySettings, $cityId, $settings, $reason); // add entry $history[] = array('settings' => $settings, 'author' => $wgUser->getName(), 'timestamp' => wfTimestampNow(), 'revision' => $revisionId); // limit history size to last 10 changes $history = array_slice($history, -self::HistoryItemsLimit); if (count($history) > 1) { for ($i = 0; $i < count($history) - 1; $i++) { if (isset($oldFaviconFile) && isset($history[$i]['settings']['favicon-image-name'])) { if ($history[$i]['settings']['favicon-image-name'] == self::FaviconImageName) { $history[$i]['settings']['favicon-image-name'] = $oldFaviconFile['name']; $history[$i]['settings']['favicon-image-url'] = $oldFaviconFile['url']; } } if (isset($oldFile) && isset($history[$i]['settings']['wordmark-image-name'])) { if ($history[$i]['settings']['wordmark-image-name'] == self::WordmarkImageName) { $history[$i]['settings']['wordmark-image-name'] = $oldFile['name']; $history[$i]['settings']['wordmark-image-url'] = $oldFile['url']; } } if (isset($oldBackgroundFile) && isset($history[$i]['settings']['background-image-name'])) { if ($history[$i]['settings']['background-image-name'] == self::BackgroundImageName) { $history[$i]['settings']['background-image-name'] = $oldBackgroundFile['name']; } } } } WikiFactory::setVarByName(self::WikiFactoryHistory, $cityId, $history, $reason); }
<?php echo ThemeDesignerHelper::parseText("[[File:Aquarium.jpg|thumb|Quisque pellentesque vestibulum ullamcorper.]]\nLorem ipsum dolor sit amet, [[consectetur]] adipiscing elit. Nunc molestie velit a ante [[fringilla vitae]] euismod velit gravida. [[Curabitur]] eu sem et justo sodales [[consequat quis]] vel justo. Vestibulum ante ipsum primis in faucibus orci [[luctus et ultrices]] posuere cubilia Curae. Quisque vitae lectus odio, quis porta orci. Etiam mattis volutpat enim, id posuere eros faucibus id. [[Integer vehicula libero]] vitae est ornare a pellentesque mauris pharetra. Nam eget lorem vestibulum nisi [[commodo suscipit]] non sit amet justo. Fusce imperdiet lacus sed [[turpis ornare]] pretium. ''Maecenas'' [[ante neque]], imperdiet sed accumsan id, gravida a sem. Morbi eu nisl quis nunc tincidunt condimentum euismod sit amet est.\n\n==Donec dapibus==\n\n''[[Sed porttitor ipsum]]'' quis nisi vehicula vel [[auctor magna]] aliquet. Sed eu quam eget arcu [[varius]] pulvinar. Vestibulum aliquam [[blandit turpis]] a porta. Sed feugiat tempor tristique. Duis iaculis arcu non ligula tincidunt dapibus. Vestibulum gravida [[volutpat purus]] sit amet laoreet. In tincidunt sapien sit amet metus ullamcorper sodales sed dignissim lacus. [[Fusce]] interdum tincidunt sodales. Nunc in metus et nisi scelerisque dapibus.\n\n* Quisque nec tellus\n\n* Auctor rutrum quam\n\n* Ut pretium tristique varius\n\nNulla felis tellus, [[tempus]] a eleifend vel, vulputate elementum augue. [[Aliquam erat]] volutpat. Morbi ut arcu nec nunc suscipit venenatis vitae non tortor. [[Pellentesque]] posuere tortor sed mauris aliquam eget [[facilisis tellus]] imperdiet. Integer odio massa, eleifend gravida porta a, hendrerit non orci. [[Donec quis tellus]] vel purus consectetur posuere eu vitae urna. Phasellus sit amet augue ante. Aenean vulputate [[mattis]] sapien a sagittis.\n\nCras [[hendrerit tellus]] ac enim hendrerit mattis. [[Praesent justo]] nulla, consequat et pharetra a, aliquet eu erat. Suspendisse commodo hendrerit dui vel vulputate. Sed [[sit amet]] orci ligula.\n\nPhasellus [[semper enim eu massa]] ornare convallis. Suspendisse quis elit sapien. Integer lacinia [[ultrices tortor]], nec rhoncus [[metus accumsan]] ut. Aliquam [[nec erat vitae]] diam semper eleifend. Morbi condimentum [[lacinia]] felis at rhoncus. Integer [[imperdiet ultricies]] lobortis. Curabitur [[aliquam lectus]] vel orci suscipit mollis. Integer faucibus [[laoreet]] pharetra. Aliquam at erat [[venenatis lacus]] rhoncus semper. Praesent fringilla ligula et quam ullamcorper id viverra est pretium.\n\n==Praesent consequat==\n\nLorem ipsum dolor sit amet, [[consectetur]] adipiscing elit. Nunc molestie velit a ante [[fringilla vitae]] euismod velit gravida. [[Curabitur]] eu sem et justo sodales [[consequat quis]] vel justo. Vestibulum ante ipsum primis in faucibus orci [[luctus et ultrices]] posuere cubilia Curae. Quisque vitae lectus odio, quis porta orci. Etiam mattis volutpat enim, id posuere eros faucibus id. [[Integer vehicula libero]] vitae est ornare a pellentesque mauris pharetra. Nam eget lorem vestibulum nisi [[commodo suscipit]] non sit amet justo. Fusce imperdiet lacus sed [[turpis ornare]] pretium. ''Maecenas'' [[ante neque]], imperdiet sed accumsan id, gravida a sem. Morbi eu nisl quis nunc tincidunt condimentum euismod sit amet est.\n\nNulla felis tellus, [[tempus]] a eleifend vel, vulputate elementum augue. [[Aliquam erat]] volutpat. Morbi ut arcu nec nunc suscipit venenatis vitae non tortor. [[Pellentesque]] posuere tortor sed mauris aliquam eget [[facilisis tellus]] imperdiet. Integer odio massa, eleifend gravida porta a, hendrerit non orci. [[Donec quis tellus]] vel purus consectetur posuere eu vitae urna. Phasellus sit amet augue ante. Aenean vulputate [[mattis]] sapien a sagittis.\n\nCras [[hendrerit tellus]] ac enim hendrerit mattis. [[Praesent justo]] nulla, consequat et pharetra a, aliquet eu erat. Suspendisse commodo hendrerit dui vel vulputate. Sed [[sit amet]] orci ligula.\n\nPhasellus [[semper enim eu massa]] ornare convallis. Suspendisse quis elit sapien. Integer lacinia [[ultrices tortor]], nec rhoncus [[metus accumsan]] ut. Aliquam [[nec erat vitae]] diam semper eleifend. Morbi condimentum [[lacinia]] felis at rhoncus. Integer [[imperdiet ultricies]] lobortis. Curabitur [[aliquam lectus]] vel orci suscipit mollis. Integer faucibus [[laoreet]] pharetra. Aliquam at erat [[venenatis lacus]] rhoncus semper. Praesent fringilla ligula et quam ullamcorper id viverra est pretium.\n\n\n[[Category:Etiam condimentums]]\n");
public function executeSaveSettings() { wfProfileIn(__METHOD__); global $wgRequest; // check rights if (!ThemeDesignerHelper::checkAccess()) { $this->displayRestrictionError(__METHOD__); } $data = $wgRequest->getArray('settings'); if ($wgRequest->wasPosted()) { $themeSettings = new ThemeSettings(); $themeSettings->saveSettings($data); } wfProfileOut(__METHOD__); }