Beispiel #1
0
 public function listing()
 {
     $app = JFactory::getApplication();
     $db = JFactory::getDBO();
     hikaserial::setTitle(JText::_(self::name), self::icon, self::ctrl);
     $config = hikaserial::config();
     $this->assignRef('config', $config);
     $toggleClass = hikaserial::get('helper.toggle');
     $this->assignRef('toggleClass', $toggleClass);
     $manage = hikaserial::isAllowed($config->get('acl_plugins_manage', 'all'));
     $this->assignRef('manage', $manage);
     $type = $app->getUserStateFromRequest(HIKASERIAL_COMPONENT . '.plugin_type', 'plugin_type', 'generator');
     $group = 'hikaserial';
     //.$type;
     if (!HIKASHOP_J16) {
         $query = 'SELECT * FROM ' . hikaserial::table('plugins', false) . ' WHERE `folder` = ' . $db->Quote($group) . ' ORDER BY published DESC, ordering ASC';
     } else {
         $query = 'SELECT extension_id as id, enabled as published, name, element FROM ' . hikaserial::table('extensions', false) . ' WHERE `folder` = ' . $db->Quote($group) . ' AND type=\'plugin\' ORDER BY enabled DESC, ordering ASC';
     }
     $db->setQuery($query);
     $plugins = $db->loadObjectList();
     $this->assignRef('plugins', $plugins);
     $this->assignRef('plugin_type', $type);
     $this->toolbar = array('|', array('name' => 'pophelp', 'target' => self::ctrl . '-listing'), 'dashboard');
 }
Beispiel #2
0
 public function config($tpl = null)
 {
     hikaserial::setTitle(JText::_(self::name), self::icon, self::ctrl);
     $config = hikaserial::config();
     $this->assignRef('config', $config);
     $popup = hikaserial::get('shop.helper.popup');
     $this->assignRef('popup', $popup);
     $serialstatusType = hikaserial::get('type.serial_status');
     $this->assignRef('serial_status', $serialstatusType);
     $orderstatusType = hikaserial::get('type.order_status');
     $this->assignRef('orderstatusType', $orderstatusType);
     $manage = hikaserial::isAllowed($config->get('acl_config_manage', 'all'));
     $this->assignRef('manage', $manage);
     $toggleClass = hikaserial::get('helper.toggle');
     $languages = array();
     $lg = JFactory::getLanguage();
     $language = $lg->getTag();
     $styleRemind = 'float:right;margin-right:30px;position:relative;';
     $loadLink = $popup->display(JText::_('LOAD_LATEST_LANGUAGE'), 'EDIT_LANGUAGE_FILE', hikaserial::completeLink('config&task=latest&code=' . $language, true), 'loadlatest_language_' . $language, 800, 500, 'onclick="window.document.getElementById(\'hikashop_messages_warning\').style.display = \'none\';"', '', 'link');
     if (!file_exists(HIKASHOP_ROOT . 'language' . DS . $language . DS . $language . '.' . HIKASERIAL_COMPONENT . '.ini')) {
         if ($config->get('errorlanguagemissing', 1)) {
             $noteremind = '<small style="' . $styleRemind . '">' . $toggleClass->delete('hikashop_messages_warning', 'errorlanguagemissing-0', 'config', false, JText::_('DONT_REMIND')) . '</small>';
             hikaserial::display(JText::_('MISSING_LANGUAGE') . ' ' . $loadLink . ' ' . $noteremind, 'warning');
         }
     }
     $edit_image = HIKASHOP_IMAGES . 'icons/icon-16-edit.png';
     $new_image = HIKASHOP_IMAGES . 'icons/icon-16-new.png';
     jimport('joomla.filesystem.folder');
     $path = JLanguage::getLanguagePath(JPATH_ROOT);
     $dirs = JFolder::folders($path);
     foreach ($dirs as $dir) {
         $xmlFiles = JFolder::files($path . DS . $dir, '^([-_A-Za-z]*)\\.xml$');
         $xmlFile = array_pop($xmlFiles);
         if ($xmlFile == 'install.xml') {
             $xmlFile = array_pop($xmlFiles);
         }
         if (empty($xmlFile)) {
             continue;
         }
         $data = JApplicationHelper::parseXMLLangMetaFile($path . DS . $dir . DS . $xmlFile);
         $oneLanguage = new stdClass();
         $oneLanguage->language = $dir;
         $oneLanguage->name = $data['name'];
         $languageFiles = JFolder::files($path . DS . $dir, '^(.*)\\.' . HIKASERIAL_COMPONENT . '\\.ini$');
         $languageFile = reset($languageFiles);
         $linkEdit = hikaserial::completeLink('config&task=language&code=' . $oneLanguage->language, true, false, false);
         if (!empty($languageFile)) {
             $oneLanguage->edit = $popup->display('<img id="image' . $oneLanguage->language . '" src="' . $edit_image . '" alt="' . JText::_('EDIT_LANGUAGE_FILE', true) . '"/>', 'EDIT_LANGUAGE_FILE', $linkEdit, 'edit_language_' . $oneLanguage->language, 800, 500, '', '', 'link');
         } else {
             $oneLanguage->edit = $popup->display('<img id="image' . $oneLanguage->language . '" src="' . $new_image . '" alt="' . JText::_('ADD_LANGUAGE_FILE', true) . '"/>', 'ADD_LANGUAGE_FILE', $linkEdit, 'edit_language_' . $oneLanguage->language, 800, 500, '', '', 'link');
         }
         $languages[] = $oneLanguage;
     }
     $this->assignRef('languages', $languages);
     $this->toolbar = array('|', 'save', 'apply', 'hikacancel', '|', array('name' => 'pophelp', 'target' => 'config'), 'dashboard');
 }
