/**
  * Parses randomized include code
  * @param \HTML_Template_Sigma $template Template to parse
  * @param array $urls List of URLs to get random include tag for
  */
 protected function parseRandomizedIncludeCode($template, $urls)
 {
     foreach ($urls as $i => $url) {
         $template->setVariable('CONTENT', $url);
         $block = 'content';
         if ($i == 0) {
             $block = 'first_content';
         }
         $template->parse($block);
     }
 }
 /**
  * Parses randomized include code
  * @param \HTML_Template_Sigma $template Template to parse
  * @param array $urls List of URLs to get random include tag for
  */
 protected function parseRandomizedIncludeCode($template, $urls)
 {
     for ($i = 0; $i < 60; $i++) {
         $index = $i % count($urls);
         $url = $urls[$index];
         $template->setVariable(array('I' => $i, 'CONTENT' => $url));
         $block = 'content';
         if ($i == 0) {
             $block = 'first_content';
         }
         $template->parse($block);
     }
 }
示例#3
0
 function replaceBlockfile($block, $filename, $keepContent = false)
 {
     $this->mapCustomizing($filename);
     $return = parent::replaceBlockfile($block, $filename, $keepContent);
     $this->unmapCustomizing();
     return $return;
 }
 function renderEntry($node, $level, $type)
 {
     if (in_array($this->_menuType, array('tree', 'sitemap', 'rows')) && $this->_tpl->blockExists($this->_prefix . ($level + 1) . '_' . $this->_typeNames[$type])) {
         $blockName = $this->_prefix . ($level + 1) . '_' . $this->_typeNames[$type];
     } else {
         $blockName = $this->_prefix . $this->_typeNames[$type];
     }
     if (('tree' == $this->_menuType || 'sitemap' == $this->_menuType) && $this->_tpl->blockExists($blockName . '_indent')) {
         for ($i = 0; $i < $level; $i++) {
             $this->_tpl->touchBlock($blockName . '_indent');
             $this->_tpl->parse($blockName . '_indent');
         }
     }
     foreach ($node as $k => $v) {
         if ('sub' != $k && $this->_tpl->placeholderExists($this->_prefix . $k, $blockName)) {
             $this->_tpl->setVariable($this->_prefix . $k, $v);
         }
     }
     $this->_tpl->parse($blockName);
     if ('rows' == $this->_menuType && $this->_tpl->blockExists($this->_prefix . ($level + 1) . '_entry_loop')) {
         $this->_tpl->parse($this->_prefix . ($level + 1) . '_entry_loop');
     } else {
         $this->_tpl->parse($this->_prefix . 'entry_loop');
     }
 }
示例#5
0
 function _renderForm(&$page)
 {
     $pageName = $page->getAttribute('name');
     $tabPreview = array_slice($page->controller->_tabs, -2, 1);
     // can use either HTML_Template_Sigma or HTML_Template_ITX
     $tpl = new HTML_Template_Sigma('.', 'cache/');
     $tpl->loadTemplateFile('itdynamic.html');
     // on preview tab, add progress bar javascript and stylesheet
     if ($pageName == $tabPreview[0][0]) {
         $pb = $page->controller->createProgressBar();
         $tpl->setVariable(array('qf_style' => $pb->getStyle(), 'qf_script' => $pb->getScript()));
         $pbElement = $page->getElement('progressBar');
         $pbElement->setText($pb->toHtml() . '<br /><br />');
     }
     $renderer = new HTML_QuickForm_Renderer_ITDynamic($tpl);
     $renderer->setElementBlock(array('buttons' => 'qf_buttons'));
     $page->accept($renderer);
     $tpl->show();
 }
 function renderEntry($node, $level, $type)
 {
     // Close the entry if previous was on same or higher level
     if ($this->_level >= $level) {
         if ($this->_tpl->blockExists($this->_prefix . ($level + 1) . '_entry_close')) {
             $this->_tpl->touchBlock($this->_prefix . ($level + 1) . '_entry_close');
         } else {
             $this->_tpl->touchBlock($this->_prefix . 'entry_close');
         }
         $this->_tpl->parse($this->_prefix . 'tree_loop');
         // If the new level is higher then open the level
     } else {
         if ($this->_tpl->blockExists($this->_prefix . ($level + 1) . '_level_open')) {
             $this->_tpl->touchBlock($this->_prefix . ($level + 1) . '_level_open');
         } else {
             $this->_tpl->touchBlock($this->_prefix . 'level_open');
         }
         $this->_tpl->parse($this->_prefix . 'tree_loop');
     }
     // Open the entry
     if ($this->_tpl->blockExists($this->_prefix . ($level + 1) . '_entry_open')) {
         $this->_tpl->touchBlock($this->_prefix . ($level + 1) . '_entry_open');
     } else {
         $this->_tpl->touchBlock($this->_prefix . 'entry_open');
     }
     $this->_tpl->parse($this->_prefix . 'tree_loop');
     if ($this->_tpl->blockExists($this->_prefix . ($level + 1) . '_' . $this->_typeNames[$type])) {
         $blockName = $this->_prefix . ($level + 1) . '_' . $this->_typeNames[$type];
     } else {
         $blockName = $this->_prefix . $this->_typeNames[$type];
     }
     foreach ($node as $k => $v) {
         if ('sub' != $k && $this->_tpl->placeholderExists($this->_prefix . $k, $blockName)) {
             $this->_tpl->setVariable($this->_prefix . $k, $v);
         }
     }
     $this->_tpl->parse($blockName);
     $this->_tpl->parse($this->_prefix . 'tree_loop');
     $this->_level = $level;
 }
