public function createRewriteFeature(Gadget $gadget) { $requires = $gadget->getRequires(); if (!isset($requires[ContentRewriteFeature::$REWRITE_TAG])) { return; } $rewriteFeature = $requires[ContentRewriteFeature::$REWRITE_TAG]; $rewriteParams = $rewriteFeature->getParams(); if (isset($rewriteParams[ContentRewriteFeature::$INCLUDE_URLS])) { $this->includeParam = $this->normalizeParam($rewriteParams[ContentRewriteFeature::$INCLUDE_URLS], '//'); } else { $this->includeParam = '//'; } if (isset($rewriteParams[ContentRewriteFeature::$EXCLUDE_URLS])) { $this->excludeParam = $this->normalizeParam($rewriteParams[ContentRewriteFeature::$EXCLUDE_URLS], '//'); } else { $this->excludeParam = '//'; } if (isset($rewriteParams[ContentRewriteFeature::$INCLUDE_TAGS])) { $this->tagsParam = $rewriteParams[ContentRewriteFeature::$INCLUDE_TAGS]; $this->tagsParam = explode(',', $this->tagsParam); } else { $this->tagsParam = array(); } if ($this->excludeParam == '.*' || $this->includeParam == null) { $this->includeNone = true; } if ($this->includeParam == '.*' || $this->excludeParam == null) { $this->includeAll = true; } }
public function rewriteGadgetView(Gadget $gadget, ViewSpec $gadgetView) { // Dont rewrite content if the spec is unavailable $requires = $gadget->getRequires(); if (isset($requires[ContentRewriteFeature::$REWRITE_TAG])) { // Store the feature in the spec so we dont keep parsing it $rewriteFeature = new ContentRewriteFeature(); $rewriteFeature->createRewriteFeature($gadget); } else { return false; } if (!$rewriteFeature->isRewriteEnabled()) { return false; } if (ContentRewriteFeature::$PROXY_URL != null) { $defaultTags = ContentRewriteFeature::defaultHTMLTags(); $htmlTags = null; if (count($rewriteFeature->getTagsParam()) > 0) { foreach ($rewriteFeature->getTagsParam() as $tag) { if (isset($defaultTags[$tag])) { $htmlTags[$tag] = $defaultTags[$tag]; } } } else { $htmlTags = $defaultTags; } } $gadgetView->setRewrittenContent($this->rewrite($gadgetView->getContent(), $htmlTags, $rewriteFeature->getExcludeParam(), $rewriteFeature->getIncludeParam(), Config::get('web_prefix') . ContentRewriteFeature::$PROXY_URL, $gadget->getId()->getURI(), $rewriteFeature->getTagsParam())); return true; }
public function up() { $gadget = new Gadget(); $gadget->setType('loginTop'); $gadget->setName('loginForm'); $gadget->setSortOrder(10); $gadget->save(); }
/** * Prepares the environment before running a test. */ protected function setUp() { parent::setUp(); $this->gadgetContext = new GadgetContext('GADGET'); $gadgetSpecFactory = new MockRewriterGadgetFactory($this->gadgetContext, null); $gadgetSpecFactory->fetchGadget = null; $this->gadget = $gadgetSpecFactory->createGadget(); $this->gadgetRewriter = new GadgetRewriter($this->gadgetContext); $this->view = $this->gadget->getView($this->gadgetContext->getView()); }
private function getIframeURL(Gadget $gadget, GadgetContext $context) { $v = $gadget->getChecksum(); $view = $gadget->getView($context->getView()); $up = ''; foreach ($gadget->gadgetSpec->userPrefs as $pref) { $up .= '&up_' . urlencode($pref['name']) . '=' . urlencode($pref['value']); } $locale = $context->getLocale(); //Note: putting the URL last, else some browsers seem to get confused (reported by hi5) return Config::get('default_iframe_prefix') . 'container=' . $context->getContainer() . ($context->getIgnoreCache() ? '&nocache=1' : '&v=' . $v) . ($context->getModuleId() != 0 ? '&mid=' . $context->getModuleId() : '') . '&lang=' . $locale['lang'] . '&country=' . $locale['country'] . '&view=' . $view['view'] . $up . '&url=' . urlencode($context->getUrl()); }
public function up() { $criteria = new Criteria(); $criteria->add(GadgetPeer::TYPE, 'mobileLoginContents'); $criteria->add(GadgetPeer::NAME, 'loginForm'); if (!GadgetPeer::doSelectOne($criteria)) { $gadget = new Gadget(); $gadget->setType('mobileLoginContents'); $gadget->setName('loginForm'); $gadget->setSortOrder(10); $gadget->save(); } }
public function save() { foreach ($this->values as $type => $gadgets) { if (!$gadgets) { continue; } foreach ($gadgets as $value) { $gadget = new Gadget(); $gadget->setType($type); $gadget->setName($value); $gadget->save(); } } }
/** * * @param Gadget $gadget * @throws GadgetException */ protected function renderGadget(Gadget $gadget) { $view = $gadget->getView($this->context->getView()); $renderClasses = Config::get('gadget_renderer'); foreach ($renderClasses as $renderClass => $constraints) { // if current view meets the configurated renderer constraints // render the gadget and stop checking if ($this->checkConstraints($view, $constraints)) { $gadgetRenderer = new $renderClass($this->context); $gadgetRenderer->renderGadget($gadget, $view); return; } } throw new GadgetException("Invalid view type"); }
private function getList() { $data = array(); $result = $this->getResult(); $gadgets = Gadget::loadStructuredList(); foreach ($gadgets as $category => $list) { if (!$this->neededNames || isset($this->neededNames[$category])) { $row = array(); if (isset($this->props['name'])) { $row['name'] = $category; } if ($category !== "") { if (isset($this->props['title'])) { $row['desc'] = wfMessage("gadget-section-{$category}")->parse(); } } if (isset($this->props['members'])) { $row['members'] = count($list); } $data[] = $row; } } $result->setIndexedTagName($data, 'category'); $result->addValue('query', $this->getModuleName(), $data); }
/** * logs a user in * * Status Codes:<br /> * 0: success<br /> * 1: incorrect password<br /> * 1: incorrect email<br /> * * @param String $u Username * @param String $p Password * @param Boolean $redirect redirect on successful login * @return Int status code */ public static function log_user_in($u, $p, $redirect = true) { if ($_SESSION['logged_in']) { self::logout(); } $u = dbi()->escape($u); $ip = $_SESSION['IpAddr']; if ($row = dbi()->q_1("SELECT CustomerID, Password FROM Customers WHERE Email = '$u'")) { if (crypt($p, $row->Password) == $row->Password) { // match found self::force_login($row->CustomerID); if ($redirect) { if ($_SESSION['last_page']) { $page = $_SESSION['last_page']; unset($_SESSION['last_page']); } else { $page = '/'; } Gadget::redirect($page); } return 0; } else { // incorrect password return 1; } } else { // email not found return 2; } }
function testPreferences() { global $wgUser, $wgOut, $wgTitle; // This test makes call to the parser which requires valids Outputpage // and Title objects. Set them up there, they will be released at the // end of the test. $old_wgOut = $wgOut; $old_wgTitle = $wgTitle; $wgTitle = Title::newFromText('Parser test for Gadgets extension'); // Proceed with test setup: $prefs = array(); $context = new RequestContext(); $wgOut = $context->getOutput(); $wgOut->setTitle(Title::newFromText('test')); Gadget::loadStructuredList('* foo | foo.js ==keep-section1== * bar| bar.js ==remove-section== * baz [rights=embezzle] |baz.js ==keep-section2== * quux [rights=read] | quux.js'); $this->assertTrue(GadgetHooks::getPreferences($wgUser, $prefs), 'GetPrefences hook should return true'); $options = $prefs['gadgets']['options']; $this->assertFalse(isset($options['<gadget-section-remove-section>']), 'Must not show empty sections'); $this->assertTrue(isset($options['<gadget-section-keep-section1>'])); $this->assertTrue(isset($options['<gadget-section-keep-section2>'])); // Restore globals $wgOut = $old_wgOut; $wgTitle = $old_wgTitle; }
protected function renderGadget(Gadget $gadget) { $view = $gadget->getView($this->context->getView()); if ($view['type'] == 'URL') { require_once "src/gadgets/render/GadgetUrlRenderer.php"; $gadgetRenderer = new GadgetUrlRenderer($this->context); } elseif ($view['type'] == 'HTML' && empty($view['href'])) { require_once "src/gadgets/render/GadgetHtmlRenderer.php"; $gadgetRenderer = new GadgetHtmlRenderer($this->context); } elseif (empty($view['type']) || !empty($view['href'])) { require_once "src/gadgets/render/GadgetHrefRenderer.php"; $gadgetRenderer = new GadgetHrefRenderer($this->context); } else { throw new GadgetException("Invalid view type"); } $gadgetRenderer->renderGadget($gadget, $view); }
public function __construct(Gadget $gadget, $options = array(), $CSRFSecret = null) { $this->gadget = $gadget; parent::__construct(array(), $options, $CSRFSecret); $config = Doctrine::getTable('Gadget')->getGadgetConfigListByType($options['type']); if (empty($config[$gadget->getName()]['config'])) { throw new RuntimeException('The gadget has not registered or it doesn\'t have any configuration items.'); } $gadgetConfig = $config[$gadget->getName()]['config']; foreach ($gadgetConfig as $key => $value) { $this->setWidget($key, opFormItemGenerator::generateWidget($value)); $this->setValidator($key, opFormItemGenerator::generateValidator($value)); $config = Doctrine::getTable('GadgetConfig')->retrieveByGadgetIdAndName($gadget->getId(), $key); if ($config) { $this->setDefault($key, $config->getValue()); } } $this->widgetSchema->setNameFormat('gadget_config[%s]'); }
public function up() { $eventNavigation = new Navigation(); $eventNavigation->setType('community'); $eventNavigation->setUri('communityEvent/listCommunity'); $eventNavigation->setSortOrder(6); $eventNavigation->setCaption('Events', 'en'); $eventNavigation->setCaption('イベントリスト', 'ja_JP'); $gadget = new Gadget(); $gadget->setType('contents'); $gadget->setName('recentCommunityEventComment'); $gadget->setSortOrder(132); $gadget->save(); $gadget = new Gadget(); $gadget->setType('mobileContents'); $gadget->setName('recentCommunityEventComment'); $gadget->setSortOrder(111); $gadget->save(); }
public function up() { $gadget = new Gadget(); $gadget->setType('top'); $gadget->setName('birthdayBox'); $gadget->setSortOrder(0); $gadget->save(); $gadget = new Gadget(); $gadget->setType('mobileTop'); $gadget->setName('birthdayBox'); $gadget->setSortOrder(0); $gadget->save(); $gadget = new Gadget(); $gadget->setType('profileTop'); $gadget->setName('birthdayBox'); $gadget->setSortOrder(0); $gadget->save(); $gadget = new Gadget(); $gadget->setType('mobileProfileTop'); $gadget->setName('birthdayBox'); $gadget->setSortOrder(0); $gadget->save(); }
function testPreferences() { $prefs = array(); Gadget::loadStructuredList('* foo | foo.js ==keep-section1== * bar| bar.js ==remove-section== * baz [rights=embezzle] |baz.js ==keep-section2== * quux [rights=read] | quux.js'); $this->assertTrue(GadgetHooks::getPreferences(new User(), $prefs), 'GetPrefences hook should return true'); $options = $prefs['gadgets']['options']; $this->assertFalse(isset($options['<gadget-section-remove-section>']), 'Must not show empty sections'); $this->assertTrue(isset($options['<gadget-section-keep-section1>'])); $this->assertTrue(isset($options['<gadget-section-keep-section2>'])); }
/** * Fetches all remote resources simultaniously using a multiFetchRequest to optimize rendering time. * * The preloads will be json_encoded to their gadget document injection format, and the locales will * be reduced to only the GadgetContext->getLocale matching entries. * * @param Gadget $gadget * @param GadgetContext $context */ protected function fetchResources(Gadget &$gadget) { $contextLocale = $this->context->getLocale(); $unsignedRequests = $signedRequests = array(); foreach ($gadget->gadgetSpec->locales as $key => $locale) { // Only fetch the locales that match the current context's language and country if ($locale['country'] == 'all' && $locale['lang'] == 'all' || $locale['lang'] == $contextLocale['lang'] && $locale['country'] == 'all' || $locale['lang'] == $contextLocale['lang'] && $locale['country'] == $contextLocale['country']) { if (!empty($locale['messages'])) { $transformedUrl = RemoteContentRequest::transformRelativeUrl($locale['messages'], $this->context->getUrl()); if (!$transformedUrl) { // remove any locales that are not applicable to this context unset($gadget->gadgetSpec->locales[$key]); continue; } else { $gadget->gadgetSpec->locales[$key]['messages'] = $transformedUrl; } // locale matches the current context, add it to the requests queue $request = new RemoteContentRequest($gadget->gadgetSpec->locales[$key]['messages']); $request->createRemoteContentRequestWithUri($gadget->gadgetSpec->locales[$key]['messages']); $request->getOptions()->ignoreCache = $this->context->getIgnoreCache(); $unsignedRequests[] = $request; } } else { // remove any locales that are not applicable to this context unset($gadget->gadgetSpec->locales[$key]); } } if (!$gadget->gadgetContext instanceof MetadataGadgetContext) { // Add preloads to the request queue foreach ($gadget->getPreloads() as $preload) { if (!empty($preload['href'])) { $request = new RemoteContentRequest($preload['href']); if (!empty($preload['authz']) && $preload['authz'] == 'SIGNED') { if ($this->token == '') { throw new GadgetException("Signed preloading requested, but no valid security token set"); } $request = new RemoteContentRequest($preload['href']); $request->setAuthType(RemoteContentRequest::$AUTH_SIGNED); $request->setNotSignedUri($preload['href']); $request->setToken($this->token); $request->getOptions()->ignoreCache = $this->context->getIgnoreCache(); if (strcasecmp($preload['signViewer'], 'false') == 0) { $request->getOptions()->viewerSigned = false; } if (strcasecmp($preload['signOwner'], 'false') == 0) { $request->getOptions()->ownerSigned = false; } $signedRequests[] = $request; } else { $request->createRemoteContentRequestWithUri($preload['href']); $request->getOptions()->ignoreCache = $this->context->getIgnoreCache(); $unsignedRequests[] = $request; } } } // Add template libraries to the request queue if ($gadget->gadgetSpec->templatesRequireLibraries) { foreach ($gadget->gadgetSpec->templatesRequireLibraries as $key => $libraryUrl) { $request = new RemoteContentRequest($libraryUrl); $transformedUrl = RemoteContentRequest::transformRelativeUrl($libraryUrl, $this->context->getUrl()); if (!$transformedUrl) { continue; } else { $gadget->gadgetSpec->templatesRequireLibraries[$key] = $transformedUrl; } $request->createRemoteContentRequestWithUri($gadget->gadgetSpec->templatesRequireLibraries[$key]); $request->getOptions()->ignoreCache = $this->context->getIgnoreCache(); $unsignedRequests[] = $request; } } } // Perform the non-signed requests $responses = array(); if (count($unsignedRequests)) { $brc = new BasicRemoteContent(); $resps = $brc->multiFetch($unsignedRequests); foreach ($resps as $response) { $responses[$response->getUrl()] = array('body' => $response->getResponseContent(), 'rc' => $response->getHttpCode()); } } // Perform the signed requests if (count($signedRequests)) { $signingFetcherFactory = new SigningFetcherFactory(Config::get("private_key_file")); $remoteFetcherClass = Config::get('remote_content_fetcher'); $remoteFetcher = new $remoteFetcherClass(); $remoteContent = new BasicRemoteContent($remoteFetcher, $signingFetcherFactory); $resps = $remoteContent->multiFetch($signedRequests); foreach ($resps as $response) { $responses[$response->getNotSignedUrl()] = array('body' => $response->getResponseContent(), 'rc' => $response->getHttpCode()); } } // assign the results to the gadget locales and preloads (using the url as the key) foreach ($gadget->gadgetSpec->locales as $key => $locale) { if (!empty($locale['messages']) && isset($responses[$locale['messages']]) && $responses[$locale['messages']]['rc'] == 200) { $gadget->gadgetSpec->locales[$key]['messageBundle'] = $this->parseMessageBundle($responses[$locale['messages']]['body']); } } if (!$gadget->gadgetContext instanceof MetadataGadgetContext) { $preloads = array(); foreach ($gadget->gadgetSpec->preloads as $key => $preload) { if (!empty($preload['href']) && isset($responses[$preload['href']]) && $responses[$preload['href']]['rc'] == 200) { $preloads[] = array_merge(array('id' => $preload['href']), $responses[$preload['href']]); } } $gadget->gadgetSpec->preloads = $preloads; if ($gadget->gadgetSpec->templatesRequireLibraries) { $requiredLibraries = array(); foreach ($gadget->gadgetSpec->templatesRequireLibraries as $key => $libraryUrl) { if (isset($responses[$libraryUrl]) && $responses[$libraryUrl]['rc'] == 200) { $requiredLibraries[$libraryUrl] = $responses[$libraryUrl]['body']; } } $gadget->gadgetSpec->templatesRequireLibraries = $requiredLibraries; } } }
<?php require '../includes/global.inc.php'; debug(1, 1, 0); if (!$_SESSION['madison_status_UserName']) { Gadget::redirect('/admin'); } $date = date(DATE_FORMAT_MYSQL, strtotime('next Tuesday', strtotime('-1 day'))); $date_do = new DateTime($date); switch ($date) { case '2013-12-24': $date_do->setDate('2013', '12', '23'); break; case '2013-12-31': $date_do->setDate('2013', '12', '30'); break; } $date_delivery = $date_do->format('n/j/Y'); ?> <!doctype html> <html> <head> <style type="text/css" media="screen"> .order{ margin-bottom:20px; font-family: "Gill Sans", "Gill Sans MT", "Myriad Pro", "DejaVu Sans Condensed", Helvetica, Arial, sans-serif, sans-serif; font-size: 10pt; line-height: 1.1; } .header_image img{
$newPromoCodeAmount = $promoCodeAmount - $giftCertAmount; if ($newPromoCodeAmount < 0) { $newPromoCodeAmount = 0; } $dbi->update('PromoCodes', array('Amount' => $newPromoCodeAmount), array('PromoCodeID' => $PromoCodeID)); } } //Gadget::add_message('success'); Gadget::redirect('success2'); } else { Gadget::add_message($transaction->get_error_message()); } } catch (Exception $e) { s('Error: ' . $e->getMessage() . $transaction->get_error_message()); Gadget::add_message($e->getMessage() . $transaction->get_error_message()); } } } $page = Page::get_from_alias('giftcertificates'); $page->add_js('/js/giftcertificates.js'); require 'header.php'; ?> <div class="content-padding"> <div><?php echo $page->content['main']; ?></div> <form class="user-form" name="giftcertificates-form" id="checkout-form" action="giftcertificates" method="post" onsubmit="return validateForm();"> <table> <tbody> <tr style="vertical-align:top;">
/** * @param $g Gadget * @return array */ private function fakeMetadata(Gadget $g) { return array('settings' => array('rights' => $g->getRequiredRights(), 'skins' => $g->getRequiredSkins(), 'default' => $g->isOnByDefault(), 'hidden' => false, 'shared' => false, 'category' => $g->getCategory()), 'module' => array('scripts' => $g->getScripts(), 'styles' => $g->getStyles(), 'dependencies' => $g->getDependencies(), 'messages' => array())); }
define('AUTHORIZENET_DUPLICATE_WINDOW', '30'); } else { die('invalid anet account specified in global.inc.php'); } define('BASE_PATH', $_root_path); define('BASE_URL', '/dev'); define('SITE_URL', 'localhost/madison/dev/'); //$dbi = new dbi('localhost', 'root', '', 'C271322_madison', false, false, false); $dbi = new dbi('madisondb.db.11768123.hostedresource.com', 'madisondb', 'Rw820123!', 'madisondb', false, false, false); //hashing constants define('ROUNDS_STRONG', 80000); define('ROUNDS_FAST', 5000); define('CONFIRMATION_SALT', 'KU98ft67o8fv*('); //current dates if (!isset($base_date)) { $base_date = new DateTime('now'); } $base_date_formatted = $base_date->format('c'); //order by Gadget::$date_ob = new DateTime("{$base_date_formatted} -18 hours"); Gadget::$date_ob->modify('next Saturday'); //delivered on Gadget::$date_do = new DateTime("{$base_date_formatted} -18 hours"); Gadget::$date_do->modify('next Saturday'); Gadget::$date_do->modify('next Tuesday'); Gadget::$date_do_weekend = new DateTime("{$base_date_formatted} -18 hours"); Gadget::$date_do_weekend->modify('next Wednesday'); Gadget::$date_do_weekend->modify('next Friday'); define('TAX_RATE', 0.0225); define('COST_REGULAR_SERVING', 13.5); define('COST_VEGETARIAN_SERVING', 12.5);
/** * Creates an instance of this class from definition in MediaWiki:Gadgets-definition * @param $definition String: Gadget definition * @return Gadget|bool Instance of Gadget class or false if $definition is invalid */ public static function newFromDefinition($definition) { $m = array(); if (!preg_match('/^\\*+ *([a-zA-Z](?:[-_:.\\w\\d ]*[a-zA-Z0-9])?)(\\s*\\[.*?\\])?\\s*((\\|[^|]*)+)\\s*$/', $definition, $m)) { return false; } // NOTE: the gadget name is used as part of the name of a form field, // and must follow the rules defined in http://www.w3.org/TR/html4/types.html#type-cdata // Also, title-normalization applies. $gadget = new Gadget(); $gadget->name = trim(str_replace(' ', '_', $m[1])); // If the name is too long, then RL will throw an MWException when // we try to register the module if (!ResourceLoader::isValidModuleName($gadget->getModuleName())) { return false; } $gadget->definition = $definition; $options = trim($m[2], ' []'); foreach (preg_split('/\\s*\\|\\s*/', $options, -1, PREG_SPLIT_NO_EMPTY) as $option) { $arr = preg_split('/\\s*=\\s*/', $option, 2); $option = $arr[0]; if (isset($arr[1])) { $params = explode(',', $arr[1]); $params = array_map('trim', $params); } else { $params = array(); } switch ($option) { case 'ResourceLoader': $gadget->resourceLoaded = true; break; case 'dependencies': $gadget->dependencies = $params; break; case 'rights': $gadget->requiredRights = $params; break; case 'skins': $gadget->requiredSkins = $params; break; case 'default': $gadget->onByDefault = true; break; case 'targets': $gadget->targets = $params; break; case 'top': $gadget->position = 'top'; break; } } foreach (preg_split('/\\s*\\|\\s*/', $m[3], -1, PREG_SPLIT_NO_EMPTY) as $page) { $page = "Gadget-{$page}"; if (preg_match('/\\.js/', $page)) { $gadget->scripts[] = $page; } elseif (preg_match('/\\.css/', $page)) { $gadget->styles[] = $page; } } return $gadget; }
private function processOAuthSpec(Gadget &$gadget, $OAuthSpec) { $oauthSpec = new OAuthSpec($OAuthSpec->Service); $gadget->setOAuthSpec($oauthSpec); }
</div> <?php require 'footer.php'; die; } else { Gadget::redirect('index'); die; } } elseif (isset($_REQUEST['submit_new_pass'])) { // Insert new password and set expires to 0 $request = dbi()->q_1("SELECT * FROM password_reset_requests WHERE token_id = '" . $_SESSION['token_id'] . "'"); dbi()->update('Customers', array('Password' => Access::create_hash($_REQUEST['new_pass'], 'strong')), 'CustomerID = ' . $request->CustomerID); dbi()->update('password_reset_requests', array('expires' => '0000-00-00 00:00:00'), 'token_id = \'' . $_SESSION['token_id'] . '\''); unset($_SESSION['token_id']); Gadget::add_message('Your password has been reset!'); Gadget::redirect('login'); die; } require 'header.php'; ?> <div class="content-padding"> <form name="forgot-form" class="user-form" id="forgot-form" action="forgot" method="post"> <table> <tr> <td> <label for="forgot-email">email:</label> </td> <td> <input type="text" name="forgot-email" id="forgot-email" /> </td> </tr>
/** * BeforePageDisplay hook handler. * @param $out OutputPage * @return bool */ public static function beforePageDisplay($out) { wfProfileIn(__METHOD__); $gadgets = Gadget::loadList(); if (!$gadgets) { wfProfileOut(__METHOD__); return true; } $lb = new LinkBatch(); $lb->setCaller(__METHOD__); $pages = array(); /** * @var $gadget Gadget */ $user = $out->getUser(); foreach ($gadgets as $gadget) { if ($gadget->isEnabled($user) && $gadget->isAllowed($user)) { if ($gadget->hasModule()) { $out->addModuleStyles($gadget->getModuleName()); $out->addModules($gadget->getModuleName()); } foreach ($gadget->getLegacyScripts() as $page) { $lb->add(NS_MEDIAWIKI, $page); $pages[] = $page; } } } // Allow other extensions, e.g. MobileFrontend, to disallow legacy gadgets if (wfRunHooks('Gadgets::allowLegacy', array($out->getContext()))) { $lb->execute(__METHOD__); $done = array(); foreach ($pages as $page) { if (isset($done[$page])) { continue; } $done[$page] = true; self::applyScript($page, $out); } } wfProfileOut(__METHOD__); return true; }
$errors[] = 'no message provided'; } if ($errors) { Gadget::add_message(implode(', ', $errors)); } else { $insert_data = array('Email' => $email_addr, 'Message' => $message); $dbi->insert('Contact', $insert_data); //$to_address = '*****@*****.**'; $to_address = '*****@*****.**'; $email = new Email(true); $email->AddAddress($to_address); $email->Subject = 'Contact Us Submission'; $body = '<p>The following message was submitted from the Contact Us form by ' . $email_addr . ':</p>' . htmlspecialchars($message); $email->MsgHTML($body); $email->Send(); Gadget::add_message('Your message has been submitted.'); } } $js = <<<EOT function validate_form(){ if(!\$('#contact-email').val()){ alert('Please enter an email address.'); return false; } if(!checkEmail(\$('#contact-email').val())){ alert('Please enter a valid email address.'); return false; } if(!\$('#contact-message').val()){ alert('Please enter a message.'); return false;
<?php require '../includes/global.inc.php'; //debug(1, 1, 1); if (!$_SESSION['madison_status_UserName']) { Gadget::redirect('/admin'); } $result = $dbi->q_all(" SELECT DeliveryDate, ItemName, ItemID, Allergies, Letter_Code, IngredientName, ItemIngredients.Amount, `Count`, FirstName, LastName, Comments, CustomerID, kitchen_note, IngredientID, Type, IF((TransactionNumber IS NOT NULL OR Chefs_Tasting = '1'), '1', '0') AS TransactionStatus FROM KitchenReport1 JOIN ItemIngredients USING (ItemID) JOIN Ingredients USING (IngredientID) LEFT JOIN Customers USING (CustomerID) GROUP BY ItemName, Customers.CustomerID, IngredientID, Letter_Code ORDER BY ItemName, Customers.CustomerID, Letter_Code"); $meals = array(); foreach ($result as $row) { $item = &$meals[htmlspecialchars($row->ItemName)]; $item->Ingredients[$row->IngredientID . $row->Letter_Code] = (object) array( 'IngredientName' => htmlspecialchars($row->IngredientName), 'Amount' => $row->Amount, 'Type' => $row->Type, 'Letter_Code' => htmlspecialchars($row->Letter_Code), ); $item->Customers[$row->CustomerID] = (object) array( 'Allergies' => htmlspecialchars($row->Allergies), 'ItemName' => $row->ItemName, 'Count' => $row->Count, 'Name' => htmlspecialchars($row->FirstName . ' ' . $row->LastName), 'Comments' => htmlspecialchars($row->Comments),
/** * Appends data from <Preload> elements to make them available to * gadgets.io. * * @param gadget */ private function appendPreloads(Gadget $gadget, GadgetContext $context) { $resp = array(); $gadgetSigner = Config::get('security_token_signer'); $gadgetSigner = new $gadgetSigner(); $token = ''; try { $token = $context->extractAndValidateToken($gadgetSigner); } catch (Exception $e) { $token = ''; // no token given, safe to ignore } $unsignedRequests = $unsignedContexts = array(); $signedRequests = array(); foreach ($gadget->getPreloads() as $preload) { try { if (($preload->getAuth() == Auth::$NONE || $token != null) && (count($preload->getViews()) == 0 || in_array($context->getView(), $preload->getViews()))) { $request = new RemoteContentRequest($preload->getHref()); $request->createRemoteContentRequestWithUri($preload->getHref()); $request->getOptions()->ownerSigned = $preload->isSignOwner(); $request->getOptions()->viewerSigned = $preload->isSignViewer(); switch (strtoupper(trim($preload->getAuth()))) { case "NONE": // Unify all unsigned requests to one single multi request $unsignedRequests[] = $request; $unsignedContexts[] = $context; break; case "SIGNED": // Unify all signed requests to one single multi request $signingFetcherFactory = new SigningFetcherFactory(Config::get("private_key_file")); $fetcher = $signingFetcherFactory->getSigningFetcher(new BasicRemoteContentFetcher(), $token); $req = $fetcher->signRequest($preload->getHref(), $request->getMethod()); $req->setNotSignedUri($preload->getHref()); $signedRequests[] = $req; break; default: @ob_end_clean(); header("HTTP/1.0 500 Internal Server Error", true); echo "<html><body><h1>" . "500 - Internal Server Error" . "</h1></body></html>"; die; } } } catch (Exception $e) { throw new Exception($e); } } if (count($unsignedRequests)) { try { $brc = new BasicRemoteContent(); $responses = $brc->multiFetch($unsignedRequests, $unsignedContexts); foreach ($responses as $response) { $resp[$response->getUrl()] = array('body' => $response->getResponseContent(), 'rc' => $response->getHttpCode()); } } catch (Exception $e) { throw new Exception($e); } } if (count($signedRequests)) { try { $fetcher = $signingFetcherFactory->getSigningFetcher(new BasicRemoteContentFetcher(), $token); $responses = $fetcher->multiFetchRequest($signedRequests); foreach ($responses as $response) { $resp[$response->getNotSignedUrl()] = array('body' => $response->getResponseContent(), 'rc' => $response->getHttpCode()); } } catch (Exception $e) { throw new Exception($e); } } $resp = count($resp) ? json_encode($resp) : "{}"; return "gadgets.io.preloaded_ = " . $resp . ";\n"; }
/** * echos all js */ public function print_js() { if ($this->aggregate_js) { $this->_create_aggregate_js(); } foreach ($this->js as $script) { if (strpos($script, '/') === 0) { $script = BASE_URL . $script; } echo "\n<script src='{$script}'></script>"; } if ($messages = Gadget::get_messages()) { $js .= "\n\$(window).load(function(){\n"; foreach ($messages as $message) { $js .= "alert('{$message}');\n"; } $js .= "});\n"; } $js .= $this->inline_js; if ($js) { echo "\n<script type='text/javascript'>{$js}</script>"; } }
} if ($meals) { if (isset($_SESSION['new_order']) && !empty($_SESSION['new_order'])) { if ($PromoCodeID !== NULL) { $_SESSION['new_order']['PromoCodeID'] = $PromoCodeID; } //$_SESSION['new_order']['meals'] = array_replace($_SESSION['new_order']['meals'], $meals); } else { /*$_SESSION['new_order'] = array( 'PromoCodeID' => $PromoCodeID, 'meals' => $meals, );*/ $_SESSION['new_order']['PromoCodeID'] = $PromoCodeID; } Gadget::redirect('checkout-sydcon'); } else { // empty order, just clear it here /*$order->PromoCodeID = $PromoCodeID; $order->DeliveryDate = Gadget::$date_do->format(DATE_FORMAT_MYSQL); $order->CustomerID = $krustomer->CustomerID; foreach ($meals as $key => $value) { $order->add_meal($key, (int) $value['n'], (int) $value['v'], '0'); } $order->insert();*/ } Access::protect_page(); }