Beispiel #3
0
             $html .= '<li class="l2' . $liclasses . '"><a class="' . $classes . '" href="' . $child['url'] . '" ' . $child['options'] . '>' . $icon . $child['name'] . '</a></li>' . "\r\n";
         }
     }
     if (!empty($html)) {
         if (!HIKASHOP_BACK_RESPONSIVE) {
             $html = '<ul>' . "\r\n" . $html . '</ul>';
         } else {
             $html = '<ul class="dropdown-menu">' . "\r\n" . $html . '</ul>';
         }
     }
 }
 $task = 'view';
 if (!empty($menu['task'])) {
     $task = $menu['task'];
 }
 if (!empty($menu['acl']) && !hikaserial::isAllowed($config->get('acl_' . $menu['acl'] . '_' . $task, 'all'))) {
     if (empty($html)) {
         continue;
     }
     $menu['url'] = '#';
 }
 $liclasses = '';
 $classes = '';
 if (isset($menu['active']) && $menu['active']) {
     $classes .= ' sel';
     $liclasses .= ' sel';
 }
 $icon = '';
 if (!empty($menu['icon'])) {
     if (!HIKASHOP_BACK_RESPONSIVE) {
         $classes .= ' ' . $menu['icon'];
Beispiel #4
0
 public function select()
 {
     $app = JFactory::getApplication();
     $db = JFactory::getDBO();
     hikaserial::setTitle(JText::_(self::name), self::icon, self::ctrl);
     $config = hikaserial::config();
     $this->assignRef('config', $config);
     $shopConfig = hikaserial::config(false);
     $this->assignRef('shopConfig', $shopConfig);
     $serialStatusType = hikaserial::get('type.serial_status');
     $this->assignRef('serialStatusType', $serialStatusType);
     $packType = hikaserial::get('type.pack');
     $this->assignRef('packType', $packType);
     $filterType = $app->getUserStateFromRequest($this->paramBase . ".filter_type", 'filter_type', 0, 'int');
     $singleSelection = JRequest::getVar('single', false);
     $this->assignRef('singleSelection', $singleSelection);
     $confirm = JRequest::getVar('confirm', true);
     $this->assignRef('confirm', $confirm);
     $elemStruct = array('serial_data', 'serial_id', 'serial_pack_id', 'serial_status', 'pack_name');
     $this->assignRef('elemStruct', $elemStruct);
     $cfg = array('table' => 'serial', 'main_key' => 'serial_id', 'order_sql_value' => 'a.serial_id');
     $manage = true;
     // TODO
     $this->assignRef('manage', $manage);
     $manage_shop_order = hikaserial::isAllowed($shopConfig->get('acl_order_manage', 'all'));
     $this->assignRef('manage_shop_order', $manage_shop_order);
     $manage_shop_user = hikaserial::isAllowed($shopConfig->get('acl_user_manage', 'all'));
     $this->assignRef('manage_shop_user', $manage_shop_user);
     $pageInfo = new stdClass();
     $filters = array();
     $pageInfo->filter = new stdClass();
     $pageInfo->filter->serial_status = $app->getUserStateFromRequest($this->paramBase . ".filter_status", 'filter_status', '', 'string');
     $pageInfo->filter->pack = $app->getUserStateFromRequest($this->paramBase . ".filter_pack", 'filter_pack', '', 'string');
     $pageInfo->filter->order = new stdClass();
     $pageInfo->filter->order->value = $app->getUserStateFromRequest($this->paramBase . ".filter_order", 'filter_order', $cfg['order_sql_value'], 'cmd');
     $pageInfo->filter->order->dir = $app->getUserStateFromRequest($this->paramBase . ".filter_order_Dir", 'filter_order_Dir', 'asc', 'word');
     $pageInfo->limit = new stdClass();
     $pageInfo->limit->value = $app->getUserStateFromRequest($this->paramBase . '.list_limit', 'limit', $app->getCfg('list_limit'), 'int');
     if (empty($pageInfo->limit->value)) {
         $pageInfo->limit->value = 500;
     }
     if (JRequest::getVar('search') != $app->getUserState($this->paramBase . ".search")) {
         $app->setUserState($this->paramBase . '.limitstart', 0);
         $pageInfo->limit->start = 0;
     } else {
         $pageInfo->limit->start = $app->getUserStateFromRequest($this->paramBase . '.limitstart', 'limitstart', 0, 'int');
     }
     $pageInfo->search = JString::strtolower($app->getUserStateFromRequest($this->paramBase . ".search", 'search', '', 'string'));
     $this->assignRef('pageInfo', $pageInfo);
     $filters = array();
     $searchMap = array('a.serial_id', 'a.serial_data', 'a.serial_status', 'b.pack_name', 'd.username');
     if (!empty($pageInfo->search)) {
         $searchVal = '\'%' . $db->getEscaped(JString::strtolower($pageInfo->search), true) . '%\'';
         $filters[] = '(' . implode(' LIKE ' . $searchVal . ' OR ', $searchMap) . ' LIKE ' . $searchVal . ')';
     }
     if (!empty($pageInfo->filter->serial_status)) {
         $filters[] = ' a.serial_status = ' . $db->quote($pageInfo->filter->serial_status);
     }
     if (!empty($pageInfo->filter->pack)) {
         if ((int) $pageInfo->filter->pack > 0) {
             $filters[] = ' b.pack_id = ' . (int) $pageInfo->filter->pack;
         } else {
             $filters[] = ' b.pack_name = ' . $db->quote($pageInfo->filter->pack);
         }
     }
     if (!empty($filters)) {
         $filters = ' WHERE ' . implode(' AND ', $filters);
     } else {
         $filters = '';
     }
     $order = '';
     if (!empty($pageInfo->filter->order->value)) {
         $order = ' ORDER BY ' . $pageInfo->filter->order->value . ' ' . $pageInfo->filter->order->dir;
     }
     $query = 'FROM ' . hikaserial::table($cfg['table']) . ' AS a INNER JOIN ' . hikaserial::table('pack') . ' AS b ON a.serial_pack_id = b.pack_id LEFT JOIN ' . hikaserial::table('shop.user') . ' AS c ON a.serial_user_id = c.user_id LEFT JOIN ' . hikaserial::table('users', false) . ' AS d ON c.user_cms_id = d.id LEFT JOIN ' . hikaserial::table('shop.order') . ' AS e ON a.serial_order_id = e.order_id ' . $filters . $order;
     $db->setQuery('SELECT * ' . $query, (int) $pageInfo->limit->start, (int) $pageInfo->limit->value);
     $rows = $db->loadObjectList();
     if (!empty($pageInfo->search)) {
         $rows = hikaserial::search($pageInfo->search, $rows, $cfg['main_key']);
     }
     $this->assignRef('rows', $rows);
     JPluginHelper::importPlugin('hikaserial');
     $dispatcher = JDispatcher::getInstance();
     $dispatcher->trigger('onDisplaySerials', array(&$rows, 'back-serial-listing'));
     $db->setQuery('SELECT COUNT(*) ' . $query);
     $pageInfo->elements = new stdClass();
     $pageInfo->elements->total = $db->loadResult();
     $pageInfo->elements->page = count($rows);
     jimport('joomla.html.pagination');
     if ($pageInfo->limit->value == 500) {
         $pageInfo->limit->value = 100;
     }
     $pagination = new JPagination($pageInfo->elements->total, $pageInfo->limit->start, $pageInfo->limit->value);
     $this->assignRef('pagination', $pagination);
     $doOrdering = !$filterType;
     $this->assignRef('doOrdering', $doOrdering);
     if ($doOrdering) {
         $ordering = new stdClass();
         $ordering->ordering = false;
         $ordering->orderUp = 'orderup';
         $ordering->orderDown = 'orderdown';
         $ordering->reverse = false;
         if ($pageInfo->filter->order->value == 'a.ordering') {
             $ordering->ordering = true;
             if ($pageInfo->filter->order->dir == 'desc') {
                 $ordering->orderUp = 'orderdown';
                 $ordering->orderDown = 'orderup';
                 $ordering->reverse = true;
             }
         }
         $this->assignRef('ordering', $ordering);
     }
 }
Beispiel #5
0
 public function form()
 {
     $app = JFactory::getApplication();
     $db = JFactory::getDBO();
     JHTML::_('behavior.modal');
     $ctrl = '';
     $cid = '';
     $cancelUrl = urlencode(base64_encode(hikaserial::completeLink('serial')));
     $this->assignRef('cancelUrl', $cancelUrl);
     $config = hikaserial::config();
     $this->assignRef('config', $config);
     $shopConfig = hikaserial::config(false);
     $this->assignRef('shopConfig', $shopConfig);
     $popup = hikaserial::get('shop.helper.popup');
     $this->assignRef('popup', $popup);
     $manage = true;
     // TODO
     $this->assignRef('manage', $manage);
     $manage_shop_order = hikaserial::isAllowed($shopConfig->get('acl_order_manage', 'all'));
     $this->assignRef('manage_shop_order', $manage_shop_order);
     $manage_shop_user = hikaserial::isAllowed($shopConfig->get('acl_user_manage', 'all'));
     $this->assignRef('manage_shop_user', $manage_shop_user);
     $serial = null;
     $serial_id = hikaserial::getCID();
     if (!empty($serial_id)) {
         $serialClass = hikaserial::get('class.serial');
         $serial = $serialClass->get($serial_id, true);
         $task = 'edit';
         $cid = '&cid[]=' . $serial_id;
         $cancelUrl = urlencode(base64_encode(hikaserial::completeLink('serial&task=edit&cid[]=' . $serial_id)));
     } else {
         $task = 'add';
     }
     $ctrl .= '&task=' . $task . $cid;
     $this->assignRef('task', $task);
     $this->assignRef('serial', $serial);
     JPluginHelper::importPlugin('hikaserial');
     $dispatcher = JDispatcher::getInstance();
     $serials = array(&$serial);
     $dispatcher->trigger('onDisplaySerials', array(&$serials, 'back-serial-form'));
     $packType = hikaserial::get('type.pack');
     $this->assignRef('packType', $packType);
     $serialStatusType = hikaserial::get('type.serial_status');
     $this->assignRef('serialStatusType', $serialStatusType);
     hikaserial::setTitle(JText::_(self::name), self::icon, self::ctrl . $ctrl);
     $this->toolbar = array('|', 'save', 'apply', 'hikacancel', '|', array('name' => 'pophelp', 'target' => self::ctrl . '-form'));
 }