示例#7
0
 /**
  * Returns the name of a block to use for element rendering
  * 
  * If a name was not explicitly set via setElementBlock(), it tries
  * the names '{prefix}_{element type}' and '{prefix}_{element}', where
  * prefix is either 'qf' or the name of the current group's block
  * 
  * @param HTML_QuickForm_element     form element being rendered
  * @access private
  * @return string    block name
  */
  function _matchBlock(&$element)
  {
      $name = $element->getName();
      $type = $element->getType();
      if (isset($this->_elementBlocks[$name]) && $this->_tpl->blockExists($this->_elementBlocks[$name])) {
          if (('group' == $type) || ($this->_elementBlocks[$name] . '_loop' != $this->_tpl->currentBlock)) {
              return $this->_elementBlocks[$name];
          }
      }
      if ('group' != $type && 'qf_main_loop' != $this->_tpl->currentBlock) {
          $prefix = substr($this->_tpl->currentBlock, 0, -5); // omit '_loop' postfix
      } else {
          $prefix = 'qf';
      }
      if ($this->_tpl->blockExists($prefix . '_' . $type)) {
          return $prefix . '_' . $type;
      } elseif ($this->_tpl->blockExists($prefix . '_' . $name)) {
          return $prefix . '_' . $name;
      } else {
          return $prefix . '_element';
      }
  }
示例#8
0
<table{class}>
<!-- BEGIN label_2 --><tr><th>{label_2}</th><!-- END label_2 -->
<!-- BEGIN label_3 --><th>&nbsp;</th><th>{label_3}</th></tr><!-- END label_3 -->
<tr>
  <td valign="top">{unselected}</td>
  <td align="center">{add}{remove}</td>
  <td valign="top">{selected}</td>
</tr>
</table>
';
$ams->setElementTemplate($template);
if (isset($_POST['fruit'])) {
    $form->setDefaults(array('fruit' => $_POST['fruit']));
}
$form->addElement('submit', 'send', 'Send', array('class' => 'inputCommand'));
$form->addRule('name', 'Your name is required', 'required');
$form->addGroupRule('fruit', 'At least one fruit is required', 'required', null, 1);
$form->applyFilter('__ALL__', 'trim');
$form->applyFilter('__ALL__', 'strip_tags');
$valid = $form->validate();
$tpl = new HTML_Template_Sigma('.');
$tpl->loadTemplateFile('itdynamic.html');
$tpl->setVariable('ams_javascript', $ams->getElementJs(false));
$renderer = new HTML_QuickForm_Renderer_ITDynamic($tpl);
$form->accept($renderer);
if ($valid) {
    $clean = $form->getSubmitValues();
    $msg = sprintf("<p>Welcome <b>%s</b> you've selected these fruits:<br />%s</p>", $clean['name'], implode(', ', $clean['fruit']));
    $tpl->setVariable('message_form_validate', $msg);
}
$tpl->show();
 /**
  * setVariable()
  *
  * @access public
  * @param  mixed  $mVariable string | array
  * @param  mixed  $mValue    string | integer | float | array
  * @param  string $sConvert
  * @param  mixed  $mFormat   string | integer
  * @return void
  */
 function setVariable($mVariable, $mValue = '', $sConvert = '', $mFormat = 0)
 {
     if (is_array($mVariable)) {
         foreach ($mVariable as $sKey => $mRow) {
             $mVariable[$sKey] = _btplConvertValue($mRow, $sConvert, $mFormat);
         }
     } else {
         $mValue = _btplConvertValue($mValue, $sConvert, $mFormat);
     }
     parent::setVariable($mVariable, $mValue);
 }
