Exemplo n.º 1
0
 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;
 }
Exemplo n.º 3
0
 public function up()
 {
     $gadget = new Gadget();
     $gadget->setType('loginTop');
     $gadget->setName('loginForm');
     $gadget->setSortOrder(10);
     $gadget->save();
 }
Exemplo n.º 4
0
 /**
  * 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());
 }
Exemplo n.º 5
0
 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();
     }
 }
Exemplo n.º 7
0
 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);
 }
Exemplo n.º 10
0
 /**
  * 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;
     }
 }
Exemplo n.º 11
0
    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['&lt;gadget-section-remove-section&gt;']), 'Must not show empty sections');
        $this->assertTrue(isset($options['&lt;gadget-section-keep-section1&gt;']));
        $this->assertTrue(isset($options['&lt;gadget-section-keep-section2&gt;']));
        // 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);
 }
Exemplo n.º 13
0
 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();
 }
Exemplo n.º 16
0
    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['&lt;gadget-section-remove-section&gt;']), 'Must not show empty sections');
        $this->assertTrue(isset($options['&lt;gadget-section-keep-section1&gt;']));
        $this->assertTrue(isset($options['&lt;gadget-section-keep-section2&gt;']));
    }
Exemplo n.º 17
0
 /**
  * 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;
         }
     }
 }
Exemplo n.º 18
0
<?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{
Exemplo n.º 19
0
                        $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;">
Exemplo n.º 20
0
 /**
  * @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()));
 }
Exemplo n.º 21
0
    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);
Exemplo n.º 22
0
 /**
  * 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);
 }
Exemplo n.º 24
0
        </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>
Exemplo n.º 25
0
 /**
  * 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;
 }
Exemplo n.º 26
0
        $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),
Exemplo n.º 28
0
 /**
  * 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";
 }
Exemplo n.º 29
0
 /**
  * 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>";
     }
 }
Exemplo n.º 30
0
    }

    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();
}