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'); }
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'); }
$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'];
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); } }
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')); }