示例#10
0
 /**
  * Sobrecarga del metodo base
  * @access private
  * @see parent::errorMessage($code, $data = null)  
  */
 function errorMessage($code, $data = null)
 {
     static $errorMessages;
     if (!isset($errorMessages)) {
         $errorMessages = array(SIGMAX_FULL_CACHE_ERROR => 'No se puede escribir el archivo de cache full del template \'%s\'', SIGMAX_TPL_CACHE_NOT_FOUND => 'No se puede leer el archivo de cache del template \'%s\'', SIGMAX_CONF_FILE_NOT_FOUND => 'No se puede leer el archivo de configuracion \'%s\'');
     }
     if (!isset($errorMessages[$code])) {
         return parent::errorMessage($code, $data);
     } else {
         return null === $data ? $errorMessages[$code] : sprintf($errorMessages[$code], $data);
     }
 }
 private function getTreeCode()
 {
     if (count($this->arrMigrateLangIds) === 1) {
         return true;
     }
     $jsSimilarPages = array();
     $this->similarPages = $this->findSimilarPages();
     foreach ($this->similarPages as $nodeId => $arrPageIds) {
         $jsSimilarPages[$nodeId] = array_values($arrPageIds);
         foreach ($this->arrMigrateLangIds as $migrateLangId) {
             if (!isset($arrPageIds[$migrateLangId])) {
                 $this->similarPages[$nodeId][$migrateLangId] = 0;
             }
         }
         ksort($this->similarPages[$nodeId]);
     }
     $objCx = \ContrexxJavascript::getInstance();
     $objCx->setVariable('similarPages', json_encode($jsSimilarPages), 'update/contentMigration');
     $objTemplate = new \HTML_Template_Sigma(UPDATE_TPL);
     $objTemplate->setErrorHandling(PEAR_ERROR_DIE);
     $objTemplate->loadTemplateFile('page_grouping.html');
     $groupedBorderWidth = count($this->arrMigrateLangIds) * 325 - 48;
     $objTemplate->setGlobalVariable(array('USERNAME' => $_SESSION['contrexx_update']['username'], 'PASSWORD' => $_SESSION['contrexx_update']['password'], 'CMS_VERSION' => $_SESSION['contrexx_update']['version'], 'MIGRATE_LANG_IDS' => $this->migrateLangIds, 'LANGUAGE_WRAPPER_WIDTH' => 'width: ' . count($this->arrMigrateLangIds) * 330 . 'px;', 'GROUPED_SCROLL_WIDTH' => 'width: ' . count($this->arrMigrateLangIds) * 325 . 'px;', 'GROUPED_BORDER_WIDTH' => 'width: ' . $groupedBorderWidth . 'px;'));
     $cl = \Env::get('ClassLoader');
     $cl->loadFile(ASCMS_CORE_PATH . '/Tree.class.php');
     $cl->loadFile(UPDATE_CORE . '/UpdateTree.class.php');
     $pageRepo = self::$em->getRepository('Cx\\Core\\ContentManager\\Model\\Entity\\Page');
     $nodeRepo = self::$em->getRepository('Cx\\Core\\ContentManager\\Model\\Entity\\Node');
     foreach ($this->arrMigrateLangIds as $lang) {
         $objContentTree = new \UpdateContentTree($lang);
         foreach ($objContentTree->getTree() as $arrPage) {
             $pageId = $arrPage['catid'];
             $nodeId = $arrPage['node_id'];
             $langId = $arrPage['lang'];
             $level = $arrPage['level'];
             $title = $arrPage['catname'];
             $sort = $nodeRepo->find($nodeId)->getLft();
             $grouped = $this->isGrouppedPage($this->similarPages, $pageId) ? 'grouped' : '';
             $objTemplate->setVariable(array('TITLE' => $title, 'ID' => $pageId, 'NODE' => $nodeId, 'LANG' => strtoupper(\FWLanguage::getLanguageCodeById($langId)), 'LEVEL' => $level + 1, 'SORT' => $sort, 'GROUPED' => $grouped, 'MARGIN' => 'margin-left: ' . $level * 15 . 'px;'));
             $objTemplate->parse('page');
         }
         $langFull = \FWLanguage::getLanguageParameter($lang, 'name');
         $langShort = strtoupper(\FWLanguage::getLanguageParameter($lang, 'lang'));
         $objTemplate->setVariable(array('LANG_FULL' => $langFull, 'LANG_SHORT' => $langShort));
         $objTemplate->parse('language');
     }
     $groupedBorderWidth -= 2;
     foreach ($this->similarPages as $nodeId => $arrPageIds) {
         $node = $nodeRepo->find($nodeId);
         $margin = ($node->getLvl() - 1) * 15;
         $nodeWidth = $groupedBorderWidth - $margin;
         $width = ($groupedBorderWidth - 10) / count($this->arrMigrateLangIds);
         $index = 0;
         $last = count($arrPageIds) - 1;
         foreach ($arrPageIds as $pageLangId => $pageId) {
             if ($index === 0) {
                 $pageWidth = $width - 24;
             } elseif ($index === $last) {
                 $pageWidth = $width - $margin;
             } else {
                 $pageWidth = $width;
             }
             $index++;
             $page = $pageRepo->find($pageId);
             if ($page) {
                 $langCode = strtoupper(\FWLanguage::getLanguageCodeById($page->getLang()));
                 $objTemplate->setVariable(array('CLASS' => '', 'DATA_ID' => 'data-id="' . $pageId . '"', 'DATA_LANG' => 'data-lang="' . $langCode . '"', 'TITLE' => $page->getTitle(), 'LANG' => $langCode, 'WIDTH' => 'width: ' . $pageWidth . 'px;'));
             } else {
                 $langCode = strtoupper(\FWLanguage::getLanguageCodeById($pageLangId));
                 $objTemplate->setVariable(array('CLASS' => 'no-page', 'DATA_ID' => '', 'DATA_LANG' => '', 'TITLE' => 'Keine Seite', 'LANG' => $langCode, 'WIDTH' => 'width: ' . $pageWidth . 'px;'));
             }
             $objTemplate->parse('groupedPage');
         }
         $objTemplate->setVariable(array('ID' => $nodeId, 'LEVEL' => $node->getLvl(), 'SORT' => $node->getLft(), 'STYLE' => 'width: ' . $nodeWidth . 'px; margin-left: ' . $margin . 'px;'));
         $objTemplate->parse('groupedNode');
     }
     return $objTemplate->get();
 }
示例#12
0
$basePath = realpath(dirname(__FILE__));
if (!@(include_once $basePath . '/config/config.php')) {
    die('Unable to load file ' . $basePath . '/config/config.php');
}
require_once $basePath . '/classloader.inc.php';
@header('content-type: text/html; charset=' . ($useUtf8 ? 'UTF-8' : 'ISO-8859-1'));
if (!@(include_once ASCMS_LIBRARY_PATH . '/PEAR/HTML/Template/Sigma/Sigma.php')) {
    die('Unable to load file ' . ASCMS_LIBRARY_PATH . '/PEAR/HTML/Template/Sigma/Sigma.php');
}
if (!@(include_once $basePath . '/common.class.php')) {
    die('Unable to load file ' . $basePath . '/common.class.php');
}
if (!@(include_once $basePath . '/installer.class.php')) {
    die('Unable to load file ' . $basePath . '/installer.class.php');
}
if (!@(include_once $basePath . '/../core/Env.class.php')) {
    die('Unable to load file ' . $basePath . '/../core/Env.class.php');
}
$objCommon = new CommonFunctions();
$objInstaller = new Installer();
$objCommon->initLanguage();
$objTpl = new HTML_Template_Sigma($templatePath);
$objTpl->setErrorHandling(PEAR_ERROR_DIE);
$objTpl->loadTemplateFile('index.html');
$objTpl->setVariable('CHARSET', $useUtf8 ? 'UTF-8' : 'ISO-8859-1');
$objTpl->setVariable($_ARRLANG);
$objInstaller->checkOptions();
$objInstaller->getNavigation();
$objInstaller->getPage();
$objInstaller->getContentNavigation();
$objTpl->show();
示例#13
0
 /**
  * Check if the given block exist and if it exist the given block is parsed.
  * Otherwise an error is logged.
  *
  * @param    string    block name
  * @param    boolean   true if the function is called recursively (do not set this to true yourself!)
  * @param    boolean   true if parsing a "hidden" block (do not set this to true yourself!)
  * @return   boolean   true if block is not empty
  */
 function parse($block = '__global__', $flagRecursion = false, $fakeParse = false)
 {
     if (!$this->blockExists($block)) {
         \DBG::log('The SIGMA-Block ' . $block . ' does not exist');
         return false;
     }
     return parent::parse($block, $flagRecursion, $fakeParse);
 }
示例#14
0
 /**
  * View of this Orders' items
  * @global  ADONewConnection    $objDatabase
  * @global  array               $_ARRAYLANG
  * @param   HTML_Template_Sigma $objTemplate    The template
  * @param   type                $edit           If true, items are editable
  * @param   type                $total_weight   Initial value for the
  *                                              total item weight, by
  *                                              reference.
  *                                              Usually empty or zero
  * @param   type                $i              Initial value for the row
  *                                              count, by reference.
  *                                              Usually empty or zero.
  * @return  float                               The net item sum on success,
  *                                              false otherwise
  */
 function view_items($objTemplate, $edit, &$total_weight = 0, $i = 0)
 {
     global $objDatabase, $_ARRAYLANG;
     // Order items
     // c_sp
     // Mind the custom price calculation
     $objCustomer = Customer::getById($this->customer_id);
     if (!$objCustomer) {
         \Message::error(sprintf($_ARRAYLANG['TXT_SHOP_ORDER_ERROR_MISSING_CUSTOMER'], $this->customer_id));
         $objCustomer = new Customer();
     }
     $query = "\n            SELECT `id`, `product_id`, `product_name`,\n                   `price`, `quantity`, `vat_rate`, `weight`\n              FROM `" . DBPREFIX . "module_shop" . MODULE_INDEX . "_order_items`\n             WHERE `order_id`=?";
     $objResult = $objDatabase->Execute($query, array($this->id));
     if (!$objResult) {
         return self::errorHandler();
     }
     $arrProductOptions = $this->getOptionArray();
     $total_vat_amount = 0;
     $total_net_price = 0;
     // Orders with Attributes cannot currently be edited
     // (this would spoil all the options!)
     //        $have_option = false;
     while (!$objResult->EOF) {
         $item_id = $objResult->fields['id'];
         $name = $objResult->fields['product_name'];
         $price = $objResult->fields['price'];
         $quantity = $objResult->fields['quantity'];
         $vat_rate = $objResult->fields['vat_rate'];
         $product_id = $objResult->fields['product_id'];
         // Get missing product details
         $objProduct = Product::getById($product_id);
         if (!$objProduct) {
             \Message::warning(sprintf($_ARRAYLANG['TXT_SHOP_PRODUCT_NOT_FOUND'], $product_id));
             $objProduct = new Product('', 0, $name, '', $price, 0, 0, 0, $product_id);
         }
         $code = $objProduct->code();
         $distribution = $objProduct->distribution();
         if (isset($arrProductOptions[$item_id])) {
             if ($edit) {
                 // Edit options
             } else {
                 //DBG::log("Order::view_items(): Item ID $item_id, Attributes: ".var_export($arrProductOptions[$item_id], true));
                 // Verify that options are properly shown
                 foreach ($arrProductOptions[$item_id] as $attribute_id => $attribute) {
                     //DBG::log("Order::view_items(): Added option, price: $options_price");
                     foreach ($attribute as $a) {
                         $name .= '<i><br />- ' . $attribute_id . ': ' . $a['name'] . ' (' . $a['price'] . ')</i>';
                         $price += $a['price'];
                     }
                 }
             }
         }
         // c_sp
         $row_net_price = $price * $quantity;
         $row_price = $row_net_price;
         // VAT added later, if applicable
         $total_net_price += $row_net_price;
         // Here, the VAT has to be recalculated before setting up the
         // fields.  If the VAT is excluded, it must be added here.
         // Note: the old Order.vat_amount field is no longer valid,
         // individual shop_order_items *MUST* have been UPDATEd by the
         // time PHP parses this line.
         // Also note that this implies that the vat_id and
         // country_id can be ignored, as they are considered when the
         // order is placed and the VAT is applied to the order
         // accordingly.
         // Calculate the VAT amount per row, included or excluded
         $row_vat_amount = Vat::amount($vat_rate, $row_net_price);
         //\DBG::log("$row_vat_amount = Vat::amount($vat_rate, $row_net_price)");
         // and add it to the total VAT amount
         $total_vat_amount += $row_vat_amount;
         if (!Vat::isIncluded()) {
             // Add tax to price
             $row_price += $row_vat_amount;
         }
         //else {
         // VAT is disabled.
         // There shouldn't be any non-zero percentages in the order_items!
         // but if there are, there probably has been a change and we *SHOULD*
         // still treat them as if VAT had been enabled at the time the order
         // was placed!
         // That's why the else {} block is commented out.
         //}
         $weight = '-';
         if ($distribution != 'download') {
             $weight = $objResult->fields['weight'];
             if (intval($weight) > 0) {
                 $total_weight += $weight * $quantity;
             }
         }
         $itemHasOptions = !empty($arrProductOptions[$item_id]);
         $objTemplate->setVariable(array('SHOP_PRODUCT_ID' => $product_id, 'SHOP_ROWCLASS' => 'row' . (++$i % 2 + 1), 'SHOP_QUANTITY' => $quantity, 'SHOP_PRODUCT_NAME' => $name, 'SHOP_PRODUCT_PRICE' => Currency::formatPrice($price), 'SHOP_PRODUCT_SUM' => Currency::formatPrice($row_net_price), 'SHOP_P_ID' => $edit ? $item_id : $objResult->fields['product_id'], 'SHOP_PRODUCT_CODE' => $code, 'SHOP_PRODUCT_TAX_RATE' => $edit ? $vat_rate : Vat::format($vat_rate), 'SHOP_PRODUCT_TAX_AMOUNT' => Currency::formatPrice($row_vat_amount), 'SHOP_PRODUCT_WEIGHT' => Weight::getWeightString($weight), 'SHOP_ACCOUNT_VALIDITY' => \FWUser::getValidityString($weight)));
         // Get a product menu for each Product if $edit-ing.
         // Preselect the current Product ID.
         if ($edit) {
             if ($itemHasOptions && $objTemplate->blockExists('order_item_product_options_tooltip')) {
                 $objTemplate->touchBlock('order_item_product_options_tooltip');
             }
             $objTemplate->setVariable('SHOP_PRODUCT_IDS_MENU', Products::getMenuoptions($product_id, null, +$_ARRAYLANG['TXT_SHOP_PRODUCT_MENU_FORMAT'], false));
         }
         $objTemplate->parse('order_item');
         $objResult->MoveNext();
     }
     return $total_net_price;
 }
示例#15
0
 /**
  * Loads a template file based on $this->parseMode and $this->dirname
  * @param string $filename Template base filename
  * @return \HTML_Template_Sigma Requested template
  */
 protected function getTemplateFile($filename)
 {
     $template = new \HTML_Template_Sigma($this->dirname . '/View/Template/Global');
     $template->loadTemplateFile($filename . strtoupper($this->parseMode) . '.html');
     return $template;
 }