diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 1f77f456..a0171b02 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -10,14 +10,210 @@ + + + + +

' . $this->l('Turn this option on if you want to check MyPresta.eu for module updates automatically. This option will display notification about new versions of this addon.') . '

+ + +
+ ' . $this->displayName . ' +

' . $this->l('This is direct link to official addon page, where you can read about changes in the module (changelog)') . '

+
+ + + + + + + '; + } else { + if (defined('_PS_ADMIN_DIR_')) { + if (Tools::isSubmit('submit_settings_updates')) { + Configuration::updateValue('mypresta_updates', Tools::getValue('mypresta_updates')); + } + if (Configuration::get('mypresta_updates') != 0 || (bool)Configuration::get('mypresta_updates') != false) { + if (Configuration::get('update_' . $this->name) < (date("U") - 259200)) { + $actual_version = blocktopdropdownmenuUpdate::verify($this->name, (isset($this->mkey) ? $this->mkey : 'nokey'), $this->version); + } + if (blocktopdropdownmenuUpdate::version($this->version) < blocktopdropdownmenuUpdate::version(Configuration::get('updatev_' . $this->name)) && Tools::getValue('ajax', 'false') == 'false') { + $this->context->controller->warnings[] = '' . $this->displayName . ': ' . $this->l('New version available, check http://MyPresta.eu for more informations') . ' ' . $this->l('More details in changelog') . ''; + $this->warning = $this->context->controller->warnings[0]; + } + } else { + if (Configuration::get('update_' . $this->name) < (date("U") - 259200)) { + $actual_version = blocktopdropdownmenuUpdate::verify($this->name, (isset($this->mkey) ? $this->mkey : 'nokey'), $this->version); + } + } + if ($display_msg == 1) { + if (blocktopdropdownmenuUpdate::version($this->version) < blocktopdropdownmenuUpdate::version(blocktopdropdownmenuUpdate::verify($this->name, (isset($this->mkey) ? $this->mkey : 'nokey'), $this->version))) { + return "" . $this->l('New version available!') . ""; + } else { + return "" . $this->l('Module is up to date!') . ""; + } + } + } + } + } + + public function displayAdvert() + { + return $this->display(__file__, 'views/templates/admin/advert.tpl'); + } + + public function install($delete_params = true) + { + if (!parent::install() || + !$this->registerHook('header') || + !$this->registerHook('displayTop') || + !$this->registerHook('actionObjectCategoryUpdateAfter') || + !$this->registerHook('actionObjectCategoryDeleteAfter') || + !$this->registerHook('actionObjectCategoryAddAfter') || + !$this->registerHook('actionObjectCmsUpdateAfter') || + !$this->registerHook('actionObjectCmsDeleteAfter') || + !$this->registerHook('actionObjectCmsAddAfter') || + !$this->registerHook('actionObjectSupplierUpdateAfter') || + !$this->registerHook('actionObjectSupplierDeleteAfter') || + !$this->registerHook('actionObjectSupplierAddAfter') || + !$this->registerHook('actionObjectManufacturerUpdateAfter') || + !$this->registerHook('actionObjectManufacturerDeleteAfter') || + !$this->registerHook('actionObjectManufacturerAddAfter') || + !$this->registerHook('actionObjectProductUpdateAfter') || + !$this->registerHook('actionObjectProductDeleteAfter') || + !$this->registerHook('actionObjectProductAddAfter') || + !$this->registerHook('categoryUpdate') || + !$this->registerHook('actionShopDataDuplication')) { + return false; + } + + $this->clearMenuCache(); + + if ($delete_params) { + if (!$this->installDb() || !Configuration::updateGlobalValue('MOD_blocktopdropdownmenu_ITEMS', 'CAT3,CAT26') || !Configuration::updateGlobalValue('MOD_blocktopdropdownmenu_SEARCH', '1')) { + return false; + } + } + + return true; + } + + public function installDb() + { + return (Db::getInstance()->execute(' + CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'linksmenutop` ( + `id_linksmenutop` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `id_shop` INT(11) UNSIGNED NOT NULL, + `new_window` TINYINT( 1 ) NOT NULL, + INDEX (`id_shop`) + ) ENGINE = '._MYSQL_ENGINE_.' CHARACTER SET utf8 COLLATE utf8_general_ci;') && + Db::getInstance()->execute(' + CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'linksmenutop_lang` ( + `id_linksmenutop` INT(11) UNSIGNED NOT NULL, + `id_lang` INT(11) UNSIGNED NOT NULL, + `id_shop` INT(11) UNSIGNED NOT NULL, + `label` VARCHAR( 128 ) NOT NULL , + `link` VARCHAR( 128 ) NOT NULL , + INDEX ( `id_linksmenutop` , `id_lang`, `id_shop`) + ) ENGINE = '._MYSQL_ENGINE_.' CHARACTER SET utf8 COLLATE utf8_general_ci;')); + } + + public function uninstall($delete_params = true) + { + if (!parent::uninstall()) { + return false; + } + + $this->clearMenuCache(); + + if ($delete_params) { + if (!Configuration::deleteByName('MOD_blocktopdropdownmenu_ITEMS') || !Configuration::deleteByName('MOD_blocktopdropdownmenu_SEARCH')) { + return false; + } + } + + return true; + } + + protected function uninstallDb() + { + Db::getInstance()->execute('DROP TABLE `'._DB_PREFIX_.'linksmenutop`'); + Db::getInstance()->execute('DROP TABLE `'._DB_PREFIX_.'linksmenutop_lang`'); + return true; + } + + public function reset() + { + if (!$this->uninstall(false)) { + return false; + } + if (!$this->install(false)) { + return false; + } + + return true; + } + + public function getContent() + { + $this->context->controller->addjQueryPlugin('hoverIntent'); + + $id_lang = (int)Context::getContext()->language->id; + $languages = $this->context->controller->getLanguages(); + $default_language = (int)Configuration::get('PS_LANG_DEFAULT'); + + $labels = Tools::getValue('label') ? array_filter(Tools::getValue('label'), 'strlen') : array(); + $links_label = Tools::getValue('link') ? array_filter(Tools::getValue('link'), 'strlen') : array(); + $spacer = str_repeat(' ', $this->spacer_size); + $divLangName = 'link_label'; + + $update_cache = false; + + if (Tools::isSubmit('submitblocktopdropdownmenu')) { + $errors_update_shops = array(); + $items = Tools::getValue('items'); + $shops = Shop::getContextListShopID(); + + + foreach ($shops as $shop_id) { + $shop_group_id = Shop::getGroupFromShop($shop_id); + $updated = true; + + if (count($shops) == 1) { + if (is_array($items) && count($items)) { + $updated = Configuration::updateValue('MOD_blocktopdropdownmenu_ITEMS', (string)implode(',', $items), false, (int)$shop_group_id, (int)$shop_id); + } else { + $updated = Configuration::updateValue('MOD_blocktopdropdownmenu_ITEMS', '', false, (int)$shop_group_id, (int)$shop_id); + } + } + + $updated &= Configuration::updateValue('MOD_blocktopdropdownmenu_SEARCH', (bool)Tools::getValue('search'), false, (int)$shop_group_id, (int)$shop_id); + + if (!$updated) { + $shop = new Shop($shop_id); + $errors_update_shops[] = $shop->name; + } + } + + if (!count($errors_update_shops)) { + $this->_html .= $this->displayConfirmation($this->l('The settings have been updated.')); + } else { + $this->_html .= $this->displayError(sprintf($this->l('Unable to update settings for the following shop(s): %s'), implode(', ', $errors_update_shops))); + } + + $update_cache = true; + } else { + if (Tools::isSubmit('submitblocktopdropdownmenuLinks')) { + $errors_add_link = array(); + + foreach ($languages as $key => $val) { + $links_label[$val['id_lang']] = Tools::getValue('link_'.(int)$val['id_lang']); + $labels[$val['id_lang']] = Tools::getValue('label_'.(int)$val['id_lang']); + } + + $count_links_label = count($links_label); + $count_label = count($labels); + + if ($count_links_label || $count_label) { + if (!$count_links_label) { + $this->_html .= $this->displayError($this->l('Please complete the "Link" field.')); + } elseif (!$count_label) { + $this->_html .= $this->displayError($this->l('Please add a label.')); + } elseif (!isset($labels[$default_language])) { + $this->_html .= $this->displayError($this->l('Please add a label for your default language.')); + } else { + $shops = Shop::getContextListShopID(); + + foreach ($shops as $shop_id) { + $added = MenuTopDropdownLinks::add($links_label, $labels, Tools::getValue('new_window', 0), (int)$shop_id); + + if (!$added) { + $shop = new Shop($shop_id); + $errors_add_link[] = $shop->name; + } + } + + if (!count($errors_add_link)) { + $this->_html .= $this->displayConfirmation($this->l('The link has been added.')); + } else { + $this->_html .= $this->displayError(sprintf($this->l('Unable to add link for the following shop(s): %s'), implode(', ', $errors_add_link))); + } + } + } + $update_cache = true; + } elseif (Tools::isSubmit('deletelinksmenutop')) { + $errors_delete_link = array(); + $id_linksmenutop = Tools::getValue('id_linksmenutop', 0); + $shops = Shop::getContextListShopID(); + + foreach ($shops as $shop_id) { + $deleted = MenuTopDropdownLinks::remove($id_linksmenutop, (int)$shop_id); + Configuration::updateValue('MOD_blocktopdropdownmenu_ITEMS', str_replace(array('LNK'.$id_linksmenutop.',', 'LNK'.$id_linksmenutop), '', Configuration::get('MOD_blocktopdropdownmenu_ITEMS'))); + + if (!$deleted) { + $shop = new Shop($shop_id); + $errors_delete_link[] = $shop->name; + } + } + + if (!count($errors_delete_link)) { + $this->_html .= $this->displayConfirmation($this->l('The link has been removed.')); + } else { + $this->_html .= $this->displayError(sprintf($this->l('Unable to remove link for the following shop(s): %s'), implode(', ', $errors_delete_link))); + } + + $update_cache = true; + } elseif (Tools::isSubmit('updatelinksmenutop')) { + $id_linksmenutop = (int)Tools::getValue('id_linksmenutop', 0); + $id_shop = (int)Shop::getContextShopID(); + + if (Tools::isSubmit('updatelink')) { + $link = array(); + $label = array(); + $new_window = (int)Tools::getValue('new_window', 0); + + foreach (Language::getLanguages(false) as $lang) { + $link[$lang['id_lang']] = Tools::getValue('link_'.(int)$lang['id_lang']); + $label[$lang['id_lang']] = Tools::getValue('label_'.(int)$lang['id_lang']); + } + + MenuTopDropdownLinks::update($link, $label, $new_window, (int)$id_shop, (int)$id_linksmenutop, (int)$id_linksmenutop); + $this->_html .= $this->displayConfirmation($this->l('The link has been edited.')); + } + $update_cache = true; + } + } + + if ($update_cache) { + $this->clearMenuCache(); + } + + + $shops = Shop::getContextListShopID(); + $links = array(); + + if (count($shops) > 1) { + $this->_html .= $this->getWarningMultishopHtml(); + } + + if (Shop::isFeatureActive()) { + $this->_html .= $this->getCurrentShopInfoMsg(); + } + + $this->_html .= $this->renderForm().$this->renderAddForm(); + + foreach ($shops as $shop_id) { + $links = array_merge($links, MenuTopDropdownLinks::gets((int)$id_lang, null, (int)$shop_id)); + } + + if (!count($links)) { + return $this->displayAdvert() . $this->_html . $this->checkforupdates(0,1); + } + + $this->_html = $this->displayAdvert() . $this->_html . $this->renderList() . $this->checkforupdates(0,1); + return $this->_html; + } + + public function inconsistency($ret = 1) + { + return true; + } + + public function psversion() + { + $version = _PS_VERSION_; + $exp = $explode = explode(".", $version); + return $exp[1]; + } + + protected function getWarningMultishopHtml() + { + return '

'. + $this->l('You cannot manage top menu items from a "All Shops" or a "Group Shop" context, select directly the shop you want to edit'). + '

'; + } + + protected function getCurrentShopInfoMsg() + { + $shop_info = null; + + if (Shop::getContext() == Shop::CONTEXT_SHOP) { + $shop_info = sprintf($this->l('The modifications will be applied to shop: %s'), $this->context->shop->name); + } else { + if (Shop::getContext() == Shop::CONTEXT_GROUP) { + $shop_info = sprintf($this->l('The modifications will be applied to this group: %s'), Shop::getContextShopGroup()->name); + } else { + $shop_info = $this->l('The modifications will be applied to all shops'); + } + } + + return '
'. + $shop_info. + '
'; + } + + protected function getMenuItems() + { + $items = Tools::getValue('items'); + if (is_array($items) && count($items)) { + return $items; + } else { + $shops = Shop::getContextListShopID(); + $conf = null; + + if (count($shops) > 1) { + foreach ($shops as $key => $shop_id) { + $shop_group_id = Shop::getGroupFromShop($shop_id); + $conf .= (string)($key > 1 ? ',' : '').Configuration::get('MOD_blocktopdropdownmenu_ITEMS', null, $shop_group_id, $shop_id); + } + } else { + $shop_id = (int)$shops[0]; + $shop_group_id = Shop::getGroupFromShop($shop_id); + $conf = Configuration::get('MOD_blocktopdropdownmenu_ITEMS', null, $shop_group_id, $shop_id); + } + + if (strlen($conf)) { + return explode(',', $conf); + } else { + return array(); + } + } + } + + protected function makeMenuOption() + { + $id_shop = (int)Shop::getContextShopID(); + + $menu_item = $this->getMenuItems(); + $id_lang = (int)$this->context->language->id; + + $html = ''; + } + + protected function makeMenu() + { + $menu_items = $this->getMenuItems(); + $id_lang = (int)$this->context->language->id; + $id_shop = (int)Shop::getContextShopID(); + + foreach ($menu_items as $item) { + if (!$item) { + continue; + } + + preg_match($this->pattern, $item, $value); + $id = (int)substr($item, strlen($value[1]), strlen($item)); + + switch (substr($item, 0, strlen($value[1]))) { + case 'CAT': + $this->_menu .= $this->generateCategoriesMenu(Category::getNestedCategories($id, $id_lang, false, $this->user_groups)); + break; + + case 'PRD': + $selected = ($this->page_name == 'product' && (Tools::getValue('id_product') == $id)) ? ' class="sfHover"' : ''; + $product = new Product((int)$id, true, (int)$id_lang); + if (!is_null($product->id)) { + $this->_menu .= ''.$product->name.''.PHP_EOL; + } + break; + + case 'CMS': + $selected = ($this->page_name == 'cms' && (Tools::getValue('id_cms') == $id)) ? ' class="sfHover"' : ''; + $cms = CMS::getLinks((int)$id_lang, array($id)); + if (count($cms)) { + $this->_menu .= ''.Tools::safeOutput($cms[0]['meta_title']).''.PHP_EOL; + } + break; + + case 'CMS_CAT': + $category = new CMSCategory((int)$id, (int)$id_lang); + if (count($category)) { + $this->_menu .= '
  • '.$category->name.''; + $this->getCMSMenuItems($category->id); + $this->_menu .= '
  • '.PHP_EOL; + } + break; + + // Case to handle the option to show all Manufacturers + case 'ALLMAN': + $link = new Link; + $this->_menu .= '
  • '.$this->l('All manufacturers').''; + break; + + case 'MAN': + $selected = ($this->page_name == 'manufacturer' && (Tools::getValue('id_manufacturer') == $id)) ? ' class="sfHover"' : ''; + $manufacturer = new Manufacturer((int)$id, (int)$id_lang); + if (!is_null($manufacturer->id)) { + if (intval(Configuration::get('PS_REWRITING_SETTINGS'))) { + $manufacturer->link_rewrite = Tools::link_rewrite($manufacturer->name); + } else { + $manufacturer->link_rewrite = 0; + } + $link = new Link; + $this->_menu .= ''.Tools::safeOutput($manufacturer->name).'
  • '.PHP_EOL; + } + break; + + // Case to handle the option to show all Suppliers + case 'ALLSUP': + $link = new Link; + $this->_menu .= '
  • '.$this->l('All suppliers').''; + break; + + case 'SUP': + $selected = ($this->page_name == 'supplier' && (Tools::getValue('id_supplier') == $id)) ? ' class="sfHover"' : ''; + $supplier = new Supplier((int)$id, (int)$id_lang); + if (!is_null($supplier->id)) { + $link = new Link; + $this->_menu .= ''.$supplier->name.'
  • '.PHP_EOL; + } + break; + + case 'SHOP': + $selected = ($this->page_name == 'index' && ($this->context->shop->id == $id)) ? ' class="sfHover"' : ''; + $shop = new Shop((int)$id); + if (Validate::isLoadedObject($shop)) { + $link = new Link; + $this->_menu .= ''.$shop->name.''.PHP_EOL; + } + break; + case 'LNK': + $link = MenuTopDropdownLinks::get((int)$id, (int)$id_lang, (int)$id_shop); + if (count($link)) { + if (!isset($link[0]['label']) || ($link[0]['label'] == '')) { + $default_language = Configuration::get('PS_LANG_DEFAULT'); + $link = MenuTopDropdownLinks::get($link[0]['id_linksmenutop'], $default_language, (int)Shop::getContextShopID()); + } + $this->_menu .= '
  • '.Tools::safeOutput($link[0]['label']).'
  • '.PHP_EOL; + } + break; + } + } + } + + protected function generateCategoriesOption($categories, $items_to_skip = null) + { + $html = ''; + + foreach ($categories as $key => $category) { + if (isset($items_to_skip) /*&& !in_array('CAT'.(int)$category['id_category'], $items_to_skip)*/) { + $shop = (object) Shop::getShop((int)$category['id_shop']); + $html .= ''; + } + + if (isset($category['children']) && !empty($category['children'])) { + $html .= $this->generateCategoriesOption($category['children'], $items_to_skip); + } + } + return $html; + } + + protected function generateCategoriesMenu($categories, $is_children = 0) + { + $html = ''; + + foreach ($categories as $key => $category) { + if ($category['level_depth'] > 1) { + $cat = new Category($category['id_category']); + $link = Tools::HtmlEntitiesUTF8($cat->getLink()); + } else { + $link = $this->context->link->getPageLink('index'); + } + + /* Whenever a category is not active we shouldnt display it to customer */ + if ((bool)$category['active'] === false) { + continue; + } + + $html .= 'page_name == 'category' + && (int)Tools::getValue('id_category') == (int)$category['id_category']) ? ' class="sfHoverForce"' : '').'>'; + $html .= ''.$category['name'].''; + + if (isset($category['children']) && !empty($category['children'])) { + $html .= '
      '; + $html .= $this->generateCategoriesMenu($category['children'], 1); + + if ((int)$category['level_depth'] > 0) { + $files = scandir(_PS_CAT_IMG_DIR_); + + if (count(preg_grep('/^'.$category['id_category'].'_thumb.jpg/i', $files)) > 0) { + $html .= '
    • '; + + foreach ($files as $file) { + if (preg_match('/^'.$category['id_category'].'_thumb.jpg/i', $file) === 1) { + $html .= '
      '.Tools::SafeOutput($category['name']).'
      '; + } + } + + $html .= '
    • '; + } + } + + $html .= '
    '; + } + + $html .= ''; + } + + return $html; + } + + protected function getCMSMenuItems($parent, $depth = 1, $id_lang = false) + { + $id_lang = $id_lang ? (int)$id_lang : (int)Context::getContext()->language->id; + + if ($depth > 3) { + return; + } + + $categories = $this->getCMSCategories(false, (int)$parent, (int)$id_lang); + $pages = $this->getCMSPages((int)$parent); + + if (count($categories) || count($pages)) { + $this->_menu .= '
      '; + + foreach ($categories as $category) { + $cat = new CMSCategory((int)$category['id_cms_category'], (int)$id_lang); + + $this->_menu .= '
    • '; + $this->_menu .= ''.$category['name'].''; + $this->getCMSMenuItems($category['id_cms_category'], (int)$depth + 1); + $this->_menu .= '
    • '; + } + + foreach ($pages as $page) { + $cms = new CMS($page['id_cms'], (int)$id_lang); + $links = $cms->getLinks((int)$id_lang, array((int)$cms->id)); + + $selected = ($this->page_name == 'cms' && ((int)Tools::getValue('id_cms') == $page['id_cms'])) ? ' class="sfHoverForce"' : ''; + $this->_menu .= '
    • '; + $this->_menu .= ''.$cms->meta_title.''; + $this->_menu .= '
    • '; + } + + $this->_menu .= '
    '; + } + } + + protected function getCMSOptions($parent = 0, $depth = 1, $id_lang = false, $items_to_skip = null, $id_shop = false) + { + $html = ''; + $id_lang = $id_lang ? (int)$id_lang : (int)Context::getContext()->language->id; + $id_shop = ($id_shop !== false) ? $id_shop : Context::getContext()->shop->id; + $categories = $this->getCMSCategories(false, (int)$parent, (int)$id_lang, (int)$id_shop); + $pages = $this->getCMSPages((int)$parent, (int)$id_shop, (int)$id_lang); + + $spacer = str_repeat(' ', $this->spacer_size * (int)$depth); + + foreach ($categories as $category) { + if (isset($items_to_skip) && !in_array('CMS_CAT'.$category['id_cms_category'], $items_to_skip)) { + $html .= ''; + } + $html .= $this->getCMSOptions($category['id_cms_category'], (int)$depth + 1, (int)$id_lang, $items_to_skip); + } + + foreach ($pages as $page) { + if (isset($items_to_skip) && !in_array('CMS'.$page['id_cms'], $items_to_skip)) { + $html .= ''; + } + } + + return $html; + } + + protected function getCacheId($name = null) + { + $page_name = in_array($this->page_name, array('category', 'supplier', 'manufacturer', 'cms', 'product')) ? $this->page_name : 'index'; + return parent::getCacheId().'|'.$page_name.($page_name != 'index' ? '|'.(int)Tools::getValue('id_'.$page_name) : ''); + } + + public function hookHeader() + { + $this->context->controller->addJS($this->_path.'js/hoverIntent.js'); + $this->context->controller->addJS($this->_path.'js/superfish-modified.js'); + $this->context->controller->addJS($this->_path.'js/blocktopdropdownmenu.js'); + $this->context->controller->addCSS($this->_path.'css/superfish-modified.css'); + $this->context->controller->addCSS($this->_path.'css/blocktopdropdownmenu.css'); + } + + public function hookDisplayTop($param) + { + $this->user_groups = ($this->context->customer->isLogged() ? + $this->context->customer->getGroups() : array(Configuration::get('PS_UNIDENTIFIED_GROUP'))); + $this->page_name = Dispatcher::getInstance()->getController(); + if (!$this->isCached('blocktopdropdownmenu.tpl', $this->getCacheId())) { + if (Tools::isEmpty($this->_menu)) { + $this->makeMenu(); + } + + $shop_id = (int)$this->context->shop->id; + $shop_group_id = Shop::getGroupFromShop($shop_id); + + $this->smarty->assign('MENU_SEARCH', Configuration::get('MOD_blocktopdropdownmenu_SEARCH', null, $shop_group_id, $shop_id)); + $this->smarty->assign('MENU', $this->_menu); + $this->smarty->assign('this_path', $this->_path); + } + + $html = $this->display(__FILE__, 'blocktopdropdownmenu.tpl', $this->getCacheId()); + return $html; + } + + public function hookDisplayNav($params) + { + return $this->hookDisplayTop($params); + } + + protected function getCMSCategories($recursive = false, $parent = 1, $id_lang = false, $id_shop = false) + { + $id_lang = $id_lang ? (int)$id_lang : (int)Context::getContext()->language->id; + $id_shop = ($id_shop !== false) ? $id_shop : Context::getContext()->shop->id; + $join_shop = ''; + $where_shop = ''; + + if (Tools::version_compare(_PS_VERSION_, '1.6.0.12', '>=') == true) { + $join_shop = ' INNER JOIN `'._DB_PREFIX_.'cms_category_shop` cs + ON (bcp.`id_cms_category` = cs.`id_cms_category`)'; + $where_shop = ' AND cs.`id_shop` = '.(int)$id_shop.' AND cl.`id_shop` = '.(int)$id_shop; + } + + if ($recursive === false) { + $sql = 'SELECT bcp.`id_cms_category`, bcp.`id_parent`, bcp.`level_depth`, bcp.`active`, bcp.`position`, cl.`name`, cl.`link_rewrite` + FROM `'._DB_PREFIX_.'cms_category` bcp'. + $join_shop.' + INNER JOIN `'._DB_PREFIX_.'cms_category_lang` cl + ON (bcp.`id_cms_category` = cl.`id_cms_category`) + WHERE cl.`id_lang` = '.(int)$id_lang.' + AND bcp.`id_parent` = '.(int)$parent. + $where_shop; + + return Db::getInstance()->executeS($sql); + } else { + $sql = 'SELECT bcp.`id_cms_category`, bcp.`id_parent`, bcp.`level_depth`, bcp.`active`, bcp.`position`, cl.`name`, cl.`link_rewrite` + FROM `'._DB_PREFIX_.'cms_category` bcp'. + $join_shop.' + INNER JOIN `'._DB_PREFIX_.'cms_category_lang` cl + ON (bcp.`id_cms_category` = cl.`id_cms_category`) + WHERE cl.`id_lang` = '.(int)$id_lang.' + AND bcp.`id_parent` = '.(int)$parent. + $where_shop; + + $results = Db::getInstance()->executeS($sql); + foreach ($results as $result) { + $sub_categories = $this->getCMSCategories(true, $result['id_cms_category'], (int)$id_lang); + if ($sub_categories && count($sub_categories) > 0) { + $result['sub_categories'] = $sub_categories; + } + $categories[] = $result; + } + + return isset($categories) ? $categories : false; + } + } + + protected function getCMSPages($id_cms_category, $id_shop = false, $id_lang = false) + { + $id_shop = ($id_shop !== false) ? (int)$id_shop : (int)Context::getContext()->shop->id; + $id_lang = $id_lang ? (int)$id_lang : (int)Context::getContext()->language->id; + + $where_shop = ''; + if (Tools::version_compare(_PS_VERSION_, '1.6.0.12', '>=') == true) { + $where_shop = ' AND cl.`id_shop` = '.(int)$id_shop; + } + + $sql = 'SELECT c.`id_cms`, cl.`meta_title`, cl.`link_rewrite` + FROM `'._DB_PREFIX_.'cms` c + INNER JOIN `'._DB_PREFIX_.'cms_shop` cs + ON (c.`id_cms` = cs.`id_cms`) + INNER JOIN `'._DB_PREFIX_.'cms_lang` cl + ON (c.`id_cms` = cl.`id_cms`) + WHERE c.`id_cms_category` = '.(int)$id_cms_category.' + AND cs.`id_shop` = '.(int)$id_shop.' + AND cl.`id_lang` = '.(int)$id_lang. + $where_shop.' + AND c.`active` = 1 + ORDER BY `position`'; + + return Db::getInstance()->executeS($sql); + } + + public function hookActionObjectCategoryAddAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectCategoryUpdateAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectCategoryDeleteAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectCmsUpdateAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectCmsDeleteAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectCmsAddAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectSupplierUpdateAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectSupplierDeleteAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectSupplierAddAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectManufacturerUpdateAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectManufacturerDeleteAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectManufacturerAddAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectProductUpdateAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectProductDeleteAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectProductAddAfter($params) + { + $this->clearMenuCache(); + } + + public function hookCategoryUpdate($params) + { + $this->clearMenuCache(); + } + + protected function clearMenuCache() + { + $this->_clearCache('blocktopdropdownmenu.tpl'); + } + + public function hookActionShopDataDuplication($params) + { + $linksmenutop = Db::getInstance()->executeS(' + SELECT * + FROM '._DB_PREFIX_.'linksmenutop + WHERE id_shop = '.(int)$params['old_id_shop'] + ); + + foreach ($linksmenutop as $id => $link) { + Db::getInstance()->execute(' + INSERT IGNORE INTO '._DB_PREFIX_.'linksmenutop (id_linksmenutop, id_shop, new_window) + VALUES (null, '.(int)$params['new_id_shop'].', '.(int)$link['new_window'].')'); + + $linksmenutop[$id]['new_id_linksmenutop'] = Db::getInstance()->Insert_ID(); + } + + foreach ($linksmenutop as $id => $link) { + $lang = Db::getInstance()->executeS(' + SELECT id_lang, '.(int)$params['new_id_shop'].', label, link + FROM '._DB_PREFIX_.'linksmenutop_lang + WHERE id_linksmenutop = '.(int)$link['id_linksmenutop'].' AND id_shop = '.(int)$params['old_id_shop']); + + foreach ($lang as $l) { + Db::getInstance()->execute(' + INSERT IGNORE INTO '._DB_PREFIX_.'linksmenutop_lang (id_linksmenutop, id_lang, id_shop, label, link) + VALUES ('.(int)$link['new_id_linksmenutop'].', '.(int)$l['id_lang'].', '.(int)$params['new_id_shop'].', '.(int)$l['label'].', '.(int)$l['link'].' )'); + } + } + } + + public function renderForm() + { + $shops = Shop::getContextListShopID(); + + if (count($shops) == 1) { + $fields_form = array( + 'form' => array( + 'legend' => array( + 'title' => $this->l('Menu Top Link'), + 'icon' => 'icon-link' + ), + 'input' => array( + array( + 'type' => 'link_choice', + 'label' => '', + 'name' => 'link', + 'lang' => true, + ), + array( + 'type' => 'switch', + 'label' => $this->l('Search bar'), + 'name' => 'search', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled') + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled') + ) + ), + ) + ), + 'submit' => array( + 'name' => 'submitblocktopdropdownmenu', + 'title' => $this->l('Save') + ) + ), + ); + } else { + $fields_form = array( + 'form' => array( + 'legend' => array( + 'title' => $this->l('Menu Top Link'), + 'icon' => 'icon-link' + ), + 'info' => '
    '. + $this->l('All active products combinations quantities will be changed').'
    ', + 'input' => array( + array( + 'type' => 'switch', + 'label' => $this->l('Search bar'), + 'name' => 'search', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled') + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled') + ) + ), + ) + ), + 'submit' => array( + 'name' => 'submitblocktopdropdownmenu', + 'title' => $this->l('Save') + ) + ), + ); + } + + $helper = new HelperForm(); + $helper->show_toolbar = false; + $helper->table = $this->table; + $lang = new Language((int)Configuration::get('PS_LANG_DEFAULT')); + $helper->default_form_language = $lang->id; + $helper->allow_employee_form_lang = Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') ? Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') : 0; + $this->fields_form = array(); + $helper->module = $this; + $helper->identifier = $this->identifier; + $helper->currentIndex = $this->context->link->getAdminLink('AdminModules', false). + '&configure='.$this->name.'&tab_module='.$this->tab.'&module_name='.$this->name; + $helper->token = Tools::getAdminTokenLite('AdminModules'); + $helper->tpl_vars = array( + 'fields_value' => $this->getConfigFieldsValues(), + 'languages' => $this->context->controller->getLanguages(), + 'id_language' => $this->context->language->id, + 'choices' => $this->renderChoicesSelect(), + 'selected_links' => $this->makeMenuOption(), + ); + return $helper->generateForm(array($fields_form)); + } + + public function renderAddForm() + { + $fields_form = array( + 'form' => array( + 'legend' => array( + 'title' => (Tools::getIsset('updatelinksmenutop') && !Tools::getValue('updatelinksmenutop')) ? + $this->l('Update link') : $this->l('Add a new link'), + 'icon' => 'icon-link' + ), + 'input' => array( + array( + 'type' => 'text', + 'label' => $this->l('Label'), + 'name' => 'label', + 'lang' => true, + ), + array( + 'type' => 'text', + 'label' => $this->l('Link'), + 'name' => 'link', + 'lang' => true, + ), + array( + 'type' => 'switch', + 'label' => $this->l('New window'), + 'name' => 'new_window', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled') + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled') + ) + ), + ) + ), + 'submit' => array( + 'name' => 'submitblocktopdropdownmenuLinks', + 'title' => $this->l('Add') + ) + ), + ); + + $helper = new HelperForm(); + $helper->show_toolbar = false; + $helper->table = $this->table; + $lang = new Language((int)Configuration::get('PS_LANG_DEFAULT')); + $helper->default_form_language = $lang->id; + $helper->allow_employee_form_lang = Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') ? Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') : 0; + $this->fields_form = array(); + $helper->identifier = $this->identifier; + $helper->fields_value = $this->getAddLinkFieldsValues(); + + if (Tools::getIsset('updatelinksmenutop') && !Tools::getValue('updatelinksmenutop')) { + $fields_form['form']['submit'] = array( + 'name' => 'updatelinksmenutop', + 'title' => $this->l('Update') + ); + } + + if (Tools::isSubmit('updatelinksmenutop')) { + $fields_form['form']['input'][] = array('type' => 'hidden', 'name' => 'updatelink'); + $fields_form['form']['input'][] = array('type' => 'hidden', 'name' => 'id_linksmenutop'); + $helper->fields_value['updatelink'] = ''; + } + + $helper->currentIndex = $this->context->link->getAdminLink('AdminModules', false). + '&configure='.$this->name.'&tab_module='.$this->tab.'&module_name='.$this->name; + $helper->token = Tools::getAdminTokenLite('AdminModules'); + $helper->languages = $this->context->controller->getLanguages(); + $helper->default_form_language = (int)$this->context->language->id; + + return $helper->generateForm(array($fields_form)); + } + + public function renderChoicesSelect() + { + $spacer = str_repeat(' ', $this->spacer_size); + $items = $this->getMenuItems(); + + $html = ''; + return $html; + } + + + public function customGetNestedCategories($shop_id, $root_category = null, $id_lang = false, $active = false, $groups = null, $use_shop_restriction = true, $sql_filter = '', $sql_sort = '', $sql_limit = '') + { + if (isset($root_category) && !Validate::isInt($root_category)) { + die(Tools::displayError()); + } + + if (!Validate::isBool($active)) { + die(Tools::displayError()); + } + + if (isset($groups) && Group::isFeatureActive() && !is_array($groups)) { + $groups = (array)$groups; + } + + $cache_id = 'Category::getNestedCategories_'.md5((int)$shop_id.(int)$root_category.(int)$id_lang.(int)$active.(int)$active + .(isset($groups) && Group::isFeatureActive() ? implode('', $groups) : '')); + + if (!Cache::isStored($cache_id)) { + $result = Db::getInstance()->executeS(' + SELECT c.*, cl.* + FROM `'._DB_PREFIX_.'category` c + INNER JOIN `'._DB_PREFIX_.'category_shop` category_shop ON (category_shop.`id_category` = c.`id_category` AND category_shop.`id_shop` = "'.(int)$shop_id.'") + LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (c.`id_category` = cl.`id_category` AND cl.`id_shop` = "'.(int)$shop_id.'") + WHERE 1 '.$sql_filter.' '.($id_lang ? 'AND cl.`id_lang` = '.(int)$id_lang : '').' + '.($active ? ' AND (c.`active` = 1 OR c.`is_root_category` = 1)' : '').' + '.(isset($groups) && Group::isFeatureActive() ? ' AND cg.`id_group` IN ('.implode(',', $groups).')' : '').' + '.(!$id_lang || (isset($groups) && Group::isFeatureActive()) ? ' GROUP BY c.`id_category`' : '').' + '.($sql_sort != '' ? $sql_sort : ' ORDER BY c.`level_depth` ASC').' + '.($sql_sort == '' && $use_shop_restriction ? ', category_shop.`position` ASC' : '').' + '.($sql_limit != '' ? $sql_limit : '') + ); + + $categories = array(); + $buff = array(); + + foreach ($result as $row) { + $current = &$buff[$row['id_category']]; + $current = $row; + + if ($row['id_parent'] == 0) { + $categories[$row['id_category']] = &$current; + } else { + $buff[$row['id_parent']]['children'][$row['id_category']] = &$current; + } + } + + Cache::store($cache_id, $categories); + } + + return Cache::retrieve($cache_id); + } + + public function getConfigFieldsValues() + { + $shops = Shop::getContextListShopID(); + $is_search_on = true; + + foreach ($shops as $shop_id) { + $shop_group_id = Shop::getGroupFromShop($shop_id); + $is_search_on &= (bool)Configuration::get('MOD_blocktopdropdownmenu_SEARCH', null, $shop_group_id, $shop_id); + } + + return array( + 'search' => (int)$is_search_on + ); + } + + public function getAddLinkFieldsValues() + { + $links_label_edit = ''; + $labels_edit = ''; + $new_window_edit = ''; + + if (Tools::isSubmit('updatelinksmenutop')) { + $link = MenuTopDropdownLinks::getLinkLang(Tools::getValue('id_linksmenutop'), (int)Shop::getContextShopID()); + + foreach ($link['link'] as $key => $label) { + $link['link'][$key] = Tools::htmlentitiesDecodeUTF8($label); + } + + $links_label_edit = $link['link']; + $labels_edit = $link['label']; + $new_window_edit = $link['new_window']; + } + + $fields_values = array( + 'new_window' => Tools::getValue('new_window', $new_window_edit), + 'id_linksmenutop' => Tools::getValue('id_linksmenutop'), + ); + + if (Tools::getValue('submitAddmodule')) { + foreach (Language::getLanguages(false) as $lang) { + $fields_values['label'][$lang['id_lang']] = ''; + $fields_values['link'][$lang['id_lang']] = ''; + } + } else { + foreach (Language::getLanguages(false) as $lang) { + $fields_values['label'][$lang['id_lang']] = Tools::getValue('label_'.(int)$lang['id_lang'], isset($labels_edit[$lang['id_lang']]) ? + $labels_edit[$lang['id_lang']] : ''); + $fields_values['link'][$lang['id_lang']] = Tools::getValue('link_'.(int)$lang['id_lang'], isset($links_label_edit[$lang['id_lang']]) ? + $links_label_edit[$lang['id_lang']] : ''); + } + } + + return $fields_values; + } + + public function renderList() + { + $shops = Shop::getContextListShopID(); + $links = array(); + + foreach ($shops as $shop_id) { + $links = array_merge($links, MenuTopDropdownLinks::gets((int)$this->context->language->id, null, (int)$shop_id)); + } + + $fields_list = array( + 'id_linksmenutop' => array( + 'title' => $this->l('Link ID'), + 'type' => 'text', + ), + 'name' => array( + 'title' => $this->l('Shop name'), + 'type' => 'text', + ), + 'label' => array( + 'title' => $this->l('Label'), + 'type' => 'text', + ), + 'link' => array( + 'title' => $this->l('Link'), + 'type' => 'link', + ), + 'new_window' => array( + 'title' => $this->l('New window'), + 'type' => 'bool', + 'align' => 'center', + 'active' => 'status', + ) + ); + + $helper = new HelperList(); + $helper->shopLinkType = ''; + $helper->simple_header = true; + $helper->identifier = 'id_linksmenutop'; + $helper->table = 'linksmenutop'; + $helper->actions = array('edit', 'delete'); + $helper->show_toolbar = false; + $helper->module = $this; + $helper->title = $this->l('Link list'); + $helper->token = Tools::getAdminTokenLite('AdminModules'); + $helper->currentIndex = AdminController::$currentIndex.'&configure='.$this->name; + + return $helper->generateList($links, $fields_list); + } +} + +class blocktopdropdownmenuUpdate extends blocktopdropdownmenu +{ + public static function _isCurl() + { + return function_exists('curl_version'); + } + + public static function version($version) + { + $version = (int)str_replace(".", "", $version); + if (strlen($version) == 3) + { + $version = (int)$version . "0"; + } + if (strlen($version) == 2) + { + $version = (int)$version . "00"; + } + if (strlen($version) == 1) + { + $version = (int)$version . "000"; + } + if (strlen($version) == 0) + { + $version = (int)$version . "0000"; + } + return (int)$version; + } + + public static function verify($module, $key) + { + if (ini_get("allow_url_fopen")) + { + if (function_exists("file_get_contents")) + { + $actual_version = @file_get_contents('http://dev.mypresta.eu/update/get.php?module=' . $module . "&lic=$key&u=" . self::encrypt(_PS_BASE_URL_ . __PS_BASE_URI__)); + } + } + Configuration::updateValue("update_" . $module, date("U")); + Configuration::updateValue("updatev_" . $module, $actual_version); + return $actual_version; + } + + public static function encrypt($string) + { + return base64_encode($string); + } +} \ No newline at end of file diff --git a/modules/blocktopdropdownmenu/blocktopdropdownmenu.tpl b/modules/blocktopdropdownmenu/blocktopdropdownmenu.tpl new file mode 100644 index 00000000..bc483341 --- /dev/null +++ b/modules/blocktopdropdownmenu/blocktopdropdownmenu.tpl @@ -0,0 +1,22 @@ +{if $MENU != ''} + +
    +
    {l s='Menu' mod='blocktopdropdownmenu'}
    + +
    + +{/if} \ No newline at end of file diff --git a/modules/blocktopdropdownmenu/config_fr.xml b/modules/blocktopdropdownmenu/config_fr.xml new file mode 100644 index 00000000..f62cda2e --- /dev/null +++ b/modules/blocktopdropdownmenu/config_fr.xml @@ -0,0 +1,12 @@ + + + blocktopdropdownmenu + + + + + + 1 + 1 + + \ No newline at end of file diff --git a/modules/blocktopdropdownmenu/css/blocktopdropdownmenu.css b/modules/blocktopdropdownmenu/css/blocktopdropdownmenu.css new file mode 100644 index 00000000..442fa144 --- /dev/null +++ b/modules/blocktopdropdownmenu/css/blocktopdropdownmenu.css @@ -0,0 +1,24 @@ +li.sf-search #searchbox p::after { + direction: ltr; + font-family: 'Material Icons'; + font-size: 24px; + font-style: normal; + font-weight: normal; + letter-spacing: normal; + line-height: 1; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + -webkit-font-feature-settings: 'liga'; + -webkit-font-smoothing: antialiased; + content: "search"; + display: block; + width: 23px; + height: 20px; + line-height: 20px; + z-index: 99999; + position: absolute; + top: 18px; + right: 20px; + text-align: center; +} \ No newline at end of file diff --git a/modules/blocktopdropdownmenu/css/index.php b/modules/blocktopdropdownmenu/css/index.php new file mode 100644 index 00000000..08605e19 --- /dev/null +++ b/modules/blocktopdropdownmenu/css/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2016 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; diff --git a/modules/blocktopdropdownmenu/css/superfish-modified.css b/modules/blocktopdropdownmenu/css/superfish-modified.css new file mode 100644 index 00000000..347d8180 --- /dev/null +++ b/modules/blocktopdropdownmenu/css/superfish-modified.css @@ -0,0 +1,294 @@ +/*** ESSENTIAL STYLES ***/ +.sf-contener { + clear: both; + float: left; + width: 100%; +} +.sf-menu, .sf-menu * { + margin: 0; + padding: 0; + list-style: none; +} +.sf-menu { + position: relative; + padding: 0; + width: 100%; + border-bottom: 3px solid #e9e9e9; + background: #f6f6f6; +} +@media (max-width: 767px) { + .sf-menu { + display: none; + } +} +.sf-menu ul { + position: absolute; + top: -999em; + background: #fff; +} +@media (max-width: 767px) { + .sf-menu ul { + top:0; + position: relative; + } +} +.sf-menu > li > a { + font: 600 18px/22px "Open Sans", sans-serif; + text-transform: uppercase; + color: #484848; + display: block; + padding: 17px 20px; +} +.sf-menu .sf-sub-indicator { + display:none; +} +.sf-menu ul li { + width: 100%; +} +.sf-menu li:hover { + visibility: inherit; + /* fixes IE7 'sticky bug' */ +} +.sf-menu > li { + float: left; + position: relative; + border-right: 1px solid #eadbdb; +} +.sf-menu a { + display: block; + position: relative; + color:#000; +} +.sf-menu li:hover ul, .sf-menu li.sfHover ul { + left: 0; + top: 57px; + /* match top ul list item height */ + z-index: 99; + width:auto; +} +ul.sf-menu li:hover li ul, ul.sf-menu li.sfHover li ul { + top: -999em; +} +ul.sf-menu li li:hover ul, ul.sf-menu li li.sfHover ul { + left: 300px; + /* match ul width */ + top: 0; +} +ul.sf-menu li li:hover li ul, ul.sf-menu li li.sfHover li ul { + top: -999em; +} +ul.sf-menu li li li:hover ul, ul.sf-menu li li li.sfHover ul { + left: 300px; + /* match ul width */ + top: 0; +} +/*** DEMO SKIN ***/ +.sf-menu { + float: left; + margin-bottom: 1em; +} +.sf-menu a { + display:block; + padding: 5px 22px 5px 20px; + line-height:34px; + border: 0; + text-decoration:none; +} +.sf-menu a, .sf-menu a:visited { + color: rgba(0, 0, 0, 0.65); + white-space:nowrap; + text-shadow: 1px 1px 0px #fff; +} +.sf-menu li li { + background: rgba(246, 246, 246, 0.9); +} +.sf-menu li li li { + background: rgba(246, 246, 246, 0.9); +} +.sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active { + background: rgba(255, 255, 255, 0.98); +} +.sf-menu ul li:hover, .sf-menu ul li.sfHover, .sf-menu ul li a:focus, .sf-menu ul li a:hover, .sf-menu ul li a:active { + background: rgba(255, 255, 255, 0.98); + outline: 0; +} +/*** arrows **/ +.sf-sub-indicator { + position: absolute; + display: block; + right: 10px; + top: 1.05em; + /* IE6 only */ + width: 10px; + height: 10px; + text-indent: -999em; + overflow: hidden; +} +.sf-sub-indicator:after { + font-family: 'Material Icons'; + content: '\e5cc'; +} +a > .sf-sub-indicator { + /* give all except IE6 the correct values */ + top: 11px; + background-position: 0 -100px; + /* use translucent arrow for modern browsers*/ +} +/* apply hovers to modern browsers */ +a:focus > .sf-sub-indicator, a:hover > .sf-sub-indicator, a:active > .sf-sub-indicator, li:hover > a > .sf-sub-indicator, li.sfHover > a > .sf-sub-indicator { + background-position: -10px -100px; + /* arrow hovers for modern browsers*/ +} +/* point right for anchors in subs */ +.sf-menu ul .sf-sub-indicator { + background-position: -10px 0; +} +.sf-menu ul a > .sf-sub-indicator { + background-position: 0 0; +} +/* apply hovers to modern browsers */ +.sf-menu ul a:focus > .sf-sub-indicator, .sf-menu ul a:hover > .sf-sub-indicator, .sf-menu ul a:active > .sf-sub-indicator, .sf-menu ul li:hover > a > .sf-sub-indicator, .sf-menu ul li.sfHover > a > .sf-sub-indicator { + background-position: -10px 0; + /* arrow hovers for modern browsers*/ +} +/*** shadows for all but IE6 ***/ +.sf-shadow ul { + /* background: url('../img/shadow.png') no-repeat bottom right; + */ + /* padding: 0 8px 9px 0; + */ + -moz-border-bottom-left-radius: 17px; + -moz-border-top-right-radius: 17px; + -webkit-border-top-right-radius: 17px; + -webkit-border-bottom-left-radius: 17px; +} +.sf-shadow ul.sf-shadow-off { + background: transparent; +} +li.sf-search { + background: inherit; + float: right; + line-height: 25px; +} +li.sf-search input { + border-radius: 5px; + padding: 8px 0; + padding-left: 10px; + font-size:16px; + margin: 6px 6px 0 0; + background: #ffffff; + border:1px solid #eadbdb; +} + + + +/* hack IE7 */ +.sf-menu a, .sf-menu a:visited { + height:34px !IE; +} +.sf-menu li li { + width:300px; + background:#726f72 !IE; +} +.sf-menu .category-thumbnail img { + max-width:100%; + height:auto; +} +@media (max-width: 767px){ + .sf-menu .sf-search { + display: none !important; + } + .sf-menu > li span { + position: absolute; + right: 6px; + top: 20px; + width: 30px; + height: 30px; + z-index: 2; + } + .sf-menu > li span:after { + font-family: "Material Icons"; + content: "\e145"; + font-size: 26px; + } + .sf-menu li, .sf-menu li ul { + width:100%!important; + } + .sf-menu li:hover ul, .sf-menu li.sfHover ul { + left: 0; + top: 0px; + } + ul.sf-menu li li:hover ul, ul.sf-menu li li.sfHover ul { + left:0; + } + .menu-mobile { + display:none; + } + ul.sf-menu li:hover li ul, ul.sf-menu li.sfHover li ul { + top: 0; + } + ul.sf-menu li ul li ul li { + padding-left:15px; + } + ul.sf-menu li ul li ul li:before { + width:1px; + height:44px; + display:inline-block; + float:left; + position:relative; + margin-left:10px; + background:#ece7e7; + content:' ' + } + .sf-menu > li span.active:after { + content: "\e15b"; + } +} +.cat-title { + display: none; +} +@media (max-width: 767px) { + .cat-title { + display: block; + font: 600 18px/22px "Open Sans", sans-serif; + text-transform: uppercase; + color: #484848; + display: block; + padding: 17px 20px; + border-bottom: 3px solid #e9e9e9; + background: #f6f6f6; + position: relative; + } + .cat-title:hover { + background: #333; + border-bottom-color: #666666; + color: #fff; + } + .cat-title:after { + display: block; + font-family: "Material Icons"; + content: "\e5d2"; + position: absolute; + right: 15px; + top: 18px; + font-size: 26px; + } + .cat-title.active:after { + content: "\e14c"; + } +} +.submenu-container, .submenu-container ul { + box-shadow: 1px 1px 5px 0px rgba(0, 0, 0, 0.2); +} + +.sf-menu li:last-child { + border:none!important; +} + +#block_top_menu { + padding:0px; +} + +.sf-menu li { + position:relative!important; +} diff --git a/modules/blocktopdropdownmenu/img/arrows-ffffff.png b/modules/blocktopdropdownmenu/img/arrows-ffffff.png new file mode 100644 index 00000000..246dd919 Binary files /dev/null and b/modules/blocktopdropdownmenu/img/arrows-ffffff.png differ diff --git a/modules/blocktopdropdownmenu/img/bg_blocktopdropdownmenu_li_seleted.png b/modules/blocktopdropdownmenu/img/bg_blocktopdropdownmenu_li_seleted.png new file mode 100644 index 00000000..57fe03c7 Binary files /dev/null and b/modules/blocktopdropdownmenu/img/bg_blocktopdropdownmenu_li_seleted.png differ diff --git a/modules/blocktopdropdownmenu/img/blocktopdropdownmenu.gif b/modules/blocktopdropdownmenu/img/blocktopdropdownmenu.gif new file mode 100644 index 00000000..b4b507de Binary files /dev/null and b/modules/blocktopdropdownmenu/img/blocktopdropdownmenu.gif differ diff --git a/modules/blocktopdropdownmenu/img/blocktopdropdownmenu_hover.gif b/modules/blocktopdropdownmenu/img/blocktopdropdownmenu_hover.gif new file mode 100644 index 00000000..09f9c0af Binary files /dev/null and b/modules/blocktopdropdownmenu/img/blocktopdropdownmenu_hover.gif differ diff --git a/modules/blocktopdropdownmenu/img/blocktopdropdownmenu_left.gif b/modules/blocktopdropdownmenu/img/blocktopdropdownmenu_left.gif new file mode 100644 index 00000000..58980432 Binary files /dev/null and b/modules/blocktopdropdownmenu/img/blocktopdropdownmenu_left.gif differ diff --git a/modules/blocktopdropdownmenu/img/blocktopdropdownmenu_right.gif b/modules/blocktopdropdownmenu/img/blocktopdropdownmenu_right.gif new file mode 100644 index 00000000..d8ab2419 Binary files /dev/null and b/modules/blocktopdropdownmenu/img/blocktopdropdownmenu_right.gif differ diff --git a/modules/blocktopdropdownmenu/img/index.php b/modules/blocktopdropdownmenu/img/index.php new file mode 100644 index 00000000..08605e19 --- /dev/null +++ b/modules/blocktopdropdownmenu/img/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2016 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; diff --git a/modules/blocktopdropdownmenu/img/search.gif b/modules/blocktopdropdownmenu/img/search.gif new file mode 100644 index 00000000..e32a989f Binary files /dev/null and b/modules/blocktopdropdownmenu/img/search.gif differ diff --git a/modules/blocktopdropdownmenu/img/shadow.png b/modules/blocktopdropdownmenu/img/shadow.png new file mode 100644 index 00000000..87c54bdb Binary files /dev/null and b/modules/blocktopdropdownmenu/img/shadow.png differ diff --git a/modules/blocktopdropdownmenu/index.php b/modules/blocktopdropdownmenu/index.php new file mode 100644 index 00000000..08605e19 --- /dev/null +++ b/modules/blocktopdropdownmenu/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2016 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; diff --git a/modules/blocktopdropdownmenu/js/blocktopdropdownmenu.js b/modules/blocktopdropdownmenu/js/blocktopdropdownmenu.js new file mode 100644 index 00000000..54937da5 --- /dev/null +++ b/modules/blocktopdropdownmenu/js/blocktopdropdownmenu.js @@ -0,0 +1,131 @@ +/* +* 2007-2017 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA +* @copyright 2007-2017 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +var responsiveflagMenu = false; +var categoryMenu = $('ul.sf-menu'); +var mCategoryGrover = $('.sf-contener .cat-title'); + +$(document).ready(function(){ + categoryMenu = $('ul.sf-menu'); + mCategoryGrover = $('.sf-contener .cat-title'); + responsiveMenu(); + $(window).resize(responsiveMenu); +}); + +// check resolution +function responsiveMenu() +{ + if ($(window).width() <= 767 && responsiveflagMenu == false) { + menuChange('enable'); + responsiveflagMenu = true; + } else if ($(window).width() >= 768) { + menuChange('disable'); + responsiveflagMenu = false; + } +} + +// init Super Fish Menu for 767px+ resolution +function desktopInit() +{ + mCategoryGrover.off(); + mCategoryGrover.removeClass('active'); + $('.sf-menu > li > ul').removeClass('menu-mobile').parent().find('.menu-mobile-grover').remove(); + $('.sf-menu').removeAttr('style'); + categoryMenu.superfish('init'); + //add class for width define + $('.sf-menu > li > ul').addClass('submenu-container clearfix'); + // loop through each sublist under each top list item + $('.sf-menu > li > ul').each(function(){ + i = 0; + //add classes for clearing + $(this).each(function(){ + if ($(this).attr('class') != "category-thumbnail"){ + i++; + if(i % 2 == 1) + $(this).addClass('first-in-line-xs'); + else if (i % 5 == 1) + $(this).addClass('first-in-line-lg'); + } + }); + }); +} + +function mobileInit() +{ + + categoryMenu.superfish('destroy'); + $('.sf-menu').removeAttr('style'); + + mCategoryGrover.on('click', function(e){ + $(this).toggleClass('active').parent().find('ul.menu-content').stop().slideToggle('medium'); + return false; + }); + + $('.sf-menu > li > ul').addClass('menu-mobile clearfix').parent().prepend(''); + + $(".sf-menu .menu-mobile-grover").on('click', function(e){ + var catSubUl = $(this).next().next('.menu-mobile'); + if (catSubUl.is(':hidden')) + { + catSubUl.slideDown(); + $(this).addClass('active'); + } + else + { + catSubUl.slideUp(); + $(this).removeClass('active'); + } + return false; + }); + + + $('#block_top_menu > ul:first > li > a').on('click', function(e){ + var parentOffset = $(this).prev().offset(); + var relX = parentOffset.left - e.pageX; + if ($(this).parent('li').find('ul').length && relX >= 0 && relX <= 20) + { + e.preventDefault(); + var mobCatSubUl = $(this).next('.menu-mobile'); + var mobMenuGrover = $(this).prev(); + if (mobCatSubUl.is(':hidden')) + { + mobCatSubUl.slideDown(); + mobMenuGrover.addClass('active'); + } + else + { + mobCatSubUl.slideUp(); + mobMenuGrover.removeClass('active'); + } + } + }); + +} + +// change the menu display at different resolutions +function menuChange(status) +{ + status == 'enable' ? mobileInit(): desktopInit(); +} diff --git a/modules/blocktopdropdownmenu/js/hoverIntent.js b/modules/blocktopdropdownmenu/js/hoverIntent.js new file mode 100644 index 00000000..cbe3ae71 --- /dev/null +++ b/modules/blocktopdropdownmenu/js/hoverIntent.js @@ -0,0 +1,114 @@ +/** + * hoverIntent is similar to jQuery's built-in "hover" method except that + * instead of firing the handlerIn function immediately, hoverIntent checks + * to see if the user's mouse has slowed down (beneath the sensitivity + * threshold) before firing the event. The handlerOut function is only + * called after a matching handlerIn. + * + * hoverIntent r7 // 2013.03.11 // jQuery 1.9.1+ + * http://cherne.net/brian/resources/jquery.hoverIntent.html + * + * You may use hoverIntent under the terms of the MIT license. Basically that + * means you are free to use hoverIntent as long as this header is left intact. + * Copyright 2007, 2013 Brian Cherne + * + * // basic usage ... just like .hover() + * .hoverIntent( handlerIn, handlerOut ) + * .hoverIntent( handlerInOut ) + * + * // basic usage ... with event delegation! + * .hoverIntent( handlerIn, handlerOut, selector ) + * .hoverIntent( handlerInOut, selector ) + * + * // using a basic configuration object + * .hoverIntent( config ) + * + * @param handlerIn function OR configuration object + * @param handlerOut function OR selector for delegation OR undefined + * @param selector selector OR undefined + * @author Brian Cherne + **/ +(function($) { + $.fn.hoverIntent = function(handlerIn,handlerOut,selector) { + + // default configuration values + var cfg = { + interval: 100, + sensitivity: 7, + timeout: 0 + }; + + if ( typeof handlerIn === "object" ) { + cfg = $.extend(cfg, handlerIn ); + } else if ($.isFunction(handlerOut)) { + cfg = $.extend(cfg, { over: handlerIn, out: handlerOut, selector: selector } ); + } else { + cfg = $.extend(cfg, { over: handlerIn, out: handlerIn, selector: handlerOut } ); + } + + // instantiate variables + // cX, cY = current X and Y position of mouse, updated by mousemove event + // pX, pY = previous X and Y position of mouse, set by mouseover and polling interval + var cX, cY, pX, pY; + + // A private function for getting mouse position + var track = function(ev) { + cX = ev.pageX; + cY = ev.pageY; + }; + + // A private function for comparing current and previous mouse position + var compare = function(ev,ob) { + ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); + // compare mouse positions to see if they've crossed the threshold + if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) { + $(ob).off("mousemove.hoverIntent",track); + // set hoverIntent state to true (so mouseOut can be called) + ob.hoverIntent_s = 1; + return cfg.over.apply(ob,[ev]); + } else { + // set previous coordinates for next time + pX = cX; pY = cY; + // use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs) + ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval ); + } + }; + + // A private function for delaying the mouseOut function + var delay = function(ev,ob) { + ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); + ob.hoverIntent_s = 0; + return cfg.out.apply(ob,[ev]); + }; + + // A private function for handling mouse 'hovering' + var handleHover = function(e) { + // copy objects to be passed into t (required for event object to be passed in IE) + var ev = jQuery.extend({},e); + var ob = this; + + // cancel hoverIntent timer if it exists + if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); } + + // if e.type == "mouseenter" + if (e.type == "mouseenter") { + // set "previous" X and Y position based on initial entry point + pX = ev.pageX; pY = ev.pageY; + // update "current" X and Y position based on mousemove + $(ob).on("mousemove.hoverIntent",track); + // start polling interval (self-calling timeout) to compare mouse coordinates over time + if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );} + + // else e.type == "mouseleave" + } else { + // unbind expensive mousemove event + $(ob).off("mousemove.hoverIntent",track); + // if hoverIntent state is true, then call the mouseOut function after the specified delay + if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );} + } + }; + + // listen for mouseenter and mouseleave + return this.on({'mouseenter.hoverIntent':handleHover,'mouseleave.hoverIntent':handleHover}, cfg.selector); + }; +})(jQuery); \ No newline at end of file diff --git a/modules/blocktopdropdownmenu/js/index.php b/modules/blocktopdropdownmenu/js/index.php new file mode 100644 index 00000000..9a99a866 --- /dev/null +++ b/modules/blocktopdropdownmenu/js/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2017 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; diff --git a/modules/blocktopdropdownmenu/js/superfish-modified.js b/modules/blocktopdropdownmenu/js/superfish-modified.js new file mode 100644 index 00000000..c12ca421 --- /dev/null +++ b/modules/blocktopdropdownmenu/js/superfish-modified.js @@ -0,0 +1,257 @@ +/* + * jQuery Superfish Menu Plugin - v1.7.4 + * Copyright (c) 2013 Joel Birch + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + */ + +(function ($) { + "use strict"; + + var methods = (function () { + // private properties and methods go here + var c = { + bcClass: 'sf-breadcrumb', + menuClass: 'sf-js-enabled', + anchorClass: 'sf-with-ul', + menuArrowClass: 'sf-arrows' + }, + ios = (function () { + var ios = /iPhone|iPad|iPod/i.test(navigator.userAgent); + if (ios) { + // iOS clicks only bubble as far as body children + $(window).load(function () { + $('body').children().on('click', $.noop); + }); + } + return ios; + })(), + wp7 = (function () { + var style = document.documentElement.style; + return ('behavior' in style && 'fill' in style && /iemobile/i.test(navigator.userAgent)); + })(), + toggleMenuClasses = function ($menu, o) { + var classes = c.menuClass; + if (o.cssArrows) { + classes += ' ' + c.menuArrowClass; + } + $menu.toggleClass(classes); + }, + setPathToCurrent = function ($menu, o) { + return $menu.find('li.' + o.pathClass).slice(0, o.pathLevels) + .addClass(o.hoverClass + ' ' + c.bcClass) + .filter(function () { + return ($(this).children(o.popUpSelector).hide().show().length); + }).removeClass(o.pathClass); + }, + toggleAnchorClass = function ($li) { + $li.children('a').toggleClass(c.anchorClass); + }, + toggleTouchAction = function ($menu) { + var touchAction = $menu.css('ms-touch-action'); + touchAction = (touchAction === 'pan-y') ? 'auto' : 'pan-y'; + $menu.css('ms-touch-action', touchAction); + }, + applyHandlers = function ($menu, o) { + var targets = 'li:has(' + o.popUpSelector + ')'; + if ($.fn.hoverIntent && !o.disableHI) { + $menu.hoverIntent(over, out, targets); + } + else { + $menu + .on('mouseenter.superfish', targets, over) + .on('mouseleave.superfish', targets, out); + } + var touchevent = 'MSPointerDown.superfish'; + if (!ios) { + touchevent += ' touchend.superfish'; + } + if (wp7) { + touchevent += ' mousedown.superfish'; + } + $menu + .on('focusin.superfish', 'li', over) + .on('focusout.superfish', 'li', out) + .on(touchevent, 'a', o, touchHandler); + }, + touchHandler = function (e) { + var $this = $(this), + $ul = $this.siblings(e.data.popUpSelector); + + if ($ul.length > 0 && $ul.is(':hidden')) { + $this.one('click.superfish', false); + if (e.type === 'MSPointerDown') { + $this.trigger('focus'); + } else { + $.proxy(over, $this.parent('li'))(); + } + } + }, + over = function () { + var $this = $(this), + o = getOptions($this); + clearTimeout(o.sfTimer); + $this.siblings().superfish('hide').end().superfish('show'); + }, + out = function () { + var $this = $(this), + o = getOptions($this); + if (ios) { + $.proxy(close, $this, o)(); + } + else { + clearTimeout(o.sfTimer); + o.sfTimer = setTimeout($.proxy(close, $this, o), o.delay); + } + }, + close = function (o) { + o.retainPath = ($.inArray(this[0], o.$path) > -1); + this.superfish('hide'); + + if (!this.parents('.' + o.hoverClass).length) { + o.onIdle.call(getMenu(this)); + if (o.$path.length) { + $.proxy(over, o.$path)(); + } + } + }, + getMenu = function ($el) { + return $el.closest('.' + c.menuClass); + }, + getOptions = function ($el) { + return getMenu($el).data('sf-options'); + }; + + return { + // public methods + hide: function (instant) { + if (this.length) { + var $this = this, + o = getOptions($this); + if (!o) { + return this; + } + var not = (o.retainPath === true) ? o.$path : '', + $ul = $this.find('li.' + o.hoverClass).add(this).not(not).removeClass(o.hoverClass).children(o.popUpSelector), + speed = o.speedOut; + + if (instant) { + $ul.show(); + speed = 0; + } + o.retainPath = false; + o.onBeforeHide.call($ul); + $ul.stop(true, true).animate(o.animationOut, speed, function () { + var $this = $(this); + o.onHide.call($this); + }); + } + return this; + }, + show: function () { + var o = getOptions(this); + if (!o) { + return this; + } + var $this = this.addClass(o.hoverClass), + $ul = $this.children(o.popUpSelector); + + o.onBeforeShow.call($ul); + $ul.stop(true, true).animate(o.animation, o.speed, function () { + o.onShow.call($ul); + }); + return this; + }, + destroy: function () { + return this.each(function () { + var $this = $(this), + o = $this.data('sf-options'), + $hasPopUp; + if (!o) { + return false; + } + $hasPopUp = $this.find(o.popUpSelector).parent('li'); + clearTimeout(o.sfTimer); + toggleMenuClasses($this, o); + toggleAnchorClass($hasPopUp); + toggleTouchAction($this); + // remove event handlers + $this.off('.superfish').off('.hoverIntent'); + // clear animation's inline display style + $hasPopUp.children(o.popUpSelector).attr('style', function (i, style) { + return style.replace(/display[^;]+;?/g, ''); + }); + // reset 'current' path classes + o.$path.removeClass(o.hoverClass + ' ' + c.bcClass).addClass(o.pathClass); + $this.find('.' + o.hoverClass).removeClass(o.hoverClass); + o.onDestroy.call($this); + $this.removeData('sf-options'); + }); + }, + init: function (op) { + return this.each(function () { + var $this = $(this); + if ($this.data('sf-options')) { + return false; + } + var o = $.extend({}, $.fn.superfish.defaults, op), + $hasPopUp = $this.find(o.popUpSelector).parent('li'); + o.$path = setPathToCurrent($this, o); + + $this.data('sf-options', o); + + toggleMenuClasses($this, o); + toggleAnchorClass($hasPopUp); + toggleTouchAction($this); + applyHandlers($this, o); + + $hasPopUp.not('.' + c.bcClass).superfish('hide', true); + + o.onInit.call(this); + }); + } + }; + })(); + + $.fn.superfish = function (method, args) { + if (methods[method]) { + return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); + } + else if (typeof method === 'object' || ! method) { + return methods.init.apply(this, arguments); + } + else { + return $.error('Method ' + method + ' does not exist on jQuery.fn.superfish'); + } + }; + + $.fn.superfish.defaults = { + popUpSelector: 'ul,.sf-mega', // within menu context + hoverClass: 'sfHover', + pathClass: 'overrideThisToUse', + pathLevels: 1, + delay: 800, + animation: {opacity: 'show'}, + animationOut: {opacity: 'hide'}, + speed: 'normal', + speedOut: 'fast', + cssArrows: true, + disableHI: false, + onInit: $.noop, + onBeforeShow: $.noop, + onShow: $.noop, + onBeforeHide: $.noop, + onHide: $.noop, + onIdle: $.noop, + onDestroy: $.noop + }; + + // soon to be deprecated + $.fn.extend({ + hideSuperfishUl: methods.hide, + showSuperfishUl: methods.show + }); + +})(jQuery); \ No newline at end of file diff --git a/modules/blocktopdropdownmenu/logo.gif b/modules/blocktopdropdownmenu/logo.gif new file mode 100644 index 00000000..37703587 Binary files /dev/null and b/modules/blocktopdropdownmenu/logo.gif differ diff --git a/modules/blocktopdropdownmenu/logo.png b/modules/blocktopdropdownmenu/logo.png new file mode 100644 index 00000000..8c8d52bf Binary files /dev/null and b/modules/blocktopdropdownmenu/logo.png differ diff --git a/modules/blocktopdropdownmenu/menutoplinks.class.php b/modules/blocktopdropdownmenu/menutoplinks.class.php new file mode 100644 index 00000000..2579c67f --- /dev/null +++ b/modules/blocktopdropdownmenu/menutoplinks.class.php @@ -0,0 +1,146 @@ + +* @copyright 2007-2016 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +class MenuTopDropdownLinks +{ + public static function gets($id_lang, $id_linksmenutop = null, $id_shop) + { + $sql = 'SELECT l.id_linksmenutop, l.new_window, s.name, ll.link, ll.label + FROM '._DB_PREFIX_.'linksmenutop l + LEFT JOIN '._DB_PREFIX_.'linksmenutop_lang ll ON (l.id_linksmenutop = ll.id_linksmenutop AND ll.id_lang = '.(int)$id_lang.' AND ll.id_shop='.(int)$id_shop.') + LEFT JOIN '._DB_PREFIX_.'shop s ON l.id_shop = s.id_shop + WHERE 1 '.((!is_null($id_linksmenutop)) ? ' AND l.id_linksmenutop = "'.(int)$id_linksmenutop.'"' : '').' + AND l.id_shop IN (0, '.(int)$id_shop.')'; + + return Db::getInstance()->executeS($sql); + } + + public static function get($id_linksmenutop, $id_lang, $id_shop) + { + return self::gets($id_lang, $id_linksmenutop, $id_shop); + } + + public static function getLinkLang($id_linksmenutop, $id_shop) + { + $ret = Db::getInstance()->executeS(' + SELECT l.id_linksmenutop, l.new_window, ll.link, ll.label, ll.id_lang + FROM '._DB_PREFIX_.'linksmenutop l + LEFT JOIN '._DB_PREFIX_.'linksmenutop_lang ll ON (l.id_linksmenutop = ll.id_linksmenutop AND ll.id_shop='.(int)$id_shop.') + WHERE 1 + '.((!is_null($id_linksmenutop)) ? ' AND l.id_linksmenutop = "'.(int)$id_linksmenutop.'"' : '').' + AND l.id_shop IN (0, '.(int)$id_shop.') + '); + + $link = array(); + $label = array(); + $new_window = false; + + foreach ($ret as $line) { + $link[$line['id_lang']] = Tools::safeOutput($line['link']); + $label[$line['id_lang']] = Tools::safeOutput($line['label']); + $new_window = (bool)$line['new_window']; + } + + return array('link' => $link, 'label' => $label, 'new_window' => $new_window); + } + + public static function add($link, $label, $newWindow = 0, $id_shop) + { + if (!is_array($label)) { + return false; + } + if (!is_array($link)) { + return false; + } + + Db::getInstance()->insert( + 'linksmenutop', + array( + 'new_window'=>(int)$newWindow, + 'id_shop' => (int)$id_shop + ) + ); + $id_linksmenutop = Db::getInstance()->Insert_ID(); + + $result = true; + + foreach ($label as $id_lang=>$label) { + $result &= Db::getInstance()->insert( + 'linksmenutop_lang', + array( + 'id_linksmenutop'=>(int)$id_linksmenutop, + 'id_lang'=>(int)$id_lang, + 'id_shop'=>(int)$id_shop, + 'label'=>pSQL($label), + 'link'=>pSQL($link[$id_lang]) + ) + ); + } + + return $result; + } + + public static function update($link, $labels, $newWindow = 0, $id_shop, $id_link) + { + if (!is_array($labels)) { + return false; + } + if (!is_array($link)) { + return false; + } + + Db::getInstance()->update( + 'linksmenutop', + array( + 'new_window'=>(int)$newWindow, + 'id_shop' => (int)$id_shop + ), + 'id_linksmenutop = '.(int)$id_link + ); + + foreach ($labels as $id_lang => $label) { + Db::getInstance()->update( + 'linksmenutop_lang', + array( + 'id_shop'=>(int)$id_shop, + 'label'=>pSQL($label), + 'link'=>pSQL($link[$id_lang]) + ), + 'id_linksmenutop = '.(int)$id_link.' AND id_lang = '.(int)$id_lang + ); + } + } + + + public static function remove($id_linksmenutop, $id_shop) + { + $result = true; + $result &= Db::getInstance()->delete('linksmenutop', 'id_linksmenutop = '.(int)$id_linksmenutop.' AND id_shop = '.(int)$id_shop); + $result &= Db::getInstance()->delete('linksmenutop_lang', 'id_linksmenutop = '.(int)$id_linksmenutop); + + return $result; + } +} diff --git a/modules/blocktopdropdownmenu/translations/en.php b/modules/blocktopdropdownmenu/translations/en.php new file mode 100644 index 00000000..9b625302 --- /dev/null +++ b/modules/blocktopdropdownmenu/translations/en.php @@ -0,0 +1,54 @@ +blocktopdropdownmenu_e5b7525b4214a759876af4448bd6b87d'] = 'Top horizontal menu'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_f7979d86fe0b2cd11f44747ed4ff1100'] = 'Adds a new horizontal menu to the top of your e-commerce website.'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_efc226b17e0532afff43be870bff0de7'] = 'The settings have been updated.'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_d9a776c185f73d018b2915f4d5e7cc05'] = 'Unable to update settings for the following shop(s): %s'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_f32880ae5183a02c0a743bfd37a42cbc'] = 'Please complete the \"Link\" field.'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_cf8d684bd5f89d30da67c95363a48ab9'] = 'Please add a label.'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_e8d6809226ab177013e0a26bd2d8b60d'] = 'Please add a label for your default language.'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_3da9d5745155a430aac6d7de3b6de0c8'] = 'The link has been added.'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_022bb0995e3256abeeac1788a5e2c5b3'] = 'Unable to add link for the following shop(s): %s'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_e24e88b590807c2816be15abd7c7dbbc'] = 'The link has been removed.'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_e418ee8626f7941239c5b7a0880691ae'] = 'Unable to remove link for the following shop(s): %s'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_beb4f951c292ec9218473ffe5f59849d'] = 'The link has been edited.'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_b1a23c1a76918c10acc27bfa60798c42'] = 'You cannot manage top menu items from a \"All Shops\" or a \"Group Shop\" context, select directly the shop you want to edit'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_298b615220606d42b6ac60269df0d321'] = 'The modifications will be applied to shop: %s'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_aef3662e6419ddaaa0a31df70e3b6557'] = 'The modifications will be applied to this group: %s'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_dd25f68471362f6f5f183d6158d67854'] = 'The modifications will be applied to all shops'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_bf24faeb13210b5a703f3ccef792b000'] = 'All manufacturers'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_ecf253735ac0cba84a9d2eeff1f1b87c'] = 'All suppliers'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_944d19a34e5fa333a6a0de27e8c971da'] = 'Menu Top Link'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_eacd852cc1f621763dccbda3f3c15081'] = 'Search bar'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_00d23a76e43b46dae9ec7aa9dcbebb32'] = 'Enabled'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_b9f5c797ebbf55adccdd8539a65a0241'] = 'Disabled'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_c9cc8cce247e49bae79f15173ce97354'] = 'Save'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_0a112e5da975d8eaf28df9219c397764'] = 'All active products combinations quantities will be changed'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_1a6191a2dc928ff8fb8c02c050975ea7'] = 'Update link'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_58e9b25bb2e2699986a3abe2c92fc82e'] = 'Add a new link'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_b021df6aac4654c454f46c77646e745f'] = 'Label'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_97e7c9a7d06eac006a28bf05467fcc8b'] = 'Link'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_e5dc8e5afea0a065948622039358de37'] = 'New window'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_ec211f7c20af43e742bf2570c3cb84f9'] = 'Add'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_06933067aafd48425d67bcb01bba5cb6'] = 'Update'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_c7da501f54544eba6787960200d9efdb'] = 'CMS'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_ec136b444eede3bc85639fac0dd06229'] = 'Supplier'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_c0bd7654d5b278e65f21cf4e9153fdb4'] = 'Manufacturer'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_af1b98adf7f686b84cd0b443e022b7a0'] = 'Categories'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_12a521af593422cd508f7707662c9eb2'] = 'Shops'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_068f80c7519d0528fb08e82137a72131'] = 'Products'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_778118c7dd993db08f704e15efa4a7fa'] = 'Choose product ID'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_56e8bf6c54f1638e7bce5a2fcd5b20fe'] = 'Menu Top Links'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_449f6d82cde894eafd3c85b6fa918f89'] = 'Link ID'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_e93c33bd1341ab74195430daeb63db13'] = 'Shop name'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_387a8014f530f080bf2f3be723f8c164'] = 'Link list'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_17a1352d3f69a733fd472fce0238a07d'] = 'Indicate the ID number for the product'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_6bb999afde6fca60d70edce79d20b370'] = 'Product ID #'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_3ee3549ff0c93372a730749f784e9438'] = 'Please select just one item'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_e1b11c03820641dd1d1441bf68898d08'] = 'Change position'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_3713a99a6284e39061bd48069807aa52'] = 'Selected items'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_8fb31b552d63ffef9df733646a195bc0'] = 'Available items'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_1063e38cb53d94d386f21227fcd84717'] = 'Remove'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_ec211f7c20af43e742bf2570c3cb84f9'] = 'Add'; diff --git a/modules/blocktopdropdownmenu/translations/index.php b/modules/blocktopdropdownmenu/translations/index.php new file mode 100644 index 00000000..2a40ec79 --- /dev/null +++ b/modules/blocktopdropdownmenu/translations/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2016 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; diff --git a/modules/blocktopdropdownmenu/translations/it.php b/modules/blocktopdropdownmenu/translations/it.php new file mode 100644 index 00000000..139e035b --- /dev/null +++ b/modules/blocktopdropdownmenu/translations/it.php @@ -0,0 +1,54 @@ +blocktopdropdownmenu_e5b7525b4214a759876af4448bd6b87d'] = 'Top Menù Orizzontale'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_f7979d86fe0b2cd11f44747ed4ff1100'] = 'Aggiunge un nuovo menù orizzontale in cima al tuo negozio.'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_efc226b17e0532afff43be870bff0de7'] = 'Le impostazioni sono state aggiornate.'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_d9a776c185f73d018b2915f4d5e7cc05'] = 'Impossibile aggiornare le impostazioni dei seguenti negozi: %s'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_f32880ae5183a02c0a743bfd37a42cbc'] = 'Riempire il campo “link”.'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_cf8d684bd5f89d30da67c95363a48ab9'] = 'Aggiungi un\'etichetta.'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_e8d6809226ab177013e0a26bd2d8b60d'] = 'Aggiungi un\'etichetta per la lingua di default.'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_3da9d5745155a430aac6d7de3b6de0c8'] = 'Il link è stato aggiunto con successo'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_022bb0995e3256abeeac1788a5e2c5b3'] = 'Impossibile aggiungere il link ai seguenti negozi: %s'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_e24e88b590807c2816be15abd7c7dbbc'] = 'Il link è stato rimosso.'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_e418ee8626f7941239c5b7a0880691ae'] = 'Impossibile rimuovere il link ai seguenti negozi: %s'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_beb4f951c292ec9218473ffe5f59849d'] = 'Il link è stato modificato.'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_b1a23c1a76918c10acc27bfa60798c42'] = 'Non puoi amministrare gli oggetti del menù superiore da un contesto \"Tutti i negozi\" o \"Gruppo Negozi\". Seleziona direttamente il negozio che vuoi modificare.'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_298b615220606d42b6ac60269df0d321'] = 'Le modifiche verranno applicate al negozio: %s'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_aef3662e6419ddaaa0a31df70e3b6557'] = 'Le modifiche verranno applicate a questo gruppo: %s'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_dd25f68471362f6f5f183d6158d67854'] = 'Le modifiche verranno applicate a tutti i negozi'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_bf24faeb13210b5a703f3ccef792b000'] = 'Tutti i produttori'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_ecf253735ac0cba84a9d2eeff1f1b87c'] = 'Tutti i fornitori'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_944d19a34e5fa333a6a0de27e8c971da'] = 'Link del menu'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_eacd852cc1f621763dccbda3f3c15081'] = 'Barra di ricerca'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_00d23a76e43b46dae9ec7aa9dcbebb32'] = 'Attivato'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_b9f5c797ebbf55adccdd8539a65a0241'] = 'Disattivato'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_c9cc8cce247e49bae79f15173ce97354'] = 'Salva'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_0a112e5da975d8eaf28df9219c397764'] = 'Tutti prodotti, le combinazione e le quantità attive verranno cambiate'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_1a6191a2dc928ff8fb8c02c050975ea7'] = 'Aggiornamento Link'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_58e9b25bb2e2699986a3abe2c92fc82e'] = 'Aggiungi un nuovo link'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_b021df6aac4654c454f46c77646e745f'] = 'Etichetta'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_97e7c9a7d06eac006a28bf05467fcc8b'] = 'Link'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_e5dc8e5afea0a065948622039358de37'] = 'Nuova finestra'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_ec211f7c20af43e742bf2570c3cb84f9'] = 'Aggiungi'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_06933067aafd48425d67bcb01bba5cb6'] = 'Aggiorna'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_c7da501f54544eba6787960200d9efdb'] = 'CMS'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_ec136b444eede3bc85639fac0dd06229'] = 'Fornitore'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_c0bd7654d5b278e65f21cf4e9153fdb4'] = 'Produttore'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_af1b98adf7f686b84cd0b443e022b7a0'] = 'Categorie'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_12a521af593422cd508f7707662c9eb2'] = 'Negozi'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_068f80c7519d0528fb08e82137a72131'] = 'Prodotti'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_778118c7dd993db08f704e15efa4a7fa'] = 'Scegli un ID prodotto'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_56e8bf6c54f1638e7bce5a2fcd5b20fe'] = 'Link Top Menù'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_449f6d82cde894eafd3c85b6fa918f89'] = 'ID del Link'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_e93c33bd1341ab74195430daeb63db13'] = 'Nome del negozio'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_387a8014f530f080bf2f3be723f8c164'] = 'Lista link'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_17a1352d3f69a733fd472fce0238a07d'] = 'Indica il numero ID del prodotto'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_6bb999afde6fca60d70edce79d20b370'] = 'ID prodotto:'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_3ee3549ff0c93372a730749f784e9438'] = 'Scegliere solo un articolo alla volta'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_e1b11c03820641dd1d1441bf68898d08'] = 'Cambia posizione'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_3713a99a6284e39061bd48069807aa52'] = 'Elementi selezionati'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_8fb31b552d63ffef9df733646a195bc0'] = 'Elementi disponibili'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_1063e38cb53d94d386f21227fcd84717'] = 'Rimuovi'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_ec211f7c20af43e742bf2570c3cb84f9'] = 'Aggiungi'; diff --git a/modules/blocktopdropdownmenu/translations/pl.php b/modules/blocktopdropdownmenu/translations/pl.php new file mode 100644 index 00000000..4c09f384 --- /dev/null +++ b/modules/blocktopdropdownmenu/translations/pl.php @@ -0,0 +1,53 @@ +blocktopdropdownmenu_e5b7525b4214a759876af4448bd6b87d'] = 'Górne menu poziome'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_c9cc8cce247e49bae79f15173ce97354'] = 'Zapisz'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_efc226b17e0532afff43be870bff0de7'] = 'Ustawienia zostały zaktualizowane.'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_d9a776c185f73d018b2915f4d5e7cc05'] = 'Nie można zaktualizować ustawienia dla następujących sklepów: %s'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_f32880ae5183a02c0a743bfd37a42cbc'] = 'Wypełnij proszę pole \"Link\".'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_cf8d684bd5f89d30da67c95363a48ab9'] = 'Proszę dodać etykietę.'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_e8d6809226ab177013e0a26bd2d8b60d'] = 'Podaj etykietę dla domyślnego języka'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_3da9d5745155a430aac6d7de3b6de0c8'] = 'Link został dodany.'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_022bb0995e3256abeeac1788a5e2c5b3'] = 'Nie można dodać linku do następujących sklepów: %s'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_e24e88b590807c2816be15abd7c7dbbc'] = 'Link został usunięty.'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_e418ee8626f7941239c5b7a0880691ae'] = 'Nie można usunąć łącza do następujących sklepów: %s'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_beb4f951c292ec9218473ffe5f59849d'] = 'Link został edytowany.'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_b1a23c1a76918c10acc27bfa60798c42'] = 'Nie możesz zarządzać elementami górnego menu w kontekście wszystkich sklepów lub grupy sklepów, wybierz bezpośrednio konkretny sklep do edycji.'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_298b615220606d42b6ac60269df0d321'] = 'Zmiany zostaną zastosowane do sklepu: %s'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_aef3662e6419ddaaa0a31df70e3b6557'] = 'Zmiany zostaną zastosowane do tej grupy: %s'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_dd25f68471362f6f5f183d6158d67854'] = 'Zmiany zostaną zastosowane do wszystkich sklepów'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_bf24faeb13210b5a703f3ccef792b000'] = 'Wszyscy producenci'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_ecf253735ac0cba84a9d2eeff1f1b87c'] = 'Wszyscy dostawcy'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_944d19a34e5fa333a6a0de27e8c971da'] = 'Link górnego menu'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_eacd852cc1f621763dccbda3f3c15081'] = 'Pasek Szukania'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_00d23a76e43b46dae9ec7aa9dcbebb32'] = 'Włączony'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_b9f5c797ebbf55adccdd8539a65a0241'] = 'Wyłączony'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_0a112e5da975d8eaf28df9219c397764'] = 'Wszystkie aktywne ilości kombinacji produktów zostaną zmienione'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_1a6191a2dc928ff8fb8c02c050975ea7'] = 'Link aktualizacji'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_58e9b25bb2e2699986a3abe2c92fc82e'] = 'Dodaj nowy link'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_b021df6aac4654c454f46c77646e745f'] = 'Etykieta'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_97e7c9a7d06eac006a28bf05467fcc8b'] = 'Odnośnik'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_e5dc8e5afea0a065948622039358de37'] = 'Nowe okno'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_ec211f7c20af43e742bf2570c3cb84f9'] = 'Dodaj'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_06933067aafd48425d67bcb01bba5cb6'] = 'Uaktualnij'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_c7da501f54544eba6787960200d9efdb'] = 'CMS'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_ec136b444eede3bc85639fac0dd06229'] = 'Dostawca'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_c0bd7654d5b278e65f21cf4e9153fdb4'] = 'Producent'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_af1b98adf7f686b84cd0b443e022b7a0'] = 'Kategorie'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_12a521af593422cd508f7707662c9eb2'] = 'Sklepy'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_068f80c7519d0528fb08e82137a72131'] = 'Produkty'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_778118c7dd993db08f704e15efa4a7fa'] = 'Wybierz ID produktu'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_56e8bf6c54f1638e7bce5a2fcd5b20fe'] = 'Linki górnego menu'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_449f6d82cde894eafd3c85b6fa918f89'] = 'ID linku'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_e93c33bd1341ab74195430daeb63db13'] = 'Nazwa sklepu'; +$_MODULE['<{blocktopdropdownmenu}prestashop>blocktopdropdownmenu_387a8014f530f080bf2f3be723f8c164'] = 'Lista linków'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_17a1352d3f69a733fd472fce0238a07d'] = 'Podaje numer ID produktu'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_6bb999afde6fca60d70edce79d20b370'] = 'ID produktu #'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_3ee3549ff0c93372a730749f784e9438'] = 'Proszę wybrać tylko jeden'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_e1b11c03820641dd1d1441bf68898d08'] = 'Zmień położenie'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_3713a99a6284e39061bd48069807aa52'] = 'Wybrane elementy'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_8fb31b552d63ffef9df733646a195bc0'] = 'Dostępne elementy'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_1063e38cb53d94d386f21227fcd84717'] = 'Usuń'; +$_MODULE['<{blocktopdropdownmenu}prestashop>form_ec211f7c20af43e742bf2570c3cb84f9'] = 'Dodaj'; diff --git a/modules/blocktopdropdownmenu/upgrade/install-1.6.php b/modules/blocktopdropdownmenu/upgrade/install-1.6.php new file mode 100644 index 00000000..948aee70 --- /dev/null +++ b/modules/blocktopdropdownmenu/upgrade/install-1.6.php @@ -0,0 +1,10 @@ +registerHook('actionObjectCategoryAddAfter')); +} diff --git a/modules/blocktopdropdownmenu/upgrade/install-2.1.1.php b/modules/blocktopdropdownmenu/upgrade/install-2.1.1.php new file mode 100644 index 00000000..e35d64dd --- /dev/null +++ b/modules/blocktopdropdownmenu/upgrade/install-2.1.1.php @@ -0,0 +1,33 @@ + +* @copyright 2007-2016 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ +if (!defined('_PS_VERSION_')) { + exit; +} + +function upgrade_module_2_1_1($object) +{ + return ($object->registerHook('header')); +} diff --git a/modules/blocktopdropdownmenu/views/index.php b/modules/blocktopdropdownmenu/views/index.php new file mode 100644 index 00000000..2a40ec79 --- /dev/null +++ b/modules/blocktopdropdownmenu/views/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2016 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; diff --git a/modules/blocktopdropdownmenu/views/templates/admin/_configure/helpers/form/form.tpl b/modules/blocktopdropdownmenu/views/templates/admin/_configure/helpers/form/form.tpl new file mode 100644 index 00000000..41e74696 --- /dev/null +++ b/modules/blocktopdropdownmenu/views/templates/admin/_configure/helpers/form/form.tpl @@ -0,0 +1,125 @@ +{* +* 2007-2016 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA +* @copyright 2007-2016 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*} + +{extends file="helpers/form/form.tpl"} + +{block name="script"} +$(document).ready(function(){ +$('#menuOrderUp').click(function(e){ + e.preventDefault(); + move(true); +}); +$('#menuOrderDown').click(function(e){ + e.preventDefault(); + move(); +}); +$("#items").closest('form').on('submit', function(e) { + $("#items option").prop('selected', true); +}); +$("#addItem").click(add); +$("#availableItems").dblclick(add); +$("#removeItem").click(remove); +$("#items").dblclick(remove); +function add() +{ + $("#availableItems option:selected").each(function(i){ + var val = $(this).val(); + var text = $(this).text(); + text = text.replace(/(^\s*)|(\s*$)/gi,""); + if (val == "PRODUCT") + { + val = prompt('{l s="Indicate the ID number for the product" mod='blocktopdropdownmenu' js=1}'); + if (val == null || val == "" || isNaN(val)) + return; + text = '{l s="Product ID #" mod='blocktopdropdownmenu' js=1}'+val; + val = "PRD"+val; + } + $("#items").append(''); + }); + serialize(); + return false; +} +function remove() +{ + $("#items option:selected").each(function(i){ + $(this).remove(); + }); + serialize(); + return false; +} +function serialize() +{ + var options = ""; + $("#items option").each(function(i){ + options += $(this).val()+","; + }); + $("#itemsInput").val(options.substr(0, options.length - 1)); +} +function move(up) +{ + var tomove = $('#items option:selected'); + if (tomove.length >1) + { + alert('{l s="Please select just one item" mod='blocktopdropdownmenu'}'); + return false; + } + if (up) + tomove.prev().insertAfter(tomove); + else + tomove.next().insertBefore(tomove); + serialize(); + return false; +} +}); +{/block} + +{block name="input"} + {if $input.type == 'link_choice'} +
    +
    +

    {l s='Change position' mod='blocktopdropdownmenu'}

    +
    +
    +
    +
    +

    {l s='Selected items' mod='blocktopdropdownmenu'}

    + {$selected_links} +
    +
    +

    {l s='Available items' mod='blocktopdropdownmenu'}

    + {$choices} +
    + +
    +
    + + {else} + {$smarty.block.parent} + {/if} +{/block} diff --git a/modules/blocktopdropdownmenu/views/templates/admin/_configure/helpers/form/index.php b/modules/blocktopdropdownmenu/views/templates/admin/_configure/helpers/form/index.php new file mode 100644 index 00000000..2a40ec79 --- /dev/null +++ b/modules/blocktopdropdownmenu/views/templates/admin/_configure/helpers/form/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2016 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; diff --git a/modules/blocktopdropdownmenu/views/templates/admin/_configure/helpers/index.php b/modules/blocktopdropdownmenu/views/templates/admin/_configure/helpers/index.php new file mode 100644 index 00000000..2a40ec79 --- /dev/null +++ b/modules/blocktopdropdownmenu/views/templates/admin/_configure/helpers/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2016 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; diff --git a/modules/blocktopdropdownmenu/views/templates/admin/_configure/helpers/list/index.php b/modules/blocktopdropdownmenu/views/templates/admin/_configure/helpers/list/index.php new file mode 100644 index 00000000..2a40ec79 --- /dev/null +++ b/modules/blocktopdropdownmenu/views/templates/admin/_configure/helpers/list/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2016 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; diff --git a/modules/blocktopdropdownmenu/views/templates/admin/_configure/helpers/list/list_content.tpl b/modules/blocktopdropdownmenu/views/templates/admin/_configure/helpers/list/list_content.tpl new file mode 100644 index 00000000..7aa9b47f --- /dev/null +++ b/modules/blocktopdropdownmenu/views/templates/admin/_configure/helpers/list/list_content.tpl @@ -0,0 +1,34 @@ +{* +* 2007-2016 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA +* @copyright 2007-2016 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*} + +{extends file="helpers/list/list_content.tpl"} + +{block name="td_content"} + {if isset($params.type) && $params.type == 'link'} + {$tr.$key|escape:'html':'UTF-8'} + {else} + {$smarty.block.parent} + {/if} +{/block} diff --git a/modules/blocktopdropdownmenu/views/templates/admin/_configure/index.php b/modules/blocktopdropdownmenu/views/templates/admin/_configure/index.php new file mode 100644 index 00000000..2a40ec79 --- /dev/null +++ b/modules/blocktopdropdownmenu/views/templates/admin/_configure/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2016 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; diff --git a/modules/blocktopdropdownmenu/views/templates/admin/advert.tpl b/modules/blocktopdropdownmenu/views/templates/admin/advert.tpl new file mode 100644 index 00000000..02202ba9 --- /dev/null +++ b/modules/blocktopdropdownmenu/views/templates/admin/advert.tpl @@ -0,0 +1,21 @@ +{** +* PrestaShop module created by VEKIA, a guy from official PrestaShop community ;-) +* +* @author VEKIA https://www.prestashop.com/forums/user/132608-vekia/ +* @copyright 2010-9999 VEKIA +* @license This program is not free software and you can't resell and redistribute it +* +* CONTACT WITH DEVELOPER http://mypresta.eu +* support@mypresta.eu +*} + +
    +
    +  {l s='Advertisement' mod='mib'} + {l s='send me a donation' mod='mib'} +  {l s='or:' mod='mib'}  + {l s='Like on facebook' mod='mib'} + {l s='We are developing it for free. Just support us on ' mod='mib'}  +
    + +
    \ No newline at end of file diff --git a/modules/blocktopdropdownmenu/views/templates/admin/index.php b/modules/blocktopdropdownmenu/views/templates/admin/index.php new file mode 100644 index 00000000..2a40ec79 --- /dev/null +++ b/modules/blocktopdropdownmenu/views/templates/admin/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2016 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; diff --git a/modules/blocktopdropdownmenu/views/templates/index.php b/modules/blocktopdropdownmenu/views/templates/index.php new file mode 100644 index 00000000..2a40ec79 --- /dev/null +++ b/modules/blocktopdropdownmenu/views/templates/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2016 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; diff --git a/modules/contactform/translations/fr.php b/modules/contactform/translations/fr.php new file mode 100644 index 00000000..e69de29b diff --git a/modules/dashactivity/translations/fr.php b/modules/dashactivity/translations/fr.php new file mode 100644 index 00000000..e69de29b diff --git a/modules/dashgoals/translations/fr.php b/modules/dashgoals/translations/fr.php new file mode 100644 index 00000000..e69de29b diff --git a/modules/dashproducts/translations/fr.php b/modules/dashproducts/translations/fr.php new file mode 100644 index 00000000..e69de29b diff --git a/modules/dashtrends/translations/fr.php b/modules/dashtrends/translations/fr.php new file mode 100644 index 00000000..e69de29b diff --git a/modules/graphnvd3/translations/fr.php b/modules/graphnvd3/translations/fr.php new file mode 100644 index 00000000..e69de29b diff --git a/modules/gridhtml/translations/fr.php b/modules/gridhtml/translations/fr.php new file mode 100644 index 00000000..e69de29b diff --git a/modules/gsitemap/translations/fr.php b/modules/gsitemap/translations/fr.php new file mode 100644 index 00000000..e69de29b diff --git a/modules/iqitmegamenu/Readme.md b/modules/iqitmegamenu/Readme.md new file mode 100644 index 00000000..9d7ab5e0 --- /dev/null +++ b/modules/iqitmegamenu/Readme.md @@ -0,0 +1,5 @@ +IQITMEGAMENU +Created by iqit-commerce.com + +Video guide: https://www.youtube.com/watch?v=-m_HB1_2Bek +Doc guide in readme_en.pdf \ No newline at end of file diff --git a/modules/iqitmegamenu/config_fr.xml b/modules/iqitmegamenu/config_fr.xml new file mode 100644 index 00000000..2181bc9f --- /dev/null +++ b/modules/iqitmegamenu/config_fr.xml @@ -0,0 +1,12 @@ + + + iqitmegamenu + + + + + + 1 + 0 + + \ No newline at end of file diff --git a/modules/iqitmegamenu/export/index.php b/modules/iqitmegamenu/export/index.php new file mode 100644 index 00000000..7470cefa --- /dev/null +++ b/modules/iqitmegamenu/export/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2014 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); +header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); + +header('Cache-Control: no-store, no-cache, must-revalidate'); +header('Cache-Control: post-check=0, pre-check=0', false); +header('Pragma: no-cache'); + +header('Location: ../'); +exit; diff --git a/modules/iqitmegamenu/index.php b/modules/iqitmegamenu/index.php new file mode 100644 index 00000000..2704b26e --- /dev/null +++ b/modules/iqitmegamenu/index.php @@ -0,0 +1,24 @@ + +* @copyright 2007-2015 IQIT-COMMERCE.COM +* @license GNU General Public License version 2 +* +* You can not resell or redistribute this software. +* +*/ + +header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); +header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); + +header('Cache-Control: no-store, no-cache, must-revalidate'); +header('Cache-Control: post-check=0, pre-check=0', false); +header('Pragma: no-cache'); + +header('Location: ../'); +exit; + diff --git a/modules/iqitmegamenu/iqitmegamenu.php b/modules/iqitmegamenu/iqitmegamenu.php new file mode 100644 index 00000000..47d03747 --- /dev/null +++ b/modules/iqitmegamenu/iqitmegamenu.php @@ -0,0 +1,5303 @@ + + * @copyright 2007-2016 IQIT-COMMERCE.COM + * @license GNU General Public License version 2 + * + * You can not resell or redistribute this software. + */ + +if (!defined('_PS_VERSION_')) { + exit; +} + +use PrestaShop\PrestaShop\Core\Module\WidgetInterface; +use PrestaShop\PrestaShop\Adapter\Image\ImageRetriever; +use PrestaShop\PrestaShop\Adapter\Product\PriceFormatter; +use PrestaShop\PrestaShop\Core\Product\ProductListingPresenter; +use PrestaShop\PrestaShop\Adapter\Product\ProductColorsRetriever; + +include_once _PS_MODULE_DIR_ . 'iqitmegamenu/models/IqitMenuTab.php'; +include_once _PS_MODULE_DIR_ . 'iqitmegamenu/models/IqitMenuHtml.php'; +include_once _PS_MODULE_DIR_ . 'iqitmegamenu/models/IqitMenuLinks.php'; + + +class IqitMegaMenu extends Module implements WidgetInterface +{ + protected $config_form = false; + private $_html = ''; + private $user_groups; + private $hor_sm_order; + + private $pattern = '/^([A-Z_]*)[0-9]+/'; + private $spacer_size = '5'; + + public function __construct() + { + $this->name = 'iqitmegamenu'; + $this->tab = 'front_office_features'; + $this->version = '1.2.2'; + $this->author = 'IQIT-COMMERCE.COM'; + $this->need_instance = 0; + $this->module_key = '54999588debd277b5118f60eead75dfe'; + $this->author_address = '0xE5604A55C613E7b54C5Ef0C758ea80CDdA6F15Ce'; + $this->iqitdevmode = false; + $this->iqitTheme = false; + $this->bootstrap = true; + + parent::__construct(); + + $this->displayName = $this->l('IQITMEGAMENU - most powerfull navigation for Prestashop'); + $this->description = $this->l('With drag and drop submenu creator'); + + $this->ps_versions_compliancy = array('min' => '1.7', 'max' => _PS_VERSION_); + + $this->config_name = 'iqitmegamenu'; + $this->defaults_mobile = array( + 'mobile_menu' => 'HOME0,CAT3,CAT26', + 'mobile_menu_style' => 0, + 'mobile_menu_depth' => 3, + 'hor_mb_bg' => '#000000', + 'hor_mb_txt' => '#ffffff', + 'hor_mb_border' => '1;1;#cecece', + 'hor_mb_c_bg' => '#ffffff', + 'hor_mb_csl_bg' => '#f8f8f8', + 'hor_mb_c_border' => '1;1;#cecece', + 'hor_mb_c_borderi' => '1;1;#cecece', + 'hor_mb_c_txt' => '#777777', + 'hor_mb_c_txth' => '#777777', + 'hor_mb_c_lhbg' => '#e5e5e5', + 'hor_mb_c_plus' => '#777777', + ); + $this->defaults_horizontal = array( + 'hor_hook' => 0, + 'hor_width' => 1, + 'hor_sw_width' => 1, + 'hor_s_width' => 1, + 'hor_sticky' => 1, + 'hor_bootstrap' => 0, + 'hor_s_transparent' => 1, + 'hor_animation' => 2, + 'hor_center' => 0, + 'hor_arrow' => 1, + 'hor_icon_position' => 0, + 'hor_maxwidth' => 400, + 'hor_s_arrow' => 1, + 'hor_bg_color' => '#000000', + 'hor_bg_image' => '', + 'hor_bg_repeat' => 0, + 'hor_border_top' => '1;0;#cecece', + 'hor_border_bottom' => '1;0;#cecece', + 'hor_border_sides' => '1;0;#cecece', + 'hor_border_inner' => '1;0;#cecece', + 'hor_link_txt_color' => '#ffffff', + 'hor_link_htxt_color' => '#000000', + 'hor_link_hbg_color' => '#fafafa', + 'hor_legend_txt_color' => '#ffffff', + 'hor_legend_bg_color' => '#CA5058', + 'hor_lineheight' => 45, + 'hor_link_padding' => 14, + 'hor_link_paddingb' => 20, + 'hor_link_bold' => 0, + 'hor_link_italics' => 0, + 'hor_link_uppercase' => 1, + 'hor_link_fontsize' => 14, + 'hor_link_fontsizeb' => 14, + 'hor_icon_fontsize' => 14, + + 'hor_sm_order' => 0, + 'hor_sm_bg_color' => '#ffffff', + 'hor_sm_bg_image' => '', + 'hor_sm_bg_repeat' => 0, + 'hor_sm_boxshadow' => 1, + 'hor_sm_border_top' => '1;1;#cecece', + 'hor_sm_border_bottom' => '1;1;#cecece', + 'hor_sm_border_sides' => '1;1;#cecece', + 'hor_sm_border_inner' => '1;1;#cecece', + 'hor_sm_tab_txt_color' => '#777777', + 'hor_sm_tab_bg_color' => '#F9F9F9', + 'hor_sm_tab_htxt_color' => '#777777', + 'hor_sm_tab_hbg_color' => '#ffffff', + 'hor_titlep_fontsize' => 13, + 'hor_titlep_color' => '#777777', + 'hor_titlep_colorh' => '#333333', + 'hor_titlep_uppercase' => 1, + 'hor_titlep_bold' => 1, + 'hor_titlep_border' => 1, + 'hor_titlep_borders' => '1;1;#cecece', + 'hor_subtxt_fontsize' => 12, + 'hor_subtxt_color' => '#777777', + 'hor_subtxt_colorh' => '#333333', + 'hor_subtxt_arrow' => 1, + 'hor_subtxt_level' => 1, + 'hor_custom_css' => '', + ); + $this->defaults_vertical = array( + 'ver_position' => 0, + 'ver_animation' => 2, + 'ver_arrow' => 1, + 'ver_s_arrow' => 1, + 'ver_boxshadow' => 1, + 'ver_title_bg' => '#000000', + 'ver_title_bgh' => '#282828', + 'ver_title_txt' => '#ffffff', + 'ver_title_txth' => '#ffffff', + + 'ver_title_size' => 14, + 'ver_title_height' => 45, + 'ver_title_bold' => 0, + 'ver_title_uppercase' => 1, + + 'ver_bg_color' => 'transparent', + 'ver_bg_image' => '', + 'ver_bg_repeat' => 0, + 'ver_border_top' => '1;0;#cecece', + 'ver_border_bottom' => '1;1;#cecece', + 'ver_border_sides' => '1;1;#cecece', + 'ver_border_inner' => '1;1;#cecece', + 'ver_link_txt_color' => '#777777', + 'ver_link_htxt_color' => '#000000', + 'ver_link_hbg_color' => '#fafafa', + 'ver_legend_txt_color' => '#ffffff', + 'ver_legend_bg_color' => '#CA5058', + 'ver_link_padding' => 20, + 'ver_link_bold' => 0, + 'ver_link_italics' => 0, + 'ver_link_uppercase' => 1, + 'ver_link_fontsize' => 14, + 'ver_icon_fontsize' => 14, + ); + } + + public function install() + { + if (parent::install() && + $this->registerHook('header') && + $this->registerHook('displayNavFullWidth') && + $this->registerHook('displayIqitMenu') && + $this->registerHook('displayLeftColumn') && + $this->registerHook('displayLeftColumnProduct') && + $this->registerHook('actionObjectCategoryUpdateAfter') && + $this->registerHook('actionObjectCategoryDeleteAfter') && + $this->registerHook('actionObjectCategoryAddAfter') && + $this->registerHook('actionObjectCmsUpdateAfter') && + $this->registerHook('actionObjectCmsDeleteAfter') && + $this->registerHook('actionObjectCmsAddAfter') && + $this->registerHook('actionObjectSupplierUpdateAfter') && + $this->registerHook('actionObjectSupplierDeleteAfter') && + $this->registerHook('actionObjectSupplierAddAfter') && + $this->registerHook('actionObjectManufacturerUpdateAfter') && + $this->registerHook('actionObjectManufacturerDeleteAfter') && + $this->registerHook('actionObjectManufacturerAddAfter') && + $this->registerHook('actionObjectProductUpdateAfter') && + $this->registerHook('actionObjectProductDeleteAfter') && + $this->registerHook('actionObjectProductAddAfter') && + $this->registerHook('categoryUpdate') && + $this->registerHook('actionShopDataDuplication') && + $this->createTables()) { + $this->installSamples(); + $this->setDefaults(); + $this->generateCss(); + return true; + } else { + return false; + } + } + + public function uninstall() + { + foreach ($this->defaults_mobile as $default => $value) { + Configuration::deleteByName($this->config_name . '_' . $default); + } + foreach ($this->defaults_horizontal as $default => $value) { + Configuration::deleteByName($this->config_name . '_' . $default); + } + foreach ($this->defaults_vertical as $default => $value) { + Configuration::deleteByName($this->config_name . '_' . $default); + } + return parent::uninstall() && $this->deleteTables(); + } + + protected function createTables() + { + /* tabs */ + $res = (bool) Db::getInstance()->execute(' + CREATE TABLE IF NOT EXISTS `' . _DB_PREFIX_ . 'iqitmegamenu_tabs_shop` ( + `id_tab` int(10) unsigned NOT NULL AUTO_INCREMENT, + `id_shop` int(10) unsigned NOT NULL, + PRIMARY KEY (`id_tab`, `id_shop`) + ) ENGINE=' . _MYSQL_ENGINE_ . ' DEFAULT CHARSET=UTF8; + '); + + /* tabs configuration */ + $res &= Db::getInstance()->execute(' + CREATE TABLE IF NOT EXISTS `' . _DB_PREFIX_ . 'iqitmegamenu_tabs` ( + `id_tab` int(10) unsigned NOT NULL AUTO_INCREMENT, + `menu_type` tinyint(1) unsigned NOT NULL DEFAULT \'0\', + `active` tinyint(1) unsigned NOT NULL DEFAULT \'0\', + `active_label` tinyint(1) unsigned NOT NULL DEFAULT \'0\', + `position` int(10) unsigned NOT NULL DEFAULT \'0\', + `url_type` tinyint(1) unsigned NOT NULL DEFAULT \'0\', + `id_url` varchar(64) NULL, + `icon_type` tinyint(1) unsigned NOT NULL DEFAULT \'0\', + `icon_class` varchar(64) NULL, + `icon` varchar(255) NULL, + `legend_icon` varchar(64) NULL, + `new_window` tinyint(1) unsigned NOT NULL DEFAULT \'0\', + `float` tinyint(1) unsigned NOT NULL DEFAULT \'0\', + `bg_color` varchar(64) NULL, + `txt_color` varchar(64) NULL, + `h_bg_color` varchar(64) NULL, + `h_txt_color` varchar(64) NULL, + `labelbg_color` varchar(64) NULL, + `labeltxt_color` varchar(64) NULL, + `submenu_content` text NULL, + `submenu_type` tinyint(1) unsigned NOT NULL DEFAULT \'0\', + `submenu_width` tinyint(1) unsigned NOT NULL DEFAULT \'0\', + `submenu_bg_color` varchar(64) NULL, + `submenu_image` varchar(255) NULL, + `submenu_repeat` tinyint(1) unsigned NULL DEFAULT \'0\', + `submenu_bg_position` tinyint(1) unsigned NULL DEFAULT \'0\', + `submenu_link_color` varchar(64) NULL, + `submenu_hover_color` varchar(64) NULL, + `submenu_title_color` varchar(64) NULL, + `submenu_title_colorh` varchar(64) NULL, + `submenu_titleb_color` varchar(64) NULL, + `submenu_border_t` varchar(64) NULL, + `submenu_border_r` varchar(64) NULL, + `submenu_border_b` varchar(64) NULL, + `submenu_border_l` varchar(64) NULL, + `submenu_border_i` varchar(64) NULL, + `group_access` TEXT NOT NULL, + PRIMARY KEY (`id_tab`) + ) ENGINE=' . _MYSQL_ENGINE_ . ' DEFAULT CHARSET=UTF8; +'); + +/* tabs lang configuration */ + $res &= Db::getInstance()->execute(' + CREATE TABLE IF NOT EXISTS `' . _DB_PREFIX_ . 'iqitmegamenu_tabs_lang` ( + `id_tab` int(10) unsigned NOT NULL, + `id_lang` int(10) unsigned NOT NULL, + `title` varchar(255) NOT NULL, + `label` varchar(255) NULL, + `url` varchar(255) NULL, + PRIMARY KEY (`id_tab`,`id_lang`) + ) ENGINE=' . _MYSQL_ENGINE_ . ' DEFAULT CHARSET=UTF8; +'); + +/* custom links */ + $res &= Db::getInstance()->execute(' + CREATE TABLE IF NOT EXISTS `' . _DB_PREFIX_ . 'iqitmenulinks` ( + `id_iqitmenulinks` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `id_shop` INT(11) UNSIGNED NOT NULL, + `new_window` TINYINT( 1 ) NOT NULL, + INDEX (`id_shop`) + ) ENGINE=' . _MYSQL_ENGINE_ . ' DEFAULT CHARSET=UTF8; +'); + +/* custom links lang */ + $res &= Db::getInstance()->execute(' + CREATE TABLE IF NOT EXISTS `' . _DB_PREFIX_ . 'iqitmenulinks_lang` ( + `id_iqitmenulinks` INT(11) UNSIGNED NOT NULL, + `id_lang` INT(11) UNSIGNED NOT NULL, + `id_shop` INT(11) UNSIGNED NOT NULL, + `label` VARCHAR( 128 ) NOT NULL , + `link` VARCHAR( 128 ) NOT NULL , + INDEX ( `id_iqitmenulinks` , `id_lang`, `id_shop`) + ) ENGINE=' . _MYSQL_ENGINE_ . ' DEFAULT CHARSET=UTF8; +'); + +/* custom html */ + $res &= Db::getInstance()->execute(' + CREATE TABLE IF NOT EXISTS `' . _DB_PREFIX_ . 'iqitmegamenu_html` ( + `id_html` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `id_shop` INT(11) UNSIGNED NOT NULL, + INDEX (`id_html`, `id_shop`) + ) ENGINE=' . _MYSQL_ENGINE_ . ' DEFAULT CHARSET=UTF8; +'); + + $res &= Db::getInstance()->execute(' + CREATE TABLE IF NOT EXISTS `' . _DB_PREFIX_ . 'iqitmegamenu_htmlc` ( + `id_html` int(10) unsigned NOT NULL AUTO_INCREMENT, + `title` varchar(255) NOT NULL , + PRIMARY KEY (`id_html`) + ) ENGINE=' . _MYSQL_ENGINE_ . ' DEFAULT CHARSET=UTF8; +'); + +/* custom html lang */ + $res &= Db::getInstance()->execute(' + CREATE TABLE IF NOT EXISTS `' . _DB_PREFIX_ . 'iqitmegamenu_htmlc_lang` ( + `id_html` INT(11) UNSIGNED NOT NULL, + `id_lang` INT(11) UNSIGNED NOT NULL, + `id_shop` INT(11) UNSIGNED NOT NULL, + `html` text NULL, + INDEX ( `id_html` , `id_lang`, `id_shop`) + ) ENGINE=' . _MYSQL_ENGINE_ . ' DEFAULT CHARSET=UTF8; +'); + + return $res; + } + + /** + * deletes tables + */ + protected function deleteTables() + { + return Db::getInstance()->execute(' + DROP TABLE IF EXISTS `' . _DB_PREFIX_ . 'iqitmegamenu_tabs_shop`, `' . _DB_PREFIX_ . 'iqitmegamenu_tabs`, `' . _DB_PREFIX_ . 'iqitmegamenu_tabs_lang`, `' . _DB_PREFIX_ . 'iqitmenulinks`, `' . _DB_PREFIX_ . 'iqitmenulinks_lang`, `' . _DB_PREFIX_ . 'iqitmegamenu_html`, `' . _DB_PREFIX_ . 'iqitmegamenu_htmlc`, `' . _DB_PREFIX_ . 'iqitmegamenu_htmlc_lang`; + '); + } + + public function setDefaults() + { + foreach ($this->defaults_mobile as $default => $value) { + Configuration::updateValue($this->config_name . '_' . $default, $value); + } + foreach ($this->defaults_horizontal as $default => $value) { + Configuration::updateValue($this->config_name . '_' . $default, $value); + } + foreach ($this->defaults_vertical as $default => $value) { + Configuration::updateValue($this->config_name . '_' . $default, $value); + } + } + + public function getContent() + { + if (Tools::getValue('controller') != 'AdminModules' && Tools::getValue('configure') != $this->name) { + return; + } + if (Shop::getContext() == Shop::CONTEXT_GROUP || Shop::getContext() == Shop::CONTEXT_ALL) { + return $this->getWarningMultishopHtml(); + } + $this->context->controller->addJqueryUI('ui.sortable'); + $this->context->controller->addJS($this->_path . 'views/js/jquery.auto-complete.js'); + $this->context->controller->addJS($this->_path . 'views/js/back.js'); + $this->context->controller->addCSS($this->_path . 'views/css/back.css'); + $this->context->controller->addCSS($this->_path .'/views/css/font-awesome.min.css'); + $this->context->controller->addJS($this->_path . 'views/js/fontawesome-iconpicker.min.js'); + $this->context->controller->addCSS($this->_path . 'views/css/fontawesome-iconpicker.min.css'); + + Media::addJsDef(array('iqitsearch_url' => $this->context->link->getAdminLink('AdminModules', true) . '&configure=' . $this->name)); + + $languages = $this->context->controller->getLanguages(); + $default_language = (int) Configuration::get('PS_LANG_DEFAULT'); + + $labels = Tools::getValue('label') ? array_filter(Tools::getValue('label'), 'strlen') : array(); + $links_label = Tools::getValue('link') ? array_filter(Tools::getValue('link'), 'strlen') : array(); + + if (Tools::isSubmit('addTab') || (Tools::isSubmit('id_tab') && !Tools::isSubmit('submitAddTab') && IqitMenuTab::tabExists((int) Tools::getValue('id_tab')))) { + return $this->_html .= $this->renderAddForm(); + } elseif (Tools::isSubmit('submitAddTab') || Tools::isSubmit('delete_id_tab') || Tools::isSubmit('duplicateTabC')) { + if (!Tools::isSubmit('back_to_configuration')) { + if ($this->_postValidation()) { + $this->_postProcess(); + } + } + + $this->generateCss(); + $this->clearMenuCache(); + } elseif (Tools::isSubmit('addCustomHtml') || (Tools::isSubmit('id_html') && !Tools::isSubmit('submitAddHtml') && IqitMenuHtml::htmlExists((int) Tools::getValue('id_html')))) { + return $this->_html .= $this->renderAddHtmlForm(); + } elseif (Tools::isSubmit('submitAddHtml') || Tools::isSubmit('delete_id_html')) { + if (!Tools::isSubmit('back_to_configuration')) { + if ($this->_postValidationHtml()) { + $this->_postProcessHtml(); + } + } + $this->clearMenuCache(); + } elseif (Tools::isSubmit('exportConfiguration')) { + $var = array(); + + foreach ($this->defaults_horizontal as $default => $value) { + $var[$default] = Configuration::get($this->config_name . '_' . $default); + } + foreach ($this->defaults_vertical as $default => $value) { + $var[$default] = Configuration::get($this->config_name . '_' . $default); + } + foreach ($this->defaults_mobile as $default => $value) { + if ($default == 'mobile_menu') { + continue; + } else { + $var[$default] = Configuration::get($this->config_name . '_' . $default); + } + } + + $file_name = 'iqitmegamenu_config_' . time() . '.csv'; + $fd = fopen($this->getLocalPath() . $file_name, 'w+'); + file_put_contents($this->getLocalPath() . 'export/' . $file_name, print_r(serialize($var), true)); + fclose($fd); + Tools::redirect(_PS_BASE_URL_ . __PS_BASE_URI__ . 'modules/' . $this->name . '/export/' . $file_name); + } elseif (Tools::isSubmit('importConfiguration')) { + if (isset($_FILES['uploadConfig']) && isset($_FILES['uploadConfig']['tmp_name'])) { + $str = Tools::file_get_contents($_FILES['uploadConfig']['tmp_name']); + $arr = unserialize($str); + foreach ($arr as $default => $value) { + Configuration::updateValue($this->config_name . '_' . $default, $value); + } + $this->generateCss(); + $this->_html .= $this->displayConfirmation($this->l('Configuration imported')); + } else { + $this->_html .= $this->displayError($this->l('No config file')); + } + } elseif (Tools::isSubmit('exportTabs')) { + $var = IqitMenuTab::getAllShopTabs(); + + $file_name = 'iqitmegamenu_tabs_' . time() . '.csv'; + $fd = fopen($this->getLocalPath() . $file_name, 'w+'); + file_put_contents($this->getLocalPath() . 'export/' . $file_name, print_r(serialize($var), true)); + fclose($fd); + Tools::redirect(_PS_BASE_URL_ . __PS_BASE_URI__ . 'modules/' . $this->name . '/export/' . $file_name); + } elseif (Tools::isSubmit('importTabs')) { + if (isset($_FILES['uploadTabs']) && isset($_FILES['uploadTabs']['tmp_name'])) { + $str = Tools::file_get_contents($_FILES['uploadTabs']['tmp_name']); + $arr = unserialize($str); + + foreach ($arr as $id_tab => $tab) { + if (Validate::isLoadedObject($tab)) { + $tab->id_shop = (int)Context::getContext()->shop->id; + $tab->id_shop_list = (int)Context::getContext()->shop->id; + $tab->add(); + } + } + + $this->_html .= $this->displayConfirmation($this->l('Tabs imported')); + } else { + $this->_html .= $this->displayError($this->l('No tabs data file')); + } + } elseif (Tools::isSubmit('submitHorizonalMenuConfig')) { + foreach ($this->defaults_horizontal as $default => $value) { + if ($default == 'hor_search_border' || $default == 'hor_titlep_borders' || $default == 'hor_border_top' || $default == 'hor_border_bottom' || $default == 'hor_border_sides' || $default == 'hor_border_inner' || $default == 'hor_sm_border_top' || $default == 'hor_sm_border_bottom' || $default == 'hor_sm_border_sides' || $default == 'hor_sm_border_inner') { + Configuration::updateValue($this->config_name . '_' . $default, Tools::getValue($default . '_width') . ';' . Tools::getValue($default . '_type') . ';' . Tools::getValue($default . '_color')); + } elseif ($default == 'hor_custom_css') { + if (Tools::getIsset($default)) { + Configuration::updateValue($this->config_name . '_' . $default, Tools::getValue($default)); + } + } else { + Configuration::updateValue($this->config_name . '_' . $default, (Tools::getValue($default))); + } + } + + $this->generateCss(); + $this->clearMenuCache(); + } elseif (Tools::isSubmit('submitVerticalMenuConfig')) { + foreach ($this->defaults_vertical as $default => $value) { + if ($default == 'ver_border_top' || $default == 'ver_border_bottom' || $default == 'ver_border_sides' || $default == 'ver_border_inner') { + Configuration::updateValue($this->config_name . '_' . $default, Tools::getValue($default . '_width') . ';' . Tools::getValue($default . '_type') . ';' . Tools::getValue($default . '_color')); + } else { + Configuration::updateValue($this->config_name . '_' . $default, (Tools::getValue($default))); + } + } + $this->generateCss(); + $this->clearMenuCache(); + } elseif (Tools::isSubmit('submitMobileMenu')) { + $errors_update_shops = array(); + $items = Tools::getValue('items'); + $shops = Shop::getContextListShopID(); + foreach ($shops as $shop_id) { + $shop_group_id = Shop::getGroupFromShop($shop_id); + $updated = true; + + if (count($shops) == 1) { + if (is_array($items) && count($items)) { + $updated = Configuration::updateValue($this->config_name . '_mobile_menu', (string) implode(',', $items), false, (int) $shop_group_id, (int) $shop_id); + } else { + $updated = Configuration::updateValue($this->config_name . '_mobile_menu', '', false, (int) $shop_group_id, (int) $shop_id); + } + } + + if (!$updated) { + $shop = new Shop($shop_id); + $errors_update_shops[] = $shop->name; + } + } + foreach ($this->defaults_mobile as $default => $value) { + if ($default == 'hor_mb_border' || $default == 'hor_mb_c_border' || $default == 'hor_mb_c_borderi') { + Configuration::updateValue($this->config_name . '_' . $default, Tools::getValue($default . '_width') . ';' . Tools::getValue($default . '_type') . ';' . Tools::getValue($default . '_color')); + } elseif ($default == 'mobile_menu') { + continue; + } else { + Configuration::updateValue($this->config_name . '_' . $default, (Tools::getValue($default))); + } + } + + if (!count($errors_update_shops)) { + $this->_html .= $this->displayConfirmation($this->l('The settings have been updated.')); + } else { + $this->_html .= $this->displayError(sprintf($this->l('Unable to update settings for the following shop(s): %s'), implode(', ', $errors_update_shops))); + } + $this->generateCss(); + $this->clearMenuCache(); + } elseif (Tools::isSubmit('submitBlocktopmenuLinks') || (Tools::isSubmit('updateiqitmenulinks') && Tools::getValue('updatelink'))) { + $errors_add_link = array(); + + foreach ($languages as $key => $val) { + $links_label[$val['id_lang']] = Tools::getValue('link_' . (int) $val['id_lang']); + $labels[$val['id_lang']] = Tools::getValue('label_' . (int) $val['id_lang']); + } + + $count_links_label = count($links_label); + $count_label = count($labels); + + if ($count_links_label || $count_label) { + if (!$count_links_label) { + $this->_html .= $this->displayError($this->l('Please complete the "Link" field.')); + } elseif (!$count_label) { + $this->_html .= $this->displayError($this->l('Please add a label.')); + } elseif (!isset($labels[$default_language])) { + $this->_html .= $this->displayError($this->l('Please add a label for your default language.')); + } else { + $shops = Shop::getContextListShopID(); + + foreach ($shops as $shop_id) { + if (Tools::isSubmit('updateiqitmenulinks')) { + $added = IqitMenuLinks::update($links_label, $labels, (int) $shop_id, Tools::getValue('id_iqitmenulinks'), Tools::getValue('new_window', 0)); + } else { + $added = IqitMenuLinks::add($links_label, $labels, (int) $shop_id, Tools::getValue('new_window', 0)); + } + + if (!$added) { + $shop = new Shop($shop_id); + $errors_add_link[] = $shop->name; + } + } + + if (!count($errors_add_link)) { + $this->_html .= $this->displayConfirmation($this->l('The link has been added.')); + } else { + $this->_html .= $this->displayError(sprintf($this->l('Unable to add link for the following shop(s): %s'), implode(', ', $errors_add_link))); + } + } + } + $this->clearMenuCache(); + } elseif (Tools::isSubmit('deleteiqitmenulinks')) { + $errors_delete_link = array(); + $id_iqitmenulinks = Tools::getValue('id_iqitmenulinks', 0); + $shops = Shop::getContextListShopID(); + + foreach ($shops as $shop_id) { + $deleted = IqitMenuLinks::remove($id_iqitmenulinks, (int) $shop_id); + Configuration::updateValue($this->config_name . '_mobile_menu', str_replace(array('LNK' . $id_iqitmenulinks . ',', 'LNK' . $id_iqitmenulinks), '', Configuration::get($this->config_name . '_mobile_menu'))); + + if (!$deleted) { + $shop = new Shop($shop_id); + $errors_delete_link[] = $shop->name; + } + } + + if (!count($errors_delete_link)) { + $this->_html .= $this->displayConfirmation($this->l('The link has been removed.')); + } else { + $this->_html .= $this->displayError(sprintf($this->l('Unable to remove link for the following shop(s): %s'), implode(', ', $errors_delete_link))); + } + + $this->clearMenuCache(); + } + + $this->_html .= '
    ' . $this->renderTabsLinks(1) . '
    '; + $this->_html .= '
    ' . $this->renderTabsLinks(2) . '
    '; + $this->_html .= '
    ' . $this->renderTabsLinks(3) . '
    '; + $this->_html .= '
    ' . $this->renderHtmlContents() . '
    '; + $this->_html .= $this->renderForm(); + + return $this->_html; + } + + private function _postValidation() + { + $errors = array(); + + /* Validation for tab */ + if (Tools::isSubmit('submitAddTab')) { + /* If edit : checks id_tab */ + if (Tools::isSubmit('id_tab')) { + if (!Validate::isInt(Tools::getValue('id_tab')) && !IqitMenuTab::tabExists(Tools::getValue('id_tab'))) { + $errors[] = $this->l('Invalid id_tab'); + } + } + if (!Validate::isInt(Tools::getValue('position')) || (Tools::getValue('position') < 0)) { + $errors[] = $this->l('Invalid tab position.'); + } + + /* Checks title/description/*/ + $languages = Language::getLanguages(false); + foreach ($languages as $language) { + if (Tools::strlen(Tools::getValue('title_' . $language['id_lang'])) > 255) { + $errors[] = $this->l('The title is too long.'); + } + if (Tools::strlen(Tools::getValue('label_' . $language['id_lang'])) > 255) { + $errors[] = $this->l('The label is too long.'); + } + } + /* Checks title/description for default lang */ + $id_lang_default = (int) Configuration::get('PS_LANG_DEFAULT'); + if (Tools::strlen(Tools::getValue('title_' . $id_lang_default)) == 0) { + $errors[] = $this->l('The title is not set.'); + } + } elseif (Tools::isSubmit('delete_id_tab') && (!Validate::isInt(Tools::getValue('delete_id_tab')) || !IqitMenuTab::tabExists((int) Tools::getValue('delete_id_tab')))) { + $errors[] = $this->l('Invalid id_tab'); + } + + /* Display errors if needed */ + if (count($errors)) { + $this->_html .= $this->displayError(implode('
    ', $errors)); + return false; + } + return true; + } + + private function _postProcess() + { + $errors = array(); + + /* Processes tab */ + if (Tools::isSubmit('submitAddTab')) { + /* Sets ID if needed */ + if (Tools::getValue('id_tab')) { + $tab = new IqitMenuTab((int) Tools::getValue('id_tab')); + if (!Validate::isLoadedObject($tab)) { + $this->_html .= $this->displayError($this->l('Invalid id_tab')); + + return false; + } + } else { + $tab = new IqitMenuTab(); + $tab->menu_type = Tools::getValue('menu_type'); + $tab->position = IqitMenuTab::getNextPosition(Tools::getValue('menu_type')); + } + + $tab->active = Tools::getValue('active'); + $tab->active_label = Tools::getValue('active_label'); + + $tab->url_type = Tools::getValue('url_type'); + $tab->id_url = Tools::getValue('id_url'); + $tab->icon_type = Tools::getValue('icon_type'); + $tab->icon = Tools::getValue('icon'); + $tab->icon_class = Tools::getValue('icon_class'); + $tab->legend_icon = Tools::getValue('legend_icon'); + $tab->new_window = Tools::getValue('new_window'); + $tab->float = Tools::getValue('float'); + + //colors + $tab->bg_color = Tools::getValue('bg_color'); + $tab->txt_color = Tools::getValue('txt_color'); + $tab->h_bg_color = Tools::getValue('h_bg_color'); + $tab->h_txt_color = Tools::getValue('h_txt_color'); + $tab->labelbg_color = Tools::getValue('labelbg_color'); + $tab->labeltxt_color = Tools::getValue('labeltxt_color'); + + //submenu + $submenu_type = Tools::getValue('submenu_type'); + + $tab->submenu_type = $submenu_type; + $tab->submenu_width = Tools::getValue('submenu_width'); + $tab->submenu_bg_color = Tools::getValue('submenu_bg_color'); + $tab->submenu_image = Tools::getValue('submenu_image'); + $tab->submenu_repeat = Tools::getValue('submenu_repeat'); + $tab->submenu_bg_position = Tools::getValue('submenu_bg_position'); + $tab->submenu_link_color = Tools::getValue('submenu_link_color'); + $tab->submenu_hover_color = Tools::getValue('submenu_hover_color'); + + $tab->submenu_title_color = Tools::getValue('submenu_title_color'); + $tab->submenu_title_colorh = Tools::getValue('submenu_title_colorh'); + $tab->submenu_titleb_color = Tools::getValue('submenu_titleb_color'); + $tab->submenu_border_t = Tools::getValue('submenu_border_t'); + $tab->submenu_border_r = Tools::getValue('submenu_border_r'); + $tab->submenu_border_b = Tools::getValue('submenu_border_b'); + $tab->submenu_border_l = Tools::getValue('submenu_border_l'); + $tab->submenu_border_i = Tools::getValue('submenu_border_i'); + + $id_shop_list = Tools::getValue('checkBoxShopAsso_iqitmegamenu_tabs'); + + if (isset($id_shop_list) && !empty($id_shop_list)) { + $tab->id_shop_list = $id_shop_list; + } else { + $tab->id_shop_list = (int)Context::getContext()->shop->id; + } + + $groups = Group::getGroups($this->context->language->id); + $groupBox = Tools::getValue('groupBox', array()); + $group_access = array(); + + if (!$groupBox) { + foreach ($groups as $group) { + $group_access[$group['id_group']] = false; + } + } else { + foreach ($groups as $group) { + $group_access[$group['id_group']] = in_array($group['id_group'], $groupBox); + } + } + + $tab->group_access = serialize($group_access); + + $tab->submenu_content = ''; + + if ($submenu_type == 1) { + if (is_array(Tools::getValue('items')) && count(Tools::getValue('items'))) { + $tab->submenu_content = (string) implode(',', Tools::getValue('items')); + } else { + $tab->submenu_content = ''; + } + } + + if ($submenu_type == 2) { + $tab->submenu_content = urldecode(Tools::getValue('submenu-elements')); + } + + /* Sets each langue fields */ + $languages = Language::getLanguages(false); + foreach ($languages as $language) { + $tab->title[$language['id_lang']] = Tools::getValue('title_' . $language['id_lang']); + $tab->label[$language['id_lang']] = Tools::getValue('label_' . $language['id_lang']); + $tab->url[$language['id_lang']] = Tools::getValue('url_' . $language['id_lang']); + } + + /* Processes if no errors */ + if (!$errors) { + /* Adds */ + if (!Tools::getValue('id_tab')) { + if (!$tab->add()) { + $errors[] = $this->displayError($this->l('The tab could not be added.')); + } + } elseif (!$tab->update()) { + $errors[] = $this->displayError($this->l('The tab could not be updated.')); + } + + $this->clearMenuCache(); + } + } elseif (Tools::isSubmit('delete_id_tab')) { + $tab = new IqitMenuTab((int) Tools::getValue('delete_id_tab')); + $res = $tab->delete(); + $this->clearMenuCache(); + if (!$res) { + $this->_html .= $this->displayError('Could not delete.'); + } else { + Tools::redirectAdmin($this->context->link->getAdminLink('AdminModules', true) . '&conf=1&configure=' . $this->name . '&tab_module=' . $this->tab . '&module_name=' . $this->name); + } + } elseif (Tools::isSubmit('duplicateTabC')) { + $this->duplicateTab((int) Tools::getValue('duplicateTabC')); + $this->generateCss(); + $this->clearMenuCache(); + } + + $this->generateCss(); + $this->clearMenuCache(); + + if (count($errors)) { + $this->_html .= $this->displayError(implode('
    ', $errors)); + } elseif (Tools::isSubmit('submitAddTab') && Tools::getValue('id_tab')) { + Tools::redirectAdmin($this->context->link->getAdminLink('AdminModules', true) . '&conf=4&configure=' . $this->name . '&tab_module=' . $this->tab . '&module_name=' . $this->name); + } elseif (Tools::isSubmit('submitAddTab')) { + Tools::redirectAdmin($this->context->link->getAdminLink('AdminModules', true) . '&conf=3&configure=' . $this->name . '&tab_module=' . $this->tab . '&module_name=' . $this->name); + } + } + + private function _postValidationHtml() + { + $errors = array(); + if (Tools::isSubmit('submitAddHtml')) { + if (Tools::isSubmit('id_html')) { + if (!Validate::isInt(Tools::getValue('id_html')) && !IqitMenuHtml::htmlExists(Tools::getValue('id_html'))) { + $errors[] = $this->l('Invalid id_html'); + } + } + if (!Tools::strlen(Tools::getValue('title'))) { + $errors[] = $this->l('Title is not set'); + } + $id_lang_default = (int) Configuration::get('PS_LANG_DEFAULT'); + if (Tools::strlen(Tools::getValue('html_' . $id_lang_default)) == 0) { + $errors[] = $this->l('The html is not set'); + } + } elseif (Tools::isSubmit('delete_id_html') && (!Validate::isInt(Tools::getValue('delete_id_html')) || !IqitMenuHtml::htmlExists((int) Tools::getValue('delete_id_html')))) { + $errors[] = $this->l('Invalid id_html'); + } + if (count($errors)) { + $this->_html .= $this->displayError(implode('
    ', $errors)); + + return false; + } + return true; + } + + private function _postProcessHtml() + { + $errors = array(); + + /* Processes tab */ + if (Tools::isSubmit('submitAddHtml')) { + if (Tools::getValue('id_html')) { + $tab = new IqitMenuHtml((int) Tools::getValue('id_html')); + if (!Validate::isLoadedObject($tab)) { + $this->_html .= $this->displayError($this->l('Invalid id_tab')); + + return false; + } + } else { + $tab = new IqitMenuHtml(); + } + + $tab->title = Tools::getValue('title'); + + $languages = Language::getLanguages(false); + foreach ($languages as $language) { + $tab->html[$language['id_lang']] = Tools::getValue('html_' . $language['id_lang']); + } + + if (!$errors) { + if (!Tools::getValue('id_html')) { + if (!$tab->add()) { + $errors[] = $this->displayError($this->l('The html content could not be added.')); + } + } elseif (!$tab->update()) { + $errors[] = $this->displayError($this->l('The html could not be updated.')); + } + + $this->clearMenuCache(); + } + } elseif (Tools::isSubmit('delete_id_html')) { + $tab = new IqitMenuHtml((int) Tools::getValue('delete_id_html')); + $res = $tab->delete(); + $this->clearMenuCache(); + if (!$res) { + $this->_html .= $this->displayError('Could not delete.'); + } else { + Tools::redirectAdmin($this->context->link->getAdminLink('AdminModules', true) . '&conf=1&configure=' . $this->name . '&tab_module=' . $this->tab . '&module_name=' . $this->name); + } + } + + if (count($errors)) { + $this->_html .= $this->displayError(implode('
    ', $errors)); + } elseif (Tools::isSubmit('submitAddTab') && Tools::getValue('id_tab')) { + Tools::redirectAdmin($this->context->link->getAdminLink('AdminModules', true) . '&conf=4&configure=' . $this->name . '&tab_module=' . $this->tab . '&module_name=' . $this->name); + } elseif (Tools::isSubmit('submitAddTab')) { + Tools::redirectAdmin($this->context->link->getAdminLink('AdminModules', true) . '&conf=3&configure=' . $this->name . '&tab_module=' . $this->tab . '&module_name=' . $this->name); + } + } + + public function renderAddForm() + { + if (Tools::getValue('menu_type') == 3) { + $options_type = array( + array( + 'id_option' => 2, + 'name' => $this->l('Grid submenu'), + ), + ); + } else { + $options_type = array( + array( + 'id_option' => 2, + 'name' => $this->l('Grid submenu'), + ), + array( + 'id_option' => 1, + 'name' => $this->l('Predefinied tabs'), + ), + array( + 'id_option' => 0, + 'name' => $this->l('Hidden'), + ), + ); + } + + $columns_width = array( + array( + 'id_option' => 1, + 'name' => $this->l('1/12'), + ), + array( + 'id_option' => 2, + 'name' => $this->l('2/12'), + ), + array( + 'id_option' => 3, + 'name' => $this->l('3/12'), + ), + array( + 'id_option' => 4, + 'name' => $this->l('4/12'), + ), + array( + 'id_option' => 5, + 'name' => $this->l('5/12'), + ), + array( + 'id_option' => 6, + 'name' => $this->l('6/12'), + ), + array( + 'id_option' => 7, + 'name' => $this->l('7/12'), + ), + array( + 'id_option' => 8, + 'name' => $this->l('8/12'), + ), + array( + 'id_option' => 9, + 'name' => $this->l('9/12'), + ), + array( + 'id_option' => 10, + 'name' => $this->l('10/12'), + ), + array( + 'id_option' => 11, + 'name' => $this->l('11/12'), + ), + array( + 'id_option' => 12, + 'name' => $this->l('12/12'), + ), + ); + + $unidentified = new Group(Configuration::get('PS_UNIDENTIFIED_GROUP')); + $guest = new Group(Configuration::get('PS_GUEST_GROUP')); + $default = new Group(Configuration::get('PS_CUSTOMER_GROUP')); + + $unidentified_group_information = sprintf($this->l('%s - All people without a valid customer account.'), '' . $unidentified->name[$this->context->language->id] . ''); + $guest_group_information = sprintf($this->l('%s - Customer who placed an order with the guest checkout.'), '' . $guest->name[$this->context->language->id] . ''); + $default_group_information = sprintf($this->l('%s - All people who have created an account on this site.'), '' . $default->name[$this->context->language->id] . ''); + + $fields_form = array( + 'form' => array( + 'tab_name' => 'main_tab', + 'legend' => array( + 'title' => $this->l('Add tab'), + 'icon' => 'icon-cogs', + 'id' => 'fff', + ), + 'input' => array( + array( + 'type' => 'switch', + 'label' => $this->l('Active'), + 'name' => 'active', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'text', + 'label' => $this->l('Title'), + 'name' => 'title', + 'desc' => $this->l('Main title of tab. If you want to manually indicate new line put /n '), + 'lang' => true, + ), + array( + 'type' => 'switch', + 'label' => $this->l('Hide title'), + 'desc' => $this->l('Useful if you want to create tab like home link'), + 'name' => 'active_label', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'select', + 'label' => $this->l('Icon type'), + 'name' => 'icon_type', + 'options' => array( + 'query' => array( + array( + 'id_option' => 1, + 'name' => $this->l('Font icon class name'), + ), + array( + 'id_option' => 0, + 'name' => $this->l('Image icon'), + ), + ), + 'id' => 'id_option', + 'name' => 'name', + ), + ), + array( + 'type' => 'icon_selector', + 'label' => $this->l('Icon class'), + 'name' => 'icon_class', + 'desc' => $this->l('For example: "fa-star". You can use font awesome icons here'), + 'preffix_wrapper' => 'icon-class-wrapper', + 'wrapper_hidden' => true, + 'suffix_wrapper' => true, + ), + array( + 'type' => 'image_upload', + 'label' => $this->l('Icon'), + 'name' => 'icon', + 'preffix_wrapper' => 'image-icon-wrapper', + 'wrapper_hidden' => true, + 'suffix_wrapper' => true, + ), + + array( + 'type' => 'select', + 'label' => $this->l('Url type'), + 'name' => 'url_type', + 'options' => array( + 'query' => array( + array( + 'id_option' => 2, + 'name' => $this->l('No url'), + ), + array( + 'id_option' => 1, + 'name' => $this->l('Custom url'), + ), + array( + 'id_option' => 0, + 'name' => $this->l('Content url(category, cms, etc)'), + ), + ), + 'id' => 'id_option', + 'name' => 'name', + ), + ), + array( + 'type' => 'custom_select', + 'label' => $this->l('System url'), + 'name' => 'id_url', + 'choices' => $this->renderChoicesSelect(true, 'id_url'), + 'preffix_wrapper' => 'system-url-wrapper', + 'wrapper_hidden' => true, + 'suffix_wrapper' => true, + ), + array( + 'type' => 'text', + 'label' => $this->l('Custom url'), + 'name' => 'url', + 'desc' => $this->l('Should be full url with http:// prefix'), + 'lang' => true, + 'preffix_wrapper' => 'custom-url-wrapper', + 'wrapper_hidden' => true, + 'suffix_wrapper' => true, + ), + array( + 'type' => 'text', + 'label' => $this->l('Legend'), + 'name' => 'label', + 'desc' => $this->l('Additional text showed in tooltip'), + 'lang' => true, + ), + array( + 'type' => 'icon_selector', + 'label' => $this->l('Legend icon class'), + 'name' => 'legend_icon', + 'desc' => $this->l('For example: "fa-star". You can use font awesome icons here'), + ), + array( + 'type' => 'switch', + 'label' => $this->l('New window'), + 'name' => 'new_window', + 'hide' => (Tools::getValue('menu_type') == 3 ? true : false), + 'is_bool' => true, + 'desc' => $this->l('Open link in new window'), + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'switch', + 'label' => $this->l('Float right'), + 'hide' => (Tools::getValue('menu_type') == 3 ? true : false), + 'name' => 'float', + 'is_bool' => true, + 'desc' => $this->l('Position menu on right side of menu. If center option of menu is enabled it do not take effect'), + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'color', + 'label' => $this->l('Main link background color'), + 'name' => 'bg_color', + 'desc' => $this->l('Optional field. If not set default color will be used'), + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Main link text color'), + 'name' => 'txt_color', + 'desc' => $this->l('Optional field. If not set default color will be used'), + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Main link hover background color'), + 'name' => 'h_bg_color', + 'desc' => $this->l('Optional field. If not set default color will be used'), + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Main link hover text color'), + 'name' => 'h_txt_color', + 'desc' => $this->l('Optional field. If not set default color will be used'), + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Legend background color'), + 'name' => 'labelbg_color', + 'desc' => $this->l('Optional field. If not set default color will be used'), + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Legend text color'), + 'name' => 'labeltxt_color', + 'desc' => $this->l('Optional field. If not set default color will be used'), + 'size' => 30, + ), + array( + 'type' => 'select', + 'label' => $this->l('Submenu type and status'), + 'name' => 'submenu_type', + 'options' => array( + 'query' => $options_type, + 'id' => 'id_option', + 'name' => 'name', + ), + ), + array( + 'type' => 'select', + 'label' => $this->l('Submenu width'), + 'name' => 'submenu_width', + 'hide' => (Tools::getValue('menu_type') == 3 ? true : false), + 'options' => array( + 'query' => $columns_width, + 'id' => 'id_option', + 'name' => 'name', + ), + ), + + array( + 'type' => 'textarea', + 'label' => $this->l('Content'), + 'name' => 'submenu_content', + 'autoload_rte' => false, + 'hide' => true, + 'lang' => false, + ), + + array( + 'type' => 'color', + 'wrapper_hidden' => true, + 'row_title' => $this->l('Optional submenu style'), + 'preffix_wrapper' => 'cssstyle-submenu', + 'accordion_wrapper' => 'cssstyle-submenu-inner', + 'label' => $this->l('Submenu background color'), + 'name' => 'submenu_bg_color', + 'desc' => $this->l('Optional field. If not set default color will be used'), + 'size' => 30, + ), + array( + 'type' => 'image_upload', + 'label' => $this->l('Background image'), + 'name' => 'submenu_image', + ), + array( + 'type' => 'select', + 'label' => $this->l('Submenu Background repeat'), + 'name' => 'submenu_repeat', + 'options' => array( + 'query' => array(array( + 'id_option' => 3, + 'name' => $this->l('Repeat XY'), + ), + array( + 'id_option' => 2, + 'name' => $this->l('Repeat X'), + ), + array( + 'id_option' => 1, + 'name' => $this->l('Repeat Y'), + ), + array( + 'id_option' => 0, + 'name' => $this->l('No repeat'), + ), + ), + 'id' => 'id_option', + 'name' => 'name', + ), + ), + array( + 'type' => 'select', + 'label' => $this->l('Submenu Background position'), + 'name' => 'submenu_bg_position', + 'options' => array( + 'query' => array( + array( + 'id_option' => 8, + 'name' => $this->l('left top'), + ), + array( + 'id_option' => 7, + 'name' => $this->l('left center'), + ), + array( + 'id_option' => 6, + 'name' => $this->l('left bottom'), + ), + array( + 'id_option' => 5, + 'name' => $this->l('right top'), + ), + array( + 'id_option' => 4, + 'name' => $this->l('right center'), + ), + array( + 'id_option' => 3, + 'name' => $this->l('right bottom'), + ), + array( + 'id_option' => 2, + 'name' => $this->l('center top'), + ), + array( + 'id_option' => 1, + 'name' => $this->l('center center'), + ), + array( + 'id_option' => 0, + 'name' => $this->l('center bottom'), + ), + ), + 'id' => 'id_option', + 'name' => 'name', + ), + ), + array( + 'type' => 'color', + 'label' => $this->l('Title color'), + 'name' => 'submenu_title_color', + 'desc' => $this->l('Optional field. If not set default color will be used'), + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Title hover color'), + 'name' => 'submenu_title_colorh', + 'desc' => $this->l('Optional field. If not set default color will be used'), + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Title border color'), + 'name' => 'submenu_titleb_color', + 'desc' => $this->l('Optional field. If not set default color will be used.'), + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Submenu link color'), + 'name' => 'submenu_link_color', + 'desc' => $this->l('Optional field. If not set default color will be used'), + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Submenu link hover color'), + 'name' => 'submenu_hover_color', + 'desc' => $this->l('Optional field. If not set default color will be used'), + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Submenu border top color'), + 'name' => 'submenu_border_t', + 'desc' => $this->l('Optional field. If not set default color will be used'), + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Submenu border right color'), + 'name' => 'submenu_border_r', + 'desc' => $this->l('Optional field. If not set default color will be used'), + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Submenu border bottom color'), + 'name' => 'submenu_border_b', + 'desc' => $this->l('Optional field. If not set default color will be used'), + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Submenu border left color'), + 'name' => 'submenu_border_l', + 'desc' => $this->l('Optional field. If not set default color will be used'), + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Submenu inner border color'), + 'name' => 'submenu_border_i', + 'desc' => $this->l('Optional field. If not set default color will be used'), + 'size' => 30, + 'suffix_a_wrapper' => true, + 'suffix_wrapper' => true, + ), + array( + 'type' => 'grid_creator', + 'label' => '', + 'col' => 12, + 'preffix_wrapper' => 'grid-submenu', + 'wrapper_hidden' => true, + 'name' => 'grid_creator', + 'suffix_wrapper' => true, + ), + array( + 'type' => 'tabs_choice', + 'label' => '', + 'name' => 'tabs_choice', + 'lang' => true, + 'suffix_wrapper' => true, + 'preffix_wrapper' => 'tabs-submenu', + 'wrapper_hidden' => true, + ), + array( + 'type' => 'group', + 'label' => $this->l('Group access'), + 'name' => 'groupBox', + 'values' => Group::getGroups(Context::getContext()->language->id), + 'info_introduction' => $this->l('You now have three default customer groups.'), + 'unidentified' => $unidentified_group_information, + 'guest' => $guest_group_information, + 'customer' => $default_group_information, + 'hint' => $this->l('Mark all of the customer groups which you would like to have access to this menu tab.'), + ), + + ), + 'submit' => array( + 'title' => $this->l('Save'), + ), + ), + ); + if (Shop::isFeatureActive()) { + $fields_form['form']['input'][] = array( + 'type' => 'shop', + 'label' => $this->l('Shop association'), + 'name' => 'checkBoxShopAsso', + ); + } + + $fields_form['form']['input'][] = array('type' => 'hidden', 'name' => 'menu_type'); + + $selected_tabs = ''; + $submenu_content = ''; + $submenu_content_format = array(); + if (Tools::isSubmit('id_tab') && IqitMenuTab::tabExists((int) Tools::getValue('id_tab'))) { + $tab = new IqitMenuTab((int) Tools::getValue('id_tab')); + $fields_form['form']['input'][] = array('type' => 'hidden', 'name' => 'id_tab'); + + if ($tab->submenu_type == 1) { + $selected_tabs = $tab->submenu_content; + } + + if ($tab->submenu_type == 2 && $tab->submenu_content != '') { + $submenu_content = $tab->submenu_content; + $submenu_content_format = $this->buildSubmenuTree(Tools::jsonDecode($tab->submenu_content, true), false); + } + } + + $helper = new HelperForm(); + $helper->show_toolbar = false; + $helper->table = 'iqitmegamenu_tabs'; + $helper->show_cancel_button = true; + $lang = new Language((int) Configuration::get('PS_LANG_DEFAULT')); + $helper->default_form_language = $lang->id; + $helper->allow_employee_form_lang = Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') ? Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') : 0; + $this->fields_form = array(); + $helper->module = $this; + $helper->id = (int) Tools::getValue('id_tab'); + $helper->identifier = 'id_tab'; + $helper->submit_action = 'submitAddTab'; + $helper->currentIndex = $this->context->link->getAdminLink('AdminModules', false) . '&configure=' . $this->name . '&tab_module=' . $this->tab . '&module_name=' . $this->name; + $helper->token = Tools::getAdminTokenLite('AdminModules'); + $language = new Language((int) Configuration::get('PS_LANG_DEFAULT')); + $helper->tpl_vars = array( + 'base_url' => $this->context->shop->getBaseURL(), + 'language' => array( + 'id_lang' => $language->id, + 'iso_code' => $language->iso_code, + ), + 'fields_value' => $this->getAddFieldsValues(), + 'languages' => $this->context->controller->getLanguages(), + 'id_language' => $this->context->language->id, + 'module_path' => $this->_path, + 'va_links_select' => $this->renderChoicesSelect(null, null, 'select-links-ids'), + 'custom_html_select' => $this->renderCustomHtmlSelect(), + 'manufacturers_select' => $this->renderManufacturersSelect(), + 'suppliers_select' => $this->renderSuppliersSelect(), + 'categories_select' => $this->renderCategoriesSelect(false), + 'choices_tabs' => $this->renderChoicesTabsSelect(), + 'selected_tabs' => $this->renderSelectedTabsSelect($selected_tabs), + 'submenu_content' => htmlentities($submenu_content, ENT_COMPAT, 'UTF-8'), + 'submenu_content_format' => $submenu_content_format, + 'image_baseurl' => $this->_path . 'images/', + ); + + $helper->override_folder = '/'; + + return $helper->generateForm(array($fields_form)); + } + + public function getAddFieldsValues() + { + $fields = array(); + + $fields['menu_type'] = (int) Tools::getValue('menu_type'); + + $fields['active'] = true; + $fields['active_label'] = false; + $fields['icon'] = ''; + $fields['icon_class'] = ''; + $fields['legend_icon'] = ''; + + $fields['url_type'] = 0; + $fields['icon_type'] = 0; + $fields['id_url'] = 0; + + $fields['new_window'] = false; + $fields['float'] = false; + + $fields['bg_color'] = ''; + $fields['txt_color'] = ''; + $fields['h_bg_color'] = ''; + $fields['h_txt_color'] = ''; + $fields['labelbg_color'] = ''; + $fields['labeltxt_color'] = ''; + + //submenu + $fields['submenu_type'] = 0; + $fields['submenu_content'] = ''; + $fields['submenu_width'] = 12; + $fields['submenu_bg_color'] = ''; + $fields['submenu_image'] = ''; + $fields['submenu_repeat'] = ''; + $fields['submenu_bg_position'] = ''; + $fields['submenu_link_color'] = ''; + $fields['submenu_hover_color'] = ''; + $fields['submenu_title_color'] = ''; + $fields['submenu_title_colorh'] = ''; + $fields['submenu_titleb_color'] = ''; + $fields['submenu_border_t'] = ''; + $fields['submenu_border_r'] = ''; + $fields['submenu_border_b'] = ''; + $fields['submenu_border_l'] = ''; + $fields['submenu_border_i'] = ''; + + if (Tools::isSubmit('id_tab') && IqitMenuTab::tabExists((int) Tools::getValue('id_tab'))) { + $tab = new IqitMenuTab((int) Tools::getValue('id_tab')); + + $fields['id_tab'] = (int) Tools::getValue('id_tab', $tab->id); + $fields['active'] = $tab->active; + $fields['active_label'] = $tab->active_label; + $fields['url_type'] = $tab->url_type; + $fields['icon_type'] = $tab->icon_type; + $fields['id_url'] = $tab->id_url; + $fields['new_window'] = $tab->new_window; + $fields['float'] = $tab->float; + $fields['icon'] = $tab->icon; + $fields['icon_class'] = $tab->icon_class; + $fields['legend_icon'] = $tab->legend_icon; + $fields['bg_color'] = $tab->bg_color; + $fields['txt_color'] = $tab->txt_color; + $fields['h_bg_color'] = $tab->h_bg_color; + $fields['h_txt_color'] = $tab->h_txt_color; + $fields['labelbg_color'] = $tab->labelbg_color; + $fields['labeltxt_color'] = $tab->labeltxt_color; + + //submenu + $fields['submenu_type'] = $tab->submenu_type; + $fields['submenu_content'] = $tab->submenu_content; + $fields['submenu_width'] = $tab->submenu_width; + $fields['submenu_bg_color'] = $tab->submenu_bg_color; + $fields['submenu_image'] = $tab->submenu_image; + $fields['submenu_repeat'] = $tab->submenu_repeat; + $fields['submenu_bg_position'] = $tab->submenu_bg_position; + $fields['submenu_link_color'] = $tab->submenu_link_color; + $fields['submenu_hover_color'] = $tab->submenu_hover_color; + $fields['submenu_title_color'] = $tab->submenu_title_color; + $fields['submenu_title_colorh'] = $tab->submenu_title_colorh; + $fields['submenu_titleb_color'] = $tab->submenu_titleb_color; + $fields['submenu_border_t'] = $tab->submenu_border_t; + $fields['submenu_border_r'] = $tab->submenu_border_r; + $fields['submenu_border_b'] = $tab->submenu_border_b; + $fields['submenu_border_l'] = $tab->submenu_border_l; + $fields['submenu_border_i'] = $tab->submenu_border_i; + + $group_access = unserialize($tab->group_access); + + foreach ($group_access as $group => $value) { + $fields['groupBox_' . $group] = $value; + } + } else { + $tab = new IqitMenuTab(); + + $groups = Group::getGroups($this->context->language->id); + + foreach ($groups as $group) { + $fields['groupBox_' . $group['id_group']] = true; + } + } + + $languages = Language::getLanguages(false); + + foreach ($languages as $lang) { + $fields['title'][$lang['id_lang']] = Tools::getValue('title_' . (int) $lang['id_lang'], $tab->title[$lang['id_lang']]); + $fields['url'][$lang['id_lang']] = Tools::getValue('url_' . (int) $lang['id_lang'], $tab->url[$lang['id_lang']]); + $fields['label'][$lang['id_lang']] = Tools::getValue('label_' . (int) $lang['id_lang'], $tab->label[$lang['id_lang']]); + } + + return $fields; + } + + public function renderAddHtmlForm() + { + $fields_form = array( + 'form' => array( + 'tab_name' => 'main_tab', + 'legend' => array( + 'title' => $this->l('Add custom html'), + 'icon' => 'icon-cogs', + 'id' => 'fff', + ), + 'input' => array( + array( + 'type' => 'text', + 'label' => $this->l('Name'), + 'name' => 'title', + 'desc' => $this->l('Custom html name, Only for backoffice purposes'), + 'lang' => false, + ), + array( + 'type' => 'textarea', + 'label' => $this->l('Html content'), + 'name' => 'html', + 'lang' => true, + 'autoload_rte' => true, + 'desc' => $this->l('Custom html content which you can later select in submenu'), + 'cols' => 60, + 'rows' => 30, + ), + ), + 'submit' => array( + 'title' => $this->l('Save'), + ), + 'buttons' => array( + 'button' => array( + 'name' => 'back_to_configuration', + 'type' => 'submit', + 'icon' => 'process-icon-back', + 'class' => 'btn btn-default pull-left', + 'title' => $this->l('Back'), + )), + + ), + ); + + if (Tools::isSubmit('id_html') && IqitMenuHtml::htmlExists((int) Tools::getValue('id_html'))) { + $fields_form['form']['input'][] = array('type' => 'hidden', 'name' => 'id_html'); + } + + $helper = new HelperForm(); + $helper->show_toolbar = false; + $helper->table = $this->table; + $lang = new Language((int) Configuration::get('PS_LANG_DEFAULT')); + $helper->default_form_language = $lang->id; + $helper->allow_employee_form_lang = Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') ? Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') : 0; + $this->fields_form = array(); + $helper->module = $this; + $helper->identifier = $this->identifier; + $helper->submit_action = 'submitAddHtml'; + $helper->currentIndex = $this->context->link->getAdminLink('AdminModules', false) . '&configure=' . $this->name . '&tab_module=' . $this->tab . '&module_name=' . $this->name; + $helper->token = Tools::getAdminTokenLite('AdminModules'); + $language = new Language((int) Configuration::get('PS_LANG_DEFAULT')); + $helper->tpl_vars = array( + 'base_url' => $this->context->shop->getBaseURL(), + 'language' => array( + 'id_lang' => $language->id, + 'iso_code' => $language->iso_code, + ), + 'fields_value' => $this->getAddHtmlFieldsValues(), + 'languages' => $this->context->controller->getLanguages(), + 'id_language' => $this->context->language->id, + 'module_path' => $this->_path, + 'image_baseurl' => $this->_path . 'images/', + ); + + $helper->override_folder = '/'; + + return $helper->generateForm(array($fields_form)); + } + + public function getAddHtmlFieldsValues() + { + $fields = array(); + + $fields['title'] = ''; + + if (Tools::isSubmit('id_html') && IqitMenuHtml::htmlExists((int) Tools::getValue('id_html'))) { + $html = new IqitMenuHtml((int) Tools::getValue('id_html')); + $fields['id_html'] = (int) Tools::getValue('id_html', $html->id); + $fields['title'] = $html->title; + } else { + $html = new IqitMenuHtml(); + } + + $languages = Language::getLanguages(false); + + foreach ($languages as $lang) { + $fields['html'][$lang['id_lang']] = Tools::getValue('html_' . (int) $lang['id_lang'], $html->html[$lang['id_lang']]); + } + + return $fields; + } + + public function buildSubmenuTree(array $dataset, $frontend = false, $cssgenerator = false) + { + $id_lang = (int) Context::getContext()->language->id; + + $tree = array(); + foreach ($dataset as $id => &$node) { + if ($cssgenerator) { + //set style + if (isset($node['content_s']['br_top_st'])) { + $node['content_s']['br_top_st'] = $this->convertBorderType($node['content_s']['br_top_st']); + } + + if (isset($node['content_s']['br_right_st'])) { + $node['content_s']['br_right_st'] = $this->convertBorderType($node['content_s']['br_right_st']); + } + + if (isset($node['content_s']['br_bottom_st'])) { + $node['content_s']['br_bottom_st'] = $this->convertBorderType($node['content_s']['br_bottom_st']); + } + + if (isset($node['content_s']['br_left_st'])) { + $node['content_s']['br_left_st'] = $this->convertBorderType($node['content_s']['br_left_st']); + } + } + if ($frontend) { + if (isset($node['content_s']['title'][$id_lang]) && $node['content_s']['title'][$id_lang] != '') { + $node['content_s']['title'] = $node['content_s']['title'][$id_lang]; + } else { + unset($node['content_s']['title']); + } + + if (isset($node['content_s']['href'][$id_lang]) && $node['content_s']['href'][$id_lang] != '') { + $node['content_s']['href'] = $node['content_s']['href'][$id_lang]; + } else { + unset($node['content_s']['href']); + } + + if (isset($node['content_s']['legend'][$id_lang]) && $node['content_s']['legend'][$id_lang] != '') { + $node['content_s']['legend'] = $node['content_s']['legend'][$id_lang]; + } else { + unset($node['content_s']['legend']); + } + + //set variouse links + if (isset($node['contentType'])) { + switch ($node['contentType']) { + case 1: + if (isset($node['content']['ids'])) { + $customhtml = new IqitMenuHtml((int) $node['content']['ids'], $id_lang); + + if (Validate::isLoadedObject($customhtml)) { + $node['content']['ids'] = $customhtml->html; + } + } + break; + case 2: + if (isset($node['content']['ids'])) { + if ($node['content']['treep']) { + $node['content']['depth']++; + } + + foreach ($node['content']['ids'] as $key => $category) { + $node['content']['ids'][$key] = $this->generateCategoriesMenu(Category::getNestedCategories($node['content']['ids'][$key], $id_lang, true, $this->user_groups, true, '', $this->hor_sm_order), $node['content']['depth'], 1, $node['content']['sublimit'], 0, false, $node['content']); + } + } + break; + case 3: + if (isset($node['content']['ids'])) { + foreach ($node['content']['ids'] as $key => $link) { + $node['content']['ids'][$key] = $this->transformToLink($link, true); + } + } + break; + case 6: + if (isset($node['content']['source'][$id_lang]) && $node['content']['source'][$id_lang] != '') { + $node['content']['source'] = $node['content']['source'][$id_lang]; + } else { + unset($node['content']['source']); + } + + if (isset($node['content']['size'][$id_lang]) && $node['content']['size'][$id_lang] != '') { + $node['content']['size'] = $node['content']['size'][$id_lang]; + } else { + unset($node['content']['size']); + } + + if (isset($node['content']['href'][$id_lang]) && $node['content']['href'][$id_lang] != '') { + $node['content']['href'] = $node['content']['href'][$id_lang]; + } else { + unset($node['content']['href']); + } + + if (isset($node['content']['alt'][$id_lang]) && $node['content']['alt'][$id_lang] != '') { + $node['content']['alt'] = $node['content']['alt'][$id_lang]; + } else { + unset($node['content']['alt']); + } + + break; + } + } + } + + if (isset($node['contentType']) && $node['contentType'] == 4) { + if (isset($node['content']['ids']) && !empty($node['content']['ids'])) { + $node['content']['ids'] = $this->getProducts($node['content']['ids']); + } + } + + if ($node['parentId'] === 0) { + $tree[$id] = &$node; + } else { + if (!isset($dataset[$node['parentId']]['children'])) { + $dataset[$node['parentId']]['children'] = array(); + } + + $dataset[$node['parentId']]['children'][$id] = &$node; + } + } + + $tree = $this->sortArrayTree($tree); + return $tree; + } + + public function sortArrayTree($passedTree) + { + usort($passedTree, array($this, 'sortByPosition')); + + foreach ($passedTree as $key => $subtree) { + if (!empty($subtree['children'])) { + $passedTree[$key]['children'] = $this->sortArrayTree($subtree['children']); + } + } + + return $passedTree; + } + + public function sortByPosition($a, $b) + { + return $a['position'] - $b['position']; + } + + protected function renderForm() + { + $fields_form_global = array( + 'form' => array( + 'tab_name' => 'main_tab', + 'legend' => array( + 'title' => $this->l('Horizontal menu'), + 'icon' => 'icon-cogs', + ), + 'input' => array( + array( + 'type' => 'select', + 'label' => $this->l('Hook'), + 'desc' => $this->l('On some custom theme using default displayTop may not work corectly, for example if there is only half width of header preserved for this hook. Then you can select to use displayIqitMenu, + but you need to implement it in your template by placing {hook h="displayIqitMenu"} in your template in place where you want to show module. Probably in header.tpl file.'), + 'name' => 'hor_hook', + 'options' => array( + 'query' => array( + array( + 'id_option' => 1, + 'name' => $this->l('displayIqitMenu (custom hook, need to be implemented)'), + ), + array( + 'id_option' => 0, + 'name' => $this->l('displayTop (default Prestshop hook)'), + ), + ), + 'id' => 'id_option', + 'name' => 'name', + ), + ), + array( + 'type' => 'select', + 'label' => $this->l('Width of menu'), + 'name' => 'hor_width', + 'options' => array( + 'query' => array( + array( + 'id_option' => 1, + 'name' => $this->l('Content'), + ), + array( + 'id_option' => 0, + 'name' => $this->l('Full width'), + ), + ), + 'id' => 'id_option', + 'name' => 'name', + ), + ), + + array( + 'type' => 'switch', + 'label' => $this->l('Sticky menu'), + 'desc' => $this->l('If enabled menu will stick to the same spot in the viewport as your users scroll down your page.'), + 'name' => 'hor_sticky', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'switch', + 'label' => $this->l('Transparency on sticky menu'), + 'desc' => $this->l('Menu will be transparent on scroll'), + 'name' => 'hor_s_transparent', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'select', + 'label' => $this->l('Submenu animation'), + 'desc' => $this->l('You can show instantly(no animation) or with fade animation'), + 'name' => 'hor_animation', + 'options' => array( + 'query' => array( + array( + 'id_option' => 3, + 'name' => $this->l('Fade and slide from top'), + ), + array( + 'id_option' => 2, + 'name' => $this->l('Fade and slide from bottom'), + ), + array( + 'id_option' => 1, + 'name' => $this->l('Fade'), + ), + array( + 'id_option' => 0, + 'name' => $this->l('No animation'), + ), + ), + 'id' => 'id_option', + 'name' => 'name', + ), + ), + array( + 'type' => 'switch', + 'label' => $this->l('Center menu elements'), + 'desc' => $this->l('Main menu links will be centered'), + 'name' => 'hor_center', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'switch', + 'label' => $this->l('Arrow submenu inticator'), + 'desc' => $this->l('Show arrow icon if submenu exist'), + 'name' => 'hor_arrow', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'switch', + 'label' => $this->l('Submenu with arrow'), + 'desc' => $this->l('If there will be arrow beetwen submenu and main link'), + 'name' => 'hor_s_arrow', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'text', + 'label' => $this->l('Main menu height'), + 'name' => 'hor_lineheight', + 'upper_separator' => true, + 'row_title' => $this->l('Main menu design options'), + ), + array( + 'type' => 'color', + 'label' => $this->l('Background color'), + 'name' => 'hor_bg_color', + 'desc' => $this->l('Main menu backgrund color'), + 'size' => 30, + ), + array( + 'type' => 'image_upload', + 'label' => $this->l('Background image'), + 'name' => 'hor_bg_image', + ), + array( + 'type' => 'select', + 'label' => $this->l('Main menu backgrund repeat'), + 'name' => 'hor_bg_repeat', + 'options' => array( + 'query' => array(array( + 'id_option' => 3, + 'name' => $this->l('Repeat XY'), + ), + array( + 'id_option' => 2, + 'name' => $this->l('Repeat X'), + ), + array( + 'id_option' => 1, + 'name' => $this->l('Repeat Y'), + ), + array( + 'id_option' => 0, + 'name' => $this->l('No repeat'), + ), + ), + 'id' => 'id_option', + 'name' => 'name', + ), + ), + array( + 'type' => 'border_generator', + 'label' => $this->l('Menu bar top border '), + 'name' => 'hor_border_top', + ), + array( + 'type' => 'border_generator', + 'label' => $this->l('Menu bar bottom border '), + 'name' => 'hor_border_bottom', + ), + array( + 'type' => 'border_generator', + 'label' => $this->l('Menu bar left and right border'), + 'name' => 'hor_border_sides', + ), + array( + 'type' => 'border_generator', + 'label' => $this->l('Inner border'), + 'name' => 'hor_border_inner', + ), + array( + 'type' => 'text', + 'label' => $this->l('Main link font size'), + 'name' => 'hor_link_fontsize', + ), + array( + 'type' => 'text', + 'label' => $this->l('Main link left and right padding'), + 'name' => 'hor_link_padding', + 'desc' => $this->l('You can fit more elements thans to decrease of this value'), + ), + array( + 'type' => 'text', + 'label' => $this->l('Main link font size(resolution above 1320px)'), + 'name' => 'hor_link_fontsizeb', + ), + array( + 'type' => 'text', + 'label' => $this->l('Main link left and right padding(resolution above 1320px)'), + 'name' => 'hor_link_paddingb', + 'desc' => $this->l('You can fit more elements thans to decrease of this value'), + ), + array( + 'type' => 'text', + 'label' => $this->l('Main link max-width'), + 'desc' => $this->l('Helpfull if you have long tabs name and you want to make them two line'), + 'name' => 'hor_maxwidth', + ), + array( + 'type' => 'text', + 'label' => $this->l('Icon font size'), + 'name' => 'hor_icon_fontsize', + ), + array( + 'type' => 'select', + 'label' => $this->l('Icon position'), + 'name' => 'hor_icon_position', + 'options' => array( + 'query' => array( + array( + 'id_option' => 1, + 'name' => $this->l('Above text'), + ), + array( + 'id_option' => 0, + 'name' => $this->l('With text'), + ), + ), + 'id' => 'id_option', + 'name' => 'name', + ), + ), + array( + 'type' => 'switch', + 'label' => $this->l('Main links bold'), + 'name' => 'hor_link_bold', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'switch', + 'label' => $this->l('Main links italics'), + 'name' => 'hor_link_italics', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'switch', + 'label' => $this->l('Main links uppercase'), + 'name' => 'hor_link_uppercase', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'color', + 'label' => $this->l('Main link text color'), + 'name' => 'hor_link_txt_color', + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Main link hover text color'), + 'name' => 'hor_link_htxt_color', + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Main link hover background color'), + 'name' => 'hor_link_hbg_color', + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Legends text color'), + 'name' => 'hor_legend_txt_color', + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Legends background color'), + 'name' => 'hor_legend_bg_color', + 'size' => 30, + ), + array( + 'type' => 'textarea', + 'label' => $this->l('Custom CSS code'), + 'id' => 'codeEditor', + 'name' => 'hor_custom_css', + 'upper_separator' => true, + 'row_title' => $this->l('Custom css'), + ), + array( + 'type' => 'switch', + 'iqitTheme' => $this->iqitTheme, + 'label' => $this->l('Include bootstrap'), + 'desc' => $this->l('If your theme is not based on bootstrap you have to enable this option.'), + 'name' => 'hor_bootstrap', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + ), + 'submit' => array( + 'name' => 'submitHorizonalMenuConfig', + 'title' => $this->l('Save'), + ), + ), + ); + + $fields_form_submenustyl = array( + 'form' => array( + 'tab_name' => 'submenudesign_tab', + 'legend' => array( + 'title' => $this->l('Submenu design and options'), + 'icon' => 'icon-cogs', + ), + 'input' => array( + array( + 'type' => 'select', + 'label' => $this->l('Subcategories order'), + 'name' => 'hor_sm_order', + 'desc' => $this->l('Affects horizontal, vertical and mobile menu'), + 'options' => array( + 'query' => array( + array( + 'id_option' => 1, + 'name' => $this->l('Alphabetical'), + ), + array( + 'id_option' => 0, + 'name' => $this->l('Default'), + ), + ), + 'id' => 'id_option', + 'name' => 'name', + ), + ), + array( + 'type' => 'color', + 'label' => $this->l('Background color'), + 'name' => 'hor_sm_bg_color', + 'desc' => $this->l('Submenu backgrund color'), + 'size' => 30, + ), + array( + 'type' => 'image_upload', + 'label' => $this->l('Background image'), + 'name' => 'hor_sm_bg_image', + ), + array( + 'type' => 'select', + 'label' => $this->l('Submenu backgrund repeat'), + 'name' => 'hor_sm_bg_repeat', + 'options' => array( + 'query' => array(array( + 'id_option' => 3, + 'name' => $this->l('Repeat XY'), + ), + array( + 'id_option' => 2, + 'name' => $this->l('Repeat X'), + ), + array( + 'id_option' => 1, + 'name' => $this->l('Repeat Y'), + ), + array( + 'id_option' => 0, + 'name' => $this->l('No repeat'), + ), + ), + 'id' => 'id_option', + 'name' => 'name', + ), + ), + array( + 'type' => 'select', + 'label' => $this->l('Submenu box-shadow'), + 'name' => 'hor_sm_boxshadow', + 'options' => array( + 'query' => array( + array( + 'id_option' => 1, + 'name' => $this->l('Default box shadow effect'), + ), + array( + 'id_option' => 0, + 'name' => $this->l('No box shadow'), + ), + ), + 'id' => 'id_option', + 'name' => 'name', + ), + ), + array( + 'type' => 'border_generator', + 'label' => $this->l('Submenu top border '), + 'name' => 'hor_sm_border_top', + ), + array( + 'type' => 'border_generator', + 'label' => $this->l('Submenu bottom border '), + 'name' => 'hor_sm_border_bottom', + ), + array( + 'type' => 'border_generator', + 'label' => $this->l('Submenu left and right border'), + 'name' => 'hor_sm_border_sides', + ), + array( + 'type' => 'border_generator', + 'label' => $this->l('Inner border'), + 'name' => 'hor_sm_border_inner', + ), + array( + 'type' => 'color', + 'label' => $this->l('Predefinied tab text color'), + 'name' => 'hor_sm_tab_txt_color', + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Predefinied tab bg color'), + 'name' => 'hor_sm_tab_bg_color', + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Predefinied tab hover text color'), + 'name' => 'hor_sm_tab_htxt_color', + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Predefinied tab hover background color'), + 'name' => 'hor_sm_tab_hbg_color', + 'size' => 30, + ), + array( + 'type' => 'text', + 'upper_separator' => true, + 'row_title' => $this->l('Submenu columns titles or parent categories'), + 'label' => $this->l('Font size'), + 'name' => 'hor_titlep_fontsize', + ), + array( + 'type' => 'color', + 'label' => $this->l('Color'), + 'name' => 'hor_titlep_color', + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Hover color'), + 'name' => 'hor_titlep_colorh', + 'size' => 30, + ), + array( + 'type' => 'switch', + 'label' => $this->l('Title Uppercase'), + 'name' => 'hor_titlep_uppercase', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'switch', + 'label' => $this->l('Title bold'), + 'name' => 'hor_titlep_bold', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'switch', + 'label' => $this->l('Bottom border'), + 'name' => 'hor_titlep_border', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'border_generator', + 'label' => $this->l('Border bottom style'), + 'name' => 'hor_titlep_borders', + ), + array( + 'type' => 'text', + 'upper_separator' => true, + 'row_title' => $this->l('Default text options'), + 'label' => $this->l('Font size'), + 'name' => 'hor_subtxt_fontsize', + ), + array( + 'type' => 'color', + 'label' => $this->l('Color'), + 'name' => 'hor_subtxt_color', + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Hover color'), + 'name' => 'hor_subtxt_colorh', + 'size' => 30, + ), + array( + 'type' => 'switch', + 'label' => $this->l('Listing arrow'), + 'name' => 'hor_subtxt_arrow', + 'desc' => $this->l('Show arrow in decorated list of categories or links'), + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'switch', + 'label' => $this->l('Another menu level icon'), + 'name' => 'hor_subtxt_level', + 'desc' => $this->l('Show icon if there is second level of subcategories'), + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + + ), + 'submit' => array( + 'name' => 'submitHorizonalMenuConfig', + 'title' => $this->l('Save'), + ), + ), + ); + + $fields_form_vertical = array( + 'form' => array( + 'tab_name' => 'vertical_tab', + 'legend' => array( + 'title' => $this->l('Vertical menu'), + 'icon' => 'icon-cogs', + ), + 'input' => array( + array( + 'type' => 'select', + 'label' => $this->l('Position and status'), + 'desc' => $this->l('Make shure you enabled left column in theme if you want to use DisplayLeftColumnhook'), + 'name' => 'ver_position', + 'options' => array( + 'query' => array( + array( + 'id_option' => 3, + 'name' => $this->l('On horizontal menu(not expanded on homepage)'), + ), + array( + 'id_option' => 2, + 'name' => $this->l('On horizontal menu(expanded on homepage)'), + ), + array( + 'id_option' => 1, + 'name' => $this->l('On Left column(displayLeftColumn Hook)'), + ), + array( + 'id_option' => 0, + 'name' => $this->l('Disabled'), + ), + ), + 'id' => 'id_option', + 'name' => 'name', + ), + ), + array( + 'type' => 'select', + 'label' => $this->l('Submenu animation'), + 'desc' => $this->l('You can show instantly(no animation) or with fade animation'), + 'name' => 'ver_animation', + 'options' => array( + 'query' => array( + array( + 'id_option' => 1, + 'name' => $this->l('Fade'), + ), + array( + 'id_option' => 0, + 'name' => $this->l('No animation'), + ), + ), + 'id' => 'id_option', + 'name' => 'name', + ), + ), + array( + 'type' => 'select', + 'label' => $this->l('Boxshadow if on topbar'), + 'name' => 'ver_boxshadow', + 'options' => array( + 'query' => array( + array( + 'id_option' => 1, + 'name' => $this->l('Default box shadow effect'), + ), + array( + 'id_option' => 0, + 'name' => $this->l('No box shadow'), + ), + ), + 'id' => 'id_option', + 'name' => 'name', + ), + ), + array( + 'type' => 'switch', + 'label' => $this->l('Arrow submenu inticator'), + 'desc' => $this->l('Show arrow icon if submenu exist'), + 'name' => 'ver_arrow', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'switch', + 'label' => $this->l('Submenu with arrow'), + 'desc' => $this->l('If there will be arrow beetwen submenu and main link'), + 'name' => 'ver_s_arrow', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'color', + 'label' => $this->l('Title background color'), + 'name' => 'ver_title_bg', + 'desc' => $this->l('Title with "navigation" text'), + 'size' => 30, + 'row_title' => $this->l('Vertical menu design options'), + ), + array( + 'type' => 'color', + 'label' => $this->l('Title text color'), + 'name' => 'ver_title_txt', + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Title hover background color'), + 'name' => 'ver_title_bgh', + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Title hover text color'), + 'name' => 'ver_title_txth', + 'size' => 30, + ), + array( + 'type' => 'text', + 'label' => $this->l('Title font size'), + 'name' => 'ver_title_size', + ), + array( + 'type' => 'text', + 'label' => $this->l('Title line height'), + 'name' => 'ver_title_height', + ), + array( + 'type' => 'switch', + 'label' => $this->l('Title bold'), + 'name' => 'ver_title_bold', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'switch', + 'label' => $this->l('Title uppercase'), + 'name' => 'ver_title_uppercase', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'color', + 'label' => $this->l('Background color'), + 'name' => 'ver_bg_color', + 'desc' => $this->l('Main menu backgrund color'), + 'size' => 30, + ), + array( + 'type' => 'image_upload', + 'label' => $this->l('Background image'), + 'name' => 'ver_bg_image', + ), + array( + 'type' => 'select', + 'label' => $this->l('Main menu backgrund repeat'), + 'name' => 'ver_bg_repeat', + 'options' => array( + 'query' => array(array( + 'id_option' => 3, + 'name' => $this->l('Repeat XY'), + ), + array( + 'id_option' => 2, + 'name' => $this->l('Repeat X'), + ), + array( + 'id_option' => 1, + 'name' => $this->l('Repeat Y'), + ), + array( + 'id_option' => 0, + 'name' => $this->l('No repeat'), + ), + ), + 'id' => 'id_option', + 'name' => 'name', + ), + ), + array( + 'type' => 'border_generator', + 'label' => $this->l('Menu bar top border '), + 'name' => 'ver_border_top', + ), + array( + 'type' => 'border_generator', + 'label' => $this->l('Menu bar bottom border '), + 'name' => 'ver_border_bottom', + ), + array( + 'type' => 'border_generator', + 'label' => $this->l('Menu bar left and right border'), + 'name' => 'ver_border_sides', + ), + array( + 'type' => 'border_generator', + 'label' => $this->l('Inner border'), + 'name' => 'ver_border_inner', + ), + array( + 'type' => 'text', + 'label' => $this->l('Main link font size'), + 'name' => 'ver_link_fontsize', + ), + array( + 'type' => 'text', + 'label' => $this->l('Icon font size'), + 'name' => 'ver_icon_fontsize', + ), + array( + 'type' => 'text', + 'label' => $this->l('Main link top and bottom padding'), + 'name' => 'ver_link_padding', + 'desc' => $this->l('You can fit more elements thans to decrease of this value'), + ), + array( + 'type' => 'switch', + 'label' => $this->l('Main links bold'), + 'name' => 'ver_link_bold', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'switch', + 'label' => $this->l('Main links italics'), + 'name' => 'ver_link_italics', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'switch', + 'label' => $this->l('Main links uppercase'), + 'name' => 'ver_link_uppercase', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + array( + 'type' => 'color', + 'label' => $this->l('Main link text color'), + 'name' => 'ver_link_txt_color', + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Main link hover text color'), + 'name' => 'ver_link_htxt_color', + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Main link hover background color'), + 'name' => 'ver_link_hbg_color', + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Legends text color'), + 'name' => 'ver_legend_txt_color', + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Legends background color'), + 'name' => 'ver_legend_bg_color', + 'size' => 30, + ), + + ), + 'submit' => array( + 'name' => 'submitVerticalMenuConfig', + 'title' => $this->l('Save'), + ), + ), + ); + + $fields_form_submenutabs = array( + 'form' => array( + 'tab_name' => 'submenutabs_tab', + 'legend' => array( + 'title' => $this->l('Predefinied submenu tabs'), + 'icon' => 'icon-cogs', + ), + 'input' => array( + array( + 'type' => 'custom_info', + 'label' => $this->l('You can select this tabs in vertical or horizontal menu'), + 'name' => '', + ), + ), + ), + ); + + $fields_form_html = array( + 'form' => array( + 'tab_name' => 'customhtml_tab', + 'legend' => array( + 'title' => $this->l('Predefinied custom html content'), + 'icon' => 'icon-cogs', + ), + 'input' => array( + array( + 'type' => 'custom_info', + 'label' => $this->l('You can select this html content in submenu'), + 'name' => '', + ), + ), + ), + ); + + $fields_form_mobile = array( + 'form' => array( + 'tab_name' => 'mobile_tab', + 'legend' => array( + 'title' => $this->l('Mobile menu'), + 'icon' => 'icon-cogs', + ), + 'input' => array( + array( + 'type' => 'select', + 'label' => $this->l('Mobile menu type'), + 'name' => 'mobile_menu_style', + 'desc' => $this->l('Push menu will float from left site,'), + 'options' => array( + 'query' => array( + /* + array( + 'id_option' => 1, + 'name' => $this->l('Accordion'), + ), + */ + array( + 'id_option' => 0, + 'name' => $this->l('Push menu'), + ), + + ), + 'id' => 'id_option', + 'name' => 'name', + ), + ), + array( + 'type' => 'select', + 'label' => $this->l('Depth limit'), + 'name' => 'mobile_menu_depth', + 'desc' => $this->l('Push menu will float from left site,'), + 'options' => array( + 'query' => array( + array( + 'id_option' => 4, + 'name' => $this->l('4'), + ), + array( + 'id_option' => 3, + 'name' => $this->l('3'), + ), + array( + 'id_option' => 2, + 'name' => $this->l('2'), + ), + array( + 'id_option' => 1, + 'name' => $this->l('1'), + ), + ), + 'id' => 'id_option', + 'name' => 'name', + ), + ), + array( + 'type' => 'link_choice', + 'label' => '', + 'name' => 'link', + 'lang' => true, + ), + array( + 'row_title' => $this->l('Design options'), + 'type' => 'color', + 'label' => $this->l('Main bar background color'), + 'name' => 'hor_mb_bg', + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Main bar text color'), + 'name' => 'hor_mb_txt', + 'size' => 30, + ), + array( + 'type' => 'border_generator', + 'label' => $this->l('Main bar border'), + 'name' => 'hor_mb_border', + ), + array( + 'type' => 'color', + 'label' => $this->l('First level of menu background color'), + 'name' => 'hor_mb_c_bg', + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Other level of menu background color'), + 'name' => 'hor_mb_csl_bg', + 'size' => 30, + ), + array( + 'type' => 'border_generator', + 'label' => $this->l('Content border'), + 'name' => 'hor_mb_c_border', + ), + array( + 'type' => 'border_generator', + 'label' => $this->l('Content inner border'), + 'name' => 'hor_mb_c_borderi', + ), + array( + 'type' => 'color', + 'label' => $this->l('Content link color'), + 'name' => 'hor_mb_c_txt', + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Content link hover color'), + 'name' => 'hor_mb_c_txth', + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Content link hover background color'), + 'name' => 'hor_mb_c_lhbg', + 'size' => 30, + ), + array( + 'type' => 'color', + 'label' => $this->l('Plus icon color'), + 'name' => 'hor_mb_c_plus', + 'size' => 30, + ), + ), + 'submit' => array( + 'name' => 'submitMobileMenu', + 'title' => $this->l('Save'), + ), + ), + ); + + $fields_form_custom = array( + 'form' => array( + 'tab_name' => 'customlinks_tab', + 'assigned_list' => $this->renderListCustomLinks(), + 'legend' => array( + 'title' => $this->l('Custom links'), + 'icon' => 'icon-link', + ), + 'input' => array( + array( + 'type' => 'text', + 'label' => $this->l('Label'), + 'name' => 'label', + 'lang' => true, + ), + array( + 'type' => 'text', + 'label' => $this->l('Link'), + 'name' => 'link', + 'lang' => true, + ), + array( + 'type' => 'switch', + 'label' => $this->l('New window'), + 'name' => 'new_window', + 'is_bool' => true, + 'values' => array( + array( + 'id' => 'active_on', + 'value' => 1, + 'label' => $this->l('Enabled'), + ), + array( + 'id' => 'active_off', + 'value' => 0, + 'label' => $this->l('Disabled'), + ), + ), + ), + ), + 'submit' => array( + 'name' => 'submitBlocktopmenuLinks', + 'title' => $this->l('Add'), + ), + ), + ); + + $fields_form_ietool = array( + 'form' => array( + 'tab_name' => 'ietool_tab', + 'legend' => array( + 'title' => $this->l('Import/export'), + 'icon' => 'icon-download', + ), + 'input' => array( + array( + 'type' => 'ietool', + 'label' => $this->l('Import export tool'), + 'name' => 'ietool-name', + ), + ), + ), + + ); + + $helper = new HelperForm(); + + $helper->show_toolbar = false; + $helper->table = $this->table; + $helper->module = $this; + $helper->default_form_language = $this->context->language->id; + $helper->allow_employee_form_lang = Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG', 0); + + $helper->identifier = $this->identifier; + $helper->submit_action = 'submitiqitmegamenuModule'; + $helper->currentIndex = $this->context->link->getAdminLink('AdminModules', false) + . '&configure=' . $this->name . '&tab_module=' . $this->tab . '&module_name=' . $this->name; + $helper->token = Tools::getAdminTokenLite('AdminModules'); + + if (Tools::getIsset('updateiqitmenulinks') && !Tools::getValue('updateiqitmenulinks')) { + $fields_form_custom['form']['submit'] = array( + 'name' => 'updateiqitmenulinks', + 'title' => $this->l('Update'), + ); + } + + if (Tools::isSubmit('updateiqitmenulinks')) { + $fields_form_custom['form']['input'][] = array('type' => 'hidden', 'name' => 'updatelink'); + $fields_form_custom['form']['input'][] = array('type' => 'hidden', 'name' => 'id_iqitmenulinks'); + } + + $helper->tpl_vars = array( + 'fields_value' => $this->getConfigFormValues(), /* Add values for your inputs */ + 'languages' => $this->context->controller->getLanguages(), + 'module_path' => $this->_path, + 'id_language' => $this->context->language->id, + 'choices' => $this->renderChoicesSelect(null, null, null, true), + 'selected_links' => $this->makeMenuOptionMobile(), + ); + + return $helper->generateForm(array($fields_form_global, $fields_form_vertical, $fields_form_mobile, $fields_form_submenutabs, $fields_form_submenustyl, $fields_form_html, $fields_form_ietool, $fields_form_custom)); + } + + /** + * Set values for the inputs. + */ + protected function getConfigFormValues() + { + $var = array(); + $id_shop = (int) Context::getContext()->shop->id; + + foreach ($this->defaults_mobile as $default => $value) { + if ($default == 'hor_mb_border' || $default == 'hor_mb_c_border' || $default == 'hor_mb_c_borderi') { + $tmpborder = explode(';', Configuration::get($this->config_name . '_' . $default)); + + $var[$default]['width'] = $tmpborder[0]; + $var[$default]['type'] = $tmpborder[1]; + $var[$default]['color'] = $tmpborder[2]; + } else { + $var[$default] = Configuration::get($this->config_name . '_' . $default); + } + } + foreach ($this->defaults_horizontal as $default => $value) { + if ($default == 'hor_search_border' || $default == 'hor_titlep_borders' || $default == 'hor_border_top' || $default == 'hor_border_bottom' || $default == 'hor_border_sides' || $default == 'hor_border_inner' || $default == 'hor_sm_border_top' || $default == 'hor_sm_border_bottom' || $default == 'hor_sm_border_sides' || $default == 'hor_sm_border_inner') { + $tmpborder = explode(';', Configuration::get($this->config_name . '_' . $default)); + + $var[$default]['width'] = $tmpborder[0]; + $var[$default]['type'] = $tmpborder[1]; + $var[$default]['color'] = $tmpborder[2]; + } else { + $var[$default] = Configuration::get($this->config_name . '_' . $default); + } + } + foreach ($this->defaults_vertical as $default => $value) { + if ($default == 'ver_border_top' || $default == 'ver_border_bottom' || $default == 'ver_border_sides' || $default == 'ver_border_inner') { + $tmpborder = explode(';', Configuration::get($this->config_name . '_' . $default)); + + $var[$default]['width'] = $tmpborder[0]; + $var[$default]['type'] = $tmpborder[1]; + $var[$default]['color'] = $tmpborder[2]; + } else { + $var[$default] = Configuration::get($this->config_name . '_' . $default); + } + } + if (Tools::getIsset('updateiqitmenulinks') && (int) Tools::getValue('id_iqitmenulinks') > 0) { + $var['updatelink'] = true; + $var['id_iqitmenulinks'] = (int) Tools::getValue('id_iqitmenulinks'); + + $link = IqitMenuLinks::getLinkLang((int) Tools::getValue('id_iqitmenulinks'), $id_shop); + + $var['new_window'] = $link['new_window']; + + foreach (Language::getLanguages(false) as $lang) { + $var['link'][(int) $lang['id_lang']] = (isset($link['link'][$lang['id_lang']]) ? $link['link'][$lang['id_lang']] : ''); + $var['label'][(int) $lang['id_lang']] = (isset($link['label'][$lang['id_lang']]) ? $link['label'][$lang['id_lang']] : ''); + } + } else { + foreach (Language::getLanguages(false) as $lang) { + $var['link'][(int) $lang['id_lang']] = ''; + $var['label'][(int) $lang['id_lang']] = ''; + } + $var['new_window'] = false; + } + return $var; + } + + public function generateCss($allShops = false) + { + $css = ''; + + $menubgimage = Configuration::get($this->config_name . '_hor_bg_image'); + $vermenubgimage = Configuration::get($this->config_name . '_ver_bg_image'); + $submenubgimage = Configuration::get($this->config_name . '_hor_sm_bg_image'); + + //horizontal menu style + $css .= ' + #iqitmegamenu-horizontal{ + ' . $this->convertBorder(Configuration::get($this->config_name . '_hor_border_top'), 'top') . ' + ' . $this->convertBorder(Configuration::get($this->config_name . '_hor_border_bottom'), 'bottom') . ' + ' . $this->convertBorder(Configuration::get($this->config_name . '_hor_border_sides'), 'side') . ' + background-color: ' . Configuration::get($this->config_name . '_hor_bg_color') . '; + '; + if ($menubgimage != '') { + $css .= 'background-image: url(' . $menubgimage . '); background-repeat: ' . $this->convertBgRepeat(Configuration::get($this->config_name . '_hor_bg_repeat')) . ';'; + } + + $css .= '}' . PHP_EOL; + + $css .= ' + #cbp-hrmenu .cbp-legend{ + background-color: ' . Configuration::get($this->config_name . '_hor_legend_bg_color') . '; + color: ' . Configuration::get($this->config_name . '_hor_legend_txt_color') . '; + } + #cbp-hrmenu .cbp-legend .cbp-legend-arrow{ + color: ' . Configuration::get($this->config_name . '_hor_legend_bg_color') . '; + } + #cbp-hrmenu > ul > li > a:hover, #cbp-hrmenu > ul > li.cbp-hropen > a, #cbp-hrmenu > ul > li.cbp-hropen > a:hover{ + background-color: ' . Configuration::get($this->config_name . '_hor_link_hbg_color') . '; + color: ' . Configuration::get($this->config_name . '_hor_link_htxt_color') . '; + } + #cbp-hrmenu > ul > li > a, #cbp-hrmenu > ul > li > span.cbp-main-link{ + color: ' . Configuration::get($this->config_name . '_hor_link_txt_color') . '; + line-height: ' . Configuration::get($this->config_name . '_hor_lineheight') . 'px; + padding-left: ' . Configuration::get($this->config_name . '_hor_link_padding') . 'px; + max-width: ' . Configuration::get($this->config_name . '_hor_maxwidth') . 'px; + padding-right: ' . Configuration::get($this->config_name . '_hor_link_padding') . 'px; + ' . (Configuration::get($this->config_name . '_hor_link_bold') ? 'font-weight: bold;' : '') . ' + ' . (Configuration::get($this->config_name . '_hor_link_italics') ? 'font-style: italic;' : '') . ' + ' . (Configuration::get($this->config_name . '_hor_link_uppercase') ? 'text-transform: uppercase;' : '') . ' + font-size: ' . Configuration::get($this->config_name . '_hor_link_fontsize') . 'px; + ' . $this->convertBorder(Configuration::get($this->config_name . '_hor_border_inner'), 'left') . ' + } + #cbp-hrmenu .cbp-tab-title{ + line-height: ' . (Configuration::get($this->config_name . '_hor_link_fontsize') + 1) . 'px; + } + @media (min-width: 1320px){ + #cbp-hrmenu .cbp-tab-title{ + line-height: ' . (Configuration::get($this->config_name . '_hor_link_fontsizeb') + 1) . 'px; + } + #cbp-hrmenu > ul > li > a, #cbp-hrmenu > ul > li > span.cbp-main-link{ + font-size: ' . Configuration::get($this->config_name . '_hor_link_fontsizeb') . 'px; + padding-left: ' . Configuration::get($this->config_name . '_hor_link_paddingb') . 'px; + padding-right: ' . Configuration::get($this->config_name . '_hor_link_paddingb') . 'px; + } + } + .cbp-vertical-on-top .cbp-vertical-title{ + line-height: ' . Configuration::get($this->config_name . '_hor_lineheight') . 'px; + } +' . PHP_EOL; + + $css .= '#cbp-hrmenu > ul > li > a .cbp-mainlink-icon, #cbp-hrmenu > ul > li > a .cbp-mainlink-iicon{ + font-size: ' . Configuration::get($this->config_name . '_hor_icon_fontsize') . 'px; + max-height: ' . Configuration::get($this->config_name . '_hor_icon_fontsize') . 'px; +}'; + + $css .= ' +.cbp-hrmenu .cbp-hrsub-inner, .cbp-hrmenu ul.cbp-hrsub-level2, .cbp-hrsub-haslevel3 > .cbp-category-link-w > ul { + ' . $this->convertBorder(Configuration::get($this->config_name . '_hor_sm_border_top'), 'top') . ' + ' . $this->convertBorder(Configuration::get($this->config_name . '_hor_sm_border_bottom'), 'bottom') . ' + ' . $this->convertBorder(Configuration::get($this->config_name . '_hor_sm_border_sides'), 'side') . ' + background-color: ' . Configuration::get($this->config_name . '_hor_sm_bg_color') . '; + '; + if ($submenubgimage != '') { + $css .= 'background-image: url(' . $submenubgimage . '); background-repeat: ' . $this->convertBgRepeat(Configuration::get($this->config_name . '_hor_sm_bg_repeat')) . ';'; + } + + $css .= '}' . PHP_EOL; + + $borderarow = Configuration::get($this->config_name . '_hor_sm_border_top'); + $borderarowexplode = explode(';', $borderarow); + + $borderarowsides = Configuration::get($this->config_name . '_hor_sm_border_sides'); + + $css .= '.cbp-hrmenu .cbp-triangle-top{ + border-bottom-color: ' . Configuration::get($this->config_name . '_hor_sm_bg_color') . '; + top: ' . $borderarowexplode[0] . 'px; + } + .cbp-hrmenu .cbp-triangle-left, #columns .cbp-hrmenu .cbp-triangle-left{ + border-right-color: ' . Configuration::get($this->config_name . '_hor_sm_bg_color') . '; + left: ' . $borderarowsides[0] . 'px; + } + .cbp-hrmenu .cbp-triangle-top-back{' . $this->convertBorder($borderarow, 'bottom', 1) . '} + .cbp-hrmenu .cbp-triangle-left-back, #columns .cbp-hrmenu .cbp-triangle-left-back{' . $this->convertBorder($borderarowsides, 'right', 2) . '} + ' . PHP_EOL; + $borderinner = Configuration::get($this->config_name . '_hor_sm_border_inner'); + $borderinnerexplode = explode(';', $borderinner); + + $boxshadow = Configuration::get($this->config_name . '_hor_sm_boxshadow'); + + $css .= ' + .cbp-hrmenu .menu_column { + border-color: ' . $borderinnerexplode[2] . '; + } + '; + + if ($boxshadow) { + $css .= '.cbp-hrmenu .cbp-hrsub-inner, .cbp-hrmenu ul.cbp-hrsub-level2, .cbp-hrsub-haslevel3:hover > .cbp-category-link-w > ul { + -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15); + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15); + } + '; + } + + $css .= ' + .cbp-hrmenu .cbp-hrsub-tabs-names li .cbp-inner-border-hider{ + width: ' . $borderinnerexplode[0] . 'px; + right: ' . (-(int) ($borderinnerexplode[0])) . 'px; + }' . PHP_EOL; + + $css .= '.cbp-hrmenu .cbp-hrsub-tabs-names li{ + ' . $this->convertBorder($borderinner, 'bottom') . ' + } + .cbp-hrmenu .cbp-tab-pane{ + ' . $this->convertBorder($borderinner, 'left') . ' + } + .is_rtl .cbp-hrmenu .cbp-tab-pane{ + ' . $this->convertBorder($borderinner, 'right') . ' + } + ' . PHP_EOL; + + if (Configuration::get($this->config_name . '_hor_s_width') && !Configuration::get($this->config_name . '_hor_sw_width') && !Configuration::get($this->config_name . '_hor_width')) { + $css .= '.cbp-hrmenu .cbp-hrsub-tabs-names li{ + ' . $this->convertBorder($borderinner, 'left') . ' + }'; + } + + $css .= ' + #cbp-hrmenu1 .cbp-hrsub-inner .cbp-column-title, #cbp-hrmenu1 .cbp-hrsub-inner a.cbp-column-title:link, + #cbp-hrmenu .cbp-hrsub-inner .cbp-column-title, #cbp-hrmenu .cbp-hrsub-inner a.cbp-column-title:link { + font-size: ' . Configuration::get($this->config_name . '_hor_titlep_fontsize') . 'px; + line-height: ' . (Configuration::get($this->config_name . '_hor_titlep_fontsize') + 4) . 'px; + color: ' . Configuration::get($this->config_name . '_hor_titlep_color') . '; + ' . (Configuration::get($this->config_name . '_hor_titlep_uppercase') ? 'text-transform: uppercase;' : '') . ' + ' . (Configuration::get($this->config_name . '_hor_titlep_bold') ? 'font-weight: bold;' : '') . ' + } + #cbp-hrmenu .cbp-hrsub-inner a.cbp-column-title:hover, #cbp-hrmenu1 .cbp-hrsub-inner a.cbp-column-title:hover { + color: ' . Configuration::get($this->config_name . '_hor_titlep_colorh') . '; + } + ' . PHP_EOL; + + if (Configuration::get($this->config_name . '_hor_titlep_border')) { + $css .= '.cbp-hrmenu .cbp-hrsub-inner .cbp-column-title{ + padding-bottom: 6px; + ' . $this->convertBorder(Configuration::get($this->config_name . '_hor_titlep_borders'), 'bottom') . ' + }' . PHP_EOL; + } + + $css .= '.cbp-hrmenu .cbp-hrsub-inner{ + font-size: ' . Configuration::get($this->config_name . '_hor_subtxt_fontsize') . 'px; + line-height: ' . (Configuration::get($this->config_name . '_hor_subtxt_fontsize') + 4) . 'px; + color: ' . Configuration::get($this->config_name . '_hor_subtxt_color') . '; + } + #cbp-hrmenu .cbp-hrsub-inner a, #cbp-hrmenu .cbp-hrsub-inner a:link, + #cbp-hrmenu1 .cbp-hrsub-inner a, #cbp-hrmenu1 .cbp-hrsub-inner a:link{ + color: ' . Configuration::get($this->config_name . '_hor_subtxt_color') . '; + } + #cbp-hrmenu .cbp-hrsub-inner a:hover, #cbp-hrmenu1 .cbp-hrsub-inner a:hover{ + color: ' . Configuration::get($this->config_name . '_hor_subtxt_colorh') . '; + } + ' . PHP_EOL; + + if (!Configuration::get($this->config_name . '_hor_subtxt_arrow')) { + $css .= '.cbp-hrmenu .cbp-links li a:before{ + display: none; + } + .cbp-hrmenu .cbp-links li, .cbp-hrmenu .cbp-links li a { + padding-left: 0px; + } + + ' . PHP_EOL; + } + + if (!Configuration::get($this->config_name . '_hor_subtxt_level')) { + $css .= '.cbp-hrmenu .cbp-links li.cbp-hrsub-haslevel2 > a:after{ + display: none; + } + ' . PHP_EOL; + } + + if (Configuration::get($this->config_name . '_hor_icon_position')) { + $css .= '#cbp-hrmenu > ul > li > a .cbp-mainlink-icon, #cbp-hrmenu > ul > li > a .cbp-mainlink-iicon{ + display: block; + margin: 0 auto; + text-align: center; + position: absolute; + left: 0px; + right: 0px; + top: 10px; + } + #cbp-hrmenu > ul > li > a, #cbp-hrmenu > ul > li > span.cbp-main-link{ + padding-top: 35px; + line-height: ' . (Configuration::get($this->config_name . '_hor_lineheight') - 12) . 'px; + } + #cbp-hrmenu .cbp-tab-title{ + position: static; + } + '; + } + + $css .= ' + .cbp-vertical-title{ + background-color: ' . Configuration::get($this->config_name . '_ver_title_bg') . '; + color: ' . Configuration::get($this->config_name . '_ver_title_txt') . '; + font-size: ' . Configuration::get($this->config_name . '_ver_title_size') . 'px; + line-height: ' . Configuration::get($this->config_name . '_ver_title_height') . 'px; + ' . (Configuration::get($this->config_name . '_ver_title_bold') ? 'font-weight: bold;' : '') . ' + ' . (Configuration::get($this->config_name . '_ver_title_uppercase') ? 'text-transform: uppercase;' : '') . ' + } + .cbp-vertical-title:hover{ + background-color: ' . Configuration::get($this->config_name . '_ver_title_bgh') . '; + color: ' . Configuration::get($this->config_name . '_ver_title_txth') . '; + }' . PHP_EOL; + + $css .= ' + .cbp-hrmenu.cbp-vertical > ul{ + ' . $this->convertBorder(Configuration::get($this->config_name . '_ver_border_top'), 'top') . ' + ' . $this->convertBorder(Configuration::get($this->config_name . '_ver_border_bottom'), 'bottom') . ' + ' . $this->convertBorder(Configuration::get($this->config_name . '_ver_border_sides'), 'side') . ' + background-color: ' . Configuration::get($this->config_name . '_ver_bg_color') . '; + '; + if ($vermenubgimage != '') { + $css .= 'background-image: url(' . $vermenubgimage . '); background-repeat: ' . $this->convertBgRepeat(Configuration::get($this->config_name . '_ver_bg_repeat')) . ';'; + } + + $css .= '}' . PHP_EOL; + + $css .= ' + .cbp-vertical .cbp-legend{ + background-color: ' . Configuration::get($this->config_name . '_ver_legend_bg_color') . '; + color: ' . Configuration::get($this->config_name . '_ver_legend_txt_color') . '; + } + .cbp-vertical .cbp-legend .cbp-legend-arrow{ + color: ' . Configuration::get($this->config_name . '_ver_legend_bg_color') . '; + } + #cbp-hrmenu1 > ul > li.cbp-hropen > a, #cbp-hrmenu1 > ul > li.cbp-hropen > a:hover{ + background-color: ' . Configuration::get($this->config_name . '_ver_link_hbg_color') . '; + color: ' . Configuration::get($this->config_name . '_ver_link_htxt_color') . '; + } + #cbp-hrmenu1 > ul > li > a, #cbp-hrmenu1 > ul > li > span.cbp-main-link{ + color: ' . Configuration::get($this->config_name . '_ver_link_txt_color') . '; + padding-top: ' . Configuration::get($this->config_name . '_ver_link_padding') . 'px; + padding-bottom: ' . Configuration::get($this->config_name . '_ver_link_padding') . 'px; + ' . (Configuration::get($this->config_name . '_ver_link_bold') ? 'font-weight: bold;' : '') . ' + ' . (Configuration::get($this->config_name . '_ver_link_italics') ? 'font-style: italic;' : '') . ' + ' . (Configuration::get($this->config_name . '_ver_link_uppercase') ? 'text-transform: uppercase;' : '') . ' + font-size: ' . Configuration::get($this->config_name . '_ver_link_fontsize') . 'px; + ' . $this->convertBorder(Configuration::get($this->config_name . '_ver_border_inner'), 'top') . ' + }' . PHP_EOL; + + $css .= '#cbp-hrmenu1 > ul > li > a .cbp-mainlink-icon, #cbp-hrmenu1 > ul > li > a .cbp-mainlink-iicon{ + font-size: ' . Configuration::get($this->config_name . '_ver_icon_fontsize') . 'px; + max-height: ' . Configuration::get($this->config_name . '_ver_icon_fontsize') . 'px; + }'; + + if (Configuration::get($this->config_name . '_ver_boxshadow')) { + $css .= '.cbp-vertical-on-top .cbp-hrmenu.cbp-vertical > ul{ + -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15); + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15); + } + '; + } + + $tabs = array(); + $tabsV = array(); + $tabs = IqitMenuTab::getTabsFrontend(1, true); + $tabsV = IqitMenuTab::getTabsFrontend(2, true); + $tabs = array_merge($tabs, $tabsV); + + foreach ($tabs as $key => $tab) { + if ($tabs[$key]['bg_color'] != '' || $tabs[$key]['txt_color'] != '') { + $css .= '.cbp-hrmenu > ul > li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' > a, .cbp-hrmenu > ul > li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' > span.cbp-main-link + { + ' . ($tabs[$key]['bg_color'] != '' ? 'background-color: ' . $tabs[$key]['bg_color'] . ';' : '') . ' + ' . ($tabs[$key]['txt_color'] != '' ? 'color: ' . $tabs[$key]['txt_color'] . ';' : '') . ' + }' . PHP_EOL; + } + + if ($tabs[$key]['h_bg_color'] != '' || $tabs[$key]['h_txt_color'] != '') { + $css .= '.cbp-hrmenu > ul > li.cbp-hropen#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' > a, .cbp-hrmenu > ul > li.cbp-hropen#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' > a:hover + { + ' . ($tabs[$key]['h_bg_color'] != '' ? 'background-color: ' . $tabs[$key]['h_bg_color'] . ';' : '') . ' + ' . ($tabs[$key]['h_txt_color'] != '' ? 'color: ' . $tabs[$key]['h_txt_color'] . ';' : '') . ' + }' . PHP_EOL; + } + + if ($tabs[$key]['labeltxt_color'] != '' || $tabs[$key]['labelbg_color'] != '') { + $css .= '.cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' .cbp-legend-main{ + ' . ($tabs[$key]['labelbg_color'] != '' ? 'background-color: ' . $tabs[$key]['labelbg_color'] . ';' : '') . ' + ' . ($tabs[$key]['labeltxt_color'] != '' ? 'color: ' . $tabs[$key]['labeltxt_color'] . ';' : '') . ' + }' . PHP_EOL; + } + + if ($tabs[$key]['labelbg_color'] != '') { + $css .= '.cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' .cbp-legend-main .cbp-legend-arrow{ + ' . ($tabs[$key]['labelbg_color'] != '' ? 'color: ' . $tabs[$key]['labelbg_color'] . ';' : '') . ' + }' . PHP_EOL; + } + + if ($tabs[$key]['submenu_bg_color'] != '') { + $css .= '.cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' .cbp-triangle-top{ + border-bottom-color: ' . $tabs[$key]['submenu_bg_color'] . '; + }'; + } + + if ($tabs[$key]['submenu_bg_color'] != '' || $tabs[$key]['submenu_image'] != '') { + $css .= '.cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' .cbp-hrsub-inner { + ' . ($tabs[$key]['submenu_bg_color'] != '' ? 'background-color: ' . $tabs[$key]['submenu_bg_color'] . ';' : '') . ' + ' . ($tabs[$key]['submenu_image'] != '' ? 'background-image: url(' . $tabs[$key]['submenu_image'] . ');' : '') . ' + background-repeat: ' . $this->convertBgRepeat($tabs[$key]['submenu_repeat']) . '; + background-position: ' . $this->convertBgPosition($tabs[$key]['submenu_bg_position']) . '; + + } + .cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' ul.cbp-hrsub-level2 { + ' . ($tabs[$key]['submenu_bg_color'] != '' ? 'background-color: ' . $tabs[$key]['submenu_bg_color'] . ';' : '') . ' + } + '; + } + + if ($tabs[$key]['submenu_title_color'] != '') { + $css .= ' + .cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' .cbp-menu-column-inner .cbp-column-title, .cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' .cbp-menu-column-inner a.cbp-column-title:link { + color: ' . $tabs[$key]['submenu_title_color'] . '; + }' . PHP_EOL; + } + + if ($tabs[$key]['submenu_title_colorh'] != '') { + $css .= '.cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' .cbp-menu-column-inner a.cbp-column-title:hover { + color: ' . $tabs[$key]['submenu_title_colorh'] . '; + }' . PHP_EOL; + } + + if ($tabs[$key]['submenu_titleb_color'] != '') { + $css .= '.cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' .cbp-menu-column-inner .cbp-column-title { + border-color: ' . $tabs[$key]['submenu_titleb_color'] . '; + }' . PHP_EOL; + } + + if ($tabs[$key]['submenu_link_color'] != '') { + $css .= '.cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' .cbp-menu-column-inner a:link, .cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' .cbp-menu-column-inner a, .cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' .cbp-menu-column-inner { + color: ' . $tabs[$key]['submenu_link_color'] . '; + }' . PHP_EOL; + } + + if ($tabs[$key]['submenu_hover_color'] != '') { + $css .= '.cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' .cbp-menu-column-inner a:hover { + color: ' . $tabs[$key]['submenu_hover_color'] . '; + }' . PHP_EOL; + } + + if ($tabs[$key]['submenu_border_t'] != '') { + $css .= ' + .cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' .cbp-hrsub-inner{ + border-top-color: ' . $tabs[$key]['submenu_border_t'] . '; + } + .cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' .cbp-triangle-top-back{ + border-bottom-color: ' . $tabs[$key]['submenu_border_t'] . '; + } + ' . PHP_EOL; + } + + if ($tabs[$key]['submenu_border_r'] != '') { + $css .= ' + .cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' .cbp-hrsub-inner{ + border-right-color: ' . $tabs[$key]['submenu_border_r'] . '; + }' . PHP_EOL; + } + + if ($tabs[$key]['submenu_border_b'] != '') { + $css .= ' + .cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' .cbp-hrsub-inner{ + border-bottom-color: ' . $tabs[$key]['submenu_border_b'] . '; + }' . PHP_EOL; + } + + if ($tabs[$key]['submenu_border_l'] != '') { + $css .= ' + .cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' .cbp-hrsub-inner{ + border-left-color: ' . $tabs[$key]['submenu_border_l'] . '; + }' . PHP_EOL; + } + + if ($tabs[$key]['submenu_border_i'] != '') { + $css .= ' + .cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' .cbp-hrsub-inner .menu_column, .cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' .cbp-hrsub-tabs-names li, + .cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' .cbp-hrsub-inner .cbp-tab-pane + { + border-color: ' . $tabs[$key]['submenu_border_i'] . '; + }' . PHP_EOL; + } + + if (Configuration::get($this->config_name . '_hor_s_width') && !Configuration::get($this->config_name . '_hor_sw_width') && !Configuration::get($this->config_name . '_hor_width')) { + $css .= '.cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab'] . ' .cbp-hrsub-tabs-names li{ + border-left-color: ' . $tabs[$key]['submenu_border_i'] . '; + }'; + } + + if ($tab['submenu_type'] == 2) { + if (Tools::strlen(($tab['submenu_content']))) { + $css .= $this->generateSubmenuCss($this->buildSubmenuTree(Tools::jsonDecode($tab['submenu_content'], true), true, true), '.cbp-hrmenu li#cbp-hrmenu-tab-' . $tabs[$key]['id_tab']); + } + } + } + + $css .= '.cbp-hrmenu .cbp-hrsub-inner .cbp-tabs-names li a + { + background-color: ' . Configuration::get($this->config_name . '_hor_sm_tab_bg_color') . '; + color: ' . Configuration::get($this->config_name . '_hor_sm_tab_txt_color') . '; + } + .cbp-hrmenu .cbp-submenu-it-indicator{ color: ' . Configuration::get($this->config_name . '_hor_sm_tab_txt_color') . ';}' . PHP_EOL; + + $css .= '.cbp-tabs-names li a:hover, .cbp-hrmenu .cbp-hrsub-tabs-names li.active a, + .cbp-tabs-names li .cbp-inner-border-hider + { + background-color: ' . Configuration::get($this->config_name . '_hor_sm_tab_hbg_color') . '; + color: ' . Configuration::get($this->config_name . '_hor_sm_tab_htxt_color') . '; + + } + .cbp-hrmenu li.active .cbp-submenu-it-indicator{ color: ' . Configuration::get($this->config_name . '_hor_sm_tab_htxt_color') . ';}' . PHP_EOL; + + $tabs = IqitMenuTab::getTabsFrontend(3, true); + + foreach ($tabs as $key => $tab) { + if ($tabs[$key]['bg_color'] != '' || $tabs[$key]['txt_color'] != '') { + $css .= '.cbp-hrmenu .cbp-hrsub-inner .cbp-tabs-names li.innertab-' . $tabs[$key]['id_tab'] . ' a + { + ' . ($tabs[$key]['bg_color'] != '' ? 'background-color: ' . $tabs[$key]['bg_color'] . ';' : '') . ' + ' . ($tabs[$key]['txt_color'] != '' ? 'color: ' . $tabs[$key]['txt_color'] . ';' : '') . ' + } + .cbp-hrmenu li.innertab-' . $tabs[$key]['id_tab'] . ' .cbp-submenu-it-indicator{ ' . ($tabs[$key]['txt_color'] != '' ? 'color: ' . $tabs[$key]['txt_color'] . ';' : '') . '}' . PHP_EOL; + } + + if ($tabs[$key]['h_bg_color'] != '' || $tabs[$key]['h_txt_color'] != '') { + $css .= '.cbp-tabs-names li.innertab-' . $tabs[$key]['id_tab'] . ' a:hover, .cbp-hrmenu .cbp-hrsub-tabs-names li.active.innertab-' . $tabs[$key]['id_tab'] . ' a, + .cbp-tabs-names li.innertab-' . $tabs[$key]['id_tab'] . ' .cbp-inner-border-hider + { + ' . ($tabs[$key]['h_bg_color'] != '' ? 'background-color: ' . $tabs[$key]['h_bg_color'] . ';' : '') . ' + ' . ($tabs[$key]['h_txt_color'] != '' ? 'color: ' . $tabs[$key]['h_txt_color'] . ';' : '') . ' + } + .cbp-hrmenu li.innertab-' . $tabs[$key]['id_tab'] . '.active .cbp-submenu-it-indicator{' . ($tabs[$key]['h_txt_color'] != '' ? 'color: ' . $tabs[$key]['h_txt_color'] . ';' : '') . '}' . PHP_EOL; + } + + if ($tabs[$key]['labeltxt_color'] != '' || $tabs[$key]['labelbg_color'] != '') { + $css .= '.cbp-hrmenu li.innertab-' . $tabs[$key]['id_tab'] . ' .cbp-legend-inner{ + ' . ($tabs[$key]['labelbg_color'] != '' ? 'background-color: ' . $tabs[$key]['labelbg_color'] . ';' : '') . ' + ' . ($tabs[$key]['labeltxt_color'] != '' ? 'color: ' . $tabs[$key]['labeltxt_color'] . ';' : '') . ' + }' . PHP_EOL; + } + + if ($tabs[$key]['labelbg_color'] != '') { + $css .= '.cbp-hrmenu li.innertab-' . $tabs[$key]['id_tab'] . ' .cbp-legend-inner .cbp-legend-arrow{ + ' . ($tabs[$key]['labelbg_color'] != '' ? 'color: ' . $tabs[$key]['labelbg_color'] . ';' : '') . ' + }' . PHP_EOL; + } + + if ($tabs[$key]['labelbg_color'] != '') { + $css .= '.cbp-hrmenu li.innertab-' . $tabs[$key]['id_tab'] . ' .cbp-legend-inner .cbp-legend-arrow{ + ' . ($tabs[$key]['labelbg_color'] != '' ? 'color: ' . $tabs[$key]['labelbg_color'] . ';' : '') . ' + }' . PHP_EOL; + } + + if ($tabs[$key]['submenu_bg_color'] != '' || $tabs[$key]['submenu_image'] != '') { + $css .= '.cbp-hrmenu .innertabcontent-' . $tabs[$key]['id_tab'] . '{ + ' . ($tabs[$key]['submenu_bg_color'] != '' ? 'background-color: ' . $tabs[$key]['submenu_bg_color'] . ';' : '') . ' + ' . ($tabs[$key]['submenu_image'] != '' ? 'background-image: url(' . $tabs[$key]['submenu_image'] . ');' : '') . ' + background-repeat: ' . $this->convertBgRepeat($tabs[$key]['submenu_repeat']) . '; + background-position: ' . $this->convertBgPosition($tabs[$key]['submenu_bg_position']) . '; + } + .cbp-hrmenu .innertabcontent-' . $tabs[$key]['id_tab'] . ' ul.cbp-hrsub-level2 { + ' . ($tabs[$key]['submenu_bg_color'] != '' ? 'background-color: ' . $tabs[$key]['submenu_bg_color'] . '!important;' : '') . ' + } + '; + } + + if ($tab['submenu_type'] == 2) { + if (Tools::strlen(($tab['submenu_content']))) { + $css .= $this->generateSubmenuCss($this->buildSubmenuTree(Tools::jsonDecode($tab['submenu_content'], true), true, true), '.cbp-hrmenu .innertabcontent-' . $tabs[$key]['id_tab']); + } + } + } + + $hor_mb_border = Configuration::get($this->config_name . '_hor_mb_border'); + + $hor_mb_c_border = Configuration::get($this->config_name . '_hor_mb_c_border'); + + $css .= '#iqitmegamenu-mobile #iqitmegamenu-shower, #cbp-close-mobile + { + background-color: ' . Configuration::get($this->config_name . '_hor_mb_bg') . '; + color: ' . Configuration::get($this->config_name . '_hor_mb_txt') . '; + ' . $this->convertBorder($hor_mb_border, 'all') . ' + + } + #iqitmegamenu-mobile .iqitmegamenu-icon{ + color: ' . Configuration::get($this->config_name . '_hor_mb_bg') . '; + background-color: ' . Configuration::get($this->config_name . '_hor_mb_txt') . '; + } + + .cbp-mobilesubmenu{ + background-color: ' . Configuration::get($this->config_name . '_hor_mb_c_bg') . '; + color: ' . Configuration::get($this->config_name . '_hor_mb_c_txt') . '; + ' . $this->convertBorder($hor_mb_c_border, 'bottom') . ' + ' . $this->convertBorder($hor_mb_c_border, 'left') . ' + ' . $this->convertBorder($hor_mb_c_border, 'right') . ' + } + #iqitmegamenu-accordion{ + background-color: ' . Configuration::get($this->config_name . '_hor_mb_c_bg') . '; + color: ' . Configuration::get($this->config_name . '_hor_mb_c_txt') . '; + } + #iqitmegamenu-mobile .iqitmegamenu-accordion > li ul{ + background-color: ' . Configuration::get($this->config_name . '_hor_mb_csl_bg') . '; + } + #iqitmegamenu-accordion.cbp-spmenu > li ul{ + background-color: ' . Configuration::get($this->config_name . '_hor_mb_csl_bg') . '; + } + #iqitmegamenu-mobile .iqitmegamenu-accordion > li ul a{ + ' . $this->convertBorder(Configuration::get($this->config_name . '_hor_mb_c_borderi'), 'top') . ' + } + #iqitmegamenu-mobile .iqitmegamenu-accordion > li{ + ' . $this->convertBorder(Configuration::get($this->config_name . '_hor_mb_c_borderi'), 'bottom') . ' + } + .cbp-spmenu-vertical a{ + ' . $this->convertBorder(Configuration::get($this->config_name . '_hor_mb_c_borderi'), 'bottom') . ' + } + #iqitmegamenu-accordion.cbp-spmenu > li ul div.responsiveInykator{ + color: ' . Configuration::get($this->config_name . '_hor_mb_c_txt') . '; + } + #iqitmegamenu-accordion li a{ + color: ' . Configuration::get($this->config_name . '_hor_mb_c_txt') . '; + } + #iqitmegamenu-mobile .iqitmegamenu-accordion li a:hover{ + color: ' . Configuration::get($this->config_name . '_hor_mb_c_txth') . '; + background-color: ' . Configuration::get($this->config_name . '_hor_mb_c_lhbg') . '; + padding-left: 10px; + } + #iqitmegamenu-accordion li a:hover{ + color: ' . Configuration::get($this->config_name . '_hor_mb_c_txth') . '; + background-color: ' . Configuration::get($this->config_name . '_hor_mb_c_lhbg') . '; + + } + + #iqitmegamenu-accordion div.responsiveInykator{ + color: ' . Configuration::get($this->config_name . '_hor_mb_c_plus') . '; + } + + ' . PHP_EOL; + + $css .= Configuration::get($this->config_name . '_hor_custom_css'); + + $css = trim(preg_replace('/\s+/', ' ', $css)); + + + if ($allShops) { + $shops = Shop::getShopsCollection(); + foreach ($shops as $shop) { + $myFile = $this->local_path . "views/css/iqitmegamenu_s_" . (int) $shop->id . ".css"; + file_put_contents($myFile, $css); + } + } else { + if (Shop::getContext() == Shop::CONTEXT_SHOP) { + $myFile = $this->local_path . "views/css/iqitmegamenu_s_" . (int) $this->context->shop->getContextShopID() . ".css"; + self::clearAssetsCache(); + + if (file_put_contents($myFile, $css)) { + return true; + } else { + return false; + } + } + } + } + + public function generateSubmenuCss($submenu, $parent) + { + $css = '' . PHP_EOL; + foreach ($submenu as $key => $element) { + if (isset($element['content_s']['bg_color']) || + isset($element['content_s']['br_top_st']) || + isset($element['content_s']['br_right_st']) || + isset($element['content_s']['br_bottom_st']) || + isset($element['content_s']['br_left_st']) || + isset($element['content_s']['c_m_t']) || + isset($element['content_s']['c_m_r']) || + isset($element['content_s']['c_m_b']) || + isset($element['content_s']['c_m_l'])) { + $css .= $parent . ' .menu-element-id-' . $element['elementId'] . ' > .cbp-menu-column-inner{ + ' . (isset($element['content_s']['bg_color']) && $element['content_s']['bg_color'] != '' ? 'background-color: ' . $element['content_s']['bg_color'] . ';' : '') . ' + ' . (isset($element['content_s']['br_top_st']) && $element['content_s']['br_top_st'] != '' ? 'border-top-style: ' . $element['content_s']['br_top_st'] . ';' : '') . ' + ' . (isset($element['content_s']['br_top_wh']) && $element['content_s']['br_top_wh'] != '' ? 'border-top-width: ' . $element['content_s']['br_top_wh'] . 'px;' : '') . ' + ' . (isset($element['content_s']['br_right_st']) && $element['content_s']['br_right_st'] != '' ? 'border-right-style: ' . $element['content_s']['br_right_st'] . ';' : '') . ' + ' . (isset($element['content_s']['br_right_wh']) && $element['content_s']['br_right_wh'] != '' ? 'border-right-width: ' . $element['content_s']['br_right_wh'] . 'px;' : '') . ' + ' . (isset($element['content_s']['br_bottom_st']) && $element['content_s']['br_bottom_st'] != '' ? 'border-bottom-style: ' . $element['content_s']['br_bottom_st'] . ';' : '') . ' + ' . (isset($element['content_s']['br_bottom_wh']) && $element['content_s']['br_bottom_wh'] != '' ? 'border-bottom-width: ' . $element['content_s']['br_bottom_wh'] . 'px;' : '') . ' + ' . (isset($element['content_s']['br_left_st']) && $element['content_s']['br_left_st'] != '' ? 'border-left-style: ' . $element['content_s']['br_left_st'] . ';' : '') . ' + ' . (isset($element['content_s']['br_left_wh']) && $element['content_s']['br_left_wh'] != '' ? 'border-left-width: ' . $element['content_s']['br_left_wh'] . 'px;' : '') . ' + + ' . (isset($element['content_s']['br_top_c']) && $element['content_s']['br_top_c'] != '' ? 'border-top-color: ' . $element['content_s']['br_top_c'] . ';' : '') . ' + ' . (isset($element['content_s']['br_right_c']) && $element['content_s']['br_right_c'] != '' ? 'border-right-color: ' . $element['content_s']['br_right_c'] . ';' : '') . ' + ' . (isset($element['content_s']['br_bottom_c']) && $element['content_s']['br_bottom_c'] != '' ? 'border-bottom-color: ' . $element['content_s']['br_bottom_c'] . ';' : '') . ' + ' . (isset($element['content_s']['br_left_c']) && $element['content_s']['br_left_c'] != '' ? 'border-left-color: ' . $element['content_s']['br_left_c'] . ';' : '') . ' + + ' . (isset($element['content_s']['c_m_t']) ? 'margin-top: -10px;' : '') . ' + ' . (isset($element['content_s']['c_m_r']) ? 'margin-right: -10px;' : '') . ' + ' . (isset($element['content_s']['c_m_b']) ? 'margin-bottom: -10px;' : '') . ' + ' . (isset($element['content_s']['c_m_l']) ? 'margin-left: -10px;' : '') . ' + + ' . (isset($element['content_s']['c_p_t']) ? 'padding-top: 10px;' : '') . ' + ' . (isset($element['content_s']['c_p_r']) ? 'padding-right: 10px;' : '') . ' + ' . (isset($element['content_s']['c_p_b']) ? 'padding-bottom: 10px;' : '') . ' + ' . (isset($element['content_s']['c_p_l']) ? 'padding-left: 10px;' : '') . ' + + } + ' . $parent . ' .menu-element-id-' . $element['elementId'] . ' > .cbp-menu-column-inner ul.cbp-hrsub-level2 { + ' . (isset($element['content_s']['bg_color']) && $element['content_s']['bg_color'] != '' ? 'background-color: ' . $element['content_s']['bg_color'] . '!important;' : '') . ' + } + + ' . PHP_EOL; + } + + if (isset($element['content_s']['legend_bg']) || isset($element['content_s']['legend_txt'])) { + $css .= $parent . ' .menu-element-id-' . $element['elementId'] . ' > .cbp-menu-column-inner .cbp-legend-inner{ + ' . (isset($element['content_s']['legend_bg']) && $element['content_s']['legend_bg'] != '' ? 'background-color: ' . $element['content_s']['legend_bg'] . ';' : '') . ' + ' . (isset($element['content_s']['legend_txt']) && $element['content_s']['legend_txt'] != '' ? 'color: ' . $element['content_s']['legend_txt'] . ';' : '') . ' + + }' . PHP_EOL; + + $css .= $parent . ' .menu-element-id-' . $element['elementId'] . ' > .cbp-menu-column-inner .cbp-legend-arrow{ + ' . (isset($element['content_s']['legend_bg']) && $element['content_s']['legend_bg'] != '' ? 'color: ' . $element['content_s']['legend_bg'] . ';' : '') . ' + + }' . PHP_EOL; + } + + if (isset($element['content_s']['title_color'])) { + $css .= $parent . ' .menu-element-id-' . $element['elementId'] . ' > .cbp-menu-column-inner .cbp-column-title{ + color: ' . $element['content_s']['title_color'] . ' !important; + }' . PHP_EOL; + } + + if (isset($element['content_s']['title_colorh'])) { + $css .= $parent . ' .menu-element-id-' . $element['elementId'] . ' > .cbp-menu-column-inner .cbp-column-title:hover{ + color: ' . $element['content_s']['title_colorh'] . ' !important; + }' . PHP_EOL; + } + + if (isset($element['content_s']['title_borderc'])) { + $css .= $parent . ' .menu-element-id-' . $element['elementId'] . ' > .cbp-menu-column-inner .cbp-column-title{ + border-color: ' . $element['content_s']['title_borderc'] . ' !important; + }' . PHP_EOL; + } + + if (isset($element['content_s']['txt_color'])) { + $css .= $parent . ' .menu-element-id-' . $element['elementId'] . ' > .cbp-menu-column-inner a:link, ' . $parent . ' .menu-element-id-' . $element['elementId'] . ' > .cbp-menu-column-inner a,' . $parent . ' .menu-element-id-' . $element['elementId'] . ' > .cbp-menu-column-inner { + color: ' . $element['content_s']['txt_color'] . '; + }' . PHP_EOL; + } + + if (isset($element['content_s']['txt_colorh'])) { + $css .= $parent . ' .menu-element-id-' . $element['elementId'] . ' > .cbp-menu-column-inner a:hover { + color: ' . $element['content_s']['txt_colorh'] . '; + }' . PHP_EOL; + } + + if (isset($element['content']['absolute'])) { + $css .= $parent . ' .menu-element-id-' . $element['elementId'] . '{ + ' . (isset($element['content']['i_a_t']) && $element['content']['i_a_t'] != '' ? 'top: ' . $element['content']['i_a_t'] . 'px;' : '') . ' + ' . (isset($element['content']['i_a_r']) && $element['content']['i_a_r'] != '' ? 'right: ' . $element['content']['i_a_r'] . 'px;' : '') . ' + ' . (isset($element['content']['i_a_b']) && $element['content']['i_a_b'] != '' ? 'bottom: ' . $element['content']['i_a_b'] . 'px;' : '') . ' + ' . (isset($element['content']['i_a_l']) && $element['content']['i_a_l'] != '' ? 'left: ' . $element['content']['i_a_l'] . 'px;' : '') . ' + }' . PHP_EOL; + } + + if (isset($element['children'])) { + $css .= $this->generateSubmenuCss($element['children'], $parent); + } + } + + return $css; + } + /** + * Add the CSS & JavaScript files you want to be added on the FO. + */ + public function hookHeader() + { + $jsVars = array(); + + + $this->user_groups = ($this->context->customer->isLogged() ? $this->context->customer->getGroups() : array(Configuration::get('PS_UNIDENTIFIED_GROUP'))); + $this->hor_sm_order = (Configuration::get($this->config_name . '_hor_sm_order') == 1 ? ' ORDER BY c.`level_depth` ASC, cl.`name` ASC' : ''); + + if (Configuration::get($this->config_name . '_hor_bootstrap')) { + $this->context->controller->registerStylesheet('modules-'.$this->name.'-style-bootstrap', 'modules/'.$this->name.'/views/css/bootstrap.min.css', ['media' => 'all', 'priority' => 149]); + $this->context->controller->registerJavascript('modules'.$this->name.'-script-bootstrap', 'modules/'.$this->name.'/views/js/bootstrap.min.js', ['position' => 'bottom', 'priority' => 149]); + } + + $this->context->controller->registerStylesheet('font-awesome', 'modules/'.$this->name.'/views/css/font-awesome.min.css', ['media' => 'all', 'priority' => 149]); + + $this->context->controller->registerJavascript('modules'.$this->name.'-script', 'modules/'.$this->name.'/views/js/front.js', ['position' => 'bottom', 'priority' => 150]); + + + if (Configuration::get($this->config_name . '_hor_sticky')) { + $jsVars['sticky'] = true; + } else { + $jsVars['sticky'] = false; + } + + + if (Configuration::get($this->config_name . '_mobile_menu_style')) { + $jsVars['mobileType'] = 'accordion'; + } else { + $jsVars['mobileType'] = 'push'; + } + + $jsVars['containerSelector'] = '#wrapper .container'; + + Media::addJsDef(array( + 'iqitmegamenu' => $jsVars)); + + $this->context->controller->registerStylesheet('modules-'.$this->name.'-style', 'modules/'.$this->name.'/views/css/front.css', ['media' => 'all', 'priority' => 150]); + + if (Shop::getContext() == Shop::CONTEXT_SHOP) { + $this->context->controller->registerStylesheet('modules-'.$this->name.'-style-custom', 'modules/'.$this->name.'/views/css/iqitmegamenu_s_'.(int) $this->context->shop->getContextShopID().'.css', ['media' => 'all', 'priority' => 151]); + } + + if ($this->context->language->is_rtl) { + $this->context->controller->registerStylesheet('modules-'.$this->name.'-style-rtl', 'modules/'.$this->name.'/views/css/rtl.css', ['media' => 'all', 'priority' => 152]); + } + } + + public function renderWidget($hookName = null, array $configuration = []) + { + if ($hookName == null && isset($configuration['hook'])) { + $hookName = $configuration['hook']; + } + + if ( preg_match('/^displayLeftColumnd*$/', $hookName) || preg_match('/^displayLeftColumnProductd*$/', $hookName) ) { + if (Configuration::get($this->config_name . '_ver_position') != 1) { + return; + } + $templateFile = 'vertical.tpl'; + } elseif ((preg_match('/^displayNavFullWidth\d*$/', $hookName)) || (preg_match('/^displayTop\d*$/', $hookName)) || (preg_match('/^displayIqitMenu\d*$/', $hookName))) { + $templateFile = 'horizontal.tpl'; + } + + + + if (!$this->isCached('module:'.$this->name.'/views/templates/hook/'. $templateFile, $this->getCacheId())) { + $this->smarty->assign($this->getWidgetVariables($hookName, $configuration)); + } + return $this->fetch('module:'.$this->name.'/views/templates/hook/'.$templateFile, $this->getCacheId()); + } + + public function getWidgetVariables($hookName = null, array $configuration = []) + { + if ($hookName == null && isset($configuration['hook'])) { + $hookName = $configuration['hook']; + } + + if ( preg_match('/^displayLeftColumnd*$/', $hookName) || preg_match('/^displayLeftColumnProductd*$/', $hookName) ) { + return $this->_prepareHookVertical(); + } elseif ((preg_match('/^displayNavFullWidth\d*$/', $hookName)) || (preg_match('/^displayTop\d*$/', $hookName)) || (preg_match('/^displayIqitMenu\d*$/', $hookName))) { + $varsHorizontal = $this->_prepareHook(); + $varsVertical = array(); + + $pos = Configuration::get($this->config_name . '_ver_position'); + if ($pos == 2 || $pos == 3) { + $varsVertical = $this->_prepareHookVertical($pos); + } + return array_merge($varsHorizontal, $varsVertical); + } + } + + public function _prepareHookVertical($pos = 0) + { + $menu_settings_v = array( + 'ver_animation' => Configuration::get($this->config_name . '_ver_animation'), + 'ver_arrow' => Configuration::get($this->config_name . '_ver_arrow'), + 'ver_position' => $pos, + 'ver_s_arrow' => Configuration::get($this->config_name . '_ver_s_arrow'), + ); + + return [ + 'menu_settings_v' => $menu_settings_v, + 'vertical_menu' => $this->makeMegaMenu(2), + ]; + } + + public function _prepareHook() + { + $sw_width = Configuration::get($this->config_name . '_hor_sw_width'); + $menu_settings = array( + 'hor_width' => Configuration::get($this->config_name . '_hor_width'), + 'hor_sw_width' => $sw_width, + 'hor_s_width' => Configuration::get($this->config_name . '_hor_s_width'), + 'hor_sticky' => Configuration::get($this->config_name . '_hor_sticky'), + 'hor_s_transparent' => Configuration::get($this->config_name . '_hor_s_transparent'), + 'hor_animation' => Configuration::get($this->config_name . '_hor_animation'), + 'hor_center' => Configuration::get($this->config_name . '_hor_center'), + 'hor_arrow' => Configuration::get($this->config_name . '_hor_arrow'), + 'hor_s_arrow' => Configuration::get($this->config_name . '_hor_s_arrow'), + + ); + + $small = Image::getSize(ImageType::getFormattedName('small')); + + return [ + 'mobile_menu_style' => Configuration::get($this->config_name . '_mobile_menu_style'), + 'mobile_menu' => $this->makeMenuMobile(), + 'menu_settings' => $menu_settings, + 'horizontal_menu' => $this->makeMegaMenu(1), + 'this_path' => $this->_path, + 'homeSize' => Image::getSize(ImageType::getFormattedName('home')), + 'mediumSize' => $small, + 'manufacturerSize' => $small, + + ]; + } + + public function renderSelectedTabsSelect($tabs) + { + $id_shop = (int) Context::getContext()->shop->id; + $id_lang = (int) Context::getContext()->language->id; + $html = ''; + return $html; + } + + public function renderChoicesTabsSelect() + { + $tabs = array(); + $tabs = IqitMenuTab::getTabs(3); + $html = ''; + return $html; + } + + public function renderManufacturersSelect() + { + $return_manufacturers = array(); + $manufacturers = Manufacturer::getManufacturers(false, $this->context->language->id); + foreach ($manufacturers as $key => $manufacturer) { + $return_manufacturers[$key]['name'] = $manufacturer['name']; + $return_manufacturers[$key]['id'] = $manufacturer['id_manufacturer']; + } + return $return_manufacturers; + } + + public function renderSuppliersSelect() + { + $return_suppliers = array(); + $suppliers = Supplier::getSuppliers(false, $this->context->language->id); + foreach ($suppliers as $key => $supplier) { + $return_suppliers[$key]['name'] = $supplier['name']; + $return_suppliers[$key]['id'] = $supplier['id_supplier']; + } + return $return_suppliers; + } + + public function renderCategoriesSelect($frontend) + { + $return_categories = array(); + $return_categories = $this->generateCategoriesOption2(Category::GetNestedCategories(null, (int) $this->context->language->id, true), $frontend); + return $return_categories; + } + + public function renderCustomHtmlSelect() + { + $custom_html = array(); + $custom_html = IqitMenuHtml::getHtmls(); + return $custom_html; + } + + public function renderChoicesSelect($single = false, $name = null, $class = null, $mobile = false) + { + $spacer = str_repeat('-', $this->spacer_size); + $items = array(); + + $html = ''; + return $html; + } + + private function getMenuItems() + { + $items = Tools::getValue('items'); + if (is_array($items) && count($items)) { + return $items; + } else { + $shops = Shop::getContextListShopID(); + $conf = null; + + if (count($shops) > 1) { + foreach ($shops as $key => $shop_id) { + $shop_group_id = Shop::getGroupFromShop($shop_id); + $conf .= (string) ($key > 1 ? ',' : '') . Configuration::get($this->config_name . '_mobile_menu', null, $shop_group_id, $shop_id); + } + } else { + $shop_id = (int) $shops[0]; + $shop_group_id = Shop::getGroupFromShop($shop_id); + $conf = Configuration::get($this->config_name . '_mobile_menu', null, $shop_group_id, $shop_id); + } + + if (Tools::strlen($conf)) { + return explode(',', $conf); + } else { + return array(); + } + } + } + + private function makeMenuOptionMobile() + { + $id_shop = (int) Shop::getContextShopID(); + + $menu_item = $this->getMenuItems(); + $id_lang = (int) $this->context->language->id; + + $html = ''; + } + + private function getCMSOptions($parent = 0, $depth = 1, $id_lang = false, $items_to_skip = null, $single = false, $id_shop = false) + { + $html = ''; + $id_lang = $id_lang ? (int) $id_lang : (int) Context::getContext()->language->id; + $id_shop = ($id_shop !== false) ? $id_shop : Context::getContext()->shop->id; + $categories = $this->getCMSCategories(false, (int) $parent, (int) $id_lang, (int) $id_shop); + $pages = $this->getCMSPages((int) $parent, (int) $id_lang, (int) $id_shop); + + $spacer = str_repeat('-', $this->spacer_size * (int) $depth); + + foreach ($categories as $category) { + if (isset($items_to_skip) && !in_array('CMS_CAT' . $category['id_cms_category'], $items_to_skip)) { + $html .= ''; + } + + $html .= $this->getCMSOptions($category['id_cms_category'], (int) $depth + 1, (int) $id_lang, $items_to_skip, $single); + } + + foreach ($pages as $page) { + if (isset($items_to_skip) && !in_array('CMS' . $page['id_cms'], $items_to_skip)) { + $html .= ''; + } + } + + return $html; + } + + private function getCMSCategories($recursive = false, $parent = 1, $id_lang = false, $id_shop = false) + { + $id_lang = $id_lang ? (int) $id_lang : (int) Context::getContext()->language->id; + $id_shop = ($id_shop !== false) ? $id_shop : Context::getContext()->shop->id; + $join_shop = ''; + $where_shop = ''; + + if (Tools::version_compare(_PS_VERSION_, '1.6.0.12', '>=') == true) { + $join_shop = ' INNER JOIN `' . _DB_PREFIX_ . 'cms_category_shop` cs + ON (bcp.`id_cms_category` = cs.`id_cms_category`)'; + $where_shop = ' AND cs.`id_shop` = ' . (int) $id_shop . ' AND cl.`id_shop` = ' . (int) $id_shop; + } + + if ($recursive === false) { + $sql = 'SELECT bcp.`id_cms_category`, bcp.`id_parent`, bcp.`level_depth`, bcp.`active`, bcp.`position`, cl.`name`, cl.`link_rewrite` + FROM `' . _DB_PREFIX_ . 'cms_category` bcp' . + $join_shop . ' + INNER JOIN `' . _DB_PREFIX_ . 'cms_category_lang` cl + ON (bcp.`id_cms_category` = cl.`id_cms_category`) + WHERE cl.`id_lang` = ' . (int) $id_lang . ' + AND bcp.`id_parent` = ' . (int) $parent . + $where_shop; + + return Db::getInstance()->executeS($sql); + } else { + $sql = 'SELECT bcp.`id_cms_category`, bcp.`id_parent`, bcp.`level_depth`, bcp.`active`, bcp.`position`, cl.`name`, cl.`link_rewrite` + FROM `' . _DB_PREFIX_ . 'cms_category` bcp' . + $join_shop . ' + INNER JOIN `' . _DB_PREFIX_ . 'cms_category_lang` cl + ON (bcp.`id_cms_category` = cl.`id_cms_category`) + WHERE cl.`id_lang` = ' . (int) $id_lang . ' + AND bcp.`id_parent` = ' . (int) $parent . + $where_shop; + + $results = Db::getInstance()->executeS($sql); + $categories = array(); + foreach ($results as $result) { + $sub_categories = $this->getCMSCategories(true, $result['id_cms_category'], (int) $id_lang); + if ($sub_categories && count($sub_categories) > 0) { + $result['sub_categories'] = $sub_categories; + } + + $categories[] = $result; + } + + return isset($categories) ? $categories : false; + } + } + + private function getCMSPages($id_cms_category, $id_lang = false, $id_shop = false) + { + $id_shop = ($id_shop !== false) ? $id_shop : Context::getContext()->shop->id; + $id_lang = $id_lang ? (int) $id_lang : (int) Context::getContext()->language->id; + + $where_shop = ''; + if (Tools::version_compare(_PS_VERSION_, '1.6.0.12', '>=') == true) { + $where_shop = ' AND cl.`id_shop` = ' . (int) $id_shop; + } + + $sql = 'SELECT c.`id_cms`, cl.`meta_title`, cl.`link_rewrite` + FROM `' . _DB_PREFIX_ . 'cms` c + INNER JOIN `' . _DB_PREFIX_ . 'cms_shop` cs + ON (c.`id_cms` = cs.`id_cms`) + INNER JOIN `' . _DB_PREFIX_ . 'cms_lang` cl + ON (c.`id_cms` = cl.`id_cms`) + WHERE c.`id_cms_category` = ' . (int) $id_cms_category . ' + AND cs.`id_shop` = ' . (int) $id_shop . ' + AND cl.`id_lang` = ' . (int) $id_lang . + $where_shop . ' + AND c.`active` = 1 + ORDER BY `position`'; + + return Db::getInstance()->executeS($sql); + } + private function generateCategoriesOption($categories, $single = false) + { + $html = ''; + + foreach ($categories as $key => $category) { + $shop = (object) Shop::getShop((int) $category['id_shop']); + $html .= ''; + + if (isset($category['children']) && !empty($category['children'])) { + $html .= $this->generateCategoriesOption($category['children'], $single); + } + } + return $html; + } + + private function generateCategoriesOption2($categories, $frontend) + { + $return_categories = array(); + + foreach ($categories as $key => $category) { + $shop = (object) Shop::getShop((int) $category['id_shop']); + + $return_categories[$key]['id'] = (int) $category['id_category']; + $return_categories[$key]['name'] = (!$frontend ? str_repeat('-', $this->spacer_size * (int) $category['level_depth']) : '') . $category['name'] . ' (' . $shop->name . ')'; + + if (isset($category['children']) && !empty($category['children'])) { + $return_categories[$key]['children'] = $this->generateCategoriesOption2($category['children'], $frontend); + } + } + + return $return_categories; + } + + public function getAddLinkFieldsValues() + { + $links_label_edit = ''; + $labels_edit = ''; + $fields_values = array(); + + if (Tools::getValue('submitAddmodule')) { + foreach (Language::getLanguages(false) as $lang) { + $fields_values['label'][$lang['id_lang']] = ''; + $fields_values['link'][$lang['id_lang']] = ''; + } + } else { + foreach (Language::getLanguages(false) as $lang) { + $fields_values['label'][$lang['id_lang']] = Tools::getValue('label_' . (int) $lang['id_lang'], isset($labels_edit[$lang['id_lang']]) ? $labels_edit[$lang['id_lang']] : ''); + $fields_values['link'][$lang['id_lang']] = Tools::getValue('link_' . (int) $lang['id_lang'], isset($links_label_edit[$lang['id_lang']]) ? $links_label_edit[$lang['id_lang']] : ''); + } + } + + return $fields_values; + } + + public function renderTabsLinks($menu_type) + { + $tabs = array(); + $tabs = IqitMenuTab::getTabs($menu_type); + + $this->context->smarty->assign( + array( + 'link' => $this->context->link, + 'tabs' => $tabs, + 'iqitdevmode' => $this->iqitdevmode, + 'menu_type' => $menu_type, + ) + ); + return $this->display(__FILE__, 'list.tpl'); + } + + public function renderHtmlContents() + { + $tabs = array(); + $tabs = IqitMenuHtml::getHtmls(); + + $this->context->smarty->assign( + array( + 'link' => $this->context->link, + 'tabs' => $tabs, + ) + ); + return $this->display(__FILE__, 'list_html.tpl'); + } + + public function renderListCustomLinks() + { + $shops = Shop::getContextListShopID(); + $links = array(); + + foreach ($shops as $shop_id) { + $links = array_merge($links, IqitMenuLinks::gets((int) $this->context->language->id, (int) $shop_id, null)); + } + + $fields_list = array( + 'id_iqitmenulinks' => array( + 'title' => $this->l('Link ID'), + 'type' => 'text', + ), + 'name' => array( + 'title' => $this->l('Shop name'), + 'type' => 'text', + ), + 'label' => array( + 'title' => $this->l('Label'), + 'type' => 'text', + ), + 'link' => array( + 'title' => $this->l('Link'), + 'type' => 'link', + ), + ); + + $helper = new HelperList(); + $helper->shopLinkType = ''; + $helper->simple_header = true; + $helper->identifier = 'id_iqitmenulinks'; + $helper->table = 'iqitmenulinks'; + $helper->actions = array('edit', 'delete'); + $helper->show_toolbar = false; + $helper->module = $this; + $helper->title = $this->l('Link list'); + $helper->token = Tools::getAdminTokenLite('AdminModules'); + $helper->currentIndex = AdminController::$currentIndex . '&configure=' . $this->name; + + return $helper->generateList($links, $fields_list); + } + + private function makeMegaMenu($menu_type) + { + $id_lang = (int) $this->context->language->id; + $id_shop = (int) Shop::getContextShopID(); + + $tabs = array(); + + $tabs = IqitMenuTab::getTabsFrontend($menu_type, false); + + foreach ($tabs as $key => $tab) { + if (!$tab['url_type']) { + $trans = $this->transformToLink($tab['id_url'], true, $id_lang, $id_shop); + $tabs[$key]['url'] = $trans['href']; + } + + if ($tab['submenu_type'] == 1) { + if (Tools::strlen(($tab['submenu_content']))) { + $tab['submenu_content'] = explode(',', $tab['submenu_content']); + + foreach ($tab['submenu_content'] as $tab_id) { + $innertab = new IqitMenuTab($tab_id, $id_lang, $id_shop); + + if (!$innertab->verifyAccess()) { + unset($tab['submenu_content'][$tab_id]); + continue; + } + + if (Tools::strlen(($innertab->submenu_content))) { + $innertab->submenu_content = $this->buildSubmenuTree(Tools::jsonDecode($innertab->submenu_content, true), true); + } + + if (!$innertab->url_type) { + $trans = $this->transformToLink($innertab->id_url, true, $id_lang, $id_shop); + $innertab->url = $trans['href']; + } + + $tabs[$key]['submenu_content_tabs'][$tab_id] = $innertab; + } + } + } + if ($tab['submenu_type'] == 2) { + if (Tools::strlen(($tab['submenu_content']))) { + $tabs[$key]['submenu_content'] = $this->buildSubmenuTree(Tools::jsonDecode($tab['submenu_content'], true), true); + } + } + } + return $tabs; + } + + private function transformToLink($item, $simple, $id_lang = false, $id_shop = false) + { + $id_shop = ($id_shop !== false) ? (int) $id_shop : (int) Context::getContext()->shop->id; + $id_lang = $id_lang ? (int) $id_lang : (int) Context::getContext()->language->id; + + $return_link = array(); + + if (!$item) { + return; + } + + preg_match($this->pattern, $item, $value); + $id = (int) Tools::substr($item, Tools::strlen($value[1]), Tools::strlen($item)); + + switch (Tools::substr($item, 0, Tools::strlen($value[1]))) { + case 'CAT': + if ($simple) { + $cat = new Category($id, $id_lang); + $link = $cat->getLink(); + + $return_link['title'] = $cat->name; + $return_link['href'] = $link; + } + break; + + case 'PRD': + $product = new Product((int) $id, true, (int) $id_lang); + if (!is_null($product->id)) { + $return_link['title'] = $product->name; + $return_link['href'] = $product->getLink(); + } + break; + + case 'CMS_CAT': + $category = new CMSCategory((int) $id, (int) $id_lang); + if (!is_null($category->id)) { + $return_link['title'] = $category->name; + $return_link['href'] = $category->getLink(); + } + break; + + case 'CMS': + $cms = CMS::getLinks((int) $id_lang, array($id)); + if (count($cms)) { + $return_link['title'] = $cms[0]['meta_title']; + $return_link['href'] = $cms[0]['link']; + } + break; + + // Case to handle the option to show all Manufacturers + case 'ALLMAN': + $link = new Link; + $return_link['title'] = $this->l('All manufacturers'); + $return_link['href'] = $link->getPageLink('manufacturer'); + break; + + case 'MAN': + $manufacturer = new Manufacturer((int) $id, (int) $id_lang); + if (!is_null($manufacturer->id)) { + if (!$manufacturer->active) { + return; + } + + if ((int) Configuration::get('PS_REWRITING_SETTINGS')) { + $manufacturer->link_rewrite = Tools::link_rewrite($manufacturer->name); + } else { + $manufacturer->link_rewrite = 0; + } + + $link = new Link; + $return_link['title'] = $manufacturer->name; + $return_link['href'] = $link->getManufacturerLink((int) $id, $manufacturer->link_rewrite); + } + break; + + // Case to handle the option to show all Suppliers + case 'ALLSUP': + $link = new Link; + $return_link['title'] = $this->l('All suppliers'); + $return_link['href'] = $link->getPageLink('supplier'); + break; + + case 'HOME': + $link = new Link; + $return_link['title'] = $this->l('Home'); + $return_link['href'] = $link->getPageLink('index'); + break; + + case 'SUP': + $supplier = new Supplier((int) $id, (int) $id_lang); + if (!is_null($supplier->id)) { + if (!$supplier->active) { + return; + } + + $link = new Link; + $return_link['title'] = $supplier->name; + $return_link['href'] = $link->getSupplierLink((int) $id, $supplier->link_rewrite); + } + break; + + case 'SHOP': + $shop = new Shop((int) $id); + if (Validate::isLoadedObject($shop)) { + $link = new Link; + $return_link['title'] = $shop->name; + $return_link['href'] = Tools::HtmlEntitiesUTF8($shop->getBaseURL()); + } + break; + case 'LNK': + $link = IqitMenuLinks::get((int) $id, (int) $id_lang, (int) $id_shop); + if (count($link)) { + if (!isset($link[0]['label']) || ($link[0]['label'] == '')) { + $default_language = Configuration::get('PS_LANG_DEFAULT'); + $link = IqitMenuLinks::get($id, $default_language, (int) Shop::getContextShopID()); + } + $return_link['title'] = $link[0]['label']; + $return_link['href'] = $link[0]['link']; + $return_link['new_window'] = $link[0]['new_window']; + } + break; + } + return $return_link; + } + + private function makeMenuMobile() + { + $menu_items = $this->getMenuItems(); + $id_lang = (int) $this->context->language->id; + $id_shop = (int) Shop::getContextShopID(); + $mobile_menu = array(); + $depth_limit = Configuration::get($this->config_name . '_mobile_menu_depth'); + foreach ($menu_items as $item) { + if (!$item) { + continue; + } + + preg_match($this->pattern, $item, $value); + $id = (int) Tools::substr($item, Tools::strlen($value[1]), Tools::strlen($item)); + + switch (Tools::substr($item, 0, Tools::strlen($value[1]))) { + case 'CAT': + $mobile_menu[$item] = $this->generateCategoriesMenu(Category::getNestedCategories($id, $id_lang, true, $this->user_groups, true, '', $this->hor_sm_order), $depth_limit); + break; + + case 'CMS_CAT': + $category = new CMSCategory((int) $id, (int) $id_lang); + if (count($category)) { + $mobile_menu[$item]['title'] = $category->name; + $mobile_menu[$item]['href'] = $category->getLink(); + $mobile_menu[$item]['children'] = $this->getCMSMenuItems($category->id); + } + break; + + default: + $mobile_menu[$item] = $this->transformToLink($item, true, $id_lang, $id_shop); + } + } + + return $mobile_menu; + } + + protected function getCMSMenuItems($parent, $depth = 1, $id_lang = false) + { + $cmspages = array(); + $id_lang = $id_lang ? (int) $id_lang : (int) Context::getContext()->language->id; + + if ($depth > 3) { + return; + } + + $categories = $this->getCMSCategories(false, (int) $parent, (int) $id_lang); + $pages = $this->getCMSPages((int) $parent); + + if (count($categories) || count($pages)) { + foreach ($categories as $category) { + $cat = new CMSCategory((int) $category['id_cms_category'], (int) $id_lang); + + $cmspages['cms_cat' . $category['id_cms_category']]['title'] = $category['name']; + $cmspages['cms_cat' . $category['id_cms_category']]['href'] = $cat->getLink(); + $cmspages['cms_cat' . $category['id_cms_category']]['childrens'] = $this->getCMSMenuItems($category['id_cms_category'], (int) $depth + 1); + } + + foreach ($pages as $page) { + $cms = new CMS($page['id_cms'], (int) $id_lang); + $links = $cms->getLinks((int) $id_lang, array((int) $cms->id)); + + $cmspages['cms' . $cms->id]['title'] = $cms->meta_title; + $cmspages['cms' . $cms->id]['href'] = $links[0]['link']; + } + } + return $cmspages; + } + + private function generateCategoriesMenu($categories, $detph_limit, $current_depth = 1, $subcat_limit = null, $subcat_count = null, $subcats = false, $node = null) + { + $return_categories = array(); + + foreach ($categories as $key => $category) { + if ($current_depth > $detph_limit) { + return; + } + + if (isset($subcat_limit) && isset($subcat_count) && ($subcat_count >= $subcat_limit)) { + return $return_categories; + } + + if ($category['level_depth'] > 1) { + $cat = new Category($category['id_category']); + $link = $cat->getLink(); + } else { + $link = $this->context->link->getPageLink('index'); + } + + if ($subcats) { + $return_categories[$key]['title'] = $category['name']; + $return_categories[$key]['href'] = $link; + } else { + $return_categories['title'] = $category['name']; + $return_categories['href'] = $link; + } + + if (isset($node['thumb']) && $node['thumb']) { + $files = scandir(_PS_CAT_IMG_DIR_); + + if (count(preg_grep('/^' . $category['id_category'] . '-([0-9])?_thumb.jpg/i', $files)) > 0) { + foreach ($files as $file) { + if (preg_match('/^' . $category['id_category'] . '-([0-9])?_thumb.jpg/i', $file) === 1) { + $image_url = $this->context->link->getMediaLink(_THEME_CAT_DIR_ . $file); + $return_categories['thumb'] = $image_url; + break; + } + } + } + } + + if (isset($category['children']) && !empty($category['children'])) { + if ($subcats) { + $return_categories[$key]['children'] = $this->generateCategoriesMenu($category['children'], $detph_limit, $current_depth + 1, $subcat_limit, 0, true, $node); + } else { + $return_categories['children'] = $this->generateCategoriesMenu($category['children'], $detph_limit, $current_depth + 1, $subcat_limit, 0, true, $node); + } + } + $subcat_count++; + } + + return $return_categories; + } + + public function convertBgRepeat($value) + { + switch ($value) { + case 3: + $repeat_option = 'repeat'; + break; + case 2: + $repeat_option = 'repeat-x'; + break; + case 1: + $repeat_option = 'repeat-y'; + break; + default: + $repeat_option = 'no-repeat'; + } + return $repeat_option; + } + + public function convertBorderType($type) + { + $border_type = 'none'; + + switch ($type) { + case 5: + $border_type = 'groove'; + break; + case 4: + $border_type = 'double'; + break; + case 3: + $border_type = 'dotted'; + break; + case 2: + $border_type = 'dashed'; + break; + case 1: + $border_type = 'solid'; + break; + default: + $border_type = 'none'; + } + + return $border_type; + } + + public function convertBorder($value, $position, $triangle = 0) + { + $tmpborder = explode(';', $value); + + $width = $tmpborder[0]; + $type = $tmpborder[1]; + $color = $tmpborder[2]; + + switch ($type) { + case 5: + $border_type = 'groove'; + break; + case 4: + $border_type = 'double'; + break; + case 3: + $border_type = 'dotted'; + break; + case 2: + $border_type = 'dashed'; + break; + case 1: + $border_type = 'solid'; + break; + default: + $border_type = 'none'; + } + + $border_code = ''; + + if (isset($color) && $color != '') { + if ($triangle == 1) { + $border_code = 'left: ' . (-$width) . 'px; border-bottom: ' . (12 + $width) . 'px ' . $border_type . ' ' . $color . '; border-left: ' . (12 + $width) . 'px ' . $border_type . ' transparent; border-right: ' . (12 + $width) . 'px ' . $border_type . ' transparent;'; + } elseif ($triangle == 2) { + $border_code = 'left: ' . (-(12 + $width)) . 'px; border-right: ' . (12 + $width) . 'px ' . $border_type . ' ' . $color . '; border-bottom: ' . (12 + $width) . 'px ' . $border_type . ' transparent; border-left: ' . (12 + $width) . 'px ' . $border_type . ' transparent;'; + } else { + if ($position == 'side') { + $border_code = 'border-left: ' . $width . 'px ' . $border_type . ' ' . $color . ';' . PHP_EOL; + $border_code .= 'border-right: ' . $width . 'px ' . $border_type . ' ' . $color . ';'; + } elseif ($position == 'all') { + $border_code = 'border: ' . $width . 'px ' . $border_type . ' ' . $color . ';'; + } else { + $border_code = 'border-' . $position . ': ' . $width . 'px ' . $border_type . ' ' . $color . ';'; + } + } + } + return $border_code; + } + + public function convertBgPosition($value) + { + switch ($value) { + case 8: + $position_option = 'left top'; + break; + case 7: + $position_option = 'left center'; + break; + case 6: + $position_option = 'left bottom'; + break; + case 5: + $position_option = 'right top'; + break; + case 4: + $position_option = 'right center'; + break; + case 3: + $position_option = 'right bottom'; + break; + case 2: + $position_option = 'center top'; + break; + case 1: + $position_option = 'center center'; + break; + default: + $position_option = 'center bottom'; + } + return $position_option; + } + + public function getProducts($ids) + { + $products = $this->getProductsByIds($ids, $this->context->language->id); + + $presenterFactory = new ProductPresenterFactory($this->context); + $presentationSettings = $presenterFactory->getPresentationSettings(); + + $presenter = new ProductListingPresenter( + new ImageRetriever( + $this->context->link + ), + $this->context->link, + new PriceFormatter(), + new ProductColorsRetriever(), + $this->getTranslator() + ); + + + if (is_array($products)) { + foreach ($products as &$product) { + $product = $presenter->present( + $presentationSettings, + Product::getProductProperties($this->context->language->id, $product, $this->context), + $this->context->language + ); + } + unset($product); + } + return $products; + } + + public function getProductsByIds($ids, $id_lang, $active = true) + { + $product_ids = join(',', $ids); + + $id_shop = (int) Context::getContext()->shop->id; + + $sql = 'SELECT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity, pl.`description`, pl.`description_short`, pl.`link_rewrite`, + pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, pl.`available_now`, pl.`available_later`, + image_shop.`id_image` id_image, il.`legend`, m.`name` as manufacturer_name, cl.`name` AS category_default, IFNULL(product_attribute_shop.id_product_attribute, 0) id_product_attribute, + DATEDIFF( + p.`date_add`, + DATE_SUB( + "'.date('Y-m-d').' 00:00:00", + INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY + ) + ) > 0 AS new + FROM `'._DB_PREFIX_.'product` p + '.Shop::addSqlAssociation('product', 'p').' + LEFT JOIN `'._DB_PREFIX_.'product_attribute_shop` product_attribute_shop + ON (p.`id_product` = product_attribute_shop.`id_product` AND product_attribute_shop.`default_on` = 1 AND product_attribute_shop.id_shop='.(int)$id_shop.') + LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON ( + p.`id_product` = pl.`id_product` + AND pl.`id_lang` = '.(int)$id_lang.Shop::addSqlRestrictionOnLang('pl').' + ) + LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON ( + product_shop.`id_category_default` = cl.`id_category` + AND cl.`id_lang` = '.(int)$id_lang.Shop::addSqlRestrictionOnLang('cl').' + ) + LEFT JOIN `'._DB_PREFIX_.'image_shop` image_shop + ON (image_shop.`id_product` = p.`id_product` AND image_shop.cover=1 AND image_shop.id_shop='.(int)$id_shop.') + LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (image_shop.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.') + LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON (p.`id_manufacturer`= m.`id_manufacturer`) + '.Product::sqlStock('p', 0).' + WHERE p.id_product IN ('.$product_ids.')'. + ($active ? ' AND product_shop.`active` = 1 AND product_shop.`visibility` != \'none\'' : '').' + GROUP BY product_shop.id_product'; + if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql)) { + return false; + } + foreach ($result as &$row) { + $row['id_product_attribute'] = Product::getDefaultAttribute((int)$row['id_product']); + } + return Product::getProductsProperties($id_lang, $result); + } + + public function hookActionObjectCategoryAddAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectCategoryUpdateAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectCategoryDeleteAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectCmsUpdateAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectCmsDeleteAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectCmsAddAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectSupplierUpdateAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectSupplierDeleteAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectSupplierAddAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectManufacturerUpdateAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectManufacturerDeleteAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectManufacturerAddAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectProductUpdateAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectProductDeleteAfter($params) + { + $this->clearMenuCache(); + } + + public function hookActionObjectProductAddAfter($params) + { + $this->clearMenuCache(); + } + + public function hookCategoryUpdate($params) + { + $this->clearMenuCache(); + } + + public function clearMenuCache() + { + $this->_clearCache('*'); + } + + private function installSamples() + { + $languages = Language::getLanguages(false); + $group_access = array(); + $groups = Group::getGroups(Context::getContext()->language->id); + + foreach ($groups as $group) { + $group_access[$group['id_group']] = true; + } + + $group_access = serialize($group_access); + + $tab = new IqitMenuTab(); + $tab->menu_type = 1; + $tab->position = IqitMenuTab::getNextPosition(1); + + $tab->active = 1; + $tab->active_label = 1; + $tab->url_type = 0; + $tab->id_url = 'HOME0'; + $tab->icon_type = 1; + $tab->icon_class = 'fa-home'; + $tab->bg_color = '#474747'; + $tab->new_window = 0; + $tab->float = 0; + $tab->submenu_type = 0; + $tab->submenu_width = 12; + $tab->group_access = $group_access; + + foreach ($languages as $language) { + $tab->title[$language['id_lang']] = 'Home'; + } + + $tab->add(); + $tab = new IqitMenuTab(); + $tab->menu_type = 1; + $tab->position = IqitMenuTab::getNextPosition(1); + $tab->active = 1; + $tab->active_label = 0; + $tab->url_type = 2; + $tab->icon_type = 1; + $tab->new_window = 0; + $tab->float = 0; + $tab->submenu_type = 0; + $tab->submenu_width = 12; + $tab->group_access = $group_access; + + foreach ($languages as $language) { + $tab->title[$language['id_lang']] = 'Sample tab'; + } + $tab->add(); + } + + + public static function clearAssetsCache() + { + $files = glob(_PS_THEME_DIR_.'assets/cache/*'); + + foreach ($files as $file) { + if ('index.php' !== basename($file)) { + Tools::deleteFile($file); + } + } + + $version = (int) Configuration::get('PS_CCCJS_VERSION'); + Configuration::updateValue('PS_CCCJS_VERSION', ++$version); + $version = (int) Configuration::get('PS_CCCCSS_VERSION'); + Configuration::updateValue('PS_CCCCSS_VERSION', ++$version); + } + + public function ajaxProcessSearchProducts() + { + header('Content-Type: application/json'); + + $query = Tools::getValue('q', false); + if (!$query or $query == '' or Tools::strlen($query) < 1) { + die(); + } + if ($pos = strpos($query, ' (ref:')) { + $query = Tools::substr($query, 0, $pos); + } + $excludeIds = Tools::getValue('excludeIds', false); + if ($excludeIds && $excludeIds != 'NaN') { + $excludeIds = implode(',', array_map('intval', explode(',', $excludeIds))); + } else { + $excludeIds = ''; + } + $excludeVirtuals = false; + $exclude_packs = false; + $context = Context::getContext(); + $sql = 'SELECT p.`id_product`, pl.`link_rewrite`, p.`reference`, pl.`name`, image.`id_image` id_image, il.`legend`, p.`cache_default_attribute` + FROM `' . _DB_PREFIX_ . 'product` p + ' . Shop::addSqlAssociation('product', 'p') . ' + LEFT JOIN `' . _DB_PREFIX_ . 'product_lang` pl ON (pl.id_product = p.id_product AND pl.id_lang = ' . (int)$context->language->id . Shop::addSqlRestrictionOnLang('pl') . ') + LEFT JOIN `' . _DB_PREFIX_ . 'image` image + ON (image.`id_product` = p.`id_product` AND image.cover=1) + LEFT JOIN `' . _DB_PREFIX_ . 'image_lang` il ON (image.`id_image` = il.`id_image` AND il.`id_lang` = ' . (int)$context->language->id . ') + WHERE (pl.name LIKE \'%' . pSQL($query) . '%\' OR p.reference LIKE \'%' . pSQL($query) . '%\') AND p.`active` = 1' . + (!empty($excludeIds) ? ' AND p.id_product NOT IN (' . $excludeIds . ') ' : ' ') . + ($excludeVirtuals ? 'AND NOT EXISTS (SELECT 1 FROM `' . _DB_PREFIX_ . 'product_download` pd WHERE (pd.id_product = p.id_product))' : '') . + ($exclude_packs ? 'AND (p.cache_is_pack IS NULL OR p.cache_is_pack = 0)' : '') . + ' GROUP BY p.id_product'; + + $items = Db::getInstance()->executeS($sql); + + if ($items && ($excludeIds || strpos($_SERVER['HTTP_REFERER'], 'AdminScenes') !== false)) { + foreach ($items as $item) { + echo trim($item['name']) . (!empty($item['reference']) ? ' (ref: ' . $item['reference'] . ')' : '') . '|' . (int)($item['id_product']) . "\n"; + } + } elseif ($items) { + $results = array(); + foreach ($items as $item) { + $product = array( + 'id' => (int)($item['id_product']), + 'name' => $item['name'], + 'ref' => (!empty($item['reference']) ? $item['reference'] : ''), + 'image' => str_replace('http://', Tools::getShopProtocol(), $context->link->getImageLink($item['link_rewrite'], $item['id_image'], ImageType::getFormattedName('medium'))), + ); + array_push($results, $product); + } + $results = array_values($results); + die(json_encode($results)); + } else { + die(json_encode(new stdClass)); + } + } + + public function ajaxProcessUpdateHorizontalTabsPosition() + { + $tabs = Tools::getValue('tabs'); + foreach ($tabs as $position => $id_tab) { + $res = Db::getInstance()->execute(' + UPDATE `' . _DB_PREFIX_ . 'iqitmegamenu_tabs` SET `position` = ' . (int) $position . ' + WHERE `id_tab` = ' . (int) $id_tab . ' AND menu_type = 1'); + } + $this->clearMenuCache(); + } + + public function ajaxProcessupdateVerticalTabsPosition() + { + $tabs = Tools::getValue('tabs'); + foreach ($tabs as $position => $id_tab) { + $res = Db::getInstance()->execute('UPDATE `' . _DB_PREFIX_ . 'iqitmegamenu_tabs` SET `position` = ' . (int) $position . ' + WHERE `id_tab` = ' . (int) $id_tab . ' AND menu_type = 2'); + } + $this->clearMenuCache(); + } + + private function duplicateTab($id_tab) + { + $tab = new IqitMenuTab($id_tab); + $tab->duplicateObject(); + } + + protected function getWarningMultishopHtml() + { + if (Shop::getContext() == Shop::CONTEXT_GROUP || Shop::getContext() == Shop::CONTEXT_ALL) { + return '

    ' . + $this->l('You cannot manage module from a "All Shops" or a "Group Shop" context, select directly the shop you want to edit') . + '

    '; + } else { + return ''; + } + } +} diff --git a/modules/iqitmegamenu/logo.gif b/modules/iqitmegamenu/logo.gif new file mode 100644 index 00000000..91e0b0ae Binary files /dev/null and b/modules/iqitmegamenu/logo.gif differ diff --git a/modules/iqitmegamenu/logo.png b/modules/iqitmegamenu/logo.png new file mode 100644 index 00000000..40da7fee Binary files /dev/null and b/modules/iqitmegamenu/logo.png differ diff --git a/modules/iqitmegamenu/models/IqitMenuHtml.php b/modules/iqitmegamenu/models/IqitMenuHtml.php new file mode 100644 index 00000000..2d90a8cf --- /dev/null +++ b/modules/iqitmegamenu/models/IqitMenuHtml.php @@ -0,0 +1,82 @@ + + * @copyright 2007-2015 IQIT-COMMERCE.COM + * @license GNU General Public License version 2 + * + * You can not resell or redistribute this software. + */ + +class IqitMenuHtml extends ObjectModel +{ + public $title; + public $html; + + /** + * @see ObjectModel::$definition + */ + public static $definition = array( + 'table' => 'iqitmegamenu_htmlc', + 'primary' => 'id_html', + 'multilang' => true, + 'fields' => array( + 'title' => array('type' => self::TYPE_STRING, 'validate' => 'isCleanHtml', 'size' => 255), + 'html' => array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isString'), + ), + ); + + public function __construct($id_html = null, $id_lang = null, $id_shop = null) + { + parent::__construct($id_html, $id_lang, $id_shop); + } + + public function add($autodate = true, $null_values = false) + { + $context = Context::getContext(); + $id_shop = $context->shop->id; + + $res = parent::add($autodate, $null_values); + $res &= Db::getInstance()->execute('INSERT INTO `' . _DB_PREFIX_ . 'iqitmegamenu_html` (`id_html`, `id_shop`) + VALUES(' . (int) $this->id . ', ' . (int) $id_shop . ')'); + return $res; + } + + public function delete() + { + $res = true; + + $res &= Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'iqitmegamenu_html` + WHERE `id_html` = ' . (int) $this->id); + + $res &= parent::delete(); + return $res; + } + + public static function getHtmls() + { + $context = Context::getContext(); + $id_shop = $context->shop->id; + $id_lang = $context->language->id; + + return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('SELECT hs.`id_html` as id_html, hss.`title`, hssl.`html` + FROM ' . _DB_PREFIX_ . 'iqitmegamenu_html hs + LEFT JOIN ' . _DB_PREFIX_ . 'iqitmegamenu_htmlc hss ON (hs.id_html = hss.id_html) + LEFT JOIN ' . _DB_PREFIX_ . 'iqitmegamenu_htmlc_lang hssl ON (hs.id_html = hssl.id_html) + WHERE hs.id_shop = ' . (int) $id_shop . ' + AND hssl.id_lang = ' . (int) $id_lang); + } + + public static function htmlExists($id_html) + { + $req = 'SELECT hs.`id_html` as id_html + FROM `' . _DB_PREFIX_ . 'iqitmegamenu_html` hs + WHERE hs.`id_html` = ' . (int) $id_html; + $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($req); + + return ($row); + } +} diff --git a/modules/iqitmegamenu/models/IqitMenuLinks.php b/modules/iqitmegamenu/models/IqitMenuLinks.php new file mode 100644 index 00000000..266e380a --- /dev/null +++ b/modules/iqitmegamenu/models/IqitMenuLinks.php @@ -0,0 +1,132 @@ + + * @copyright 2007-2015 IQIT-COMMERCE.COM + * @license GNU General Public License version 2 + * + * You can not resell or redistribute this software. + */ + +class IqitMenuLinks +{ + public static function gets($id_lang, $id_shop, $id_iqitmenulinks = null) + { + $sql = 'SELECT l.id_iqitmenulinks, l.new_window, s.name, ll.link, ll.label + FROM ' . _DB_PREFIX_ . 'iqitmenulinks l + LEFT JOIN ' . _DB_PREFIX_ . 'iqitmenulinks_lang ll ON (l.id_iqitmenulinks = ll.id_iqitmenulinks AND ll.id_lang = ' . (int) $id_lang . ' AND ll.id_shop=' . (int) $id_shop . ') + LEFT JOIN ' . _DB_PREFIX_ . 'shop s ON l.id_shop = s.id_shop + WHERE 1 ' . ((!is_null($id_iqitmenulinks)) ? ' AND l.id_iqitmenulinks = "' . (int) $id_iqitmenulinks . '"' : '') . ' + AND l.id_shop IN (0, ' . (int) $id_shop . ')'; + + return Db::getInstance()->executeS($sql); + } + + public static function get($id_iqitmenulinks, $id_lang, $id_shop) + { + return self::gets($id_lang, $id_shop, $id_iqitmenulinks); + } + + public static function getLinkLang($id_iqitmenulinks, $id_shop) + { + $ret = Db::getInstance()->executeS('SELECT l.id_iqitmenulinks, l.new_window, ll.link, ll.label, ll.id_lang FROM ' . _DB_PREFIX_ . 'iqitmenulinks l + LEFT JOIN ' . _DB_PREFIX_ . 'iqitmenulinks_lang ll ON (l.id_iqitmenulinks = ll.id_iqitmenulinks AND ll.id_shop=' . (int) $id_shop . ') + WHERE 1 + ' . ((!is_null($id_iqitmenulinks)) ? ' AND l.id_iqitmenulinks = "' . (int) $id_iqitmenulinks . '"' : '') . ' + AND l.id_shop IN (0, ' . (int) $id_shop . ')'); + + $link = array(); + $label = array(); + $new_window = false; + + foreach ($ret as $line) { + $link[$line['id_lang']] = Tools::safeOutput($line['link']); + $label[$line['id_lang']] = Tools::safeOutput($line['label']); + $new_window = (bool) $line['new_window']; + } + + return array('link' => $link, 'label' => $label, 'new_window' => $new_window); + } + + public static function add($link, $label, $id_shop, $newWindow = 0) + { + if (!is_array($label)) { + return false; + } + + if (!is_array($link)) { + return false; + } + + Db::getInstance()->insert( + 'iqitmenulinks', + array( + 'new_window' => (int) $newWindow, + 'id_shop' => (int) $id_shop, + ) + ); + + $id_iqitmenulinks = Db::getInstance()->Insert_ID(); + $result = true; + + foreach ($label as $id_lang => $label) { + $result &= Db::getInstance()->insert( + 'iqitmenulinks_lang', + array( + 'id_iqitmenulinks' => (int) $id_iqitmenulinks, + 'id_lang' => (int) $id_lang, + 'id_shop' => (int) $id_shop, + 'label' => pSQL($label), + 'link' => pSQL($link[$id_lang]), + ) + ); + } + + return $result; + } + + public static function update($link, $labels, $id_shop, $id_link, $newWindow = 0) + { + if (!is_array($labels)) { + return false; + } + + if (!is_array($link)) { + return false; + } + + Db::getInstance()->update( + 'iqitmenulinks', + array( + 'new_window' => (int) $newWindow, + 'id_shop' => (int) $id_shop, + ), + 'id_iqitmenulinks = ' . (int) $id_link + ); + + foreach ($labels as $id_lang => $label) { + Db::getInstance()->update( + 'iqitmenulinks_lang', + array( + 'id_shop' => (int) $id_shop, + 'label' => pSQL($label), + 'link' => pSQL($link[$id_lang]), + ), + 'id_iqitmenulinks = ' . (int) $id_link . ' AND id_lang = ' . (int) $id_lang + ); + } + return true; + } + + public static function remove($id_iqitmenulinks, $id_shop) + { + $result = true; + $result &= Db::getInstance()->delete('iqitmenulinks', 'id_iqitmenulinks = ' . (int) $id_iqitmenulinks . ' AND id_shop = ' . (int) $id_shop); + $result &= Db::getInstance()->delete('iqitmenulinks_lang', 'id_iqitmenulinks = ' . (int) $id_iqitmenulinks); + + return $result; + } +} diff --git a/modules/iqitmegamenu/models/IqitMenuTab.php b/modules/iqitmegamenu/models/IqitMenuTab.php new file mode 100644 index 00000000..670b2589 --- /dev/null +++ b/modules/iqitmegamenu/models/IqitMenuTab.php @@ -0,0 +1,309 @@ + + * @copyright 2007-2015 IQIT-COMMERCE.COM + * @license GNU General Public License version 2 + * + * You can not resell or redistribute this software. + */ + +class IqitMenuTab extends ObjectModel +{ + public $id; + public $menu_type; + public $id_tab; + public $id_shop_list; + public $id_shop; + public $active; + public $active_label; + public $position; + public $url_type; + public $id_url; + public $icon_type; + public $icon_class; + public $icon; + public $legend_icon; + public $new_window; + public $float; + public $submenu_type; + public $submenu_width; + public $submenu_bg_color; + public $submenu_image; + public $submenu_repeat; + public $submenu_bg_position; + public $submenu_link_color; + public $submenu_hover_color; + public $submenu_content; + public $submenu_title_color; + public $submenu_title_colorh; + public $submenu_titleb_color; + public $submenu_border_t; + public $submenu_border_r; + public $submenu_border_b; + public $submenu_border_l; + public $submenu_border_i; + public $title; + public $label; + public $url; + public $bg_color; + public $txt_color; + public $h_bg_color; + public $h_txt_color; + public $labelbg_color; + public $labeltxt_color; + public $group_access; + + /** + * @see ObjectModel::$definition + */ + public static $definition = array( + 'table' => 'iqitmegamenu_tabs', + 'primary' => 'id_tab', + 'multilang' => true, + 'fields' => array( + 'menu_type' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'required' => true), + 'active' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'required' => true), + 'active_label' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'required' => true), + 'position' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'required' => true), + 'url_type' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'required' => true), + 'id_url' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), + 'icon_type' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'required' => true), + 'icon_class' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), + 'legend_icon' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), + 'icon' => array('type' => self::TYPE_STRING, 'validate' => 'isCleanHtml', 'size' => 255), + 'new_window' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'required' => true), + 'float' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'required' => true), + 'submenu_content' => array('type' => self::TYPE_STRING), + 'submenu_type' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'required' => true), + 'submenu_width' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'required' => true), + 'submenu_bg_color' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), + 'submenu_image' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), + 'submenu_repeat' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'), + 'submenu_bg_position' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'), + 'submenu_link_color' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), + 'submenu_hover_color' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), + 'submenu_title_color' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), + 'submenu_title_colorh' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), + 'submenu_titleb_color' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), + 'submenu_border_t' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), + 'submenu_border_r' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), + 'submenu_border_b' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), + 'submenu_border_l' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), + 'submenu_border_i' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), + 'bg_color' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), + 'txt_color' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), + 'h_bg_color' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), + 'h_txt_color' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), + 'labelbg_color' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), + 'labeltxt_color' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), + 'title' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCleanHtml', 'required' => true, 'size' => 255), + 'label' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCleanHtml', 'size' => 255), + 'url' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isUrl', 'size' => 255), + 'group_access' => array('type' => self::TYPE_STRING), + ), + ); + + public function __construct($id_menu = null, $id_lang = null, $id_shop = null) + { + Shop::addTableAssociation('iqitmegamenu_tabs', array('type' => 'shop')); + parent::__construct($id_menu, $id_lang, $id_shop); + } + + public function add($autodate = true, $null_values = false) + { + $res = parent::add($autodate, $null_values); + $this->associateTo($this->id_shop_list); + return $res; + } + + public function delete() + { + $res = true; + $tab = new IqitMenuTab((int) $this->id); + $res &= $this->reOrderPositions($tab->menu_type); + $res &= Db::getInstance()->execute('DELETE FROM `' . _DB_PREFIX_ . 'iqitmegamenu_tabs_shop` + WHERE `id_tab` = ' . (int) $this->id); + + $res &= parent::delete(); + return $res; + } + + public function update($null_values = false) + { + if (isset($this->id)) { + Db::getInstance()->delete('iqitmegamenu_tabs_shop', 'id_tab = ' . (int) $this->id); + } + $this->associateTo($this->id_shop_list); + + return parent::update(); + } + + public static function getTabs($menu_type) + { + $context = Context::getContext(); + $id_shop = $context->shop->id; + $id_lang = $context->language->id; + + return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('SELECT hs.`id_tab` as id_tab, hssl.`title`, hss.`position` + FROM ' . _DB_PREFIX_ . 'iqitmegamenu_tabs_shop hs + LEFT JOIN ' . _DB_PREFIX_ . 'iqitmegamenu_tabs hss ON (hs.id_tab = hss.id_tab) + LEFT JOIN ' . _DB_PREFIX_ . 'iqitmegamenu_tabs_lang hssl ON (hss.id_tab = hssl.id_tab) + WHERE id_shop = ' . (int) $id_shop . ' AND menu_type = ' . (int) $menu_type . ' + AND hssl.id_lang = ' . (int) $id_lang . ' + ORDER BY hss.position'); + } + + public static function getTabsFrontend($menu_type, $css_generator) + { + $context = Context::getContext(); + $id_shop = $context->shop->id; + $id_lang = $context->language->id; + + $tabs = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('SELECT hs.`id_tab` as id_tab, hssl.`title`, hssl.`label`, hssl.`url`, + hss.`position`, hss.`active_label`, hss.`url_type`, hss.`id_url`, hss.`icon_type`, hss.`icon_class`, hss.`icon`, hss.`legend_icon`, + hss.`new_window`, hss.`float`, hss.`submenu_type`, hss.`submenu_content`, hss.`submenu_width`, hss.`group_access` + ' . ($css_generator ? ', hss.`bg_color`, hss.`txt_color`, hss.`h_bg_color`, hss.`h_txt_color`, hss.`labelbg_color`, hss.`labeltxt_color`, + hss.`submenu_bg_color`, hss.`submenu_image`, hss.`submenu_repeat`, hss.`submenu_bg_position`, + hss.`submenu_link_color`, hss.`submenu_hover_color`, hss.`submenu_link_color`, hss.`submenu_hover_color`, hss.`submenu_title_color`, + hss.`submenu_title_colorh`, hss.`submenu_titleb_color`, hss.`submenu_border_t`, hss.`submenu_border_r`, hss.`submenu_border_b`, + hss.`submenu_border_l`, hss.`submenu_border_i` ' : '') . ' + FROM ' . _DB_PREFIX_ . 'iqitmegamenu_tabs_shop hs + LEFT JOIN ' . _DB_PREFIX_ . 'iqitmegamenu_tabs hss ON (hs.id_tab = hss.id_tab) + LEFT JOIN ' . _DB_PREFIX_ . 'iqitmegamenu_tabs_lang hssl ON (hss.id_tab = hssl.id_tab) + WHERE id_shop = ' . (int) $id_shop . ' AND menu_type = ' . (int) $menu_type . ' AND active = 1 + AND hssl.id_lang = ' . (int) $id_lang . ' + ORDER BY hss.position'); + + if (Context::getContext()->customer) { + foreach ($tabs as $key => $tab) { + if ($userGroups = Context::getContext()->customer->getGroups()) { + $tmpLinkGroups = unserialize($tab['group_access']); + $linkGroups = array(); + + foreach ($tmpLinkGroups as $groupID => $status) { + if ($status) { + $linkGroups[] = $groupID; + } + } + + $intersect = array_intersect($userGroups, $linkGroups); + if (!count($intersect)) { + unset($tabs[$key]); + } + } + } + + return $tabs; + } else { + return $tabs; + } + } + + public static function getNextPosition($menu_type) + { + $context = Context::getContext(); + $id_shop = $context->shop->id; + + $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('SELECT MAX(hss.`position`) AS `next_position` + FROM `' . _DB_PREFIX_ . 'iqitmegamenu_tabs` hss, `' . _DB_PREFIX_ . 'iqitmegamenu_tabs_shop` hs + WHERE hss.`id_tab` = hs.`id_tab` AND hss.`menu_type` = ' . (int) $menu_type . ' AND hs.`id_shop` = ' . (int) $id_shop); + + return (++$row['next_position']); + } + + public static function tabExists($id_tab) + { + $req = 'SELECT hs.`id_tab` as id_tab + FROM `' . _DB_PREFIX_ . 'iqitmegamenu_tabs_shop` hs + WHERE hs.`id_tab` = ' . (int) $id_tab; + $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($req); + + return ($row); + } + + public static function getAllShopTabs() + { + $id_shop = Context::getContext()->shop->id; + + $req = 'SELECT hs.`id_tab` as id_tab + FROM `' . _DB_PREFIX_ . 'iqitmegamenu_tabs_shop` hs + WHERE hs.`id_shop` = ' . (int) $id_shop; + $rows = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($req); + + $tabs = array(); + + foreach ($rows as $id => $tab) { + $tabs[$tab['id_tab']] = new IqitMenuTab($tab['id_tab']); + $tabs[$tab['id_tab']]->id_shop_list = $id_shop; + } + + return $tabs; + } + + public static function importTabs($id_tab) + { + $req = 'SELECT hs.`id_tab` as id_tab + FROM `' . _DB_PREFIX_ . 'iqitmegamenu_tabs_shop` hs + WHERE hs.`id_tab` = ' . (int) $id_tab; + $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($req); + + return ($row); + } + + public function reOrderPositions($menu_type) + { + $id_tab = $this->id; + $context = Context::getContext(); + $id_shop = $context->shop->id; + + $max = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('SELECT MAX(hss.`position`) as position + FROM `' . _DB_PREFIX_ . 'iqitmegamenu_tabs` hss, `' . _DB_PREFIX_ . 'iqitmegamenu_tabs_shop` hs + WHERE hss.`id_tab` = hs.`id_tab` AND hss.`menu_type` = ' . (int) $menu_type . ' AND hs.`id_shop` = ' . (int) $id_shop); + + if ((int) $max == (int) $id_tab) { + return true; + } + + $rows = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('SELECT hss.`position` as position, hss.`id_tab` as id_tab + FROM `' . _DB_PREFIX_ . 'iqitmegamenu_tabs` hss + LEFT JOIN `' . _DB_PREFIX_ . 'iqitmegamenu_tabs_shop` hs ON (hss.`id_tab` = hs.`id_tab`) + WHERE hs.`id_shop` = ' . (int) $id_shop . ' AND hss.`menu_type` = ' . (int) $menu_type . ' AND hss.`position` > ' . (int) $this->position); + + foreach ($rows as $row) { + $current_tab = new IqitMenuTab($row['id_tab']); + --$current_tab->position; + $current_tab->update(); + unset($current_tab); + } + + return true; + } + + public function verifyAccess() + { + if (Context::getContext()->customer) { + if ($userGroups = Context::getContext()->customer->getGroups()) { + $tmpLinkGroups = unserialize($this->group_access); + $linkGroups = array(); + + foreach ($tmpLinkGroups as $groupID => $status) { + if ($status) { + $linkGroups[] = $groupID; + } + } + + $intersect = array_intersect($userGroups, $linkGroups); + if (!count($intersect)) { + return false; + } + } + return true; + } else { + return true; + } + } +} diff --git a/modules/iqitmegamenu/models/index.php b/modules/iqitmegamenu/models/index.php new file mode 100644 index 00000000..7470cefa --- /dev/null +++ b/modules/iqitmegamenu/models/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2014 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); +header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); + +header('Cache-Control: no-store, no-cache, must-revalidate'); +header('Cache-Control: post-check=0, pre-check=0', false); +header('Pragma: no-cache'); + +header('Location: ../'); +exit; diff --git a/modules/iqitmegamenu/readme_en.pdf b/modules/iqitmegamenu/readme_en.pdf new file mode 100644 index 00000000..1e056abe Binary files /dev/null and b/modules/iqitmegamenu/readme_en.pdf differ diff --git a/modules/iqitmegamenu/translations/en.php b/modules/iqitmegamenu/translations/en.php new file mode 100644 index 00000000..e69de29b diff --git a/modules/iqitmegamenu/translations/index.php b/modules/iqitmegamenu/translations/index.php new file mode 100644 index 00000000..7470cefa --- /dev/null +++ b/modules/iqitmegamenu/translations/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2014 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); +header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); + +header('Cache-Control: no-store, no-cache, must-revalidate'); +header('Cache-Control: post-check=0, pre-check=0', false); +header('Pragma: no-cache'); + +header('Location: ../'); +exit; diff --git a/modules/iqitmegamenu/upgrade/index.php b/modules/iqitmegamenu/upgrade/index.php new file mode 100644 index 00000000..7470cefa --- /dev/null +++ b/modules/iqitmegamenu/upgrade/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2014 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); +header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); + +header('Cache-Control: no-store, no-cache, must-revalidate'); +header('Cache-Control: post-check=0, pre-check=0', false); +header('Pragma: no-cache'); + +header('Location: ../'); +exit; diff --git a/modules/iqitmegamenu/upgrade/install-1.0.1.php b/modules/iqitmegamenu/upgrade/install-1.0.1.php new file mode 100644 index 00000000..4833a3e6 --- /dev/null +++ b/modules/iqitmegamenu/upgrade/install-1.0.1.php @@ -0,0 +1,22 @@ + + * @copyright 2007-2015 IQIT-COMMERCE.COM + * @license GNU General Public License version 2 + * + * You can not resell or redistribute this software. + */ + +if (!defined('_PS_VERSION_')) { + exit; +} + +function upgrade_module_1_0_1($object) +{ + Configuration::updateValue('iqitmegamenu_hor_bootstrap', 0); + return true; +} diff --git a/modules/iqitmegamenu/upgrade/install-1.0.2.php b/modules/iqitmegamenu/upgrade/install-1.0.2.php new file mode 100644 index 00000000..55610b29 --- /dev/null +++ b/modules/iqitmegamenu/upgrade/install-1.0.2.php @@ -0,0 +1,21 @@ + + * @copyright 2007-2015 IQIT-COMMERCE.COM + * @license GNU General Public License version 2 + * + * You can not resell or redistribute this software. + */ + +if (!defined('_PS_VERSION_')) { + exit; +} + +function upgrade_module_1_0_2($object) +{ + return true; +} diff --git a/modules/iqitmegamenu/upgrade/install-1.0.5.php b/modules/iqitmegamenu/upgrade/install-1.0.5.php new file mode 100644 index 00000000..ee0a43f0 --- /dev/null +++ b/modules/iqitmegamenu/upgrade/install-1.0.5.php @@ -0,0 +1,21 @@ + + * @copyright 2007-2015 IQIT-COMMERCE.COM + * @license GNU General Public License version 2 + * + * You can not resell or redistribute this software. + */ + +if (!defined('_PS_VERSION_')) { + exit; +} + +function upgrade_module_1_0_5($object) +{ + return true; +} diff --git a/modules/iqitmegamenu/upgrade/install-1.1.0.php b/modules/iqitmegamenu/upgrade/install-1.1.0.php new file mode 100644 index 00000000..94e5a5dd --- /dev/null +++ b/modules/iqitmegamenu/upgrade/install-1.1.0.php @@ -0,0 +1,38 @@ + + * @copyright 2007-2015 IQIT-COMMERCE.COM + * @license GNU General Public License version 2 + * + * You can not resell or redistribute this software. + */ + +if (!defined('_PS_VERSION_')) { + exit; +} + +function upgrade_module_1_1_0($object) +{ + Configuration::updateValue('iqitmegamenu_hor_hook', 0); + $object->registerHook('displayIqitMenu'); + + Db::getInstance()->execute('ALTER TABLE `' . _DB_PREFIX_ . 'iqitmegamenu_tabs` ADD group_access TEXT NOT NULL AFTER submenu_border_i'); + + $groups = Group::getGroups(Context::getContext()->language->id); + + $group_access = array(); + + foreach ($groups as $group) { + $group_access[$group['id_group']] = true; + } + $group_access = serialize($group_access); + + Db::getInstance()->execute('UPDATE `' . _DB_PREFIX_ . 'iqitmegamenu_tabs` SET group_access = "' . $group_access . '" WHERE 1'); + Db::getInstance()->execute('RENAME TABLE `' . _DB_PREFIX_ . 'iqitmegamenu` TO `' . _DB_PREFIX_ . 'iqitmegamenu_tabs_shop`'); + + return true; +} diff --git a/modules/iqitmegamenu/upgrade/install-1.1.1.php b/modules/iqitmegamenu/upgrade/install-1.1.1.php new file mode 100644 index 00000000..1fc1d2ee --- /dev/null +++ b/modules/iqitmegamenu/upgrade/install-1.1.1.php @@ -0,0 +1,21 @@ + + * @copyright 2007-2015 IQIT-COMMERCE.COM + * @license GNU General Public License version 2 + * + * You can not resell or redistribute this software. + */ + +if (!defined('_PS_VERSION_')) { + exit; +} + +function upgrade_module_1_1_1($object) +{ + return true; +} diff --git a/modules/iqitmegamenu/views/css/back.css b/modules/iqitmegamenu/views/css/back.css new file mode 100644 index 00000000..ddaa70a8 --- /dev/null +++ b/modules/iqitmegamenu/views/css/back.css @@ -0,0 +1,198 @@ +/** +* 2007-2014 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA +* @copyright 2007-2014 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +* +* Don't forget to prefix your containers with your own identifier +* to avoid any conflicts with others containers. +*/ + +.tab-content .tab-pane-wrapper{ + display: none; +} + +.list-wrapper{ + display: none; +} + +.tab-content .tab-pane-wrapper.active{ + display: block; +} +#options_tab .active a{ + z-index: 2; + color: white; + background-color: #00aff0; + border-color: #00aff0; +} +#options_tab ul{list-style-type: none;} + +.grid_creator{ +} +.menu_row{ + background: #F3F3F3; + padding: 10px; + margin-bottom: 2px; + margin-left: 0px !important; + margin-right: 0px !important; + min-height: 50px; + position: relative; + padding-top: 50px; + margin-bottom: 20px; +} + +.menu_row .menu_column{ + border: 1px dashed #e6e6e6; + min-height: 200px; + padding-top: 45px; + position: relative; + background: #fff; + position: relative; + padding-left: 10px; + padding-right: 10px; +} +#tabs-submenu{ + border-bottom: 3px solid #e6e6e6; + padding: 15px; + margin-bottom: 20px; +} +#buttons-sample{ + border-bottom: 3px solid #e6e6e6; + margin-top: 5px; + padding-top: 10px; + clear: both; + text-align: center; + padding-bottom: 10px; +} +#buttons-sample .dragger-handle{ + display: none; +} +.menu_column > .action-buttons-container .add-column-action, .menu_row > .action-buttons-container .column-content-edit, .menu_row > .action-buttons-container .duplicate-element-action, #buttons-sample .duplicate-element-action{ +display: none; +} +#buttons-sample .action-buttons-container{ +border: 1px dashed #e6e6e6; +padding: 10px; +} +.dragger-handle{ + position: absolute; + left: 0px; + top: 0px; + color: #676767 !important; + background-color: #CDCDCD !important; + border: none !important; + border-radius: 0px !important; + font-size: 10px !important; +} +.dragger-handle .icon-arrows { + font-size: 10px !important; +} +.menu-element > .action-buttons-container .btn, .menu-element > .action-buttons-container .btn i { + font-size: 10px; +} + +#buttons-sample .add-column-action, #buttons-sample .remove-element-action{ + display: none; +} +.menu_row .action-buttons-container{ + background: #ECECEC; + position: absolute; + right: 0px; + font-size: 12px !important; + top: 0px; + padding: 5px; + border: 1px solid #e6e6e6; +} + +.menu_row > .action-buttons-container .add-row-action{ +display: none; +} +.menu_column > .action-buttons-container .add-column-action{ +display: none; +} + +.menu_column .menu_column .action-buttons-container .add-row-action{ +display: none; +} + +.row-placeholder{ +background: #eeefbb; +border: 1px dashed #b3b478; +width: 100%; +height: 50px; +} +.col-placeholder{ +background: #eeefbb; +border: 1px dashed #b3b478; +width: 25%; +height: 100px; +float: left; +} + +.row-title{ + font-size: 14px; + font-weight: bold; + margin-bottom: 20px; +} + +.column-content-modal .style-wrapper{ +background: #F7F7F7; +margin-top: 20px; +padding: 10px 20px; +border: 1px dotted #E5E5E5; +} + +.menu-column-content .modal-dialog { +max-width: 900px; +width: 70%; +min-width: 600px; +} + +.column-checkbox{ + display: inline-block; +border: 1px dotted #cecece; +padding: 2px 4px; +margin-right: 5px; +} + +#cssstyle-submenu{ + border-bottom: 3px solid #e6e6e6; + padding: 15px; + margin-bottom: 20px; +} + +.menu-collapse-expand{ + float: right; +} +.collapse-menu-expand{ + margin-top: 30px; +} + + +.autocomplete-suggestions { + text-align: left; cursor: default; border: 1px solid #ccc; border-top: 0; background: #fff; box-shadow: -1px 1px 3px rgba(0,0,0,.1); + + /* core styles should not be changed */ + position: absolute; display: none; z-index: 9999; max-height: 254px; overflow: hidden; overflow-y: auto; box-sizing: border-box; +} +.autocomplete-suggestion { position: relative; padding: 0 .6em; line-height: 23px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 1.02em; color: #333; } +.autocomplete-suggestion b { font-weight: normal; color: #1f8dd6; } +.autocomplete-suggestion.selected { background: #f0f0f0; } \ No newline at end of file diff --git a/modules/iqitmegamenu/views/css/bootstrap.min.css b/modules/iqitmegamenu/views/css/bootstrap.min.css new file mode 100644 index 00000000..d008147a --- /dev/null +++ b/modules/iqitmegamenu/views/css/bootstrap.min.css @@ -0,0 +1,12 @@ +/*! + * Bootstrap v3.3.4 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +/*! + * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=996541fddb4cc32bdd52) + * Config saved to config.json and https://gist.github.com/996541fddb4cc32bdd52 + *//*! normalize.css v3.0.2 | MIT License | git.io/normalize */ + + .cbp-hrmenu .img-responsive{display:block;max-width:100%;height:auto}.cbp-hrmenu .img-rounded{border-radius:6px}.cbp-hrmenu .img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.cbp-hrmenu .img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.cbp-hrmenu .sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.cbp-hrmenu .sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}.cbp-hrmenu .container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.cbp-hrmenu .container{width:750px}}@media (min-width:992px){.cbp-hrmenu .container{width:970px}}@media (min-width:1200px){.cbp-hrmenu .container{width:1170px}}.cbp-hrmenu .container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.cbp-hrmenu .row{margin-left:-15px;margin-right:-15px}.cbp-hrmenu .col-xs-1, .cbp-hrmenu .col-sm-1, .cbp-hrmenu .col-md-1, .cbp-hrmenu .col-lg-1, .cbp-hrmenu .col-xs-2, .cbp-hrmenu .col-sm-2, .cbp-hrmenu .col-md-2, .cbp-hrmenu .col-lg-2, .cbp-hrmenu .col-xs-3, .cbp-hrmenu .col-sm-3, .cbp-hrmenu .col-md-3, .cbp-hrmenu .col-lg-3, .cbp-hrmenu .col-xs-4, .cbp-hrmenu .col-sm-4, .cbp-hrmenu .col-md-4, .cbp-hrmenu .col-lg-4, .cbp-hrmenu .col-xs-5, .cbp-hrmenu .col-sm-5, .cbp-hrmenu .col-md-5, .cbp-hrmenu .col-lg-5, .cbp-hrmenu .col-xs-6, .cbp-hrmenu .col-sm-6, .cbp-hrmenu .col-md-6, .cbp-hrmenu .col-lg-6, .cbp-hrmenu .col-xs-7, .cbp-hrmenu .col-sm-7, .cbp-hrmenu .col-md-7, .cbp-hrmenu .col-lg-7, .cbp-hrmenu .col-xs-8, .cbp-hrmenu .col-sm-8, .cbp-hrmenu .col-md-8, .cbp-hrmenu .col-lg-8, .cbp-hrmenu .col-xs-9, .cbp-hrmenu .col-sm-9, .cbp-hrmenu .col-md-9, .cbp-hrmenu .col-lg-9, .cbp-hrmenu .col-xs-10, .cbp-hrmenu .col-sm-10, .cbp-hrmenu .col-md-10, .cbp-hrmenu .col-lg-10, .cbp-hrmenu .col-xs-11, .cbp-hrmenu .col-sm-11, .cbp-hrmenu .col-md-11, .cbp-hrmenu .col-lg-11, .cbp-hrmenu .col-xs-12, .cbp-hrmenu .col-sm-12, .cbp-hrmenu .col-md-12, .cbp-hrmenu .col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.cbp-hrmenu .col-xs-1, .cbp-hrmenu .col-xs-2, .cbp-hrmenu .col-xs-3, .cbp-hrmenu .col-xs-4, .cbp-hrmenu .col-xs-5, .cbp-hrmenu .col-xs-6, .cbp-hrmenu .col-xs-7, .cbp-hrmenu .col-xs-8, .cbp-hrmenu .col-xs-9, .cbp-hrmenu .col-xs-10, .cbp-hrmenu .col-xs-11, .cbp-hrmenu .col-xs-12{float:left}.cbp-hrmenu .col-xs-12{width:100%}.cbp-hrmenu .col-xs-11{width:91.66666667%}.cbp-hrmenu .col-xs-10{width:83.33333333%}.cbp-hrmenu .col-xs-9{width:75%}.cbp-hrmenu .col-xs-8{width:66.66666667%}.cbp-hrmenu .col-xs-7{width:58.33333333%}.cbp-hrmenu .col-xs-6{width:50%}.cbp-hrmenu .col-xs-5{width:41.66666667%}.cbp-hrmenu .col-xs-4{width:33.33333333%}.cbp-hrmenu .col-xs-3{width:25%}.cbp-hrmenu .col-xs-2{width:16.66666667%}.cbp-hrmenu .col-xs-1{width:8.33333333%}.cbp-hrmenu .col-xs-pull-12{right:100%}.cbp-hrmenu .col-xs-pull-11{right:91.66666667%}.cbp-hrmenu .col-xs-pull-10{right:83.33333333%}.cbp-hrmenu .col-xs-pull-9{right:75%}.cbp-hrmenu .col-xs-pull-8{right:66.66666667%}.cbp-hrmenu .col-xs-pull-7{right:58.33333333%}.cbp-hrmenu .col-xs-pull-6{right:50%}.cbp-hrmenu .col-xs-pull-5{right:41.66666667%}.cbp-hrmenu .col-xs-pull-4{right:33.33333333%}.cbp-hrmenu .col-xs-pull-3{right:25%}.cbp-hrmenu .col-xs-pull-2{right:16.66666667%}.cbp-hrmenu .col-xs-pull-1{right:8.33333333%}.cbp-hrmenu .col-xs-pull-0{right:auto}.cbp-hrmenu .col-xs-push-12{left:100%}.cbp-hrmenu .col-xs-push-11{left:91.66666667%}.cbp-hrmenu .col-xs-push-10{left:83.33333333%}.cbp-hrmenu .col-xs-push-9{left:75%}.cbp-hrmenu .col-xs-push-8{left:66.66666667%}.cbp-hrmenu .col-xs-push-7{left:58.33333333%}.cbp-hrmenu .col-xs-push-6{left:50%}.cbp-hrmenu .col-xs-push-5{left:41.66666667%}.cbp-hrmenu .col-xs-push-4{left:33.33333333%}.cbp-hrmenu .col-xs-push-3{left:25%}.cbp-hrmenu .col-xs-push-2{left:16.66666667%}.cbp-hrmenu .col-xs-push-1{left:8.33333333%}.cbp-hrmenu .col-xs-push-0{left:auto}.cbp-hrmenu .col-xs-offset-12{margin-left:100%}.cbp-hrmenu .col-xs-offset-11{margin-left:91.66666667%}.cbp-hrmenu .col-xs-offset-10{margin-left:83.33333333%}.cbp-hrmenu .col-xs-offset-9{margin-left:75%}.cbp-hrmenu .col-xs-offset-8{margin-left:66.66666667%}.cbp-hrmenu .col-xs-offset-7{margin-left:58.33333333%}.cbp-hrmenu .col-xs-offset-6{margin-left:50%}.cbp-hrmenu .col-xs-offset-5{margin-left:41.66666667%}.cbp-hrmenu .col-xs-offset-4{margin-left:33.33333333%}.cbp-hrmenu .col-xs-offset-3{margin-left:25%}.cbp-hrmenu .col-xs-offset-2{margin-left:16.66666667%}.cbp-hrmenu .col-xs-offset-1{margin-left:8.33333333%}.cbp-hrmenu .col-xs-offset-0{margin-left:0}@media (min-width:768px){.cbp-hrmenu .col-sm-1, .cbp-hrmenu .col-sm-2, .cbp-hrmenu .col-sm-3, .cbp-hrmenu .col-sm-4, .cbp-hrmenu .col-sm-5, .cbp-hrmenu .col-sm-6, .cbp-hrmenu .col-sm-7, .cbp-hrmenu .col-sm-8, .cbp-hrmenu .col-sm-9, .cbp-hrmenu .col-sm-10, .cbp-hrmenu .col-sm-11, .cbp-hrmenu .col-sm-12{float:left}.cbp-hrmenu .col-sm-12{width:100%}.cbp-hrmenu .col-sm-11{width:91.66666667%}.cbp-hrmenu .col-sm-10{width:83.33333333%}.cbp-hrmenu .col-sm-9{width:75%}.cbp-hrmenu .col-sm-8{width:66.66666667%}.cbp-hrmenu .col-sm-7{width:58.33333333%}.cbp-hrmenu .col-sm-6{width:50%}.cbp-hrmenu .col-sm-5{width:41.66666667%}.cbp-hrmenu .col-sm-4{width:33.33333333%}.cbp-hrmenu .col-sm-3{width:25%}.cbp-hrmenu .col-sm-2{width:16.66666667%}.cbp-hrmenu .col-sm-1{width:8.33333333%}.cbp-hrmenu .col-sm-pull-12{right:100%}.cbp-hrmenu .col-sm-pull-11{right:91.66666667%}.cbp-hrmenu .col-sm-pull-10{right:83.33333333%}.cbp-hrmenu .col-sm-pull-9{right:75%}.cbp-hrmenu .col-sm-pull-8{right:66.66666667%}.cbp-hrmenu .col-sm-pull-7{right:58.33333333%}.cbp-hrmenu .col-sm-pull-6{right:50%}.cbp-hrmenu .col-sm-pull-5{right:41.66666667%}.cbp-hrmenu .col-sm-pull-4{right:33.33333333%}.cbp-hrmenu .col-sm-pull-3{right:25%}.cbp-hrmenu .col-sm-pull-2{right:16.66666667%}.cbp-hrmenu .col-sm-pull-1{right:8.33333333%}.cbp-hrmenu .col-sm-pull-0{right:auto}.cbp-hrmenu .col-sm-push-12{left:100%}.cbp-hrmenu .col-sm-push-11{left:91.66666667%}.cbp-hrmenu .col-sm-push-10{left:83.33333333%}.cbp-hrmenu .col-sm-push-9{left:75%}.cbp-hrmenu .col-sm-push-8{left:66.66666667%}.cbp-hrmenu .col-sm-push-7{left:58.33333333%}.cbp-hrmenu .col-sm-push-6{left:50%}.cbp-hrmenu .col-sm-push-5{left:41.66666667%}.cbp-hrmenu .col-sm-push-4{left:33.33333333%}.cbp-hrmenu .col-sm-push-3{left:25%}.cbp-hrmenu .col-sm-push-2{left:16.66666667%}.cbp-hrmenu .col-sm-push-1{left:8.33333333%}.cbp-hrmenu .col-sm-push-0{left:auto}.cbp-hrmenu .col-sm-offset-12{margin-left:100%}.cbp-hrmenu .col-sm-offset-11{margin-left:91.66666667%}.cbp-hrmenu .col-sm-offset-10{margin-left:83.33333333%}.cbp-hrmenu .col-sm-offset-9{margin-left:75%}.cbp-hrmenu .col-sm-offset-8{margin-left:66.66666667%}.cbp-hrmenu .col-sm-offset-7{margin-left:58.33333333%}.cbp-hrmenu .col-sm-offset-6{margin-left:50%}.cbp-hrmenu .col-sm-offset-5{margin-left:41.66666667%}.cbp-hrmenu .col-sm-offset-4{margin-left:33.33333333%}.cbp-hrmenu .col-sm-offset-3{margin-left:25%}.cbp-hrmenu .col-sm-offset-2{margin-left:16.66666667%}.cbp-hrmenu .col-sm-offset-1{margin-left:8.33333333%}.cbp-hrmenu .col-sm-offset-0{margin-left:0}}@media (min-width:992px){.cbp-hrmenu .col-md-1, .cbp-hrmenu .col-md-2, .cbp-hrmenu .col-md-3, .cbp-hrmenu .col-md-4, .cbp-hrmenu .col-md-5, .cbp-hrmenu .col-md-6, .cbp-hrmenu .col-md-7, .cbp-hrmenu .col-md-8, .cbp-hrmenu .col-md-9, .cbp-hrmenu .col-md-10, .cbp-hrmenu .col-md-11, .cbp-hrmenu .col-md-12{float:left}.cbp-hrmenu .col-md-12{width:100%}.cbp-hrmenu .col-md-11{width:91.66666667%}.cbp-hrmenu .col-md-10{width:83.33333333%}.cbp-hrmenu .col-md-9{width:75%}.cbp-hrmenu .col-md-8{width:66.66666667%}.cbp-hrmenu .col-md-7{width:58.33333333%}.cbp-hrmenu .col-md-6{width:50%}.cbp-hrmenu .col-md-5{width:41.66666667%}.cbp-hrmenu .col-md-4{width:33.33333333%}.cbp-hrmenu .col-md-3{width:25%}.cbp-hrmenu .col-md-2{width:16.66666667%}.cbp-hrmenu .col-md-1{width:8.33333333%}.cbp-hrmenu .col-md-pull-12{right:100%}.cbp-hrmenu .col-md-pull-11{right:91.66666667%}.cbp-hrmenu .col-md-pull-10{right:83.33333333%}.cbp-hrmenu .col-md-pull-9{right:75%}.cbp-hrmenu .col-md-pull-8{right:66.66666667%}.cbp-hrmenu .col-md-pull-7{right:58.33333333%}.cbp-hrmenu .col-md-pull-6{right:50%}.cbp-hrmenu .col-md-pull-5{right:41.66666667%}.cbp-hrmenu .col-md-pull-4{right:33.33333333%}.cbp-hrmenu .col-md-pull-3{right:25%}.cbp-hrmenu .col-md-pull-2{right:16.66666667%}.cbp-hrmenu .col-md-pull-1{right:8.33333333%}.cbp-hrmenu .col-md-pull-0{right:auto}.cbp-hrmenu .col-md-push-12{left:100%}.cbp-hrmenu .col-md-push-11{left:91.66666667%}.cbp-hrmenu .col-md-push-10{left:83.33333333%}.cbp-hrmenu .col-md-push-9{left:75%}.cbp-hrmenu .col-md-push-8{left:66.66666667%}.cbp-hrmenu .col-md-push-7{left:58.33333333%}.cbp-hrmenu .col-md-push-6{left:50%}.cbp-hrmenu .col-md-push-5{left:41.66666667%}.cbp-hrmenu .col-md-push-4{left:33.33333333%}.cbp-hrmenu .col-md-push-3{left:25%}.cbp-hrmenu .col-md-push-2{left:16.66666667%}.cbp-hrmenu .col-md-push-1{left:8.33333333%}.cbp-hrmenu .col-md-push-0{left:auto}.cbp-hrmenu .col-md-offset-12{margin-left:100%}.cbp-hrmenu .col-md-offset-11{margin-left:91.66666667%}.cbp-hrmenu .col-md-offset-10{margin-left:83.33333333%}.cbp-hrmenu .col-md-offset-9{margin-left:75%}.cbp-hrmenu .col-md-offset-8{margin-left:66.66666667%}.cbp-hrmenu .col-md-offset-7{margin-left:58.33333333%}.cbp-hrmenu .col-md-offset-6{margin-left:50%}.cbp-hrmenu .col-md-offset-5{margin-left:41.66666667%}.cbp-hrmenu .col-md-offset-4{margin-left:33.33333333%}.cbp-hrmenu .col-md-offset-3{margin-left:25%}.cbp-hrmenu .col-md-offset-2{margin-left:16.66666667%}.cbp-hrmenu .col-md-offset-1{margin-left:8.33333333%}.cbp-hrmenu .col-md-offset-0{margin-left:0}}@media (min-width:1200px){.cbp-hrmenu .col-lg-1, .cbp-hrmenu .col-lg-2, .cbp-hrmenu .col-lg-3, .cbp-hrmenu .col-lg-4, .cbp-hrmenu .col-lg-5, .cbp-hrmenu .col-lg-6, .cbp-hrmenu .col-lg-7, .cbp-hrmenu .col-lg-8, .cbp-hrmenu .col-lg-9, .cbp-hrmenu .col-lg-10, .cbp-hrmenu .col-lg-11, .cbp-hrmenu .col-lg-12{float:left}.cbp-hrmenu .col-lg-12{width:100%}.cbp-hrmenu .col-lg-11{width:91.66666667%}.cbp-hrmenu .col-lg-10{width:83.33333333%}.cbp-hrmenu .col-lg-9{width:75%}.cbp-hrmenu .col-lg-8{width:66.66666667%}.cbp-hrmenu .col-lg-7{width:58.33333333%}.cbp-hrmenu .col-lg-6{width:50%}.cbp-hrmenu .col-lg-5{width:41.66666667%}.cbp-hrmenu .col-lg-4{width:33.33333333%}.cbp-hrmenu .col-lg-3{width:25%}.cbp-hrmenu .col-lg-2{width:16.66666667%}.cbp-hrmenu .col-lg-1{width:8.33333333%}.cbp-hrmenu .col-lg-pull-12{right:100%}.cbp-hrmenu .col-lg-pull-11{right:91.66666667%}.cbp-hrmenu .col-lg-pull-10{right:83.33333333%}.cbp-hrmenu .col-lg-pull-9{right:75%}.cbp-hrmenu .col-lg-pull-8{right:66.66666667%}.cbp-hrmenu .col-lg-pull-7{right:58.33333333%}.cbp-hrmenu .col-lg-pull-6{right:50%}.cbp-hrmenu .col-lg-pull-5{right:41.66666667%}.cbp-hrmenu .col-lg-pull-4{right:33.33333333%}.cbp-hrmenu .col-lg-pull-3{right:25%}.cbp-hrmenu .col-lg-pull-2{right:16.66666667%}.cbp-hrmenu .col-lg-pull-1{right:8.33333333%}.cbp-hrmenu .col-lg-pull-0{right:auto}.cbp-hrmenu .col-lg-push-12{left:100%}.cbp-hrmenu .col-lg-push-11{left:91.66666667%}.cbp-hrmenu .col-lg-push-10{left:83.33333333%}.cbp-hrmenu .col-lg-push-9{left:75%}.cbp-hrmenu .col-lg-push-8{left:66.66666667%}.cbp-hrmenu .col-lg-push-7{left:58.33333333%}.cbp-hrmenu .col-lg-push-6{left:50%}.cbp-hrmenu .col-lg-push-5{left:41.66666667%}.cbp-hrmenu .col-lg-push-4{left:33.33333333%}.cbp-hrmenu .col-lg-push-3{left:25%}.cbp-hrmenu .col-lg-push-2{left:16.66666667%}.cbp-hrmenu .col-lg-push-1{left:8.33333333%}.cbp-hrmenu .col-lg-push-0{left:auto}.cbp-hrmenu .col-lg-offset-12{margin-left:100%}.cbp-hrmenu .col-lg-offset-11{margin-left:91.66666667%}.cbp-hrmenu .col-lg-offset-10{margin-left:83.33333333%}.cbp-hrmenu .col-lg-offset-9{margin-left:75%}.cbp-hrmenu .col-lg-offset-8{margin-left:66.66666667%}.cbp-hrmenu .col-lg-offset-7{margin-left:58.33333333%}.cbp-hrmenu .col-lg-offset-6{margin-left:50%}.cbp-hrmenu .col-lg-offset-5{margin-left:41.66666667%}.cbp-hrmenu .col-lg-offset-4{margin-left:33.33333333%}.cbp-hrmenu .col-lg-offset-3{margin-left:25%}.cbp-hrmenu .col-lg-offset-2{margin-left:16.66666667%}.cbp-hrmenu .col-lg-offset-1{margin-left:8.33333333%}.cbp-hrmenu .col-lg-offset-0{margin-left:0}}.cbp-hrmenu .clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after{content:" ";display:table}.cbp-hrmenu .clearfix:after,.container:after,.container-fluid:after,.row:after{clear:both}.cbp-hrmenu .center-block{display:block;margin-left:auto;margin-right:auto}.cbp-hrmenu .pull-right{float:right !important}.cbp-hrmenu .pull-left{float:left !important}.cbp-hrmenu .hide{display:none !important}.cbp-hrmenu .show{display:block !important}.cbp-hrmenu .invisible{visibility:hidden}.cbp-hrmenu .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.cbp-hrmenu .hidden{display:none !important}.cbp-hrmenu .affix{position:fixed}@-ms-viewport{width:device-width}.cbp-hrmenu .visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.cbp-hrmenu .visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.cbp-hrmenu .visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.cbp-hrmenu .visible-xs-block{display:block !important}}@media (max-width:767px){.cbp-hrmenu .visible-xs-inline{display:inline !important}}@media (max-width:767px){.cbp-hrmenu .visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.cbp-hrmenu .visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.cbp-hrmenu .visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.cbp-hrmenu .visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.cbp-hrmenu .visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.cbp-hrmenu .visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.cbp-hrmenu .visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.cbp-hrmenu .visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.cbp-hrmenu .visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.cbp-hrmenu .visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.cbp-hrmenu .visible-lg-block{display:block !important}}@media (min-width:1200px){.cbp-hrmenu .visible-lg-inline{display:inline !important}}@media (min-width:1200px){.cbp-hrmenu .visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.cbp-hrmenu .hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.cbp-hrmenu .hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.cbp-hrmenu .hidden-md{display:none !important}}@media (min-width:1200px){.cbp-hrmenu .hidden-lg{display:none !important}}.cbp-hrmenu .visible-print{display:none !important}@media print{.cbp-hrmenu .visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.cbp-hrmenu .visible-print-block{display:none !important}@media print{.cbp-hrmenu .visible-print-block{display:block !important}}.cbp-hrmenu .visible-print-inline{display:none !important}@media print{.cbp-hrmenu .visible-print-inline{display:inline !important}}.cbp-hrmenu .visible-print-inline-block{display:none !important}@media print{.cbp-hrmenu .visible-print-inline-block{display:inline-block !important}}@media print{.cbp-hrmenu .hidden-print{display:none !important}} \ No newline at end of file diff --git a/modules/iqitmegamenu/views/css/font-awesome.min.css b/modules/iqitmegamenu/views/css/font-awesome.min.css new file mode 100644 index 00000000..540440ce --- /dev/null +++ b/modules/iqitmegamenu/views/css/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/modules/iqitmegamenu/views/css/fontawesome-iconpicker.min.css b/modules/iqitmegamenu/views/css/fontawesome-iconpicker.min.css new file mode 100644 index 00000000..a899a63e --- /dev/null +++ b/modules/iqitmegamenu/views/css/fontawesome-iconpicker.min.css @@ -0,0 +1,9 @@ +/*! + * Font Awesome Icon Picker + * http://mjolnic.github.io/fontawesome-iconpicker/ + * + * Originally written by (c) 2014 Javier Aguilar @mjolnic + * Licensed under the MIT License + * https://github.com/mjolnic/fontawesome-iconpicker/blob/master/LICENSE + * + */.iconpicker-popover.popover{position:absolute;top:0;left:0;display:none;max-width:none;padding:1px;text-align:left;width:242px;background:#f7f7f7; z-index: 100;}.iconpicker-popover.popover.top,.iconpicker-popover.popover.topLeftCorner,.iconpicker-popover.popover.topLeft,.iconpicker-popover.popover.topRight,.iconpicker-popover.popover.topRightCorner{margin-top:-10px}.iconpicker-popover.popover.right,.iconpicker-popover.popover.rightTop,.iconpicker-popover.popover.rightBottom{margin-left:10px}.iconpicker-popover.popover.bottom,.iconpicker-popover.popover.bottomRightCorner,.iconpicker-popover.popover.bottomRight,.iconpicker-popover.popover.bottomLeft,.iconpicker-popover.popover.bottomLeftCorner{margin-top:10px}.iconpicker-popover.popover.left,.iconpicker-popover.popover.leftBottom,.iconpicker-popover.popover.leftTop{margin-left:-10px}.iconpicker-popover.popover.inline{margin:0 0 14px 0;position:relative;display:inline-block;opacity:1;top:auto;left:auto;bottom:auto;right:auto;max-width:100%;box-shadow:none;z-index:auto;vertical-align:top}.iconpicker-popover.popover.inline>.arrow{display:none}.dropdown-menu .iconpicker-popover.inline{margin:0;border:none}.dropdown-menu.iconpicker-container{padding:0}.iconpicker-popover.popover .popover-title{padding:14px;font-size:14px;line-height:16px;border-bottom:1px solid #ebebeb;background-color:#f7f7f7}.iconpicker-popover.popover .popover-title input[type=search].iconpicker-search{margin:0 0 2px 0}.iconpicker-popover.popover .popover-title-text~input[type=search].iconpicker-search{margin-top:14px}.iconpicker-popover.popover .popover-content{padding:0px;text-align:center}.iconpicker-popover .popover-footer{float:none;clear:both;padding:14px;text-align:right;margin:0;border-top:1px solid #ebebeb;background-color:#f7f7f7}.iconpicker-popover .popover-footer:before,.iconpicker-popover .popover-footer:after{content:" ";display:table}.iconpicker-popover .popover-footer:after{clear:both}.iconpicker-popover .popover-footer .iconpicker-btn{margin-left:10px}.iconpicker-popover .popover-footer input[type=search].iconpicker-search{margin-bottom:14px}.iconpicker-popover.popover>.arrow,.iconpicker-popover.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.iconpicker-popover.popover>.arrow{border-width:11px}.iconpicker-popover.popover>.arrow:after{border-width:10px;content:""}.iconpicker-popover.popover.top>.arrow,.iconpicker-popover.popover.topLeft>.arrow,.iconpicker-popover.popover.topRight>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.iconpicker-popover.popover.top>.arrow:after,.iconpicker-popover.popover.topLeft>.arrow:after,.iconpicker-popover.popover.topRight>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.iconpicker-popover.popover.topLeft>.arrow{left:14px;margin-left:0}.iconpicker-popover.popover.topRight>.arrow{left:auto;right:14px;margin-left:0}.iconpicker-popover.popover.right>.arrow,.iconpicker-popover.popover.rightTop>.arrow,.iconpicker-popover.popover.rightBottom>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.iconpicker-popover.popover.right>.arrow:after,.iconpicker-popover.popover.rightTop>.arrow:after,.iconpicker-popover.popover.rightBottom>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.iconpicker-popover.popover.rightTop>.arrow{top:auto;bottom:14px;margin-top:0}.iconpicker-popover.popover.rightBottom>.arrow{top:14px;margin-top:0}.iconpicker-popover.popover.bottom>.arrow,.iconpicker-popover.popover.bottomRight>.arrow,.iconpicker-popover.popover.bottomLeft>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.iconpicker-popover.popover.bottom>.arrow:after,.iconpicker-popover.popover.bottomRight>.arrow:after,.iconpicker-popover.popover.bottomLeft>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.iconpicker-popover.popover.bottomLeft>.arrow{left:14px;margin-left:0}.iconpicker-popover.popover.bottomRight>.arrow{left:auto;right:14px;margin-left:0}.iconpicker-popover.popover.left>.arrow,.iconpicker-popover.popover.leftBottom>.arrow,.iconpicker-popover.popover.leftTop>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.iconpicker-popover.popover.left>.arrow:after,.iconpicker-popover.popover.leftBottom>.arrow:after,.iconpicker-popover.popover.leftTop>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.iconpicker-popover.popover.leftBottom>.arrow{top:14px;margin-top:0}.iconpicker-popover.popover.leftTop>.arrow{top:auto;bottom:14px;margin-top:0}.iconpicker{position:relative;text-align:left;text-shadow:none;line-height:0;display:block;margin:0;overflow:hidden}.iconpicker *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;position:relative}.iconpicker:before,.iconpicker:after{content:" ";display:table}.iconpicker:after{clear:both}.iconpicker .iconpicker-items{position:relative;clear:both;float:none;padding:14px 0 0 14px;background:#fff;margin:0;overflow:hidden;overflow-y:auto;min-height:55px;max-height:275px}.iconpicker .iconpicker-items:before,.iconpicker .iconpicker-items:after{content:" ";display:table}.iconpicker .iconpicker-items:after{clear:both}.iconpicker .iconpicker-item{float:left;width:14px;height:14px;padding:14px;margin:0 14px 14px 0;text-align:center;cursor:pointer;border-radius:3px;font-size:14px;box-shadow:0 0 0 1px #ddd}.iconpicker .iconpicker-item:hover:not(.iconpicker-selected){background-color:#eee}.iconpicker .iconpicker-item.iconpicker-selected{box-shadow:none}.iconpicker-component{cursor:pointer} \ No newline at end of file diff --git a/modules/iqitmegamenu/views/css/fontawesome.css b/modules/iqitmegamenu/views/css/fontawesome.css new file mode 100644 index 00000000..86464860 --- /dev/null +++ b/modules/iqitmegamenu/views/css/fontawesome.css @@ -0,0 +1,5 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ + @font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/modules/iqitmegamenu/views/css/front.css b/modules/iqitmegamenu/views/css/front.css new file mode 100644 index 00000000..d850f638 --- /dev/null +++ b/modules/iqitmegamenu/views/css/front.css @@ -0,0 +1,972 @@ +.iqitmegamenu-wrapper { + z-index: 97; + clear: both; } + .iqitmegamenu-wrapper.cbp-hor-width-0 { + padding-left: 0px; + padding-right: 0px; } + .container-iqit-menu{ + z-index: 10; + position: relative; + } + +.cbp-hor-width-1 .container { + padding-left: 0px; + padding-right: 0px; } + +.iqitmegamenu { + background: #cecece; } + .iqitmegamenu .container .row { + margin-left: 0px; + margin-right: 0px; } + +.cbp-sticky.cbp-sticky-transparent { + opacity: 0.85; + transition: opacity 300ms ease-in-out; } + .cbp-sticky.cbp-sticky-transparent:hover { + opacity: 1; } + +#iqitmegamenu-horizontal.cbp-sticky { + position: fixed !important; + top: 0 !important; + width: 100% !important; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15); + z-index: 90; + left: 0; + -webkit-backface-visibility: hidden; } + @media (max-width: 999px) { + #iqitmegamenu-horizontal.cbp-sticky { + position: static !important; } } + #iqitmegamenu-horizontal.cbp-sticky .cbp-hrmenu-tab > a > .cbp-legend { + display: none; } + +.cbp-hrmenu { + width: 100%; } + @media (max-width: 999px) { + .cbp-hrmenu { + display: none; } } + .cbp-hrmenu ul { + margin: 0; + padding: 0; + list-style-type: none; } + .cbp-hrmenu .col-xs-12 { + float: left; } + .cbp-hrmenu .cbp-tab-title { + display: inline-block; + vertical-align: middle; + position: relative; + top: -1px; } + .cbp-hrmenu .cbp-manufacturers { + margin-top: -10px; } + .cbp-hrmenu .cbp-manufacturers li { + margin-top: 10px; } + .cbp-hrmenu .cbp-manufacturers li:hover { + opacity: 0.85; } + .cbp-hrmenu .cbp-vertical-title { + transition: all 300ms ease-in-out; + padding: 0px 15px; } + .cbp-hrmenu .cbp-vertical-title .icon { + margin-right: 10px; } + .cbp-hrmenu .cbp-categories-row { + margin-top: -10px; } + .cbp-hrmenu .cbp-categories-row > div { + margin-top: 10px; } + .cbp-hrmenu .menu_row { + position: static; + } + .cbp-hrmenu .cbp-empty-column .cbp-menu-column-inner > .menu_row:first-child { + margin-top: -20px; } + .cbp-hrmenu .cbp-tabs-container { + width: 100%; } + .cbp-hrmenu .cbp-absolute-column { + margin: 0px; + padding: 0px; + position: absolute; + width: auto !important; + z-index: 2; } + .cbp-hrmenu .cbp-column-title { + display: block; + margin-bottom: 8px; } + .cbp-hrmenu .cbp-column-title .cbp-legend.cbp-legend-inner { + top: -2px; } + .cbp-hrmenu .cbp-column-title .cbp-legend.cbp-legend-inner .cbp-legend-arrow:before { + top: -1px; } + .cbp-hrmenu .cbp-column-title.cbp-column-title-inline { + padding: 0px !important; + border: none !important; + margin: 0px !important; + margin-right: 10px !important; + display: inline-block; + vertical-align: middle; } + .cbp-hrmenu .cbp-menu-column { + margin-top: 20px; } + .cbp-hrmenu .cbp-menu-column .row { + margin-left: -10px; + margin-right: -10px; } + .cbp-hrmenu .cbp-mainlink-iicon, .cbp-hrmenu .cbp-mainlink-icon { + width: auto; + display: inline; + vertical-align: middle; + margin-right: 4px; } + .cbp-hrmenu .cbp-onlyicon .cbp-mainlink-iicon, .cbp-hrmenu .cbp-onlyicon .cbp-mainlink-icon { + margin-right: 0px; } + .cbp-hrmenu .cbp-legend { + display: inline-block; + top: -15px; + right: 5px; + background-color: #999999; + color: #ffffff; + position: absolute; + font-weight: normal; + font-size: 10px; + padding: 4px 6px; + text-transform: none; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15); + line-height: initial; + } + .cbp-hrmenu .cbp-legend .cbp-legend-arrow:before { + font-family: "FontAwesome"; + content: "\F0D7"; + font-size: 15px; + position: absolute; + bottom: -10px; + right: 5px; } + .cbp-hrmenu .cbp-legend.cbp-legend-inner { + position: relative; + top: 0px; + margin-left: 5px; + right: 0px; + padding: 2px 4px; + vertical-align: middle; } + .cbp-hrmenu .cbp-legend.cbp-legend-inner .cbp-legend-arrow:before { + content: "\f0d9"; + bottom: 0px; + top: 0px; + margin-top: 1px; + z-index: 2; + right: auto; + left: -4px; } + .cbp-hrmenu .cbp-tab-content { + border-left: 1px solid #cecece; + margin-top: 0px !important; + margin-bottom: 0px !important; + padding: 0px; + vertical-align: top; } + .cbp-hrmenu .cbp-products-big * { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } + .cbp-hrmenu .cbp-products-big .quick-view { + font-size: 0px; } + .cbp-hrmenu .cbp-products-big .online-label, .cbp-hrmenu .cbp-products-big .new-label, .cbp-hrmenu .cbp-products-big .sale-label { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; } + .cbp-hrmenu .cbp-products-big li.ajax_block_product { + text-align: center; + margin-bottom: 10px; } + .cbp-hrmenu .cbp-products-big li.ajax_block_product:hover { + padding-top: 0px; + padding-bottom: 0px; } + .cbp-hrmenu .cbp-products-big li.ajax_block_product:hover .functional-buttons-grid { + visibility: visible; + opacity: 0.9; + margin-bottom: 0px; } + .cbp-hrmenu .price.product-price{ + font-size: 14px; + line-height: 14px; + } + .cbp-hrmenu .old-price.product-price{ + font-size: 13px; + } + .cbp-hrmenu .cbp-products-list .product-name, .cbp-hrmenu .cbp-products-list .product-name-container { + height: auto; + line-height: inherit; } + .cbp-hrmenu .cbp-products-list > li { + padding-top: 9px; + padding-bottom: 9px; } + .cbp-hrmenu .cbp-products-list .product-image-container { + float: left; + margin-right: 10px; + max-width: 60px; + min-width: 30px; } + .cbp-hrmenu .cbp-hrsub-tabs-names { + margin-right: -10px; + margin-left: -10px; } + .cbp-hrmenu .cbp-hrsub-tabs-names li { + position: relative; + border-bottom: 1px solid #cecece; } + .cbp-hrmenu .cbp-hrsub-tabs-names li .cbp-inner-border-hider { + position: absolute; + top: 0px; + background: white; + display: block; + height: 100%; + z-index: 1; + display: none; } + .cbp-hrmenu .cbp-hrsub-tabs-names li.active .cbp-inner-border-hider { + display: block; } + .cbp-hrmenu .cbp-hrsub-tabs-names li a { + position: relative; + display: block; + transition: none; + padding: 14px 16px; } + .cbp-hrmenu.cbp-submenu-notarrowed .cbp-submenu-aindicator { + display: none; } + .cbp-hrmenu .cbp-submenu-aindicator { + margin-left: 3px; } + .cbp-hrmenu .cbp-submenu-it-indicator { + position: absolute; + top: 0px; + bottom: 0px; + right: 10px; + margin: auto; + height: 15px; } + .cbp-hrmenu.cbp-menu-centered > ul { + text-align: center; } + .cbp-hrmenu.cbp-menu-centered > ul > li { + text-align: left; + float: none; } + .cbp-hrmenu .cbp-links li { + margin: 3px 0; + padding-left: 2px; + position: relative; } + .cbp-hrmenu .cbp-links li:last-child { + margin-bottom: 0px; } + .cbp-hrmenu .cbp-links li.cbp-hrsub-haslevel2 > div > a:after, .cbp-hrmenu .cbp-links li .cbp-hrsub-haslevel3 > div > a:after { + content: "\f0da"; + display: inline; + font-family: "FontAwesome"; + padding-left: 4px; + opacity: 0.2; + position: relative; + -webkit-transition: opacity 0.3s ease; + -moz-transition: opacity 0.3s ease; + -o-transition: opacity 0.3s ease; + transition: opacity 0.3s ease; } + .cbp-hrmenu .cbp-links li a { + padding-left: 10px; + display: inline-block; } + .cbp-hrmenu .cbp-links li a:before { + content: "\f105"; + display: inline; + font-family: "FontAwesome"; + position: absolute; + left: 0px; + -webkit-transition: left 0.3s ease, right 0.3s ease; + -moz-transition: left 0.3s ease, right 0.3s ease; + -o-transition: left 0.3s ease, right 0.3s ease; + transition: left 0.3s ease, right 0.3s ease; } + .cbp-hrmenu .cbp-links li a:hover:before { + left: 3px; } + .cbp-hrmenu .cbp-links.cbp-valinks-vertical li { + display: inline-block; + margin: 0px; + margin-right: 12px; + padding: 0px; } + .cbp-hrmenu .cbp-links.cbp-valinks-vertical.cbp-valinks-vertical2 { + display: inline-block; + vertical-align: middle; } + +.cbp-category-thumb{ + display: block; + margin-bottom: 10px; +} +/* vertical style */ +.cbp-hrmenu.cbp-vertical > ul > li { + float: none; + display: block; } + +.cbp-vertical-on-top { + float: left; + width: 250px; + position: relative; } + .cbp-vertical-on-top > .cbp-vertical > ul { + position: absolute; + visibility: hidden; + opacity: 0; } + .cbp-vertical-on-top.cbp-vert-expanded > .cbp-vertical > ul { + visibility: visible; + opacity: 1; } + .cbp-vertical-on-top nav#cbp-hrmenu1 { + margin-bottom: 0px; } + +#index .cbp-homepage-expanded > .cbp-vertical > ul { + visibility: visible; + opacity: 1; } + +#index .cbp-sticky .cbp-homepage-expanded > .cbp-vertical > ul { + visibility: hidden; + opacity: 0; } + +#index .cbp-sticky .cbp-vert-expanded > .cbp-vertical > ul { + visibility: visible; + opacity: 1; } + +.cbp-hrmenu.cbp-vertical { + width: 100%; + margin-bottom: 20px; } + .cbp-hrmenu.cbp-vertical .cbp-submenu-aindicator { + position: absolute; + right: 8px; + margin-top: 1px; } + .cbp-hrmenu.cbp-vertical .cbp-legend-vertical { + top: -8px; + right: 14px; } + +.cbp-hrmenu.cbp-vertical > ul { + width: 100%; + max-width: 100%; + padding: 0px; } + +.cbp-hrmenu.cbp-vertical > ul > li > a, .cbp-hrmenu.cbp-vertical > ul > li .span.cbp-main-link { + padding-left: 15px; + padding-right: 15px; + display: block; } +.cbp-hrmenu.cbp-vertical > ul > li:first-child > a, .cbp-hrmenu.cbp-vertical > ul > li:first-child .span.cbp-main-link { + border-top: none; } + +.cbp-hrmenu.cbp-vertical .cbp-hrsub-wrapper { + position: absolute; + visibility: hidden; + opacity: 0; + z-index: 100; } + +.cbp-hrmenu.cbp-vertical .cbp-hropen .cbp-hrsub-wrapper { + visibility: visible; + opacity: 1.0; } + +/* first level ul style */ +.cbp-hrmenu > ul, +.cbp-hrmenu .cbp-hrsub-inner { + margin: 0 auto; } + +.cbp-hrmenu > ul > li { + display: inline-block; + float: left; } + +.cbp-hrmenu > ul > li > a, .cbp-hrmenu > ul > li > span.cbp-main-link { + display: inline-block; + position: relative; + text-decoration: none; + cursor: pointer; + -webkit-transition: color 0.3s ease, background-color 0.3s ease; + -moz-transition: color 0.3s ease, background-color 0.3s ease; + -o-transition: color 0.3s ease, background-color 0.3s ease; + transition: color 0.3s ease, background-color 0.3s ease; } +.cbp-hrmenu > ul > li:first-child > a, .cbp-hrmenu > ul > li:first-child > span.cbp-main-link { + border-left: none !important; } + +/* sub-menu */ +.cbp-hrmenu.cbp-arrowed .cbp-triangle-container { + display: block; } + +.cbp-hrmenu .cbp-triangle-top { + width: 0; + height: 0; + position: absolute; + z-index: 1; + border-left: 12px solid transparent; + border-right: 12px solid transparent; + border-bottom: 12px solid #fff; + top: 1px; } + +.cbp-hrmenu .cbp-triangle-top-back { + width: 0; + height: 0; + position: absolute; + left: -1px; + border-left: 13px solid transparent; + border-right: 13px solid transparent; + border-bottom: 13px solid #EAEAEA; } + +.cbp-hrmenu .cbp-triangle-container { + display: none; + left: 0px; + top: 0px; + position: absolute; } + +.cbp-hrmenu .cbp-triangle-left, #columns .cbp-hrmenu .cbp-triangle-left { + position: absolute; + width: 0; + height: 0; + left: 1px; + z-index: 1; + border-top: 12px solid transparent; + border-bottom: 12px solid transparent; + border-right: 12px solid #fff; } + +.cbp-hrmenu .cbp-triangle-left-back, #columns .cbp-hrmenu .cbp-triangle-left-back { + position: absolute; + width: 0; + height: 0; + top: -1px; + left: 0px; + border-top: 13px solid transparent; + border-bottom: 13px solid transparent; + border-right: 13px solid #EAEAEA; } + +.cbp-horizontal.cbp-arrowed .cbp-triangle-container { + position: absolute; + bottom: -13px; } + +.cbp-vertical.cbp-arrowed .cbp-hrsub-inner { + margin-left: 12px; } + +.cbp-horizontal.cbp-arrowed .cbp-hrsub-inner { + margin-top: 12px; } + +.cbp-hrmenu .cbp-hrsub { + visibility: hidden; + opacity: 0; + position: absolute; + display: none; + padding-bottom: 20px; + padding: 0px !important; } + +.cbp-hropen .cbp-hrsub { + visibility: visible; + opacity: 1.0; + z-index: 1; } + +.cbp-hrmenu .cbp-hrsub-inner { + background: #fff; + border: 1px solid #EAEAEA; } + .cbp-hrmenu .cbp-hrsub-inner > .row { + margin-left: 10px; + margin-right: 10px; } + .cbp-hrmenu .cbp-hrsub-inner > .row:last-child { + margin-bottom: 20px; } + +.cbp-hrsub-wide .cbp-hrsub-inner .container > .row:last-child { + margin-bottom: 20px; } + +.cbp-hrmenu .cbp-notfit { + right: 0px; } + +.cbp-hrmenu .cbp-show { + display: block; } +.cbp-category-link-w{ + position: relative; + +} +.cbp-category-tree{ + display: inline-block; +} +.cbp-hrmenu ul.cbp-hrsub-level2 { + visibility: hidden; + opacity: 0; + position: absolute; + left: 100%; + margin-top: -20px; + padding: 8px 10px; + z-index: 3; + width: auto; + background: #fff; + border: 1px solid #EAEAEA; + white-space: nowrap; } +.cbp-hrmenu ul.cbp-hrsub-level3{ + left: 101%; +} + + +.cbp-hrmenu .pull-right { + float: right !important; +} + + +.cbp-hrsub-haslevel3 > .cbp-category-link-w > ul { + visibility: hidden; + opacity: 0; + position: absolute; + left: 100px; + margin-top: -20px; + padding: 8px 10px; + z-index: 3; + width: auto; +transition: visibility 180ms ease-in-out,opacity 180ms ease-in-out; + white-space: nowrap; +left: 101%; +} +.cbp-hrsub-haslevel3:hover > .cbp-category-link-w > ul { + visibility: visible; + opacity: 1.0; +} + +.cbp-hrsub-haslevel3:hover .cbp-hrsub-level2{ + visibility: visible; + opacity: 1.0; +} + .cbp-hrsub-haslevel2:hover > div > ul.cbp-hrsub-level2 { + visibility: visible; + opacity: 1.0; } + +.cbp-hrmenu .cbp-tab-pane { + display: none; } +.cbp-hrmenu .cbp-tab-pane > .clearfix > .row { + margin: 0px; +} + .cbp-hrmenu .cbp-tab-pane > div > .row:last-child { + margin-bottom: 20px; } + +.cbp-hrmenu .cbp-hropen .cbp-tab-pane.active { + visibility: visible; + opacity: 1.0; } + +.cbp-hrmenu .cbp-tab-pane.active { + display: table-cell; } + +/* wide submenu wrapper */ +.cbp-hor-width-0 .cbp-hrsub-wide .cbp-hrsub { + width: 100%; + left: 0; } + +/* wide submenu submenucontent */ +.cbp-hrsub-wide.cbp-hrsub-widec .cbp-hrsub-inner { + width: 100%; + max-width: 100%; } + +/* narrow submenu wrapper */ +.cbp-hrsub-narrow { + position: relative; } + +/* submenu effects */ +.cbp-fade .cbp-hrsub { + transition: visibility 300ms ease-in-out, opacity 300ms ease-in-out; } + +.cbp-fade .cbp-hrsub-level2 { + transition: visibility 300ms ease-in-out, opacity 300ms ease-in-out; } + +.cbp-fade .cbp-hrsub-wrapper { + transition: visibility 300ms ease-in-out, opacity 300ms ease-in-out; } + +.cbp-fade.cbp-vertical > ul { + transition: visibility 300ms ease-in-out, opacity 300ms ease-in-out; } + +.cbp-fade-slide-bottom .cbp-hrsub { + transition: all 300ms ease-in-out; + margin-top: 15px; } + +.cbp-fade-slide-bottom .cbp-hropen .cbp-hrsub { + transition: all 300ms ease-in-out; + margin-top: 0px; } + +.cbp-fade-slide-bottom .cbp-hrsub-level2 { + transition: visibility 300ms ease-in-out, opacity 300ms ease-in-out; } + +.cbp-fade-slide-top .cbp-hrsub { + transition: all 300ms ease-in-out; + margin-top: -15px; + z-index: -20; } + +.cbp-fade-slide-top .cbp-hropen .cbp-hrsub { + transition: all 300ms ease-in-out; + margin-top: 0px; + z-index: 1; } + +.cbp-fade-slide-top .cbp-hrsub-level2 { + transition: visibility 300ms ease-in-out, opacity 300ms ease-in-out; } + +.cbp-hrmenu .cbp-hrsub-inner:before, +.cbp-hrmenu .cbp-hrsub-inner:after { + content: ""; + display: table; } + +.cbp-hrmenu .cbp-hrsub-inner:after { + clear: both; } + +.cbp-hrsub h4 { + color: #afdefa; + padding: 2em 0 0.6em; + margin: 0; + font-size: 160%; + font-weight: 300; } + +@media (min-width: 1000px) { + .cbp-spmenu-push-toright { + left: 0px !important; } } +/* Responsive styling*/ +#iqitmegamenu-mobile { + display: none; + text-align: left; } + @media (max-width: 999px) { + #iqitmegamenu-mobile { + display: block; } } + #iqitmegamenu-mobile ul, #iqitmegamenu-mobile li { + list-style-type: none; } + #iqitmegamenu-mobile #iqitmegamenu-shower { + text-transform: uppercase; + padding: 12px 15px; + cursor: pointer; + line-height: 36px; } + #iqitmegamenu-mobile .iqitmegamenu-icon { + margin-right: 10px; + color: #000; + display: block; + background-color: #fff; + font-weight: bold; + font-size: 24px; + float: left; + width: 36px; + text-align: center; + cursor: pointer; } + #iqitmegamenu-mobile .iqitmegamenu-accordion { + list-style: none; + padding: 0px; + overflow: hidden; + height: auto; + max-height: 0px; + margin: 0px; + -webkit-transition: all 0.5s ease; + -webkit-transition-delay: 0s; + -moz-transition: all 0.5s ease 0s; + -o-transition: all 0.5s ease 0s; + transition: all 0.5s ease 0s; } + #iqitmegamenu-mobile .iqitmegamenu-accordion.showedmenu { + border-top: none; + padding: 12px; + max-height: 9999px; + -webkit-transition: all 0.5s ease; + -webkit-transition-delay: 0s; + -moz-transition: all 0.5s ease 0s; + -o-transition: all 0.5s ease 0s; + transition: all 0.5s ease 0s; } + #iqitmegamenu-mobile .iqitmegamenu-accordion > li { + border-bottom: 1px dashed #dddddd; } + #iqitmegamenu-mobile .iqitmegamenu-accordion > li:last-child { + border-bottom: none; } + #iqitmegamenu-mobile .iqitmegamenu-accordion > li > a { + text-transform: uppercase; + display: block; + padding: 10px 0; } + #iqitmegamenu-mobile .iqitmegamenu-accordion > li ul { + background-color: #f8f8f8; } + #iqitmegamenu-mobile .iqitmegamenu-accordion > li ul a { + display: block; + padding: 10px 0; + border-top: 1px dashed #dddddd; } + #iqitmegamenu-mobile .iqitmegamenu-accordion ul { + list-style: none; + padding: 0 0 0 0; } + #iqitmegamenu-mobile .iqitmegamenu-accordion ul li { + font-weight: normal; + cursor: auto; + padding: 0 0 0 7px; } + #iqitmegamenu-mobile .iqitmegamenu-accordion a { + text-decoration: none; } + #iqitmegamenu-mobile .iqitmegamenu-accordion a:hover { + text-decoration: none; } + +#iqitmegamenu-accordion { + display: none; } + #iqitmegamenu-accordion div.responsiveInykator { + display: block; + font-weight: bold; + font-size: 24px; + float: right; + padding: 6px 0; + position: relative; + top: 7px; + width: 32px; + text-align: center; + cursor: pointer; } + #iqitmegamenu-accordion > li ul { + display: none; } + + @media (max-width: 999px) { + #iqitmegamenu-accordion { + display: block; } } + +#iqitmegamenu-accordion.cbp-spmenu div.responsiveInykator { + border: none; } +#iqitmegamenu-accordion.cbp-spmenu li a:hover { + -webkit-box-shadow: inset -134px 0px 10px -133px rgba(0, 0, 0, 0.4); + -moz-box-shadow: inset -134px 0px 10px -133px rgba(0, 0, 0, 0.4); + box-shadow: inset -134px 0px 10px -133px rgba(0, 0, 0, 0.4); } +#iqitmegamenu-accordion.cbp-spmenu > li a { + text-transform: uppercase; + font-weight: bold; } +#iqitmegamenu-accordion.cbp-spmenu > li ul{ + padding: 0px 10px; + display: none; + font-size: 90%; + -webkit-box-shadow: inset -134px 0px 10px -133px rgba(0, 0, 0, 0.4); + -moz-box-shadow: inset -134px 0px 10px -133px rgba(0, 0, 0, 0.4); + box-shadow: inset -134px 0px 10px -133px rgba(0, 0, 0, 0.4); } + + #iqitmegamenu-accordion > li ul.cbpm-ul-showed { + display: block; } + #iqitmegamenu-accordion.cbp-spmenu > li ul ul { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; } + #iqitmegamenu-accordion.cbp-spmenu > li ul ul a:hover { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; } + #iqitmegamenu-accordion.cbp-spmenu > li ul div.responsiveInykator { + background: none; + margin-right: 0px; + color: #fff;} + #iqitmegamenu-accordion.cbp-spmenu > li ul ul { + margin: 0px; } + #iqitmegamenu-accordion.cbp-spmenu > li ul ul a { + text-transform: none; + border: none; } + #iqitmegamenu-accordion.cbp-spmenu > li ul ul ul a { + text-transform: none; + font-weight: normal; } + +#iqitmegamenu-mobile .iqitmegamenu-accordion li a { + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -o-transition: all 0.3s ease; + transition: all 0.3s ease; } + +.cbp-spmenu div.responsiveInykator { + margin-right: 10px; } + + #cbp-close-mobile { + padding: 0px; + text-align: center; + width: 50px; + height: 50px; + position: absolute; + left: -50px; + visibility: hidden; + opacity: 0; + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + transition: all 0.3s ease; + border: none !important; + } + #cbp-close-mobile i { + line-height: 50px; + font-size: 28px; } +.cbp-spmenu-overlay { + position: fixed; + width: 100%; + height: 100%; + left: 0px; + top: 0px; + z-index: 5102; + visibility: hidden; + opacity: 0; + display: none; } + @media (max-width: 999px) { + .cbp-spmenu-overlay { + display: block; } } + +.cbp-spmenu-overlay-show { + visibility: visible; + opacity: 1; } +.cbp-spmenu-overlay-show #cbp-close-mobile { + left: 240px; + visibility: visible; + opacity: 1; +} +.cbp-spmenu { + position: fixed; + z-index: 5103; + -webkit-box-shadow: inset -134px 0px 10px -133px rgba(0, 0, 0, 0.4); + -moz-box-shadow: inset -134px 0px 10px -133px rgba(0, 0, 0, 0.4); + box-shadow: inset -134px 0px 10px -133px rgba(0, 0, 0, 0.4); + overflow-y: auto;} + +.cbp-spmenu h3 { + color: #afdefa; + font-size: 1.9em; + padding: 20px; + margin: 0; + font-weight: 300; + background: #0d77b6; } + +.cbp-spmenu a { + display: block; + color: #fff; + font-size: 1.1em; + font-weight: 300; } + +.cbp-spmenu > li > ul > li > a:hover { + margin-left: -10px; + margin-right: -10px; + padding-left: 23px; } + +.cbp-spmenu a:active { + background: #afdefa; + color: #47a3da; } + +/* Orientation-dependent styles for the content of the menu */ +.cbp-spmenu-vertical { + width: 240px; + height: 100%; + top: 0; } + +.cbp-spmenu-vertical a { + border-bottom: 1px solid #258ecd; + padding: 1em; } + +/* Vertical menu that slides from the left or right */ +.cbp-spmenu-left { + left: -240px; } + +.cbp-spmenu-left.cbp-spmenu-open { + left: 0px; } + +/* Push classes applied to the body */ +.cbp-spmenu-push { + overflow-x: hidden; + position: relative; + left: 0; } +@media (max-width: 999px){ +.cbp-spmenu-push-toright { + left: 240px; + width: 100%; + position: fixed;} + } + +.cbp-spmenu-push-toleft { + left: -240px; } + +/* Transitions */ +.cbp-spmenu, +.cbp-spmenu-push { + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + transition: all 0.3s ease; } + +/* Example media queries */ +@media screen and (max-width: 55.1875em) { + .cbp-spmenu-top { + top: -110px; } + + .cbp-spmenu-bottom { + bottom: -110px; } } + +.container-xs-height { + display: table; + padding-left: 0px; + padding-right: 0px; } + +.row-xs-height { + display: table-row; } + .row-xs-height:before { + display: none; } + .row-xs-height:after { + display: none; } + +.col-xs-height { + display: table-cell; + float: none; + vertical-align: top; } + +#iqitmegamenu-horizontal #search_block_top_content { + width: auto; + float: right; + position: relative; + width: 160px; + right: 0px; } +#iqitmegamenu-horizontal #search_block_top { + position: absolute; + top: 0px; + width: 150px; + right: 0px; + bottom: 0px; + margin: auto; } + +@media (max-width: 999px) { + #iqitmegamenu-horizontal > .container { + position: relative; } } + +@media (max-width: 767px) { + #iqitmegamenu-horizontal #search_block_top_content { + width: 100%; + margin-bottom: 10px; } } +@media (min-width: 768px) and (max-width: 999px) { + #iqitmegamenu-horizontal #search_block_top_content { + position: absolute; + right: 20px; + top: 10px; + bottom: 10px; + margin-right: 0px !important; } } + +@media (max-width: 767px) { + #iqitmegamenu-horizontal #search_block_top { + left: 0px; } } + +.cbp-hor-width-1 #iqitmegamenu-horizontal #search_block_top_content { + margin-right: 15px; } + +@media (max-width: 767px) { + #iqitmegamenu-horizontal { + background: transparent !important; + border: none !important; } } + + +.cbp-hrmenu .col-xs-1, .cbp-hrmenu .col-xs-2, .cbp-hrmenu .col-xs-3, .cbp-hrmenu .col-xs-4, .cbp-hrmenu .col-xs-5, .cbp-hrmenu .col-xs-6, .cbp-hrmenu .col-xs-7, .cbp-hrmenu .col-xs-8, .cbp-hrmenu .col-xs-9, .cbp-hrmenu .col-xs-10, .cbp-hrmenu .col-xs-11, .cbp-hrmenu .col-xs-12, .cbp-hrmenu .col-sm-1, .cbp-hrmenu .col-sm-2, .cbp-hrmenu .col-sm-3, .cbp-hrmenu .col-sm-4, +.cbp-hrmenu .col-sm-5, .cbp-hrmenu .col-sm-6, .cbp-hrmenu .col-sm-7, .cbp-hrmenu .col-sm-8, .cbp-hrmenu .col-sm-9, .cbp-hrmenu .col-sm-10, .cbp-hrmenu .col-sm-11, .cbp-hrmenu .col-sm-12, .cbp-hrmenu .col-md-1, .cbp-hrmenu .col-md-2, .cbp-hrmenu .col-md-3, .cbp-hrmenu .col-md-4, .cbp-hrmenu .col-md-5, .cbp-hrmenu .col-md-6, .cbp-hrmenu .col-md-7, .cbp-hrmenu .col-md-8, +.cbp-hrmenu .col-md-9, .cbp-hrmenu .col-md-10, .cbp-hrmenu .col-md-11, .cbp-hrmenu .col-md-12, .cbp-hrmenu .col-lg-1, .cbp-hrmenu .col-lg-2, .cbp-hrmenu .col-lg-3, .cbp-hrmenu .col-lg-4, .cbp-hrmenu .col-lg-5, .cbp-hrmenu .col-lg-6, .cbp-hrmenu .col-lg-7, .cbp-hrmenu .col-lg-8, .cbp-hrmenu .col-lg-9, .cbp-hrmenu .col-lg-10, .cbp-hrmenu .col-lg-11, .cbp-hrmenu .col-lg-12 +{ + padding-left: 10px; + padding-right: 10px; +} + +#iqitmegamenu-horizontal.cbp-nosticky .container{ +max-width: 100%; +} + +.cbp-hor-width-0 #iqitmegamenu-horizontal{ +margin: 0 -500%; +padding: 0 500%; + +} + +.cbp-hor-width-0 #iqitmegamenu-horizontal .container{ +padding-left: 10px; +padding-right: 10px; +} + +.cbp-hor-width-0 #iqitmegamenu-horizontal.cbp-sticky{ + margin: 0px; + padding: 0px; +} + +body{ + overflow-x: hidden; +} + +.col-xs-15, +.col-sm-15, +.col-md-15, +.col-lg-15 { + position: relative; + min-height: 1px; + padding-right: 10px; + padding-left: 10px; +} + +.col-xs-15 { + width: 20%; + float: left; +} +@media (min-width: 768px) { +.col-sm-15 { + width: 20%; + float: left; + } +} +@media (min-width: 992px) { + .col-md-15 { + width: 20%; + float: left; + } +} +@media (min-width: 1200px) { + .col-lg-15 { + width: 20%; + float: left; + } +} \ No newline at end of file diff --git a/modules/iqitmegamenu/views/css/index.php b/modules/iqitmegamenu/views/css/index.php new file mode 100644 index 00000000..7470cefa --- /dev/null +++ b/modules/iqitmegamenu/views/css/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2014 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); +header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); + +header('Cache-Control: no-store, no-cache, must-revalidate'); +header('Cache-Control: post-check=0, pre-check=0', false); +header('Pragma: no-cache'); + +header('Location: ../'); +exit; diff --git a/modules/iqitmegamenu/views/css/iqitmegamenu_s_1.css b/modules/iqitmegamenu/views/css/iqitmegamenu_s_1.css new file mode 100644 index 00000000..a00d65b1 --- /dev/null +++ b/modules/iqitmegamenu/views/css/iqitmegamenu_s_1.css @@ -0,0 +1 @@ +#iqitmegamenu-horizontal{ border-top: 1px none #cecece; border-bottom: 1px none #cecece; border-left: 1px none #cecece; border-right: 1px none #cecece; background-color: #609600; } #cbp-hrmenu .cbp-legend{ background-color: #CA5058; color: #ffffff; } #cbp-hrmenu .cbp-legend .cbp-legend-arrow{ color: #CA5058; } #cbp-hrmenu > ul > li > a:hover, #cbp-hrmenu > ul > li.cbp-hropen > a, #cbp-hrmenu > ul > li.cbp-hropen > a:hover{ background-color: #fafafa; color: #000000; } #cbp-hrmenu > ul > li > a, #cbp-hrmenu > ul > li > span.cbp-main-link{ color: #ffffff; line-height: 60px; padding-left: 14px; max-width: 400px; padding-right: 14px; text-transform: uppercase; font-size: 14px; border-left: 1px none #cecece; } #cbp-hrmenu .cbp-tab-title{ line-height: 15px; } @media (min-width: 1320px){ #cbp-hrmenu .cbp-tab-title{ line-height: 15px; } #cbp-hrmenu > ul > li > a, #cbp-hrmenu > ul > li > span.cbp-main-link{ font-size: 14px; padding-left: 20px; padding-right: 20px; } } .cbp-vertical-on-top .cbp-vertical-title{ line-height: 60px; } #cbp-hrmenu > ul > li > a .cbp-mainlink-icon, #cbp-hrmenu > ul > li > a .cbp-mainlink-iicon{ font-size: 14px; max-height: 14px; } .cbp-hrmenu .cbp-hrsub-inner, .cbp-hrmenu ul.cbp-hrsub-level2, .cbp-hrsub-haslevel3 > .cbp-category-link-w > ul { border-top: 1px solid #cecece; border-bottom: 1px solid #cecece; border-left: 1px solid #cecece; border-right: 1px solid #cecece; background-color: #ffffff; } .cbp-hrmenu .cbp-triangle-top{ border-bottom-color: #ffffff; top: 1px; } .cbp-hrmenu .cbp-triangle-left, #columns .cbp-hrmenu .cbp-triangle-left{ border-right-color: #ffffff; left: 1px; } .cbp-hrmenu .cbp-triangle-top-back{left: -1px; border-bottom: 13px solid #cecece; border-left: 13px solid transparent; border-right: 13px solid transparent;} .cbp-hrmenu .cbp-triangle-left-back, #columns .cbp-hrmenu .cbp-triangle-left-back{left: -13px; border-right: 13px solid #cecece; border-bottom: 13px solid transparent; border-left: 13px solid transparent;} .cbp-hrmenu .menu_column { border-color: #cecece; } .cbp-hrmenu .cbp-hrsub-inner, .cbp-hrmenu ul.cbp-hrsub-level2, .cbp-hrsub-haslevel3:hover > .cbp-category-link-w > ul { -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15); -moz-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15); box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15); } .cbp-hrmenu .cbp-hrsub-tabs-names li .cbp-inner-border-hider{ width: 1px; right: -1px; } .cbp-hrmenu .cbp-hrsub-tabs-names li{ border-bottom: 1px solid #cecece; } .cbp-hrmenu .cbp-tab-pane{ border-left: 1px solid #cecece; } .is_rtl .cbp-hrmenu .cbp-tab-pane{ border-right: 1px solid #cecece; } #cbp-hrmenu1 .cbp-hrsub-inner .cbp-column-title, #cbp-hrmenu1 .cbp-hrsub-inner a.cbp-column-title:link, #cbp-hrmenu .cbp-hrsub-inner .cbp-column-title, #cbp-hrmenu .cbp-hrsub-inner a.cbp-column-title:link { font-size: 13px; line-height: 17px; color: #777777; text-transform: uppercase; font-weight: bold; } #cbp-hrmenu .cbp-hrsub-inner a.cbp-column-title:hover, #cbp-hrmenu1 .cbp-hrsub-inner a.cbp-column-title:hover { color: #333333; } .cbp-hrmenu .cbp-hrsub-inner .cbp-column-title{ padding-bottom: 6px; border-bottom: 1px solid #cecece; } .cbp-hrmenu .cbp-hrsub-inner{ font-size: 12px; line-height: 16px; color: #777777; } #cbp-hrmenu .cbp-hrsub-inner a, #cbp-hrmenu .cbp-hrsub-inner a:link, #cbp-hrmenu1 .cbp-hrsub-inner a, #cbp-hrmenu1 .cbp-hrsub-inner a:link{ color: #777777; } #cbp-hrmenu .cbp-hrsub-inner a:hover, #cbp-hrmenu1 .cbp-hrsub-inner a:hover{ color: #333333; } .cbp-vertical-title{ background-color: #000000; color: #ffffff; font-size: 14px; line-height: 45px; text-transform: uppercase; } .cbp-vertical-title:hover{ background-color: #282828; color: #ffffff; } .cbp-hrmenu.cbp-vertical > ul{ border-top: 1px none #cecece; border-bottom: 1px solid #cecece; border-left: 1px solid #cecece; border-right: 1px solid #cecece; background-color: transparent; } .cbp-vertical .cbp-legend{ background-color: #CA5058; color: #ffffff; } .cbp-vertical .cbp-legend .cbp-legend-arrow{ color: #CA5058; } #cbp-hrmenu1 > ul > li.cbp-hropen > a, #cbp-hrmenu1 > ul > li.cbp-hropen > a:hover{ background-color: #fafafa; color: #000000; } #cbp-hrmenu1 > ul > li > a, #cbp-hrmenu1 > ul > li > span.cbp-main-link{ color: #777777; padding-top: 20px; padding-bottom: 20px; text-transform: uppercase; font-size: 14px; border-top: 1px solid #cecece; } #cbp-hrmenu1 > ul > li > a .cbp-mainlink-icon, #cbp-hrmenu1 > ul > li > a .cbp-mainlink-iicon{ font-size: 14px; max-height: 14px; }.cbp-vertical-on-top .cbp-hrmenu.cbp-vertical > ul{ -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15); -moz-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15); box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15); } .cbp-hrmenu > ul > li#cbp-hrmenu-tab-1 > a, .cbp-hrmenu > ul > li#cbp-hrmenu-tab-1 > span.cbp-main-link { background-color: #474747; } .cbp-hrmenu > ul > li#cbp-hrmenu-tab-3 > a, .cbp-hrmenu > ul > li#cbp-hrmenu-tab-3 > span.cbp-main-link { background-color: #458000; } .cbp-hrmenu .cbp-hrsub-inner .cbp-tabs-names li a { background-color: #F9F9F9; color: #777777; } .cbp-hrmenu .cbp-submenu-it-indicator{ color: #777777;} .cbp-tabs-names li a:hover, .cbp-hrmenu .cbp-hrsub-tabs-names li.active a, .cbp-tabs-names li .cbp-inner-border-hider { background-color: #ffffff; color: #777777; } .cbp-hrmenu li.active .cbp-submenu-it-indicator{ color: #777777;} #iqitmegamenu-mobile #iqitmegamenu-shower, #cbp-close-mobile { background-color: #000000; color: #ffffff; border: 1px solid #cecece; } #iqitmegamenu-mobile .iqitmegamenu-icon{ color: #000000; background-color: #ffffff; } .cbp-mobilesubmenu{ background-color: #ffffff; color: #777777; border-bottom: 1px solid #cecece; border-left: 1px solid #cecece; border-right: 1px solid #cecece; } #iqitmegamenu-accordion{ background-color: #ffffff; color: #777777; } #iqitmegamenu-mobile .iqitmegamenu-accordion > li ul{ background-color: #f8f8f8; } #iqitmegamenu-accordion.cbp-spmenu > li ul{ background-color: #f8f8f8; } #iqitmegamenu-mobile .iqitmegamenu-accordion > li ul a{ border-top: 1px solid #cecece; } #iqitmegamenu-mobile .iqitmegamenu-accordion > li{ border-bottom: 1px solid #cecece; } .cbp-spmenu-vertical a{ border-bottom: 1px solid #cecece; } #iqitmegamenu-accordion.cbp-spmenu > li ul div.responsiveInykator{ color: #777777; } #iqitmegamenu-accordion li a{ color: #777777; } #iqitmegamenu-mobile .iqitmegamenu-accordion li a:hover{ color: #777777; background-color: #e5e5e5; padding-left: 10px; } #iqitmegamenu-accordion li a:hover{ color: #777777; background-color: #e5e5e5; } #iqitmegamenu-accordion div.responsiveInykator{ color: #777777; } \ No newline at end of file diff --git a/modules/iqitmegamenu/views/css/iqitmegamenu_s_2.css b/modules/iqitmegamenu/views/css/iqitmegamenu_s_2.css new file mode 100644 index 00000000..bcef2449 --- /dev/null +++ b/modules/iqitmegamenu/views/css/iqitmegamenu_s_2.css @@ -0,0 +1 @@ +#iqitmegamenu-horizontal{ background-color: ; } .cbp-horizontal .cbp-legend{ background-color: ; color: ; } .cbp-horizontal .cbp-legend .cbp-legend-arrow{ color: ; } .cbp-horizontal > ul > li.cbp-hropen > a, .cbp-horizontal > ul > li.cbp-hropen > a:hover{ background-color: ; color: ; } .cbp-horizontal > ul > li > a, .cbp-horizontal > ul > li > span.cbp-main-link{ color: ; line-height: px; padding-left: px; max-width: px; padding-right: px; font-size: px; } .cbp-horizontal .cbp-tab-title{ line-height: 1px; } @media (min-width: 1320px){ .cbp-horizontal .cbp-tab-title{ line-height: 1px; } .cbp-horizontal > ul > li > a, .cbp-horizontal > ul > li > span.cbp-main-link{ font-size: px; padding-left: px; padding-right: px; } } .cbp-vertical-on-top .cbp-vertical-title{ line-height: px; } .cbp-horizontal > ul > li > a .cbp-mainlink-icon, .cbp-horizontal > ul > li > a .cbp-mainlink-iicon{ font-size: px; max-height: px; } .cbp-hrmenu .cbp-hrsub-inner, .cbp-hrmenu ul.cbp-hrsub-level2, .cbp-hrsub-haslevel3 > .cbp-category-link-w > ul { background-color: ; } .cbp-hrmenu .cbp-triangle-top{ border-bottom-color: ; top: px; } .cbp-hrmenu .cbp-triangle-left, #columns .cbp-hrmenu .cbp-triangle-left{ border-right-color: ; left: px; } .cbp-hrmenu .cbp-triangle-top-back{} .cbp-hrmenu .cbp-triangle-left-back, #columns .cbp-hrmenu .cbp-triangle-left-back{} .cbp-hrmenu .menu_column { border-color: ; } .cbp-hrmenu .cbp-hrsub-tabs-names li .cbp-inner-border-hider{ width: px; right: 0px; } .cbp-hrmenu .cbp-hrsub-tabs-names li{ } .cbp-hrmenu .cbp-tab-pane{ } .is_rtl .cbp-hrmenu .cbp-tab-pane{ } .cbp-hrmenu .cbp-hrsub-inner .cbp-column-title, .cbp-hrmenu .cbp-hrsub-inner a.cbp-column-title:link { font-size: px; line-height: 4px; color: ; } .cbp-hrmenu .cbp-hrsub-inner a.cbp-column-title:hover { color: ; } .cbp-hrmenu .cbp-hrsub-inner{ font-size: px; line-height: 4px; color: ; } .cbp-hrmenu .cbp-hrsub-inner a, .cbp-hrmenu .cbp-hrsub-inner a:link{ color: ; } .cbp-hrmenu .cbp-hrsub-inner a:hover{ color: ; } .cbp-hrmenu .cbp-links li a:before{ display: none; } .cbp-hrmenu .cbp-links li, .cbp-hrmenu .cbp-links li a { padding-left: 0px; } .cbp-hrmenu .cbp-links li.cbp-hrsub-haslevel2 > a:after{ display: none; } .cbp-vertical-title{ background-color: ; color: ; font-size: px; line-height: px; } .cbp-vertical-title:hover{ background-color: ; color: ; } .cbp-hrmenu.cbp-vertical > ul{ background-color: ; } .cbp-vertical .cbp-legend{ background-color: ; color: ; } .cbp-vertical .cbp-legend .cbp-legend-arrow{ color: ; } .cbp-vertical > ul > li.cbp-hropen > a, .cbp-vertical > ul > li.cbp-hropen > a:hover{ background-color: ; color: ; } .cbp-vertical > ul > li > a, .cbp-vertical > ul > li > span.cbp-main-link{ color: ; padding-top: px; padding-bottom: px; font-size: px; } .cbp-vertical > ul > li > a .cbp-mainlink-icon, .cbp-vertical > ul > li > a .cbp-mainlink-iicon{ font-size: px; max-height: px; }.cbp-hrmenu .cbp-hrsub-inner .cbp-tabs-names li a { background-color: ; color: ; } .cbp-hrmenu .cbp-submenu-it-indicator{ color: ;} .cbp-tabs-names li a:hover, .cbp-hrmenu .cbp-hrsub-tabs-names li.active a, .cbp-tabs-names li .cbp-inner-border-hider { background-color: ; color: ; } .cbp-hrmenu li.active .cbp-submenu-it-indicator{ color: ;} #iqitmegamenu-mobile #iqitmegamenu-shower, #cbp-close-mobile { background-color: ; color: ; } #iqitmegamenu-mobile .iqitmegamenu-icon{ color: ; background-color: ; } .cbp-mobilesubmenu{ background-color: ; color: ; } #iqitmegamenu-accordion{ background-color: ; color: ; } #iqitmegamenu-mobile .iqitmegamenu-accordion > li ul{ background-color: ; } #iqitmegamenu-accordion.cbp-spmenu > li ul{ background-color: ; } #iqitmegamenu-mobile .iqitmegamenu-accordion > li ul a{ } #iqitmegamenu-mobile .iqitmegamenu-accordion > li{ } .cbp-spmenu-vertical a{ } #iqitmegamenu-accordion.cbp-spmenu > li ul div.responsiveInykator{ color: ; } #iqitmegamenu-mobile .iqitmegamenu-accordion li a, .cbp-spmenu a{ color: ; } #iqitmegamenu-mobile .iqitmegamenu-accordion li a:hover{ color: ; background-color: ; padding-left: 10px; } .cbp-spmenu a:hover{ color: ; background-color: ; } #iqitmegamenu-accordion div.responsiveInykator{ color: ; background-color: ; } \ No newline at end of file diff --git a/modules/iqitmegamenu/views/css/rtl.css b/modules/iqitmegamenu/views/css/rtl.css new file mode 100644 index 00000000..f53fd6a5 --- /dev/null +++ b/modules/iqitmegamenu/views/css/rtl.css @@ -0,0 +1,112 @@ +.cbp-hrmenu .cbp-submenu-aindicator { + margin-left: 0px; + margin-right: 3px; } + +.cbp-hrmenu .cbp-mainlink-iicon, .cbp-hrmenu .cbp-mainlink-icon { + margin-right: 0px; + margin-left: 4px; + float: right; } + +.cbp-hrmenu .cbp-vertical-title .icon { + margin-left: 10px; + margin-right: 0px; } + +.cbp-vertical-on-top { + float: right; } + +.cbp-hrmenu > ul > li { + float: right; + direction: ltr !important; } + +.cbp-hrmenu .cbp-links li { + padding-left: 0px; + padding-right: 2px; } + +.cbp-hrmenu .cbp-links li a { + padding-right: 10px; + padding-left: 0px; } + +.cbp-hrmenu .cbp-hrsub, .cbp-horizontal > ul > li > a, .cbp-horizontal > ul > li > span.cbp-main-link { + direction: rtl !important; } + +#iqitmegamenu-horizontal #search_block_top_content { + float: left; } + +.cbp-hrmenu.cbp-vertical .cbp-hrsub-wrapper { + right: 0px; } + +.cbp-hrmenu.cbp-menu-centered > ul > li { + text-align: right; } + +.cbp-hrmenu .cbp-links li a:before { + left: auto; + right: 0px; + content: "\f104"; } + +.cbp-hrmenu .cbp-links li a:hover:before { + left: auto; + right: 3px; } + +.cbp-hrmenu .cbp-links li.cbp-hrsub-haslevel2 > a:after { + content: "\f0d9"; + float: left; + padding-left: 0px; + padding-right: 4px; } + +.cbp-hrmenu .cbp-submenu-it-indicator { + left: 10px; + right: auto; } + .cbp-hrmenu .cbp-submenu-it-indicator:before { + content: "\f104"; } + +.cbp-hrmenu .cbp-hrsub-tabs-names li .cbp-inner-border-hider { + left: -1px; + right: auto; } + +.cbp-hrmenu .cbp-products-list .product-image-container { + float: right; + margin-right: 0px; + margin-left: 10px; } + +.cbp-hrmenu .cbp-triangle-top { + left: 0px; } + +.cbp-hrmenu .cbp-tab-pane { + border-left: none !important; } + +.cbp-hrmenu.cbp-vertical .cbp-submenu-aindicator { + left: 8px; + right: auto; } + .cbp-hrmenu.cbp-vertical .cbp-submenu-aindicator:before { + content: "\f104"; } + +#cbp-hrmenu1 .cbp-triangle-container { + left: auto; + right: 0px; + transform: rotateY(180deg); + -webkit-transform: rotateY(180deg); + -moz-transform: rotateY(180deg); + -o-transform: rotateY(180deg); + -ms-transform: rotateY(180deg); } + +.cbp-vertical.cbp-arrowed .cbp-hrsub-inner { + margin-left: 0px; + margin-right: 12px; } + + #responsiveMenuShower { + text-align: right; } + #responsiveMenuShower div.responsiveInykator2 { + float: right; + margin-left: 10px; + margin-right: 0px; } + +#responsiveAccordion { + text-align: right; } + +#responsiveAccordion div.responsiveInykator { + float: left; + left: 4px; + right: auto; } + +#responsiveAccordion ul li { + padding: 0 7px 0 0px; } \ No newline at end of file diff --git a/modules/iqitmegamenu/views/css/tinymce.css b/modules/iqitmegamenu/views/css/tinymce.css new file mode 100644 index 00000000..7161ac6e --- /dev/null +++ b/modules/iqitmegamenu/views/css/tinymce.css @@ -0,0 +1,2776 @@ +/** +* 2007-2014 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA +* @copyright 2007-2014 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +* +* Don't forget to prefix your containers with your own identifier +* to avoid any conflicts with others containers. +*/ + + +/*! + * Bootstrap v3.3.1 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +/*! + * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=bc20855d7273c6f81bc3) + * Config saved to config.json and https://gist.github.com/bc20855d7273c6f81bc3 + */ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ +html { + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline; +} +audio:not([controls]) { + display: none; + height: 0; +} +[hidden], +template { + display: none; +} +a { + background-color: transparent; +} +a:active, +a:hover { + outline: 0; +} +abbr[title] { + border-bottom: 1px dotted; +} +b, +strong { + font-weight: bold; +} +dfn { + font-style: italic; +} +h1 { + font-size: 2em; + margin: 0.67em 0; +} +mark { + background: #ff0; + color: #000; +} +small { + font-size: 80%; +} +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + border: 0; +} +svg:not(:root) { + overflow: hidden; +} +figure { + margin: 1em 40px; +} +hr { + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} +pre { + overflow: auto; +} +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} +button, +input, +optgroup, +select, +textarea { + color: inherit; + font: inherit; + margin: 0; +} +button { + overflow: visible; +} +button, +select { + text-transform: none; +} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +button[disabled], +html input[disabled] { + cursor: default; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} +input { + line-height: normal; +} +input[type="checkbox"], +input[type="radio"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0; +} +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} +input[type="search"] { + -webkit-appearance: textfield; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; +} +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} +legend { + border: 0; + padding: 0; +} +textarea { + overflow: auto; +} +optgroup { + font-weight: bold; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +td, +th { + padding: 0; +} +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +html { + font-size: 10px; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.42857143; + color: #333333; + background-color: #ffffff; +} +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +a { + color: #337ab7; + text-decoration: none; +} +a:hover, +a:focus { + color: #23527c; + text-decoration: underline; +} +a:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +figure { + margin: 0; +} +img { + vertical-align: middle; +} +.img-responsive { + display: block; + max-width: 100%; + height: auto; +} +.img-rounded { + border-radius: 6px; +} +.img-thumbnail { + padding: 4px; + line-height: 1.42857143; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; + display: inline-block; + max-width: 100%; + height: auto; +} +.img-circle { + border-radius: 50%; +} +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eeeeee; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} +code, +kbd, +pre, +samp { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; +} +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + background-color: #f9f2f4; + border-radius: 4px; +} +kbd { + padding: 2px 4px; + font-size: 90%; + color: #ffffff; + background-color: #333333; + border-radius: 3px; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); +} +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: bold; + -webkit-box-shadow: none; + box-shadow: none; +} +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + word-break: break-all; + word-wrap: break-word; + color: #333333; + background-color: #f5f5f5; + border: 1px solid #cccccc; + border-radius: 4px; +} +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; +} +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +.container { + margin-right: auto; + margin-left: auto; + padding-left: 15px; + padding-right: 15px; +} +@media (min-width: 768px) { + .container { + width: 750px; + } +} +@media (min-width: 992px) { + .container { + width: 970px; + } +} +@media (min-width: 1200px) { + .container { + width: 1170px; + } +} +.container-fluid { + margin-right: auto; + margin-left: auto; + padding-left: 15px; + padding-right: 15px; +} +.row { + margin-left: -15px; + margin-right: -15px; +} +.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { + position: relative; + min-height: 1px; + padding-left: 15px; + padding-right: 15px; +} +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { + float: left; +} +.col-xs-12 { + width: 100%; +} +.col-xs-11 { + width: 91.66666667%; +} +.col-xs-10 { + width: 83.33333333%; +} +.col-xs-9 { + width: 75%; +} +.col-xs-8 { + width: 66.66666667%; +} +.col-xs-7 { + width: 58.33333333%; +} +.col-xs-6 { + width: 50%; +} +.col-xs-5 { + width: 41.66666667%; +} +.col-xs-4 { + width: 33.33333333%; +} +.col-xs-3 { + width: 25%; +} +.col-xs-2 { + width: 16.66666667%; +} +.col-xs-1 { + width: 8.33333333%; +} +.col-xs-pull-12 { + right: 100%; +} +.col-xs-pull-11 { + right: 91.66666667%; +} +.col-xs-pull-10 { + right: 83.33333333%; +} +.col-xs-pull-9 { + right: 75%; +} +.col-xs-pull-8 { + right: 66.66666667%; +} +.col-xs-pull-7 { + right: 58.33333333%; +} +.col-xs-pull-6 { + right: 50%; +} +.col-xs-pull-5 { + right: 41.66666667%; +} +.col-xs-pull-4 { + right: 33.33333333%; +} +.col-xs-pull-3 { + right: 25%; +} +.col-xs-pull-2 { + right: 16.66666667%; +} +.col-xs-pull-1 { + right: 8.33333333%; +} +.col-xs-pull-0 { + right: auto; +} +.col-xs-push-12 { + left: 100%; +} +.col-xs-push-11 { + left: 91.66666667%; +} +.col-xs-push-10 { + left: 83.33333333%; +} +.col-xs-push-9 { + left: 75%; +} +.col-xs-push-8 { + left: 66.66666667%; +} +.col-xs-push-7 { + left: 58.33333333%; +} +.col-xs-push-6 { + left: 50%; +} +.col-xs-push-5 { + left: 41.66666667%; +} +.col-xs-push-4 { + left: 33.33333333%; +} +.col-xs-push-3 { + left: 25%; +} +.col-xs-push-2 { + left: 16.66666667%; +} +.col-xs-push-1 { + left: 8.33333333%; +} +.col-xs-push-0 { + left: auto; +} +.col-xs-offset-12 { + margin-left: 100%; +} +.col-xs-offset-11 { + margin-left: 91.66666667%; +} +.col-xs-offset-10 { + margin-left: 83.33333333%; +} +.col-xs-offset-9 { + margin-left: 75%; +} +.col-xs-offset-8 { + margin-left: 66.66666667%; +} +.col-xs-offset-7 { + margin-left: 58.33333333%; +} +.col-xs-offset-6 { + margin-left: 50%; +} +.col-xs-offset-5 { + margin-left: 41.66666667%; +} +.col-xs-offset-4 { + margin-left: 33.33333333%; +} +.col-xs-offset-3 { + margin-left: 25%; +} +.col-xs-offset-2 { + margin-left: 16.66666667%; +} +.col-xs-offset-1 { + margin-left: 8.33333333%; +} +.col-xs-offset-0 { + margin-left: 0%; +} +@media (min-width: 768px) { + .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { + float: left; + } + .col-sm-12 { + width: 100%; + } + .col-sm-11 { + width: 91.66666667%; + } + .col-sm-10 { + width: 83.33333333%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-8 { + width: 66.66666667%; + } + .col-sm-7 { + width: 58.33333333%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-5 { + width: 41.66666667%; + } + .col-sm-4 { + width: 33.33333333%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-2 { + width: 16.66666667%; + } + .col-sm-1 { + width: 8.33333333%; + } + .col-sm-pull-12 { + right: 100%; + } + .col-sm-pull-11 { + right: 91.66666667%; + } + .col-sm-pull-10 { + right: 83.33333333%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-8 { + right: 66.66666667%; + } + .col-sm-pull-7 { + right: 58.33333333%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-5 { + right: 41.66666667%; + } + .col-sm-pull-4 { + right: 33.33333333%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-2 { + right: 16.66666667%; + } + .col-sm-pull-1 { + right: 8.33333333%; + } + .col-sm-pull-0 { + right: auto; + } + .col-sm-push-12 { + left: 100%; + } + .col-sm-push-11 { + left: 91.66666667%; + } + .col-sm-push-10 { + left: 83.33333333%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-8 { + left: 66.66666667%; + } + .col-sm-push-7 { + left: 58.33333333%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-5 { + left: 41.66666667%; + } + .col-sm-push-4 { + left: 33.33333333%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-2 { + left: 16.66666667%; + } + .col-sm-push-1 { + left: 8.33333333%; + } + .col-sm-push-0 { + left: auto; + } + .col-sm-offset-12 { + margin-left: 100%; + } + .col-sm-offset-11 { + margin-left: 91.66666667%; + } + .col-sm-offset-10 { + margin-left: 83.33333333%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-8 { + margin-left: 66.66666667%; + } + .col-sm-offset-7 { + margin-left: 58.33333333%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-5 { + margin-left: 41.66666667%; + } + .col-sm-offset-4 { + margin-left: 33.33333333%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-2 { + margin-left: 16.66666667%; + } + .col-sm-offset-1 { + margin-left: 8.33333333%; + } + .col-sm-offset-0 { + margin-left: 0%; + } +} +@media (min-width: 992px) { + .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { + float: left; + } + .col-md-12 { + width: 100%; + } + .col-md-11 { + width: 91.66666667%; + } + .col-md-10 { + width: 83.33333333%; + } + .col-md-9 { + width: 75%; + } + .col-md-8 { + width: 66.66666667%; + } + .col-md-7 { + width: 58.33333333%; + } + .col-md-6 { + width: 50%; + } + .col-md-5 { + width: 41.66666667%; + } + .col-md-4 { + width: 33.33333333%; + } + .col-md-3 { + width: 25%; + } + .col-md-2 { + width: 16.66666667%; + } + .col-md-1 { + width: 8.33333333%; + } + .col-md-pull-12 { + right: 100%; + } + .col-md-pull-11 { + right: 91.66666667%; + } + .col-md-pull-10 { + right: 83.33333333%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-8 { + right: 66.66666667%; + } + .col-md-pull-7 { + right: 58.33333333%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-5 { + right: 41.66666667%; + } + .col-md-pull-4 { + right: 33.33333333%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-2 { + right: 16.66666667%; + } + .col-md-pull-1 { + right: 8.33333333%; + } + .col-md-pull-0 { + right: auto; + } + .col-md-push-12 { + left: 100%; + } + .col-md-push-11 { + left: 91.66666667%; + } + .col-md-push-10 { + left: 83.33333333%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-8 { + left: 66.66666667%; + } + .col-md-push-7 { + left: 58.33333333%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-5 { + left: 41.66666667%; + } + .col-md-push-4 { + left: 33.33333333%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-2 { + left: 16.66666667%; + } + .col-md-push-1 { + left: 8.33333333%; + } + .col-md-push-0 { + left: auto; + } + .col-md-offset-12 { + margin-left: 100%; + } + .col-md-offset-11 { + margin-left: 91.66666667%; + } + .col-md-offset-10 { + margin-left: 83.33333333%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-8 { + margin-left: 66.66666667%; + } + .col-md-offset-7 { + margin-left: 58.33333333%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-5 { + margin-left: 41.66666667%; + } + .col-md-offset-4 { + margin-left: 33.33333333%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-2 { + margin-left: 16.66666667%; + } + .col-md-offset-1 { + margin-left: 8.33333333%; + } + .col-md-offset-0 { + margin-left: 0%; + } +} +@media (min-width: 1200px) { + .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { + float: left; + } + .col-lg-12 { + width: 100%; + } + .col-lg-11 { + width: 91.66666667%; + } + .col-lg-10 { + width: 83.33333333%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-8 { + width: 66.66666667%; + } + .col-lg-7 { + width: 58.33333333%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-5 { + width: 41.66666667%; + } + .col-lg-4 { + width: 33.33333333%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-2 { + width: 16.66666667%; + } + .col-lg-1 { + width: 8.33333333%; + } + .col-lg-pull-12 { + right: 100%; + } + .col-lg-pull-11 { + right: 91.66666667%; + } + .col-lg-pull-10 { + right: 83.33333333%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-8 { + right: 66.66666667%; + } + .col-lg-pull-7 { + right: 58.33333333%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-5 { + right: 41.66666667%; + } + .col-lg-pull-4 { + right: 33.33333333%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-2 { + right: 16.66666667%; + } + .col-lg-pull-1 { + right: 8.33333333%; + } + .col-lg-pull-0 { + right: auto; + } + .col-lg-push-12 { + left: 100%; + } + .col-lg-push-11 { + left: 91.66666667%; + } + .col-lg-push-10 { + left: 83.33333333%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-8 { + left: 66.66666667%; + } + .col-lg-push-7 { + left: 58.33333333%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-5 { + left: 41.66666667%; + } + .col-lg-push-4 { + left: 33.33333333%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-2 { + left: 16.66666667%; + } + .col-lg-push-1 { + left: 8.33333333%; + } + .col-lg-push-0 { + left: auto; + } + .col-lg-offset-12 { + margin-left: 100%; + } + .col-lg-offset-11 { + margin-left: 91.66666667%; + } + .col-lg-offset-10 { + margin-left: 83.33333333%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-8 { + margin-left: 66.66666667%; + } + .col-lg-offset-7 { + margin-left: 58.33333333%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-5 { + margin-left: 41.66666667%; + } + .col-lg-offset-4 { + margin-left: 33.33333333%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-2 { + margin-left: 16.66666667%; + } + .col-lg-offset-1 { + margin-left: 8.33333333%; + } + .col-lg-offset-0 { + margin-left: 0%; + } +} +table { + background-color: transparent; +} +caption { + padding-top: 8px; + padding-bottom: 8px; + color: #777777; + text-align: left; +} +th { + text-align: left; +} +.table { + width: 100%; + max-width: 100%; + margin-bottom: 20px; +} +.table > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #dddddd; +} +.table > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #dddddd; +} +.table > caption + thead > tr:first-child > th, +.table > colgroup + thead > tr:first-child > th, +.table > thead:first-child > tr:first-child > th, +.table > caption + thead > tr:first-child > td, +.table > colgroup + thead > tr:first-child > td, +.table > thead:first-child > tr:first-child > td { + border-top: 0; +} +.table > tbody + tbody { + border-top: 2px solid #dddddd; +} +.table .table { + background-color: #ffffff; +} +.table-condensed > thead > tr > th, +.table-condensed > tbody > tr > th, +.table-condensed > tfoot > tr > th, +.table-condensed > thead > tr > td, +.table-condensed > tbody > tr > td, +.table-condensed > tfoot > tr > td { + padding: 5px; +} +.table-bordered { + border: 1px solid #dddddd; +} +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #dddddd; +} +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 2px; +} +.table-striped > tbody > tr:nth-child(odd) { + background-color: #f9f9f9; +} +.table-hover > tbody > tr:hover { + background-color: #f5f5f5; +} +table col[class*="col-"] { + position: static; + float: none; + display: table-column; +} +table td[class*="col-"], +table th[class*="col-"] { + position: static; + float: none; + display: table-cell; +} +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: #f5f5f5; +} +.table-hover > tbody > tr > td.active:hover, +.table-hover > tbody > tr > th.active:hover, +.table-hover > tbody > tr.active:hover > td, +.table-hover > tbody > tr:hover > .active, +.table-hover > tbody > tr.active:hover > th { + background-color: #e8e8e8; +} +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th { + background-color: #dff0d8; +} +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td, +.table-hover > tbody > tr:hover > .success, +.table-hover > tbody > tr.success:hover > th { + background-color: #d0e9c6; +} +.table > thead > tr > td.info, +.table > tbody > tr > td.info, +.table > tfoot > tr > td.info, +.table > thead > tr > th.info, +.table > tbody > tr > th.info, +.table > tfoot > tr > th.info, +.table > thead > tr.info > td, +.table > tbody > tr.info > td, +.table > tfoot > tr.info > td, +.table > thead > tr.info > th, +.table > tbody > tr.info > th, +.table > tfoot > tr.info > th { + background-color: #d9edf7; +} +.table-hover > tbody > tr > td.info:hover, +.table-hover > tbody > tr > th.info:hover, +.table-hover > tbody > tr.info:hover > td, +.table-hover > tbody > tr:hover > .info, +.table-hover > tbody > tr.info:hover > th { + background-color: #c4e3f3; +} +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th { + background-color: #fcf8e3; +} +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td, +.table-hover > tbody > tr:hover > .warning, +.table-hover > tbody > tr.warning:hover > th { + background-color: #faf2cc; +} +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th { + background-color: #f2dede; +} +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td, +.table-hover > tbody > tr:hover > .danger, +.table-hover > tbody > tr.danger:hover > th { + background-color: #ebcccc; +} +.table-responsive { + overflow-x: auto; + min-height: 0.01%; +} +@media screen and (max-width: 767px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #dddddd; + } + .table-responsive > .table { + margin-bottom: 0; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} +.btn { + display: inline-block; + margin-bottom: 0; + font-weight: normal; + text-align: center; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + background-image: none; + border: 1px solid transparent; + white-space: nowrap; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + border-radius: 4px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.btn:focus, +.btn:active:focus, +.btn.active:focus, +.btn.focus, +.btn:active.focus, +.btn.active.focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn:hover, +.btn:focus, +.btn.focus { + color: #333333; + text-decoration: none; +} +.btn:active, +.btn.active { + outline: 0; + background-image: none; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + cursor: not-allowed; + pointer-events: none; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; +} +.btn-default { + color: #333333; + background-color: #ffffff; + border-color: #cccccc; +} +.btn-default:hover, +.btn-default:focus, +.btn-default.focus, +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + color: #333333; + background-color: #e6e6e6; + border-color: #adadad; +} +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + background-image: none; +} +.btn-default.disabled, +.btn-default[disabled], +fieldset[disabled] .btn-default, +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled.focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default.focus, +.btn-default.disabled:active, +.btn-default[disabled]:active, +fieldset[disabled] .btn-default:active, +.btn-default.disabled.active, +.btn-default[disabled].active, +fieldset[disabled] .btn-default.active { + background-color: #ffffff; + border-color: #cccccc; +} +.btn-default .badge { + color: #ffffff; + background-color: #333333; +} +.btn-primary { + color: #ffffff; + background-color: #337ab7; + border-color: #2e6da4; +} +.btn-primary:hover, +.btn-primary:focus, +.btn-primary.focus, +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + color: #ffffff; + background-color: #286090; + border-color: #204d74; +} +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + background-image: none; +} +.btn-primary.disabled, +.btn-primary[disabled], +fieldset[disabled] .btn-primary, +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary.focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active, +.btn-primary.disabled.active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary.active { + background-color: #337ab7; + border-color: #2e6da4; +} +.btn-primary .badge { + color: #337ab7; + background-color: #ffffff; +} +.btn-success { + color: #ffffff; + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success:hover, +.btn-success:focus, +.btn-success.focus, +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + color: #ffffff; + background-color: #449d44; + border-color: #398439; +} +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + background-image: none; +} +.btn-success.disabled, +.btn-success[disabled], +fieldset[disabled] .btn-success, +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled.focus, +.btn-success[disabled].focus, +fieldset[disabled] .btn-success.focus, +.btn-success.disabled:active, +.btn-success[disabled]:active, +fieldset[disabled] .btn-success:active, +.btn-success.disabled.active, +.btn-success[disabled].active, +fieldset[disabled] .btn-success.active { + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success .badge { + color: #5cb85c; + background-color: #ffffff; +} +.btn-info { + color: #ffffff; + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info:hover, +.btn-info:focus, +.btn-info.focus, +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + color: #ffffff; + background-color: #31b0d5; + border-color: #269abc; +} +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + background-image: none; +} +.btn-info.disabled, +.btn-info[disabled], +fieldset[disabled] .btn-info, +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled.focus, +.btn-info[disabled].focus, +fieldset[disabled] .btn-info.focus, +.btn-info.disabled:active, +.btn-info[disabled]:active, +fieldset[disabled] .btn-info:active, +.btn-info.disabled.active, +.btn-info[disabled].active, +fieldset[disabled] .btn-info.active { + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info .badge { + color: #5bc0de; + background-color: #ffffff; +} +.btn-warning { + color: #ffffff; + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning:hover, +.btn-warning:focus, +.btn-warning.focus, +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + color: #ffffff; + background-color: #ec971f; + border-color: #d58512; +} +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + background-image: none; +} +.btn-warning.disabled, +.btn-warning[disabled], +fieldset[disabled] .btn-warning, +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled.focus, +.btn-warning[disabled].focus, +fieldset[disabled] .btn-warning.focus, +.btn-warning.disabled:active, +.btn-warning[disabled]:active, +fieldset[disabled] .btn-warning:active, +.btn-warning.disabled.active, +.btn-warning[disabled].active, +fieldset[disabled] .btn-warning.active { + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning .badge { + color: #f0ad4e; + background-color: #ffffff; +} +.btn-danger { + color: #ffffff; + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger:hover, +.btn-danger:focus, +.btn-danger.focus, +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + color: #ffffff; + background-color: #c9302c; + border-color: #ac2925; +} +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + background-image: none; +} +.btn-danger.disabled, +.btn-danger[disabled], +fieldset[disabled] .btn-danger, +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled.focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger.focus, +.btn-danger.disabled:active, +.btn-danger[disabled]:active, +fieldset[disabled] .btn-danger:active, +.btn-danger.disabled.active, +.btn-danger[disabled].active, +fieldset[disabled] .btn-danger.active { + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger .badge { + color: #d9534f; + background-color: #ffffff; +} +.btn-link { + color: #337ab7; + font-weight: normal; + border-radius: 0; +} +.btn-link, +.btn-link:active, +.btn-link.active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} +.btn-link:hover, +.btn-link:focus { + color: #23527c; + text-decoration: underline; + background-color: transparent; +} +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: #777777; + text-decoration: none; +} +.btn-lg { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +.btn-sm { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-xs { + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-block { + display: block; + width: 100%; +} +.btn-block + .btn-block { + margin-top: 5px; +} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #ffffff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} +a.label:hover, +a.label:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} +.label:empty { + display: none; +} +.btn .label { + position: relative; + top: -1px; +} +.label-default { + background-color: #777777; +} +.label-default[href]:hover, +.label-default[href]:focus { + background-color: #5e5e5e; +} +.label-primary { + background-color: #337ab7; +} +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #286090; +} +.label-success { + background-color: #5cb85c; +} +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #449d44; +} +.label-info { + background-color: #5bc0de; +} +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #31b0d5; +} +.label-warning { + background-color: #f0ad4e; +} +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #ec971f; +} +.label-danger { + background-color: #d9534f; +} +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #c9302c; +} +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + color: #ffffff; + line-height: 1; + vertical-align: baseline; + white-space: nowrap; + text-align: center; + background-color: #777777; + border-radius: 10px; +} +.badge:empty { + display: none; +} +.btn .badge { + position: relative; + top: -1px; +} +.btn-xs .badge { + top: 0; + padding: 1px 5px; +} +a.badge:hover, +a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} +.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: #337ab7; + background-color: #ffffff; +} +.list-group-item > .badge { + float: right; +} +.list-group-item > .badge + .badge { + margin-right: 5px; +} +.nav-pills > li > a > .badge { + margin-left: 3px; +} +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; +} +.alert h4 { + margin-top: 0; + color: inherit; +} +.alert .alert-link { + font-weight: bold; +} +.alert > p, +.alert > ul { + margin-bottom: 0; +} +.alert > p + p { + margin-top: 5px; +} +.alert-dismissable, +.alert-dismissible { + padding-right: 35px; +} +.alert-dismissable .close, +.alert-dismissible .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} +.alert-success { + background-color: #dff0d8; + border-color: #d6e9c6; + color: #3c763d; +} +.alert-success hr { + border-top-color: #c9e2b3; +} +.alert-success .alert-link { + color: #2b542c; +} +.alert-info { + background-color: #d9edf7; + border-color: #bce8f1; + color: #31708f; +} +.alert-info hr { + border-top-color: #a6e1ec; +} +.alert-info .alert-link { + color: #245269; +} +.alert-warning { + background-color: #fcf8e3; + border-color: #faebcc; + color: #8a6d3b; +} +.alert-warning hr { + border-top-color: #f7e1b5; +} +.alert-warning .alert-link { + color: #66512c; +} +.alert-danger { + background-color: #f2dede; + border-color: #ebccd1; + color: #a94442; +} +.alert-danger hr { + border-top-color: #e4b9c0; +} +.alert-danger .alert-link { + color: #843534; +} +.list-group { + margin-bottom: 20px; + padding-left: 0; +} +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #ffffff; + border: 1px solid #dddddd; +} +.list-group-item:first-child { + border-top-right-radius: 4px; + border-top-left-radius: 4px; +} +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} +a.list-group-item { + color: #555555; +} +a.list-group-item .list-group-item-heading { + color: #333333; +} +a.list-group-item:hover, +a.list-group-item:focus { + text-decoration: none; + color: #555555; + background-color: #f5f5f5; +} +.list-group-item.disabled, +.list-group-item.disabled:hover, +.list-group-item.disabled:focus { + background-color: #eeeeee; + color: #777777; + cursor: not-allowed; +} +.list-group-item.disabled .list-group-item-heading, +.list-group-item.disabled:hover .list-group-item-heading, +.list-group-item.disabled:focus .list-group-item-heading { + color: inherit; +} +.list-group-item.disabled .list-group-item-text, +.list-group-item.disabled:hover .list-group-item-text, +.list-group-item.disabled:focus .list-group-item-text { + color: #777777; +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + z-index: 2; + color: #ffffff; + background-color: #337ab7; + border-color: #337ab7; +} +.list-group-item.active .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading, +.list-group-item.active .list-group-item-heading > small, +.list-group-item.active:hover .list-group-item-heading > small, +.list-group-item.active:focus .list-group-item-heading > small, +.list-group-item.active .list-group-item-heading > .small, +.list-group-item.active:hover .list-group-item-heading > .small, +.list-group-item.active:focus .list-group-item-heading > .small { + color: inherit; +} +.list-group-item.active .list-group-item-text, +.list-group-item.active:hover .list-group-item-text, +.list-group-item.active:focus .list-group-item-text { + color: #c7ddef; +} +.list-group-item-success { + color: #3c763d; + background-color: #dff0d8; +} +a.list-group-item-success { + color: #3c763d; +} +a.list-group-item-success .list-group-item-heading { + color: inherit; +} +a.list-group-item-success:hover, +a.list-group-item-success:focus { + color: #3c763d; + background-color: #d0e9c6; +} +a.list-group-item-success.active, +a.list-group-item-success.active:hover, +a.list-group-item-success.active:focus { + color: #fff; + background-color: #3c763d; + border-color: #3c763d; +} +.list-group-item-info { + color: #31708f; + background-color: #d9edf7; +} +a.list-group-item-info { + color: #31708f; +} +a.list-group-item-info .list-group-item-heading { + color: inherit; +} +a.list-group-item-info:hover, +a.list-group-item-info:focus { + color: #31708f; + background-color: #c4e3f3; +} +a.list-group-item-info.active, +a.list-group-item-info.active:hover, +a.list-group-item-info.active:focus { + color: #fff; + background-color: #31708f; + border-color: #31708f; +} +.list-group-item-warning { + color: #8a6d3b; + background-color: #fcf8e3; +} +a.list-group-item-warning { + color: #8a6d3b; +} +a.list-group-item-warning .list-group-item-heading { + color: inherit; +} +a.list-group-item-warning:hover, +a.list-group-item-warning:focus { + color: #8a6d3b; + background-color: #faf2cc; +} +a.list-group-item-warning.active, +a.list-group-item-warning.active:hover, +a.list-group-item-warning.active:focus { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b; +} +.list-group-item-danger { + color: #a94442; + background-color: #f2dede; +} +a.list-group-item-danger { + color: #a94442; +} +a.list-group-item-danger .list-group-item-heading { + color: inherit; +} +a.list-group-item-danger:hover, +a.list-group-item-danger:focus { + color: #a94442; + background-color: #ebcccc; +} +a.list-group-item-danger.active, +a.list-group-item-danger.active:hover, +a.list-group-item-danger.active:focus { + color: #fff; + background-color: #a94442; + border-color: #a94442; +} +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} +.clearfix:before, +.clearfix:after, +.container:before, +.container:after, +.container-fluid:before, +.container-fluid:after, +.row:before, +.row:after { + content: " "; + display: table; +} +.clearfix:after, +.container:after, +.container-fluid:after, +.row:after { + clear: both; +} +.center-block { + display: block; + margin-left: auto; + margin-right: auto; +} +.pull-right { + float: right !important; +} +.pull-left { + float: left !important; +} +.hide { + display: none !important; +} +.show { + display: block !important; +} +.invisible { + visibility: hidden; +} +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.hidden { + display: none !important; + visibility: hidden !important; +} +.affix { + position: fixed; +} +@-ms-viewport { + width: device-width; +} +.visible-xs, +.visible-sm, +.visible-md, +.visible-lg { + display: none !important; +} +.visible-xs-block, +.visible-xs-inline, +.visible-xs-inline-block, +.visible-sm-block, +.visible-sm-inline, +.visible-sm-inline-block, +.visible-md-block, +.visible-md-inline, +.visible-md-inline-block, +.visible-lg-block, +.visible-lg-inline, +.visible-lg-inline-block { + display: none !important; +} +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + table.visible-xs { + display: table; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} +@media (max-width: 767px) { + .visible-xs-block { + display: block !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline { + display: inline !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline-block { + display: inline-block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + table.visible-sm { + display: table; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-block { + display: block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline { + display: inline !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline-block { + display: inline-block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + table.visible-md { + display: table; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-block { + display: block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline { + display: inline !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline-block { + display: inline-block !important; + } +} +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + table.visible-lg { + display: table; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-lg-block { + display: block !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline { + display: inline !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline-block { + display: inline-block !important; + } +} +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } +} +.visible-print { + display: none !important; +} +@media print { + .visible-print { + display: block !important; + } + table.visible-print { + display: table; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } +} +.visible-print-block { + display: none !important; +} +@media print { + .visible-print-block { + display: block !important; + } +} +.visible-print-inline { + display: none !important; +} +@media print { + .visible-print-inline { + display: inline !important; + } +} +.visible-print-inline-block { + display: none !important; +} +@media print { + .visible-print-inline-block { + display: inline-block !important; + } +} +@media print { + .hidden-print { + display: none !important; + } +} + +/*! + * Bootstrap v3.3.1 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +/*! + * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=bc20855d7273c6f81bc3) + * Config saved to config.json and https://gist.github.com/bc20855d7273c6f81bc3 + */ +.btn-default, +.btn-primary, +.btn-success, +.btn-info, +.btn-warning, +.btn-danger { + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); +} +.btn-default:active, +.btn-primary:active, +.btn-success:active, +.btn-info:active, +.btn-warning:active, +.btn-danger:active, +.btn-default.active, +.btn-primary.active, +.btn-success.active, +.btn-info.active, +.btn-warning.active, +.btn-danger.active { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.btn-default .badge, +.btn-primary .badge, +.btn-success .badge, +.btn-info .badge, +.btn-warning .badge, +.btn-danger .badge { + text-shadow: none; +} +.btn:active, +.btn.active { + background-image: none; +} +.btn-default { + background-image: -webkit-linear-gradient(top, #ffffff 0%, #e0e0e0 100%); + background-image: -o-linear-gradient(top, #ffffff 0%, #e0e0e0 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#e0e0e0)); + background-image: linear-gradient(to bottom, #ffffff 0%, #e0e0e0 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #dbdbdb; + text-shadow: 0 1px 0 #fff; + border-color: #ccc; +} +.btn-default:hover, +.btn-default:focus { + background-color: #e0e0e0; + background-position: 0 -15px; +} +.btn-default:active, +.btn-default.active { + background-color: #e0e0e0; + border-color: #dbdbdb; +} +.btn-default:disabled, +.btn-default[disabled] { + background-color: #e0e0e0; + background-image: none; +} +.btn-primary { + background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88)); + background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #245580; +} +.btn-primary:hover, +.btn-primary:focus { + background-color: #265a88; + background-position: 0 -15px; +} +.btn-primary:active, +.btn-primary.active { + background-color: #265a88; + border-color: #245580; +} +.btn-primary:disabled, +.btn-primary[disabled] { + background-color: #265a88; + background-image: none; +} +.btn-success { + background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%); + background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641)); + background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #3e8f3e; +} +.btn-success:hover, +.btn-success:focus { + background-color: #419641; + background-position: 0 -15px; +} +.btn-success:active, +.btn-success.active { + background-color: #419641; + border-color: #3e8f3e; +} +.btn-success:disabled, +.btn-success[disabled] { + background-color: #419641; + background-image: none; +} +.btn-info { + background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); + background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2)); + background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #28a4c9; +} +.btn-info:hover, +.btn-info:focus { + background-color: #2aabd2; + background-position: 0 -15px; +} +.btn-info:active, +.btn-info.active { + background-color: #2aabd2; + border-color: #28a4c9; +} +.btn-info:disabled, +.btn-info[disabled] { + background-color: #2aabd2; + background-image: none; +} +.btn-warning { + background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); + background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316)); + background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #e38d13; +} +.btn-warning:hover, +.btn-warning:focus { + background-color: #eb9316; + background-position: 0 -15px; +} +.btn-warning:active, +.btn-warning.active { + background-color: #eb9316; + border-color: #e38d13; +} +.btn-warning:disabled, +.btn-warning[disabled] { + background-color: #eb9316; + background-image: none; +} +.btn-danger { + background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%); + background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a)); + background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #b92c28; +} +.btn-danger:hover, +.btn-danger:focus { + background-color: #c12e2a; + background-position: 0 -15px; +} +.btn-danger:active, +.btn-danger.active { + background-color: #c12e2a; + border-color: #b92c28; +} +.btn-danger:disabled, +.btn-danger[disabled] { + background-color: #c12e2a; + background-image: none; +} +.thumbnail, +.img-thumbnail { + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); + background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); + background-color: #e8e8e8; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); + background-color: #2e6da4; +} +.navbar-default { + background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%); + background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#f8f8f8)); + background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075); +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .active > a { + background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); + background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2)); + background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0); + -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075); +} +.navbar-brand, +.navbar-nav > li > a { + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); +} +.navbar-inverse { + background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222222 100%); + background-image: -o-linear-gradient(top, #3c3c3c 0%, #222222 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222222)); + background-image: linear-gradient(to bottom, #3c3c3c 0%, #222222 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .active > a { + background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%); + background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f)); + background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0); + -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25); + box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25); +} +.navbar-inverse .navbar-brand, +.navbar-inverse .navbar-nav > li > a { + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.navbar-static-top, +.navbar-fixed-top, +.navbar-fixed-bottom { + border-radius: 0; +} +@media (max-width: 767px) { + .navbar .navbar-nav .open .dropdown-menu > .active > a, + .navbar .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #fff; + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); + } +} +.alert { + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); +} +.alert-success { + background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); + background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc)); + background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0); + border-color: #b2dba1; +} +.alert-info { + background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%); + background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0)); + background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0); + border-color: #9acfea; +} +.alert-warning { + background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); + background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0)); + background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0); + border-color: #f5e79e; +} +.alert-danger { + background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); + background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3)); + background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); + border-color: #dca7a7; +} +.progress { + background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); + background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5)); + background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0); +} +.progress-bar { + background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090)); + background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0); +} +.progress-bar-success { + background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%); + background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44)); + background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); +} +.progress-bar-info { + background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); + background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5)); + background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); +} +.progress-bar-warning { + background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); + background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f)); + background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); +} +.progress-bar-danger { + background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%); + background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c)); + background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); +} +.progress-bar-striped { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.list-group { + border-radius: 4px; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + text-shadow: 0 -1px 0 #286090; + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0); + border-color: #2b669a; +} +.list-group-item.active .badge, +.list-group-item.active:hover .badge, +.list-group-item.active:focus .badge { + text-shadow: none; +} +.panel { + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} +.panel-default > .panel-heading { + background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); + background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); +} +.panel-primary > .panel-heading { + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); +} +.panel-success > .panel-heading { + background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); + background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6)); + background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0); +} +.panel-info > .panel-heading { + background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); + background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3)); + background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0); +} +.panel-warning > .panel-heading { + background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); + background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc)); + background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0); +} +.panel-danger > .panel-heading { + background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%); + background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc)); + background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0); +} +.well { + background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); + background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5)); + background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0); + border-color: #dcdcdc; + -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1); +} + + +.bordered-cell, .table > thead > tr > th { +background: #F0F0F0 !important; +color: #777777 !important; +font-weight: bold; + +} +.table > thead > tr > th.nobordered-cell { +background: none !important; +border-top: 1px solid white; +border-left: 1px solid white; +} + .table-striped > tbody > tr:nth-child(odd) > td, .table-striped > tbody > tr:nth-child(odd) > th{ + background-color: #FAFAFA; +} \ No newline at end of file diff --git a/modules/iqitmegamenu/views/fonts/FontAwesome.otf b/modules/iqitmegamenu/views/fonts/FontAwesome.otf new file mode 100644 index 00000000..401ec0f3 Binary files /dev/null and b/modules/iqitmegamenu/views/fonts/FontAwesome.otf differ diff --git a/modules/iqitmegamenu/views/fonts/fontawesome-webfont.eot b/modules/iqitmegamenu/views/fonts/fontawesome-webfont.eot new file mode 100644 index 00000000..e9f60ca9 Binary files /dev/null and b/modules/iqitmegamenu/views/fonts/fontawesome-webfont.eot differ diff --git a/modules/iqitmegamenu/views/fonts/fontawesome-webfont.svg b/modules/iqitmegamenu/views/fonts/fontawesome-webfont.svg new file mode 100644 index 00000000..52c07733 --- /dev/null +++ b/modules/iqitmegamenu/views/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/iqitmegamenu/views/fonts/fontawesome-webfont.ttf b/modules/iqitmegamenu/views/fonts/fontawesome-webfont.ttf new file mode 100644 index 00000000..35acda2f Binary files /dev/null and b/modules/iqitmegamenu/views/fonts/fontawesome-webfont.ttf differ diff --git a/modules/iqitmegamenu/views/fonts/fontawesome-webfont.woff b/modules/iqitmegamenu/views/fonts/fontawesome-webfont.woff new file mode 100644 index 00000000..400014a4 Binary files /dev/null and b/modules/iqitmegamenu/views/fonts/fontawesome-webfont.woff differ diff --git a/modules/iqitmegamenu/views/fonts/fontawesome-webfont.woff2 b/modules/iqitmegamenu/views/fonts/fontawesome-webfont.woff2 new file mode 100644 index 00000000..4d13fc60 Binary files /dev/null and b/modules/iqitmegamenu/views/fonts/fontawesome-webfont.woff2 differ diff --git a/modules/iqitmegamenu/views/fonts/index.php b/modules/iqitmegamenu/views/fonts/index.php new file mode 100644 index 00000000..2704b26e --- /dev/null +++ b/modules/iqitmegamenu/views/fonts/index.php @@ -0,0 +1,24 @@ + +* @copyright 2007-2015 IQIT-COMMERCE.COM +* @license GNU General Public License version 2 +* +* You can not resell or redistribute this software. +* +*/ + +header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); +header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); + +header('Cache-Control: no-store, no-cache, must-revalidate'); +header('Cache-Control: post-check=0, pre-check=0', false); +header('Pragma: no-cache'); + +header('Location: ../'); +exit; + diff --git a/modules/iqitmegamenu/views/index.php b/modules/iqitmegamenu/views/index.php new file mode 100644 index 00000000..2704b26e --- /dev/null +++ b/modules/iqitmegamenu/views/index.php @@ -0,0 +1,24 @@ + +* @copyright 2007-2015 IQIT-COMMERCE.COM +* @license GNU General Public License version 2 +* +* You can not resell or redistribute this software. +* +*/ + +header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); +header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); + +header('Cache-Control: no-store, no-cache, must-revalidate'); +header('Cache-Control: post-check=0, pre-check=0', false); +header('Pragma: no-cache'); + +header('Location: ../'); +exit; + diff --git a/modules/iqitmegamenu/views/js/back.js b/modules/iqitmegamenu/views/js/back.js new file mode 100644 index 00000000..983f0fc6 --- /dev/null +++ b/modules/iqitmegamenu/views/js/back.js @@ -0,0 +1,836 @@ +/** +* 2014-2017 IQIT-COMMERCE.COM +* +* NOTICE OF LICENSE +* +* @author IQIT-COMMERCE.COM +* @copyright 2007-2017 IQIT-COMMERCE.COM +* @license GNU General Public License version 2 +* +* You can not resell or redistribute this software. +* +*/ + +$(document).ready(function () { + + var $myHorizontalTabs = $('#tabs1'); + $myHorizontalTabs.sortable({ + opacity: 0.6, + cursor: 'move', + update: function() { + var order = $(this).sortable('serialize') + "&action=updateHorizontalTabsPosition&ajax=true"; + $.post(iqitsearch_url, order); + } + }); + $myHorizontalTabs.hover(function() { + $(this).css("cursor","move"); + }, + function() { + $(this).css("cursor","auto"); + }); + + var $myVerticalTabs = $('#tabs2'); + $myVerticalTabs.sortable({ + opacity: 0.6, + cursor: "move", + update: function() { + var order = $(this).sortable("serialize") + "&action=updateVerticalTabsPosition&ajax=true"; + $.post(iqitsearch_url, order); + } + }); + $myVerticalTabs.hover(function() { + $(this).css("cursor","move"); + }, + function() { + $(this).css("cursor","auto"); + }); + + + $('.list-wrapper').detach().prependTo('#list-container'); + + $('.icp-auto').iconpicker({ + iconBaseClass: 'icon', + iconComponentBaseClass: 'icon', + iconClassPrefix: 'fa-' + }); + + var p_auto_settings = { + minChars: 1, + cache: 0, + source: function(term, response){ + $.getJSON(iqitsearch_url, { q: term, ajax: true, action: 'SearchProducts' }, function(data){ response(data); }); + }, + renderItem: function (item, search){ + return '
    ' + + '(ID: ' + item.id + ') ' + item.name + '
    '; + }, + onSelect: function(e, term, item){ + item.parents('.products-wrapper').first().find('.select-products-ids').first().append(''); + } + }; + + $('.product-autocomplete').autoCompleteIq(p_auto_settings); + +//fix for tinymce source code edit + $(document).on('focusin', function (e) { + if ($(e.target).closest(".mce-window").length) { + e.stopImmediatePropagation(); + } + }); + + + /** + * Grid creator + * type = 1 = row + * type = 2 = column + */ + + +//first rows sortable init + $('.first-rows-wrapper').sortable({ + items: ".first_rows", + placeholder: "row-placeholder", + handle: ".dragger-handle" + }); +//$( '.first-rows-wrapper' ).disableSelection(); + +//menu row sortable init + $('.menu_row').sortable({ + items: ".menu_column", + handle: ".dragger-handle", + forcePlaceholderSize: true, + placeholder: "col-placeholder", + start: function (e, ui) { + ui.placeholder.height(ui.item.outerHeight()); + ui.placeholder.addClass('col-xs-' + ui.item.data('width')); + }, + connectWith: ".menu_row" + }); +//$( '.menu_row' ).disableSelection(); + +//menu column sortable init + $('.menu_column').sortable({ + items: ".menu_row", + handle: ".dragger-handle", + placeholder: "row-placeholder", + connectWith: ".menu_column" + }); +//$( '.menu_column' ).disableSelection(); + + +//bind sort update + $('.first-rows-wrapper').on('sortupdate', function (event, ui) { + + tmpelementId1 = ui.item.data('elementId'); + + if (typeof ui.item.parent().data('elementId') === 'undefined') { + tmpparentId = 0; + } + ; + + tmpparentId = ui.item.parent().data('elementId'); + + if (submenu_content.hasOwnProperty(tmpelementId1)) { + submenu_content[tmpelementId1].parentId = tmpparentId; + } + + updateElementsPositions(); + }); + +//set column width + $('.grid_creator').on('change', '.select-column-width', function () { + $element = $(this).parent().parent().parent(); + tmpelementId = $element.data('elementId'); + + $element.removeClass('col-xs-' + $element.data('width')); + $element.addClass('col-xs-' + this.value); + $element.data('width', this.value); + + if (submenu_content.hasOwnProperty(tmpelementId)) { + submenu_content[tmpelementId].width = parseInt(this.value); + } + + }); + +//open content modal + $('.grid_creator').on('click', '.column-content-edit', function () { + $($(this).parent().parent().find('.column-content-modal').first()).modal({ + keyboard: false + }); + + }); + +//colum type + $('.grid_creator').on('change', '.select-column-content', function () { + $element = $(this).parents('.menu_column').first(); + + elmid = $element.data('elementId'); + + if (submenu_content.hasOwnProperty(elmid)) { + submenu_content[elmid].contentType = parseInt(this.value); + } + + + setContentForm($element, this.value); + + + }); + +//set content options + $('.grid_creator').on('hidden.bs.modal', '.column-content-modal', function (e) { + + modid = $(this).parents('.menu_column').first().data('elementId'); + + if (submenu_content.hasOwnProperty(modid)) { + delete submenu_content[modid].content; + } + switch (parseInt($(this).find('.select-column-content').first().val())) { + case 1: + setHtmlContent(this, modid); + break; + case 2: + setCategoriesContent(this, modid); + break; + case 3: + setLinksContent(this, modid); + break; + case 4: + setProductsContent(this, modid); + break; + case 5: + setManufacturersContent(this, modid); + break; + case 6: + setImagesContent(this, modid); + break; + case 7: + setSuppliersContent(this, modid); + break; + } + + setColumnStyle(this, modid); + }); + + + function setCategoriesContent(modal, elmid) { + column_content = {}; + + if (ids = $(modal).find('.select-categories-ids').first().val()) { + column_content.ids = ids; + column_content.treep = parseInt($(modal).find('.select-categories-treep').first().val()); + column_content.thumb = parseInt($(modal).find('.select-categories-thumb').first().val()); + column_content.depth = parseInt($(modal).find('.select-categories-depth').first().val()); + column_content.line = parseInt($(modal).find('.select-categories-line').first().val()); + column_content.sublimit = parseInt($(modal).find('.select-categories-sublimit').first().val()); + } + + if (submenu_content.hasOwnProperty(elmid)) { + submenu_content[elmid].content = column_content; + } + + } + + function getMeta(url) { + var img = new Image(); + img.src = url; + var size = {}; + img.addEventListener("load", function () { + size['w'] = this.naturalWidth; + size['h'] = this.naturalHeight; + return size; + }); + return size; + + } + + + function setImagesContent(modal, elmid) { + column_content = {}; + + source = {}; + href = {}; + alt = {}; + size = {}; + + if (typeof languages != "undefined") { + languages.forEach(function (jsLang) { + source[jsLang.id_lang] = $(modal).find('.image-source-' + jsLang.id_lang).first().val(); + href[jsLang.id_lang] = $(modal).find('.image-href-' + jsLang.id_lang).first().val(); + alt[jsLang.id_lang] = $(modal).find('.image-alt-' + jsLang.id_lang).first().val(); + size[jsLang.id_lang] = getMeta(source[jsLang.id_lang]); + + + }); + } else { + source[id_language] = $(modal).find('.image-source-' + id_language).first().val(); + href[id_language] = $(modal).find('.image-href-' + id_language).first().val(); + alt[id_language] = $(modal).find('.image-alt-' + id_language).first().val(); + size[id_language] = getMeta(source[id_language]); + } + + column_content.source = source; + column_content.href = href; + column_content.alt = alt; + column_content.size = size; + + if (absolute = parseInt($(modal).find('.select-image-absolute').first().val())) { + column_content.absolute = 1; + column_content.i_a_t = $(modal).find('.image-absolute-t').first().val(); + column_content.i_a_r = $(modal).find('.image-absolute-r').first().val(); + column_content.i_a_b = $(modal).find('.image-absolute-b').first().val(); + column_content.i_a_l = $(modal).find('.image-absolute-l').first().val(); + } + + if (submenu_content.hasOwnProperty(elmid)) { + submenu_content[elmid].content = column_content; + } + + } + + + function setProductsContent(modal, elmid) { + column_content = {}; + + if (ids = serialize_productsselect($(modal).find('.select-products-ids').first().find('option'))) { + column_content.ids = ids; + column_content.line = parseInt($(modal).find('.select-products-line').first().val()); + column_content.view = parseInt($(modal).find('.select-products-view').first().val()); + } + + if (submenu_content.hasOwnProperty(elmid)) { + submenu_content[elmid].content = column_content; + } + + } + + + function setManufacturersContent(modal, elmid) { + column_content = {}; + + if (ids = $(modal).find('.select-manufacturers-ids').first().val()) { + column_content.ids = ids; + column_content.line = parseInt($(modal).find('.select-manufacturers-line').first().val()); + } + + if (submenu_content.hasOwnProperty(elmid)) { + submenu_content[elmid].content = column_content; + } + + } + + function setSuppliersContent(modal, elmid) { + column_content = {}; + + if (ids = $(modal).find('.select-suppliers-ids').first().val()) { + column_content.ids = ids; + column_content.line = parseInt($(modal).find('.select-suppliers-line').first().val()); + } + + if (submenu_content.hasOwnProperty(elmid)) { + submenu_content[elmid].content = column_content; + } + + } + + + function setLinksContent(modal, elmid) { + column_content = {}; + + if (ids = $(modal).find('.select-links-ids').first().val()) { + column_content.ids = ids; + column_content.view = parseInt($(modal).find('.select-links-view').first().val()); + } + + if (submenu_content.hasOwnProperty(elmid)) { + submenu_content[elmid].content = column_content; + } + + } + + function setHtmlContent(modal, elmid) { + column_content = {}; + + if (ids = $(modal).find('.select-customhtml').first().val()) { + column_content.ids = ids; + } + + if (submenu_content.hasOwnProperty(elmid)) { + submenu_content[elmid].content = column_content; + } + + } + + function setColumnStyle(modal, elmid) { + submenu_style = {}; + + title = {}; + href = {}; + legend = {}; + + if (typeof languages != "undefined") { + languages.forEach(function (jsLang) { + title[jsLang.id_lang] = $(modal).find('.column-title-' + jsLang.id_lang).first().val(); + href[jsLang.id_lang] = $(modal).find('.column-href-' + jsLang.id_lang).first().val(); + legend[jsLang.id_lang] = $(modal).find('.column-legend-' + jsLang.id_lang).first().val(); + }); + } else { + title[id_language] = $(modal).find('.column-title-' + id_language).first().val(); + href[id_language] = $(modal).find('.column-href-' + id_language).first().val(); + legendf[id_language] = $(modal).find('.column-legen-' + id_language).first().val(); + } + + submenu_style.title = title; + submenu_style.href = href; + submenu_style.legend = legend; + + + if (bgcolor = $(modal).find('.column_bg_color').first().val()) + submenu_style.bg_color = bgcolor; + + if (legend_bg = $(modal).find('.legend_bg').first().val()) + submenu_style.legend_bg = legend_bg; + + if (legend_txt = $(modal).find('.legend_txt').first().val()) + submenu_style.legend_txt = legend_txt; + + if (title_borderc = $(modal).find('.title_borderc').first().val()) + submenu_style.title_borderc = title_borderc; + + if (title_color = $(modal).find('.title_color').first().val()) + submenu_style.title_color = title_color; + + if (title_colorh = $(modal).find('.title_colorh').first().val()) + submenu_style.title_colorh = title_colorh; + + if (txt_color = $(modal).find('.txt_color').first().val()) + submenu_style.txt_color = txt_color; + + if (txt_colorh = $(modal).find('.txt_colorh').first().val()) + submenu_style.txt_colorh = txt_colorh; + + + if (br_top_st = parseInt($(modal).find('.br_top_st').first().val())) { + submenu_style.br_top_st = br_top_st; + submenu_style.br_top_wh = parseInt($(modal).find('.br_top_wh').first().val()); + submenu_style.br_top_c = $(modal).find('.br_top_c').first().val(); + } + + if (br_right_st = parseInt($(modal).find('.br_right_st').first().val())) { + submenu_style.br_right_st = br_right_st; + submenu_style.br_right_wh = parseInt($(modal).find('.br_right_wh').first().val()); + submenu_style.br_right_c = $(modal).find('.br_right_c').first().val(); + } + + if (br_bottom_st = parseInt($(modal).find('.br_bottom_st').first().val())) { + submenu_style.br_bottom_st = br_bottom_st; + submenu_style.br_bottom_wh = parseInt($(modal).find('.br_bottom_wh').first().val()); + submenu_style.br_bottom_c = $(modal).find('.br_bottom_c').first().val(); + } + + if (br_left_st = parseInt($(modal).find('.br_left_st').first().val())) { + submenu_style.br_left_st = br_left_st; + submenu_style.br_left_wh = parseInt($(modal).find('.br_left_wh').first().val()); + submenu_style.br_left_c = $(modal).find('.br_left_c').first().val(); + } + + //paddings + if ($(modal).find('.c-padding-top').first().prop('checked')) + submenu_style.c_p_t = 1; + + if ($(modal).find('.c-padding-right').first().prop('checked')) + submenu_style.c_p_r = 1; + + if ($(modal).find('.c-padding-bottom').first().prop('checked')) + submenu_style.c_p_b = 1; + + if ($(modal).find('.c-padding-left').first().prop('checked')) + submenu_style.c_p_l = 1; + + //margins + if ($(modal).find('.c-margin-top').first().prop('checked')) + submenu_style.c_m_t = 1; + + if ($(modal).find('.c-margin-right').first().prop('checked')) + submenu_style.c_m_r = 1; + + if ($(modal).find('.c-margin-bottom').first().prop('checked')) + submenu_style.c_m_b = 1; + + if ($(modal).find('.c-margin-left').first().prop('checked')) + submenu_style.c_m_l = 1; + + + if (submenu_content.hasOwnProperty(elmid)) { + submenu_content[elmid].content_s = submenu_style; + } + + } + + function serialize_productsselect(element) { + options = []; + element.each(function (i) { + options[i] = $(this).val(); + }); + + return uniqProducts(options); + + } + + function uniqProducts(a) { + var prims = {"boolean": {}, "number": {}, "string": {}}, objs = []; + + return a.filter(function (item) { + var type = typeof item; + if (type in prims) + return prims[type].hasOwnProperty(item) ? false : (prims[type][item] = true); + else + return objs.indexOf(item) >= 0 ? false : objs.push(item); + }); + } + + function setContentForm($element, val) { + + $element.find('.column-content-info').first().text($element.find('.select-column-content option[value="' + parseInt(val) + '"]').first().text()); + + switch (parseInt(val)) { + case 0: + $element.find('.content-options-wrapper').hide(); + break; + case 1: + $element.find('.content-options-wrapper').not('.htmlcontent-wrapper').hide(); + $element.find('.htmlcontent-wrapper').show(); + break; + case 2: + $element.find('.content-options-wrapper').not('.categorytree-wrapper').hide(); + $element.find('.categorytree-wrapper').show(); + break; + case 3: + $element.find('.content-options-wrapper').not('.va-links-wrapper').hide(); + $element.find('.va-links-wrapper').show(); + break; + case 4: + $element.find('.content-options-wrapper').not('.products-wrapper').hide(); + $element.find('.products-wrapper').show(); + break; + case 5: + $element.find('.content-options-wrapper').not('.manufacturers-wrapper').hide(); + $element.find('.manufacturers-wrapper').show(); + break; + case 6: + $element.find('.content-options-wrapper').not('.column-image-wrapper').hide(); + $element.find('.column-image-wrapper').show(); + break; + case 7: + $element.find('.content-options-wrapper').not('.suppliers-wrapper').hide(); + $element.find('.suppliers-wrapper').show(); + break; + } + + } + + +//init submenu elements + + var submenu_content = {}; + var elementId = 0; + + if ($('#submenu-elements').length) { + var prev_submenu_val = $('#submenu-elements').val(); + if (prev_submenu_val.length !== 0) { + var old_submenu_content = JSON.parse(prev_submenu_val); + $.extend(submenu_content, old_submenu_content); + + var ids = $(".menu-element").map(function () { + return parseInt($(this).data('element-id'), 10); + }).get(); + + elementId = Math.max.apply(Math, ids); + + } + } + + $('.menu_column').each(function () { + + $(this).find('.column_bg_color-' + $(this).data('element-id')).first().mColorPicker(); + $(this).find('.legend_bg-' + $(this).data('element-id')).first().mColorPicker(); + $(this).find('.legend_txt-' + $(this).data('element-id')).first().mColorPicker(); + + $(this).find('.br_top_c-' + $(this).data('element-id')).first().mColorPicker(); + $(this).find('.br_right_c-' + $(this).data('element-id')).first().mColorPicker(); + $(this).find('.br_bottom_c-' + $(this).data('element-id')).first().mColorPicker(); + $(this).find('.br_left_c-' + $(this).data('element-id')).first().mColorPicker(); + + $(this).find('.title_borderc-' + $(this).data('element-id')).first().mColorPicker(); + $(this).find('.title_color-' + $(this).data('element-id')).first().mColorPicker(); + $(this).find('.title_colorh-' + $(this).data('element-id')).first().mColorPicker(); + $(this).find('.txt_color-' + $(this).data('element-id')).first().mColorPicker(); + $(this).find('.txt_colorh-' + $(this).data('element-id')).first().mColorPicker(); + + setContentForm($(this), $(this).data('contenttype')); + }); + + +//add first row button + $('#buttons-sample').on('click', '.add-row-action', function () { + + $parentElement = $(this).parent().parent().parent().find('.first-rows-wrapper'); + $parentElement.append(''); + + $('.menu-element-id-' + elementId).sortable({ + items: ".menu_column", + handle: ".dragger-handle", + connectWith: ".menu_row", + placeholder: "col-placeholder", + }); + //$( '.menu-element-id-' + elementId).disableSelection(); + + position = $parentElement.children().length; + + var newElement = { + 'elementId': elementId, + 'type': 1, + 'depth': 0, + 'position': position, + 'parentId': 0 + }; + + submenu_content[elementId] = newElement; + }); + +//add row button + $('.grid_creator').on('click', '.menu-element .add-row-action', function () { + + parentId = $(this).parent().parent().data("element-id"); + depth = $(this).parent().parent().data("depth") + 1; + + $parentElement = $(this).parent().parent(); + $parentElement.append(''); + + $('.menu-element-id-' + elementId).sortable({ + items: ".menu_column", + handle: ".dragger-handle", + placeholder: "col-placeholder", + connectWith: ".menu_row" + }); + //$( '.menu-element-id-' + elementId).disableSelection(); + + position = $parentElement.children().length; + + var newElement = { + 'elementId': elementId, + 'type': 1, + 'depth': depth, + 'position': position, + 'parentId': parentId + }; + + submenu_content[elementId] = newElement; + + }); + +//clone column + $('.grid_creator').on('click', ' .duplicate-element-action', function () { + $brotherElement = $(this).parents('.menu-element').first(); + brotherId = $brotherElement.data('element-id'); + + if (submenu_content.hasOwnProperty(brotherId)) { + + clonedElement = clone(submenu_content[brotherId]); + clonedElement.elementId = ++elementId; + + $cloneElement = $brotherElement.clone(true); + $cloneElement.data('element-id', elementId); + $cloneElement.removeClass('menu-element-id-' + brotherId); + $cloneElement.addClass('menu-element-id-' + elementId).appendTo($brotherElement.parent()); + submenu_content[elementId] = clonedElement; + } + }); + + +//add column button + $('.grid_creator').on('click', '.menu-element .add-column-action', function () { + parentId = $(this).parent().parent().data('element-id'); + depth = $(this).parent().parent().data("depth") + 1; + + $parentElement = $(this).parent().parent(); + $parentElement.append(''); + + $('.menu-element-id-' + elementId).sortable({ + items: ".menu_row", + handle: ".dragger-handle", + placeholder: "row-placeholder", + connectWith: ".menu_column" + }); + //$( '.menu-element-id-' + elementId).disableSelection(); + + position = $parentElement.children().length; + + var newElement = { + 'elementId': elementId, + 'type': 2, + 'depth': depth, + 'width': 3, + 'contentType': 0, + 'position': position, + 'parentId': parentId + }; + $('.menu-element-id-' + elementId + ' .column_bg_color').addClass('column_bg_color-' + elementId); + $('.menu-element-id-' + elementId + ' .column_bg_color-' + elementId).mColorPicker(); + + $('.menu-element-id-' + elementId + ' .legend_bg').addClass('legend_bg-' + elementId); + $('.menu-element-id-' + elementId + ' .legend_bg-' + elementId).mColorPicker(); + + $('.menu-element-id-' + elementId + ' .legend_txt').addClass('legend_txt-' + elementId); + $('.menu-element-id-' + elementId + ' .legend_txt-' + elementId).mColorPicker(); + + $('.menu-element-id-' + elementId + ' .br_top_c').addClass('br_top_c-' + elementId); + $('.menu-element-id-' + elementId + ' .br_top_c-' + elementId).mColorPicker(); + + $('.menu-element-id-' + elementId + ' .br_right_c').addClass('br_right_c-' + elementId); + $('.menu-element-id-' + elementId + ' .br_right_c-' + elementId).mColorPicker(); + + $('.menu-element-id-' + elementId + ' .br_bottom_c').addClass('br_bottom_c-' + elementId); + $('.menu-element-id-' + elementId + ' .br_bottom_c-' + elementId).mColorPicker(); + + $('.menu-element-id-' + elementId + ' .br_left_c').addClass('br_left_c-' + elementId); + $('.menu-element-id-' + elementId + ' .br_left_c-' + elementId).mColorPicker(); + + $('.menu-element-id-' + elementId + ' .title_borderc').addClass('title_borderc-' + elementId); + $('.menu-element-id-' + elementId + ' .title_borderc-' + elementId).mColorPicker(); + + $('.menu-element-id-' + elementId + ' .title_color').addClass('title_color-' + elementId); + $('.menu-element-id-' + elementId + ' .title_color-' + elementId).mColorPicker(); + + $('.menu-element-id-' + elementId + ' .title_colorh').addClass('title_colorh-' + elementId); + $('.menu-element-id-' + elementId + ' .title_colorh-' + elementId).mColorPicker(); + + $('.menu-element-id-' + elementId + ' .txt_color').addClass('txt_color-' + elementId); + $('.menu-element-id-' + elementId + ' .txt_color-' + elementId).mColorPicker(); + + $('.menu-element-id-' + elementId + ' .txt_colorh').addClass('txt_colorh-' + elementId); + $('.menu-element-id-' + elementId + ' .txt_colorh-' + elementId).mColorPicker(); + + + $('.menu-element-id-' + elementId + ' .image-source').attr('id', elementId + '-image-source-' + $(this).data('lang-id')); + + + $('.menu-element-id-' + elementId + ' .image-source').each(function () { + $(this).attr('id', elementId + '-image-source-' + $(this).data('lang-id')); + $(this).parent().find('.iframe-column-upload').data('input-name', elementId + '-image-source-' + $(this).data('lang-id')); + }); + + $('.menu-element-id-' + elementId + ' .rte').each(function () { + $(this).attr('id', elementId + '-htmlcontent-' + $(this).data('lang-id')); + + }); + + + submenu_content[elementId] = newElement; + setContentForm($('.menu-element-id-' + elementId), 0); + + $('.menu-element-id-' + elementId + ' .product-autocomplete').autoCompleteIq(p_auto_settings); + + }); + +//remove element button + $('.grid_creator').on('click', '.remove-element-action', function () { + deleteId = $(this).parent().parent().data('element-id'); + $(this).parent().parent().remove(); + + delete submenu_content[deleteId]; + deleteMenuElelement(deleteId) + }); + +//pass submenu to input field + $('button[name="submitAddTab"]').on("click", function () { + if ($.isEmptyObject(submenu_content)) + $('#submenu-elements').val(''); + else + $('#submenu-elements').val(encodeURIComponent(JSON.stringify(submenu_content))); + }); + +//remove product fromc olumn + $('.grid_creator').on('click', '.remove-products-ids', function () { + + $(this).parent().find('.select-products-ids option:selected').each(function (i) { + $(this).remove(); + }); + + }); + +//delete menu elements recursivly + function deleteMenuElelement(id) { + for (var key in submenu_content) { + if (submenu_content.hasOwnProperty(key)) { + if (submenu_content[key].parentId == id) { + tmpelid = submenu_content[key].elementId; + delete submenu_content[key]; + deleteMenuElelement(tmpelid); + } + } + } + } + +//update all menu positions after drag and drop + function updateElementsPositions() { + for (var key in submenu_content) { + if (submenu_content.hasOwnProperty(key)) { + submenu_content[key].position = $('.menu-element-id-' + submenu_content[key].elementId).index(); + } + } + } + + function clone(src) { + function mixin(dest, source, copyFunc) { + var name, s, i, empty = {}; + for (name in source) { + // the (!(name in empty) || empty[name] !== s) condition avoids copying properties in "source" + // inherited from Object.prototype. For example, if dest has a custom toString() method, + // don't overwrite it with the toString() method that source inherited from Object.prototype + s = source[name]; + if (!(name in dest) || (dest[name] !== s && (!(name in empty) || empty[name] !== s))) { + dest[name] = copyFunc ? copyFunc(s) : s; + } + } + return dest; + } + + if (!src || typeof src != "object" || Object.prototype.toString.call(src) === "[object Function]") { + // null, undefined, any non-object, or function + return src; // anything + } + if (src.nodeType && "cloneNode" in src) { + // DOM Node + return src.cloneNode(true); // Node + } + if (src instanceof Date) { + // Date + return new Date(src.getTime()); // Date + } + if (src instanceof RegExp) { + // RegExp + return new RegExp(src); // RegExp + } + var r, i, l; + if (src instanceof Array) { + // array + r = []; + for (i = 0, l = src.length; i < l; ++i) { + if (i in src) { + r.push(clone(src[i])); + } + } + // we don't clone functions for performance reasons + // }else if(d.isFunction(src)){ + // // function + // r = function(){ return src.apply(this, arguments); }; + } else { + // generic objects + r = src.constructor ? new src.constructor() : {}; + } + return mixin(r, src, clone); + + } + + +}); diff --git a/modules/iqitmegamenu/views/js/bootstrap.min.js b/modules/iqitmegamenu/views/js/bootstrap.min.js new file mode 100644 index 00000000..b1e49ffd --- /dev/null +++ b/modules/iqitmegamenu/views/js/bootstrap.min.js @@ -0,0 +1,24 @@ +/** +* 2014-2017 IQIT-COMMERCE.COM +* +* NOTICE OF LICENSE +* +* @author IQIT-COMMERCE.COM +* @copyright 2007-2017 IQIT-COMMERCE.COM +* @license GNU General Public License version 2 +* +* You can not resell or redistribute this software. +* +*/ + +/*! + * Bootstrap v3.3.4 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +/*! + * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=996541fddb4cc32bdd52) + * Config saved to config.json and https://gist.github.com/996541fddb4cc32bdd52 + */ +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(t){"use strict";var a=t.fn.jquery.split(" ")[0].split(".");if(a[0]<2&&a[1]<9||1==a[0]&&9==a[1]&&a[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(t){"use strict";function a(a){return this.each(function(){var n=t(this),r=n.data("bs.tab");r||n.data("bs.tab",r=new e(this)),"string"==typeof a&&r[a]()})}var e=function(a){this.element=t(a)};e.VERSION="3.3.2",e.TRANSITION_DURATION=150,e.prototype.show=function(){var a=this.element,e=a.closest("ul:not(.dropdown-menu)"),n=a.data("target");if(n||(n=a.attr("href"),n=n&&n.replace(/.*(?=#[^\s]*$)/,"")),!a.parent("li").hasClass("active")){var r=e.find(".active:last a"),i=t.Event("hide.bs.tab",{relatedTarget:a[0]}),s=t.Event("show.bs.tab",{relatedTarget:r[0]});if(r.trigger(i),a.trigger(s),!s.isDefaultPrevented()&&!i.isDefaultPrevented()){var o=t(n);this.activate(a.closest("li"),e),this.activate(o,o.parent(),function(){r.trigger({type:"hidden.bs.tab",relatedTarget:a[0]}),a.trigger({type:"shown.bs.tab",relatedTarget:r[0]})})}}},e.prototype.activate=function(a,n,r){function i(){s.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),a.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),o?(a[0].offsetWidth,a.addClass("in")):a.removeClass("fade"),a.parent(".dropdown-menu").length&&a.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),r&&r()}var s=n.find("> .active"),o=r&&t.support.transition&&(s.length&&s.hasClass("fade")||!!n.find("> .fade").length);s.length&&o?s.one("bsTransitionEnd",i).emulateTransitionEnd(e.TRANSITION_DURATION):i(),s.removeClass("in")};var n=t.fn.tab;t.fn.tab=a,t.fn.tab.Constructor=e,t.fn.tab.noConflict=function(){return t.fn.tab=n,this};var r=function(e){e.preventDefault(),a.call(t(this),"show")};t(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',r).on("click.bs.tab.data-api",'[data-toggle="pill"]',r)}(jQuery); \ No newline at end of file diff --git a/modules/iqitmegamenu/views/js/equalheights.js b/modules/iqitmegamenu/views/js/equalheights.js new file mode 100644 index 00000000..85438081 --- /dev/null +++ b/modules/iqitmegamenu/views/js/equalheights.js @@ -0,0 +1,31 @@ +/** +* 2014-2017 IQIT-COMMERCE.COM +* +* NOTICE OF LICENSE +* +* @author IQIT-COMMERCE.COM +* @copyright 2007-2017 IQIT-COMMERCE.COM +* @license GNU General Public License version 2 +* +* You can not resell or redistribute this software. +* +*/ + + +/** +* jquery.matchHeight-min.js v0.5.2 +* http://brm.io/jquery-match-height/ +* License: MIT +*/ + +(function(c){var n=-1,f=-1,r=function(a){var b=null,d=[];c(a).each(function(){var a=c(this),k=a.offset().top-h(a.css("margin-top")),l=0=Math.floor(Math.abs(b-k))?d[d.length-1]=l.add(a):d.push(a);b=k});return d},h=function(a){return parseFloat(a)||0},p=function(a){var b={byRow:!0,remove:!1,property:"height"};if("object"===typeof a)return c.extend(b,a);"boolean"===typeof a?b.byRow=a:"remove"===a&&(b.remove=!0);return b},b=c.fn.matchHeight=function(a){a= +p(a);if(a.remove){var e=this;this.css(a.property,"");c.each(b._groups,function(a,b){b.elements=b.elements.not(e)});return this}if(1>=this.length)return this;b._groups.push({elements:this,options:a});b._apply(this,a);return this};b._groups=[];b._throttle=80;b._maintainScroll=!1;b._beforeUpdate=null;b._afterUpdate=null;b._apply=function(a,e){var d=p(e),g=c(a),k=[g],l=c(window).scrollTop(),f=c("html").outerHeight(!0),m=g.parents().filter(":hidden");m.each(function(){var a=c(this);a.data("style-cache", +a.attr("style"))});m.css("display","block");d.byRow&&(g.each(function(){var a=c(this),b="inline-block"===a.css("display")?"inline-block":"block";a.data("style-cache",a.attr("style"));a.css({display:b,"padding-top":"0","padding-bottom":"0","margin-top":"0","margin-bottom":"0","border-top-width":"0","border-bottom-width":"0",height:"100px"})}),k=r(g),g.each(function(){var a=c(this);a.attr("style",a.data("style-cache")||"")}));c.each(k,function(a,b){var e=c(b),f=0;d.byRow&&1>=e.length?e.css(d.property, +""):(e.each(function(){var a=c(this),b={display:"inline-block"===a.css("display")?"inline-block":"block"};b[d.property]="";a.css(b);a.outerHeight(!1)>f&&(f=a.outerHeight(!1));a.css("display","")}),e.each(function(){var a=c(this),b=0;"border-box"!==a.css("box-sizing")&&(b+=h(a.css("border-top-width"))+h(a.css("border-bottom-width")),b+=h(a.css("padding-top"))+h(a.css("padding-bottom")));a.css(d.property,f-b)}))});m.each(function(){var a=c(this);a.attr("style",a.data("style-cache")||null)});b._maintainScroll&& +c(window).scrollTop(l/f*c("html").outerHeight(!0));return this};b._applyDataApi=function(){var a={};c("[data-match-height], [data-mh]").each(function(){var b=c(this),d=b.attr("data-match-height")||b.attr("data-mh");a[d]=d in a?a[d].add(b):b});c.each(a,function(){this.matchHeight(!0)})};var q=function(a){b._beforeUpdate&&b._beforeUpdate(a,b._groups);c.each(b._groups,function(){b._apply(this.elements,this.options)});b._afterUpdate&&b._afterUpdate(a,b._groups)};b._update=function(a,e){if(e&&"resize"=== +e.type){var d=c(window).width();if(d===n)return;n=d}a?-1===f&&(f=setTimeout(function(){q(e);f=-1},b._throttle)):q(e)};c(b._applyDataApi);c(window).bind("load",function(a){b._update(!1,a)});c(window).bind("resize orientationchange",function(a){b._update(!0,a)})})(jQuery); + + +$(document).ready(function(){ +$('.cbp-menu-column').matchHeight(); +}); \ No newline at end of file diff --git a/modules/iqitmegamenu/views/js/fontawesome-iconpicker.min.js b/modules/iqitmegamenu/views/js/fontawesome-iconpicker.min.js new file mode 100644 index 00000000..afbdf009 --- /dev/null +++ b/modules/iqitmegamenu/views/js/fontawesome-iconpicker.min.js @@ -0,0 +1,15 @@ +/** +* 2014-2017 IQIT-COMMERCE.COM +* +* NOTICE OF LICENSE +* +* @author IQIT-COMMERCE.COM +* @copyright 2007-2017 IQIT-COMMERCE.COM +* @license GNU General Public License version 2 +* +* You can not resell or redistribute this software. +* +*/ + +!function(a,b){function c(a,b,c){return[parseFloat(a[0])*(n.test(a[0])?b/100:1),parseFloat(a[1])*(n.test(a[1])?c/100:1)]}function d(b,c){return parseInt(a.css(b,c),10)||0}function e(b){var c=b[0];return 9===c.nodeType?{width:b.width(),height:b.height(),offset:{top:0,left:0}}:a.isWindow(c)?{width:b.width(),height:b.height(),offset:{top:b.scrollTop(),left:b.scrollLeft()}}:c.preventDefault?{width:0,height:0,offset:{top:c.pageY,left:c.pageX}}:{width:b.outerWidth(),height:b.outerHeight(),offset:b.offset()}}a.ui=a.ui||{};var f,g=Math.max,h=Math.abs,i=Math.round,j=/left|center|right/,k=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,m=/^\w+/,n=/%$/,o=a.fn.pos;a.pos={scrollbarWidth:function(){if(f!==b)return f;var c,d,e=a("
    "),g=e.children()[0];return a("body").append(e),c=g.offsetWidth,e.css("overflow","scroll"),d=g.offsetWidth,c===d&&(d=e[0].clientWidth),e.remove(),f=c-d},getScrollInfo:function(b){var c=b.isWindow||b.isDocument?"":b.element.css("overflow-x"),d=b.isWindow||b.isDocument?"":b.element.css("overflow-y"),e="scroll"===c||"auto"===c&&b.width0?"right":"center",vertical:f<0?"top":e>0?"bottom":"middle"};ng(h(e),h(f))?i.important="horizontal":i.important="vertical",b.using.call(this,a,i)}),k.offset(a.extend(A,{using:j}))})},a.ui.pos={_trigger:function(a,b,c,d){b.elem&&b.elem.trigger({type:c,position:a,positionData:b,triggered:d})},fit:{left:function(b,c){a.ui.pos._trigger(b,c,"posCollide","fitLeft");var d,e=c.within,f=e.isWindow?e.scrollLeft:e.offset.left,h=e.width,i=b.left-c.collisionPosition.marginLeft,j=f-i,k=i+c.collisionWidth-h-f;c.collisionWidth>h?j>0&&k<=0?(d=b.left+j+c.collisionWidth-h-f,b.left+=j-d):k>0&&j<=0?b.left=f:j>k?b.left=f+h-c.collisionWidth:b.left=f:j>0?b.left+=j:k>0?b.left-=k:b.left=g(b.left-i,b.left),a.ui.pos._trigger(b,c,"posCollided","fitLeft")},top:function(b,c){a.ui.pos._trigger(b,c,"posCollide","fitTop");var d,e=c.within,f=e.isWindow?e.scrollTop:e.offset.top,h=c.within.height,i=b.top-c.collisionPosition.marginTop,j=f-i,k=i+c.collisionHeight-h-f;c.collisionHeight>h?j>0&&k<=0?(d=b.top+j+c.collisionHeight-h-f,b.top+=j-d):k>0&&j<=0?b.top=f:j>k?b.top=f+h-c.collisionHeight:b.top=f:j>0?b.top+=j:k>0?b.top-=k:b.top=g(b.top-i,b.top),a.ui.pos._trigger(b,c,"posCollided","fitTop")}},flip:{left:function(b,c){a.ui.pos._trigger(b,c,"posCollide","flipLeft");var d,e,f=c.within,g=f.offset.left+f.scrollLeft,i=f.width,j=f.isWindow?f.scrollLeft:f.offset.left,k=b.left-c.collisionPosition.marginLeft,l=k-j,m=k+c.collisionWidth-i-j,n="left"===c.my[0]?-c.elemWidth:"right"===c.my[0]?c.elemWidth:0,o="left"===c.at[0]?c.targetWidth:"right"===c.at[0]?-c.targetWidth:0,p=-2*c.offset[0];l<0?(d=b.left+n+o+p+c.collisionWidth-i-g,(d<0||d0&&(e=b.left-c.collisionPosition.marginLeft+n+o+p-j,(e>0||h(e)l&&(e<0||e0&&(d=b.top-c.collisionPosition.marginTop+o+p+q-j,b.top+o+p+q>m&&(d>0||h(d)10&&e<11,b.innerHTML="",c.removeChild(b)}()}(jQuery),function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):window.jQuery&&!window.jQuery.fn.iconpicker&&a(window.jQuery)}(function(a){"use strict";var b={isEmpty:function(a){return a===!1||""===a||null===a||void 0===a},isEmptyObject:function(a){return this.isEmpty(a)===!0||0===a.length},isElement:function(b){return a(b).length>0},isString:function(a){return"string"==typeof a||a instanceof String},isArray:function(b){return a.isArray(b)},inArray:function(b,c){return a.inArray(b,c)!==-1},throwError:function(a){throw"Font Awesome Icon Picker Exception: "+a}},c=function(d,e){this._id=c._idCounter++,this.element=a(d).addClass("iconpicker-element"),this._trigger("iconpickerCreate"),this.options=a.extend({},c.defaultOptions,this.element.data(),e),this.options.templates=a.extend({},c.defaultOptions.templates,this.options.templates),this.options.originalPlacement=this.options.placement,this.container=!!b.isElement(this.options.container)&&a(this.options.container),this.container===!1&&(this.element.is(".dropdown-toggle")?this.container=a("~ .dropdown-menu:first",this.element):this.container=this.element.is("input,textarea,button,.btn")?this.element.parent():this.element),this.container.addClass("iconpicker-container"),this.isDropdownMenu()&&(this.options.templates.search=!1,this.options.templates.buttons=!1,this.options.placement="inline"),this.input=!!this.element.is("input,textarea")&&this.element.addClass("iconpicker-input"),this.input===!1&&(this.input=this.container.find(this.options.input),this.input.is("input,textarea")||(this.input=!1)),this.component=this.isDropdownMenu()?this.container.parent().find(this.options.component):this.container.find(this.options.component),0===this.component.length?this.component=!1:this.component.find("i").addClass("iconpicker-component"),this._createPopover(),this._createIconpicker(),0===this.getAcceptButton().length&&(this.options.mustAccept=!1),this.isInputGroup()?this.container.parent().append(this.popover):this.container.append(this.popover),this._bindElementEvents(),this._bindWindowEvents(),this.update(this.options.selected),this.isInline()&&this.show(),this._trigger("iconpickerCreated")};c._idCounter=0,c.defaultOptions={title:!1,selected:!1,defaultValue:!1,placement:"bottom",collision:"none",animation:!0,hideOnSelect:!1,showFooter:!1,searchInFooter:!1,mustAccept:!1,selectedCustomClass:"bg-primary",icons:[],fullClassFormatter:function(a){return"fa "+a},input:"input,.iconpicker-input",inputSearch:!1,container:!1,component:".input-group-addon,.iconpicker-component",templates:{popover:'
    ',footer:'',buttons:' ',search:'',iconpicker:'
    ',iconpickerItem:''}},c.batch=function(b,c){var d=Array.prototype.slice.call(arguments,2);return a(b).each(function(){var b=a(this).data("iconpicker");b&&b[c].apply(b,d)})},c.prototype={constructor:c,options:{},_id:0,_trigger:function(b,c){c=c||{},this.element.trigger(a.extend({type:b,iconpickerInstance:this},c))},_createPopover:function(){this.popover=a(this.options.templates.popover);var c=this.popover.find(".popover-title");if(this.options.title&&c.append(a('
    '+this.options.title+"
    ")),this.hasSeparatedSearchInput()&&!this.options.searchInFooter?c.append(this.options.templates.search):this.options.title||c.remove(),this.options.showFooter&&!b.isEmpty(this.options.templates.footer)){var d=a(this.options.templates.footer);this.hasSeparatedSearchInput()&&this.options.searchInFooter&&d.append(a(this.options.templates.search)),b.isEmpty(this.options.templates.buttons)||d.append(a(this.options.templates.buttons)),this.popover.append(d)}return this.options.animation===!0&&this.popover.addClass("fade"),this.popover},_createIconpicker:function(){var b=this;this.iconpicker=a(this.options.templates.iconpicker);var c=function(c){var d=a(this);return d.is("i")&&(d=d.parent()),b._trigger("iconpickerSelect",{iconpickerItem:d,iconpickerValue:b.iconpickerValue}),b.options.mustAccept===!1?(b.update(d.data("iconpickerValue")),b._trigger("iconpickerSelected",{iconpickerItem:this,iconpickerValue:b.iconpickerValue})):b.update(d.data("iconpickerValue"),!0),b.options.hideOnSelect&&b.options.mustAccept===!1&&b.hide(),c.preventDefault(),!1};for(var d in this.options.icons)if("string"==typeof this.options.icons[d]){var e=a(this.options.templates.iconpickerItem);e.find("i").addClass(this.options.fullClassFormatter(this.options.icons[d])),e.data("iconpickerValue",this.options.icons[d]).on("click.iconpicker",c),this.iconpicker.find(".iconpicker-items").append(e.attr("title","."+this.options.icons[d]))}return this.popover.find(".popover-content").append(this.iconpicker),this.iconpicker},_isEventInsideIconpicker:function(b){var c=a(b.target);return!((!c.hasClass("iconpicker-element")||c.hasClass("iconpicker-element")&&!c.is(this.element))&&0===c.parents(".iconpicker-popover").length)},_bindElementEvents:function(){var c=this;this.getSearchInput().on("keyup.iconpicker",function(){c.filter(a(this).val().toLowerCase())}),this.getAcceptButton().on("click.iconpicker",function(){var a=c.iconpicker.find(".iconpicker-selected").get(0);c.update(c.iconpickerValue),c._trigger("iconpickerSelected",{iconpickerItem:a,iconpickerValue:c.iconpickerValue}),c.isInline()||c.hide()}),this.getCancelButton().on("click.iconpicker",function(){c.isInline()||c.hide()}),this.element.on("focus.iconpicker",function(a){c.show(),a.stopPropagation()}),this.hasComponent()&&this.component.on("click.iconpicker",function(){c.toggle()}),this.hasInput()&&this.input.on("keyup.iconpicker",function(d){b.inArray(d.keyCode,[38,40,37,39,16,17,18,9,8,91,93,20,46,186,190,46,78,188,44,86])?c._updateFormGroupStatus(c.getValid(this.value)!==!1):c.update(),c.options.inputSearch===!0&&c.filter(a(this).val().toLowerCase())})},_bindWindowEvents:function(){var b=a(window.document),c=this,d=".iconpicker.inst"+this._id;return a(window).on("resize.iconpicker"+d+" orientationchange.iconpicker"+d,function(a){c.popover.hasClass("in")&&c.updatePlacement()}),c.isInline()||b.on("mouseup"+d,function(a){return c._isEventInsideIconpicker(a)||c.isInline()||c.hide(),a.stopPropagation(),a.preventDefault(),!1}),!1},_unbindElementEvents:function(){this.popover.off(".iconpicker"),this.element.off(".iconpicker"),this.hasInput()&&this.input.off(".iconpicker"),this.hasComponent()&&this.component.off(".iconpicker"),this.hasContainer()&&this.container.off(".iconpicker")},_unbindWindowEvents:function(){a(window).off(".iconpicker.inst"+this._id),a(window.document).off(".iconpicker.inst"+this._id)},updatePlacement:function(b,c){b=b||this.options.placement,this.options.placement=b,c=c||this.options.collision,c=c===!0?"flip":c;var d={at:"right bottom",my:"right top",of:this.hasInput()&&!this.isInputGroup()?this.input:this.container,collision:c===!0?"flip":c,within:window};if(this.popover.removeClass("inline topLeftCorner topLeft top topRight topRightCorner rightTop right rightBottom bottomRight bottomRightCorner bottom bottomLeft bottomLeftCorner leftBottom left leftTop"),"object"==typeof b)return this.popover.pos(a.extend({},d,b));switch(b){case"inline":d=!1;break;case"topLeftCorner":d.my="right bottom",d.at="left top";break;case"topLeft":d.my="left bottom",d.at="left top";break;case"top":d.my="center bottom",d.at="center top";break;case"topRight":d.my="right bottom",d.at="right top";break;case"topRightCorner":d.my="left bottom",d.at="right top";break;case"rightTop":d.my="left bottom",d.at="right center";break;case"right":d.my="left center",d.at="right center";break;case"rightBottom":d.my="left top",d.at="right center";break;case"bottomRightCorner":d.my="left top",d.at="right bottom";break;case"bottomRight":d.my="right top",d.at="right bottom";break;case"bottom":d.my="center top",d.at="center bottom";break;case"bottomLeft":d.my="left top",d.at="left bottom";break;case"bottomLeftCorner":d.my="right top",d.at="left bottom";break;case"leftBottom":d.my="right top",d.at="left center";break;case"left":d.my="right center",d.at="left center";break;case"leftTop":d.my="right bottom",d.at="left center";break;default:return!1}return this.popover.css({display:"inline"===this.options.placement?"":"block"}),d!==!1?this.popover.pos(d).css("maxWidth",a(window).width()-this.container.offset().left-5):this.popover.css({top:"auto",right:"auto",bottom:"auto",left:"auto",maxWidth:"none"}),this.popover.addClass(this.options.placement),!0},_updateComponents:function(){if(this.iconpicker.find(".iconpicker-item.iconpicker-selected").removeClass("iconpicker-selected "+this.options.selectedCustomClass),this.iconpickerValue&&this.iconpicker.find("."+this.options.fullClassFormatter(this.iconpickerValue).replace(/ /g,".")).parent().addClass("iconpicker-selected "+this.options.selectedCustomClass),this.hasComponent()){var a=this.component.find("i");a.length>0?a.attr("class",this.options.fullClassFormatter(this.iconpickerValue)):this.component.html(this.getHtml())}},_updateFormGroupStatus:function(a){return!!this.hasInput()&&(a!==!1?this.input.parents(".form-group:first").removeClass("has-error"):this.input.parents(".form-group:first").addClass("has-error"),!0)},getValid:function(c){b.isString(c)||(c="");var d=""===c;return c=a.trim(c),!(!b.inArray(c,this.options.icons)&&!d)&&c},setValue:function(a){var b=this.getValid(a);return b!==!1?(this.iconpickerValue=b,this._trigger("iconpickerSetValue",{iconpickerValue:b}),this.iconpickerValue):(this._trigger("iconpickerInvalid",{iconpickerValue:a}),!1)},getHtml:function(){return''},setSourceValue:function(a){return a=this.setValue(a),a!==!1&&""!==a&&(this.hasInput()?this.input.val(this.iconpickerValue):this.element.data("iconpickerValue",this.iconpickerValue),this._trigger("iconpickerSetSourceValue",{iconpickerValue:a})),a},getSourceValue:function(a){a=a||this.options.defaultValue;var b=a;return b=this.hasInput()?this.input.val():this.element.data("iconpickerValue"),void 0!==b&&""!==b&&null!==b&&b!==!1||(b=a),b},hasInput:function(){return this.input!==!1},isInputSearch:function(){return this.hasInput()&&this.options.inputSearch===!0},isInputGroup:function(){return this.container.is(".input-group")},isDropdownMenu:function(){return this.container.is(".dropdown-menu")},hasSeparatedSearchInput:function(){return this.options.templates.search!==!1&&!this.isInputSearch()},hasComponent:function(){return this.component!==!1},hasContainer:function(){return this.container!==!1},getAcceptButton:function(){return this.popover.find(".iconpicker-btn-accept")},getCancelButton:function(){return this.popover.find(".iconpicker-btn-cancel")},getSearchInput:function(){return this.popover.find(".iconpicker-search")},filter:function(c){if(b.isEmpty(c))return this.iconpicker.find(".iconpicker-item").show(),a(!1);var d=[];return this.iconpicker.find(".iconpicker-item").each(function(){var b=a(this),e=b.attr("title").toLowerCase(),f=!1;try{f=new RegExp(c,"g")}catch(a){f=!1}f!==!1&&e.match(f)?(d.push(b),b.show()):b.hide()}),d},show:function(){return!this.popover.hasClass("in")&&(a.iconpicker.batch(a(".iconpicker-popover.in:not(.inline)").not(this.popover),"hide"),this._trigger("iconpickerShow"),this.updatePlacement(),this.popover.addClass("in"),void setTimeout(a.proxy(function(){this.popover.css("display",this.isInline()?"":"block"),this._trigger("iconpickerShown")},this),this.options.animation?300:1))},hide:function(){return!!this.popover.hasClass("in")&&(this._trigger("iconpickerHide"),this.popover.removeClass("in"),void setTimeout(a.proxy(function(){this.popover.css("display","none"),this.getSearchInput().val(""),this.filter(""),this._trigger("iconpickerHidden")},this),this.options.animation?300:1))},toggle:function(){this.popover.is(":visible")?this.hide():this.show(!0)},update:function(a,b){return a=a?a:this.getSourceValue(this.iconpickerValue),this._trigger("iconpickerUpdate"),b===!0?a=this.setValue(a):(a=this.setSourceValue(a),this._updateFormGroupStatus(a!==!1)),a!==!1&&this._updateComponents(),this._trigger("iconpickerUpdated"),a},destroy:function(){this._trigger("iconpickerDestroy"),this.element.removeData("iconpicker").removeData("iconpickerValue").removeClass("iconpicker-element"),this._unbindElementEvents(),this._unbindWindowEvents(),a(this.popover).remove(),this._trigger("iconpickerDestroyed")},disable:function(){return!!this.hasInput()&&(this.input.prop("disabled",!0),!0)},enable:function(){return!!this.hasInput()&&(this.input.prop("disabled",!1),!0)},isDisabled:function(){return!!this.hasInput()&&this.input.prop("disabled")===!0},isInline:function(){return"inline"===this.options.placement||this.popover.hasClass("inline")}},a.iconpicker=c,a.fn.iconpicker=function(b){return this.each(function(){var d=a(this);d.data("iconpicker")||d.data("iconpicker",new c(this,"object"==typeof b?b:{}))})},c.defaultOptions.icons=["fa-500px","fa-address-book","fa-address-book-o","fa-address-card","fa-address-card-o","fa-adjust","fa-adn","fa-align-center","fa-align-justify","fa-align-left","fa-align-right","fa-amazon","fa-ambulance","fa-american-sign-language-interpreting","fa-anchor","fa-android","fa-angellist","fa-angle-double-down","fa-angle-double-left","fa-angle-double-right","fa-angle-double-up","fa-angle-down","fa-angle-left","fa-angle-right","fa-angle-up","fa-apple","fa-archive","fa-area-chart","fa-arrow-circle-down","fa-arrow-circle-left","fa-arrow-circle-o-down","fa-arrow-circle-o-left","fa-arrow-circle-o-right","fa-arrow-circle-o-up","fa-arrow-circle-right","fa-arrow-circle-up","fa-arrow-down","fa-arrow-left","fa-arrow-right","fa-arrow-up","fa-arrows","fa-arrows-alt","fa-arrows-h","fa-arrows-v","fa-asl-interpreting","fa-assistive-listening-systems","fa-asterisk","fa-at","fa-audio-description","fa-automobile","fa-backward","fa-balance-scale","fa-ban","fa-bandcamp","fa-bank","fa-bar-chart","fa-bar-chart-o","fa-barcode","fa-bars","fa-bath","fa-bathtub","fa-battery","fa-battery-0","fa-battery-1","fa-battery-2","fa-battery-3","fa-battery-4","fa-battery-empty","fa-battery-full","fa-battery-half","fa-battery-quarter","fa-battery-three-quarters","fa-bed","fa-beer","fa-behance","fa-behance-square","fa-bell","fa-bell-o","fa-bell-slash","fa-bell-slash-o","fa-bicycle","fa-binoculars","fa-birthday-cake","fa-bitbucket","fa-bitbucket-square","fa-bitcoin","fa-black-tie","fa-blind","fa-bluetooth","fa-bluetooth-b","fa-bold","fa-bolt","fa-bomb","fa-book","fa-bookmark","fa-bookmark-o","fa-braille","fa-briefcase","fa-btc","fa-bug","fa-building","fa-building-o","fa-bullhorn","fa-bullseye","fa-bus","fa-buysellads","fa-cab","fa-calculator","fa-calendar","fa-calendar-check-o","fa-calendar-minus-o","fa-calendar-o","fa-calendar-plus-o","fa-calendar-times-o","fa-camera","fa-camera-retro","fa-car","fa-caret-down","fa-caret-left","fa-caret-right","fa-caret-square-o-down","fa-caret-square-o-left","fa-caret-square-o-right","fa-caret-square-o-up","fa-caret-up","fa-cart-arrow-down","fa-cart-plus","fa-cc","fa-cc-amex","fa-cc-diners-club","fa-cc-discover","fa-cc-jcb","fa-cc-mastercard","fa-cc-paypal","fa-cc-stripe","fa-cc-visa","fa-certificate","fa-chain","fa-chain-broken","fa-check","fa-check-circle","fa-check-circle-o","fa-check-square","fa-check-square-o","fa-chevron-circle-down","fa-chevron-circle-left","fa-chevron-circle-right","fa-chevron-circle-up","fa-chevron-down","fa-chevron-left","fa-chevron-right","fa-chevron-up","fa-child","fa-chrome","fa-circle","fa-circle-o","fa-circle-o-notch","fa-circle-thin","fa-clipboard","fa-clock-o","fa-clone","fa-close","fa-cloud","fa-cloud-download","fa-cloud-upload","fa-cny","fa-code","fa-code-fork","fa-codepen","fa-codiepie","fa-coffee","fa-cog","fa-cogs","fa-columns","fa-comment","fa-comment-o","fa-commenting","fa-commenting-o","fa-comments","fa-comments-o","fa-compass","fa-compress","fa-connectdevelop","fa-contao","fa-copy","fa-copyright","fa-creative-commons","fa-credit-card","fa-credit-card-alt","fa-crop","fa-crosshairs","fa-css3","fa-cube","fa-cubes","fa-cut","fa-cutlery","fa-dashboard","fa-dashcube","fa-database","fa-deaf","fa-deafness","fa-dedent","fa-delicious","fa-desktop","fa-deviantart","fa-diamond","fa-digg","fa-dollar","fa-dot-circle-o","fa-download","fa-dribbble","fa-drivers-license","fa-drivers-license-o","fa-dropbox","fa-drupal","fa-edge","fa-edit","fa-eercast","fa-eject","fa-ellipsis-h","fa-ellipsis-v","fa-empire","fa-envelope","fa-envelope-o","fa-envelope-open","fa-envelope-open-o","fa-envelope-square","fa-envira","fa-eraser","fa-etsy","fa-eur","fa-euro","fa-exchange","fa-exclamation","fa-exclamation-circle","fa-exclamation-triangle","fa-expand","fa-expeditedssl","fa-external-link","fa-external-link-square","fa-eye","fa-eye-slash","fa-eyedropper","fa-fa","fa-facebook","fa-facebook-f","fa-facebook-official","fa-facebook-square","fa-fast-backward","fa-fast-forward","fa-fax","fa-feed","fa-female","fa-fighter-jet","fa-file","fa-file-archive-o","fa-file-audio-o","fa-file-code-o","fa-file-excel-o","fa-file-image-o","fa-file-movie-o","fa-file-o","fa-file-pdf-o","fa-file-photo-o","fa-file-picture-o","fa-file-powerpoint-o","fa-file-sound-o","fa-file-text","fa-file-text-o","fa-file-video-o","fa-file-word-o","fa-file-zip-o","fa-files-o","fa-film","fa-filter","fa-fire","fa-fire-extinguisher","fa-firefox","fa-first-order","fa-flag","fa-flag-checkered","fa-flag-o","fa-flash","fa-flask","fa-flickr","fa-floppy-o","fa-folder","fa-folder-o","fa-folder-open","fa-folder-open-o","fa-font","fa-font-awesome","fa-fonticons","fa-fort-awesome","fa-forumbee","fa-forward","fa-foursquare","fa-free-code-camp","fa-frown-o","fa-futbol-o","fa-gamepad","fa-gavel","fa-gbp","fa-ge","fa-gear","fa-gears","fa-genderless","fa-get-pocket","fa-gg","fa-gg-circle","fa-gift","fa-git","fa-git-square","fa-github","fa-github-alt","fa-github-square","fa-gitlab","fa-gittip","fa-glass","fa-glide","fa-glide-g","fa-globe","fa-google","fa-google-plus","fa-google-plus-circle","fa-google-plus-official","fa-google-plus-square","fa-google-wallet","fa-graduation-cap","fa-gratipay","fa-grav","fa-group","fa-h-square","fa-hacker-news","fa-hand-grab-o","fa-hand-lizard-o","fa-hand-o-down","fa-hand-o-left","fa-hand-o-right","fa-hand-o-up","fa-hand-paper-o","fa-hand-peace-o","fa-hand-pointer-o","fa-hand-rock-o","fa-hand-scissors-o","fa-hand-spock-o","fa-hand-stop-o","fa-handshake-o","fa-hard-of-hearing","fa-hashtag","fa-hdd-o","fa-header","fa-headphones","fa-heart","fa-heart-o","fa-heartbeat","fa-history","fa-home","fa-hospital-o","fa-hotel","fa-hourglass","fa-hourglass-1","fa-hourglass-2","fa-hourglass-3","fa-hourglass-end","fa-hourglass-half","fa-hourglass-o","fa-hourglass-start","fa-houzz","fa-html5","fa-i-cursor","fa-id-badge","fa-id-card","fa-id-card-o","fa-ils","fa-image","fa-imdb","fa-inbox","fa-indent","fa-industry","fa-info","fa-info-circle","fa-inr","fa-instagram","fa-institution","fa-internet-explorer","fa-intersex","fa-ioxhost","fa-italic","fa-joomla","fa-jpy","fa-jsfiddle","fa-key","fa-keyboard-o","fa-krw","fa-language","fa-laptop","fa-lastfm","fa-lastfm-square","fa-leaf","fa-leanpub","fa-legal","fa-lemon-o","fa-level-down","fa-level-up","fa-life-bouy","fa-life-buoy","fa-life-ring","fa-life-saver","fa-lightbulb-o","fa-line-chart","fa-link","fa-linkedin","fa-linkedin-square","fa-linode","fa-linux","fa-list","fa-list-alt","fa-list-ol","fa-list-ul","fa-location-arrow","fa-lock","fa-long-arrow-down","fa-long-arrow-left","fa-long-arrow-right","fa-long-arrow-up","fa-low-vision","fa-magic","fa-magnet","fa-mail-forward","fa-mail-reply","fa-mail-reply-all","fa-male","fa-map","fa-map-marker","fa-map-o","fa-map-pin","fa-map-signs","fa-mars","fa-mars-double","fa-mars-stroke","fa-mars-stroke-h","fa-mars-stroke-v","fa-maxcdn","fa-meanpath","fa-medium","fa-medkit","fa-meetup","fa-meh-o","fa-mercury","fa-microchip","fa-microphone","fa-microphone-slash","fa-minus","fa-minus-circle","fa-minus-square","fa-minus-square-o","fa-mixcloud","fa-mobile","fa-mobile-phone","fa-modx","fa-money","fa-moon-o","fa-mortar-board","fa-motorcycle","fa-mouse-pointer","fa-music","fa-navicon","fa-neuter","fa-newspaper-o","fa-object-group","fa-object-ungroup","fa-odnoklassniki","fa-odnoklassniki-square","fa-opencart","fa-openid","fa-opera","fa-optin-monster","fa-outdent","fa-pagelines","fa-paint-brush","fa-paper-plane","fa-paper-plane-o","fa-paperclip","fa-paragraph","fa-paste","fa-pause","fa-pause-circle","fa-pause-circle-o","fa-paw","fa-paypal","fa-pencil","fa-pencil-square","fa-pencil-square-o","fa-percent","fa-phone","fa-phone-square","fa-photo","fa-picture-o","fa-pie-chart","fa-pied-piper","fa-pied-piper-alt","fa-pied-piper-pp","fa-pinterest","fa-pinterest-p","fa-pinterest-square","fa-plane","fa-play","fa-play-circle","fa-play-circle-o","fa-plug","fa-plus","fa-plus-circle","fa-plus-square","fa-plus-square-o","fa-podcast","fa-power-off","fa-print","fa-product-hunt","fa-puzzle-piece","fa-qq","fa-qrcode","fa-question","fa-question-circle","fa-question-circle-o","fa-quora","fa-quote-left","fa-quote-right","fa-ra","fa-random","fa-ravelry","fa-rebel","fa-recycle","fa-reddit","fa-reddit-alien","fa-reddit-square","fa-refresh","fa-registered","fa-remove","fa-renren","fa-reorder","fa-repeat","fa-reply","fa-reply-all","fa-resistance","fa-retweet","fa-rmb","fa-road","fa-rocket","fa-rotate-left","fa-rotate-right","fa-rouble","fa-rss","fa-rss-square","fa-rub","fa-ruble","fa-rupee","fa-s15","fa-safari","fa-save","fa-scissors","fa-scribd","fa-search","fa-search-minus","fa-search-plus","fa-sellsy","fa-send","fa-send-o","fa-server","fa-share","fa-share-alt","fa-share-alt-square","fa-share-square","fa-share-square-o","fa-shekel","fa-sheqel","fa-shield","fa-ship","fa-shirtsinbulk","fa-shopping-bag","fa-shopping-basket","fa-shopping-cart","fa-shower","fa-sign-in","fa-sign-language","fa-sign-out","fa-signal","fa-signing","fa-simplybuilt","fa-sitemap","fa-skyatlas","fa-skype","fa-slack","fa-sliders","fa-slideshare","fa-smile-o","fa-snapchat","fa-snapchat-ghost","fa-snapchat-square","fa-snowflake-o","fa-soccer-ball-o","fa-sort","fa-sort-alpha-asc","fa-sort-alpha-desc","fa-sort-amount-asc","fa-sort-amount-desc","fa-sort-asc","fa-sort-desc","fa-sort-down","fa-sort-numeric-asc","fa-sort-numeric-desc","fa-sort-up","fa-soundcloud","fa-space-shuttle","fa-spinner","fa-spoon","fa-spotify","fa-square","fa-square-o","fa-stack-exchange","fa-stack-overflow","fa-star","fa-star-half","fa-star-half-empty","fa-star-half-full","fa-star-half-o","fa-star-o","fa-steam","fa-steam-square","fa-step-backward","fa-step-forward","fa-stethoscope","fa-sticky-note","fa-sticky-note-o","fa-stop","fa-stop-circle","fa-stop-circle-o","fa-street-view","fa-strikethrough","fa-stumbleupon","fa-stumbleupon-circle","fa-subscript","fa-subway","fa-suitcase","fa-sun-o","fa-superpowers","fa-superscript","fa-support","fa-table","fa-tablet","fa-tachometer","fa-tag","fa-tags","fa-tasks","fa-taxi","fa-telegram","fa-television","fa-tencent-weibo","fa-terminal","fa-text-height","fa-text-width","fa-th","fa-th-large","fa-th-list","fa-themeisle","fa-thermometer","fa-thermometer-0","fa-thermometer-1","fa-thermometer-2","fa-thermometer-3","fa-thermometer-4","fa-thermometer-empty","fa-thermometer-full","fa-thermometer-half","fa-thermometer-quarter","fa-thermometer-three-quarters","fa-thumb-tack","fa-thumbs-down","fa-thumbs-o-down","fa-thumbs-o-up","fa-thumbs-up","fa-ticket","fa-times","fa-times-circle","fa-times-circle-o","fa-times-rectangle","fa-times-rectangle-o","fa-tint","fa-toggle-down","fa-toggle-left","fa-toggle-off","fa-toggle-on","fa-toggle-right","fa-toggle-up","fa-trademark","fa-train","fa-transgender","fa-transgender-alt","fa-trash","fa-trash-o","fa-tree","fa-trello","fa-tripadvisor","fa-trophy","fa-truck","fa-try","fa-tty","fa-tumblr","fa-tumblr-square","fa-turkish-lira","fa-tv","fa-twitch","fa-twitter","fa-twitter-square","fa-umbrella","fa-underline","fa-undo","fa-universal-access","fa-university","fa-unlink","fa-unlock","fa-unlock-alt","fa-unsorted","fa-upload","fa-usb","fa-usd","fa-user","fa-user-circle","fa-user-circle-o","fa-user-md","fa-user-o","fa-user-plus","fa-user-secret","fa-user-times","fa-users","fa-vcard","fa-vcard-o","fa-venus","fa-venus-double","fa-venus-mars","fa-viacoin","fa-viadeo","fa-viadeo-square","fa-video-camera","fa-vimeo","fa-vimeo-square","fa-vine","fa-vk","fa-volume-control-phone","fa-volume-down","fa-volume-off","fa-volume-up","fa-warning","fa-wechat","fa-weibo","fa-weixin","fa-whatsapp","fa-wheelchair","fa-wheelchair-alt","fa-wifi","fa-wikipedia-w","fa-window-close","fa-window-close-o","fa-window-maximize","fa-window-minimize","fa-window-restore","fa-windows","fa-won","fa-wordpress","fa-wpbeginner","fa-wpexplorer","fa-wpforms","fa-wrench","fa-xing","fa-xing-square","fa-y-combinator","fa-y-combinator-square","fa-yahoo","fa-yc","fa-yc-square","fa-yelp","fa-yen","fa-yoast","fa-youtube","fa-youtube-play","fa-youtube-square"]; +}); \ No newline at end of file diff --git a/modules/iqitmegamenu/views/js/front.js b/modules/iqitmegamenu/views/js/front.js new file mode 100644 index 00000000..0aec3ad1 --- /dev/null +++ b/modules/iqitmegamenu/views/js/front.js @@ -0,0 +1,355 @@ +/** +* 2014-2017 IQIT-COMMERCE.COM +* +* NOTICE OF LICENSE +* +* @author IQIT-COMMERCE.COM +* @copyright 2007-2017 IQIT-COMMERCE.COM +* @license GNU General Public License version 2 +* +* You can not resell or redistribute this software. +* +*/ + +// classie - class helper functions, from bonzo https://github.com/ded/bonzo + +!function(a){"use strict";function b(a){return new RegExp("(^|\\s+)"+a+"(\\s+|$)")}function f(a,b){var f=c(a,b)?e:d;f(a,b)}var c,d,e;"classList"in document.documentElement?(c=function(a,b){return a.classList.contains(b)},d=function(a,b){a.classList.add(b)},e=function(a,b){a.classList.remove(b)}):(c=function(a,c){return b(c).test(a.className)},d=function(a,b){c(a,b)||(a.className=a.className+" "+b)},e=function(a,c){a.className=a.className.replace(b(c)," ")});var g={hasClass:c,addClass:d,removeClass:e,toggleClass:f,has:c,add:d,remove:e,toggle:f};"function"==typeof define&&define.amd?define(g):a.classie=g}(window); + +//hover intent +(function($){$.fn.hoverIntent=function(handlerIn,handlerOut,selector){var cfg={interval:100,sensitivity:6,timeout:0};if(typeof handlerIn==="object"){cfg=$.extend(cfg,handlerIn)}else{if($.isFunction(handlerOut)){cfg=$.extend(cfg,{over:handlerIn,out:handlerOut,selector:selector})}else{cfg=$.extend(cfg,{over:handlerIn,out:handlerIn,selector:handlerOut})}}var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if(Math.sqrt((pX-cX)*(pX-cX)+(pY-cY)*(pY-cY)) ul > li' ), + $menuItems = $listItems.children( 'a, .cbp-main-link' ), + $innerTabs = $( menuId + ' .cbp-hrsub-tabs-names li > a' ), + $body = $( 'body' ), + current = -1; + currentlevel = -1; + + $listItems.has('ul').find(' > a').doubleTapToGo(); + + function init() { + var isTouchDevice = 'ontouchstart' in document.documentElement; + if( isTouchDevice ) { + $menuItems.on( 'mouseover', open ); + } + else{ + $menuItems.hoverIntent( { + over: open, + out: dnthing, + interval: 30 + } ); + } + + $listItems.on( 'mouseover', function( event ) { event.stopPropagation(); } ); + + $innerTabs.hover( function(){ + $innerTabs.removeClass('active'); + $(this).tab('show'); + }); + } + + var setCurrent = function(strName) { + current = strName; + }; + + function dnthing( event ) { + + } + + function open( event ) { + + $othemenuitem = $('#cbp-hrmenu1').find('.cbp-hropen'); + + + $othemenuitem.find('.cbp-hrsub').removeClass('cbp-show'); + $othemenuitem.removeClass( 'cbp-hropen' ); + + cbpVerticalmenu.setCurrent(-1); + + var $item = $( event.currentTarget ).parent( 'li' ), + idx = $item.index(); + + + $submenu = $item.find('.cbp-hrsub'); + + if(current == idx ) + return; + + $submenu.removeClass('cbp-notfit'); + $submenu.removeClass('cbp-show'); + + if( current !== -1 ) { + $listItems.eq( current ).removeClass( 'cbp-hropen' ); + } + + if( current === idx ) { + $item.removeClass( 'cbp-hropen' ); + current = -1; + + } + else { + $submenu.addClass( 'cbp-show' ); + iqitmenuwidth = $(menuId).width(); + iqititemposition = $item.position().left; + + triangleoffset = iqitmenuwidth-$submenu.width(); + + if((iqitmenuwidth-iqititemposition)<$submenu.width()) + { + $submenu.addClass( 'cbp-notfit' ); + $submenu.find('.cbp-triangle-container').css({left: (iqititemposition-12+$item.width()/2)-triangleoffset }); + } + else + $submenu.find('.cbp-triangle-container').css({left: (-12+$item.width()/2) }); + + + + $item.addClass( 'cbp-hropen' ); + current = idx; + $body.off( 'mouseover' ).on( 'mouseover', close ); + } + + + + return false; + + } + + function close( event ) { + $listItems.eq( current ).removeClass( 'cbp-hropen' ); + current = -1; + } + + return { init : init, + setCurrent: setCurrent + }; + + })(); + + cbpHorizontalMenu.init(); + + if (iqitmegamenu.sticky) { + var s = $("#iqitmegamenu-horizontal"); + var pos = s.offset(); + var alreadySticky = false; + + $(window).scroll(function() { + var windowpos = $(window).scrollTop(); + if ( s.length ){ + if(!alreadySticky) { + if (windowpos >= pos.top) { + alreadySticky = true; + s.parent().height(s.height()); + s.removeClass("cbp-nosticky"); + s.addClass("cbp-sticky"); + } + } + if(alreadySticky) { + if (windowpos < pos.top) { + alreadySticky = false; + s.removeClass("cbp-sticky"); + s.addClass("cbp-nosticky"); + s.parent().removeAttr("style"); + }} + } + }); + } + +}); + +$(document).ready(function(){ + + $('.cbp-vertical-on-top').on( 'mouseover', function() { + $(this).addClass('cbp-vert-expanded'); + }); + + $('.cbp-vertical-on-top').on( 'mouseleave', function() { + $(this).removeClass('cbp-vert-expanded'); + }); + + + + cbpVerticalmenu = (function(test) { + + var menuId = '#cbp-hrmenu1', + $listItems = $( menuId + '> ul > li' ), + $menuItems = $listItems.children( 'a' ), + $innerTabs = $( menuId + ' .cbp-hrsub-tabs-names li > a' ), + $body = $( 'body' ), + current = -1, + currentlevel = -1; + + $listItems.has('ul').find(' > a').doubleTapToGo(); + + + + function init() { + + var isTouchDevice = 'ontouchstart' in document.documentElement; + if( isTouchDevice ) { + $menuItems.on( 'mouseover', open ); + } + else{ + $menuItems.hoverIntent( { + over: open, + out: dnthing, + interval: 30 + } ); + } + + + + $listItems.on( 'mouseover', function( event ) { event.stopPropagation(); } ); + + $innerTabs.hover( function(){ + console.log('aas'); + $innerTabs.removeClass('active'); + $(this).tab('show'); + }); + + $( window ).resize(function() { + $('cbp-hrmenu-tab').not('.cbp-hropen').find( '.cbp-hrsub-wrapper' ).removeAttr( 'style' ); + }); + } + + function dnthing( event ) { + + } + + var setCurrent = function(strName) { + current = strName; + }; + + function open( event ) { + + + $othemenuitem = $('#cbp-hrmenu').find('.cbp-hropen'); + + $othemenuitem.find('.cbp-hrsub').removeClass('cbp-show'); + closeElement($othemenuitem); + + cbpHorizontalMenu.setCurrent(-1); + + var $item = $( event.currentTarget ).parent( 'li' ), + idx = $item.index(); + + if(current == idx ) + return; + + $submenu = $item.find('.cbp-hrsub'); + $submenu.removeClass('cbp-show'); + + if( current !== -1 ) { + closeElement($listItems.eq( current )); + } + + if( current === idx ) { + closeElement($item); + current = -1; + + } + else { + $submenu.parent().width($(iqitmegamenu.containerSelector).width()-$(menuId).width()); + callerHeight = $item.height(); + $submenu.parent().css( { marginLeft : $item.innerWidth()+"px", marginRight : $item.innerWidth()+"px", marginTop : -callerHeight+"px" } ); + $submenu.find('.cbp-triangle-container').css({top: (callerHeight-24)/2}); + $submenu.addClass( 'cbp-show' ); + $item.addClass( 'cbp-hropen' ); + current = idx; + $body.off( 'mouseover' ).on( 'mouseover', close ); + } + + + + return false; + + } + + function close( event ) { + closeElement($listItems.eq( current )); + current = -1; + } + + function closeElement( $element ) { + $element.removeClass( 'cbp-hropen' ); + } + + return { init : init, + setCurrent: setCurrent + }; + + })(); + + cbpVerticalmenu.init(); + +}); + + +$(document).ready(function(){ + + + var cbpPush = (function() { + + + $('body').prepend($('#iqitmegamenu-mobile-content')); + + + $(".responsiveInykator").on("click", function () { + + if (false == $(this).parent().next().is(':visible')) { + $('#iqitmegamenu-accordion > ul').removeClass('cbpm-ul-showed'); + } + + if ($(this).text() == "+"){ + $(this).text("-"); + } + else{ + $(this).text("+"); + } + $(this).parent().children('ul').toggleClass('cbpm-ul-showed'); + }); + + + var menuLeft = document.getElementById('iqitmegamenu-accordion'), + showLeftPush = document.getElementById('iqitmegamenu-shower'), + menuoverlay = document.getElementById('cbp-spmenu-overlay'), + body = document.body; + + classie.addClass(body, 'cbp-spmenu-body'); + + $('#iqitmegamenu-shower').on("touchstart click", function (e) { + e.stopPropagation(); + e.preventDefault(); + classie.toggle(showLeftPush, 'active'); + classie.toggle(body, 'cbp-spmenu-push-toright'); + classie.toggle(menuLeft, 'cbp-spmenu-open'); + classie.toggle(menuoverlay, 'cbp-spmenu-overlay-show'); + }); + + $('#cbp-spmenu-overlay').on("touchstart click", function (e) { + e.stopPropagation(); + e.preventDefault(); + classie.toggle(this, 'active'); + classie.toggle(body, 'cbp-spmenu-push-toright'); + classie.toggle(menuLeft, 'cbp-spmenu-open'); + classie.toggle(this, 'cbp-spmenu-overlay-show'); + }); + + }); + + cbpPush(); + +}); + + + diff --git a/modules/iqitmegamenu/views/js/index.php b/modules/iqitmegamenu/views/js/index.php new file mode 100644 index 00000000..aa927700 --- /dev/null +++ b/modules/iqitmegamenu/views/js/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2014 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); +header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); + +header('Cache-Control: no-store, no-cache, must-revalidate'); +header('Cache-Control: post-check=0, pre-check=0', false); +header('Pragma: no-cache'); + +header('Location: ../'); +exit; diff --git a/modules/iqitmegamenu/views/js/jquery.auto-complete.js b/modules/iqitmegamenu/views/js/jquery.auto-complete.js new file mode 100644 index 00000000..29fc55a1 --- /dev/null +++ b/modules/iqitmegamenu/views/js/jquery.auto-complete.js @@ -0,0 +1,146 @@ +/* + jQuery autoComplete v1.0.7 + Copyright (c) 2014 Simon Steinberger / Pixabay + GitHub: https://github.com/Pixabay/jQuery-autoComplete + License: http://www.opensource.org/licenses/mit-license.php +*/ + +(function($){ + $.fn.autoCompleteIq = function(options){ + var o = $.extend({}, $.fn.autoCompleteIq.defaults, options); + + // public methods + if (typeof options == 'string') { + this.each(function(){ + var that = $(this); + if (options == 'destroy') { + that.off('blur.autocomplete focus.autocomplete keydown.autocomplete keyup.autocomplete'); + if (that.data('autocomplete')) + that.attr('autocomplete', that.data('autocomplete')); + else + that.removeAttr('autocomplete'); + $(that.data('sc')).remove(); + that.removeData('sc').removeData('autocomplete'); + } + }); + return this; + } + + return this.each(function(){ + var that = $(this); + // sc = 'suggestions container' + that.sc = $('
    '); + that.data('sc', that.sc).data('autocomplete', that.attr('autocomplete')); + that.attr('autocomplete', 'off'); + that.cache = {}; + that.last_val = ''; + + that.updateSC = function(resize, next){ + that.sc.show(); + }; + + that.sc.insertAfter(that.parent()); + + that.sc.on('mouseleave', '.autocomplete-suggestion', function (){ + $('.autocomplete-suggestion.selected').removeClass('selected'); + }); + + that.sc.on('mouseenter', '.autocomplete-suggestion', function (){ + $('.autocomplete-suggestion.selected').removeClass('selected'); + $(this).addClass('selected'); + }); + + that.sc.on('mousedown click', '.autocomplete-suggestion', function (e){ + var item = $(this), v = item.data('val'); + if (v || item.hasClass('autocomplete-suggestion')) { // else outside click + that.val(v); + o.onSelect(e, v, item); + that.sc.hide(); + } + return false; + }); + + that.on('blur.autocomplete', function(){ + that.sc.hide(); + }); + + if (!o.minChars) that.on('focus.autocomplete', function(){ that.last_val = '\n'; that.trigger('keyup.autocomplete'); }); + + function suggest(data){ + var val = that.val(); + that.cache[val] = data; + if (data.length && val.length >= o.minChars) { + var s = ''; + for (var i=0;i= o.minChars) { + if (val != that.last_val) { + that.last_val = val; + clearTimeout(that.timer); + if (o.cache) { + if (val in that.cache) { suggest(that.cache[val]); return; } + // no requests if previous suggestions were empty + for (var i=1; i' + item.replace(re, "$1") + ''; + }, + onSelect: function(e, term, item){} + }; +}(jQuery)); diff --git a/modules/iqitmegamenu/views/templates/admin/_configure/helpers/form/column_content.tpl b/modules/iqitmegamenu/views/templates/admin/_configure/helpers/form/column_content.tpl new file mode 100644 index 00000000..2b5cbd61 --- /dev/null +++ b/modules/iqitmegamenu/views/templates/admin/_configure/helpers/form/column_content.tpl @@ -0,0 +1,871 @@ +{* +* 2007-2017 IQIT-COMMERCE.COM +* +* NOTICE OF LICENSE +* +* @author IQIT-COMMERCE.COM +* @copyright 2007-2017 IQIT-COMMERCE.COM +* @license GNU General Public License version 2 +* +* You can not resell or redistribute this software. +* +*} + + + + + diff --git a/modules/iqitmegamenu/views/templates/admin/_configure/helpers/form/form.tpl b/modules/iqitmegamenu/views/templates/admin/_configure/helpers/form/form.tpl new file mode 100644 index 00000000..7682341f --- /dev/null +++ b/modules/iqitmegamenu/views/templates/admin/_configure/helpers/form/form.tpl @@ -0,0 +1,470 @@ +{* +* 2007-2017 IQIT-COMMERCE.COM +* +* NOTICE OF LICENSE +* +* @author IQIT-COMMERCE.COM +* @copyright 2007-2017 IQIT-COMMERCE.COM +* @license GNU General Public License version 2 +* +* You can not resell or redistribute this software. +* +*} + + + + +{extends file="helpers/form/form.tpl"} + + +{block name="script"} + +$(document).ready(function() { + + + $('.iframe-upload').fancybox({ + 'width' : 900, + 'height' : 600, + 'type' : 'iframe', + 'autoScale' : false, + 'autoDimensions': false, + 'fitToView' : false, + 'autoSize' : false, + onUpdate : function(){ $('.fancybox-iframe').contents().find('a.link').data('field_id', $(this.element).data("input-name")); + $('.fancybox-iframe').contents().find('a.link').attr('data-field_id', $(this.element).data("input-name"));}, + afterShow: function(){ + $('.fancybox-iframe').contents().find('a.link').data('field_id', $(this.element).data("input-name")); + $('.fancybox-iframe').contents().find('a.link').attr('data-field_id', $(this.element).data("input-name")); + } + }); + + $('.iframe-column-upload').fancybox({ + 'width' : 900, + 'height' : 600, + 'type' : 'iframe', + 'autoScale' : false, + 'autoDimensions': false, + 'fitToView' : false, + 'autoSize' : false, + onUpdate : function(){ + $('.fancybox-iframe').contents().find('a.link').data('field_id', $(this.element).data("input-name")); + $('.fancybox-iframe').contents().find('a.link').attr('data-field_id', $(this.element).data("input-name")); + }, + afterShow: function(){ + $('.fancybox-iframe').contents().find('a.link').data('field_id', $(this.element).data("input-name")); + $('.fancybox-iframe').contents().find('a.link').attr('data-field_id', $(this.element).data("input-name")); + } + }); + +var control = $("#url_type"); + +if (control.val() == 1) +{ +$("#custom-url-wrapper").removeClass('hidden'); +$("#system-url-wrapper").addClass('hidden'); +} + +if (control.val() == 0) { +$("#custom-url-wrapper").addClass('hidden'); +$("#system-url-wrapper").removeClass('hidden'); +} + +if (control.val() == 2) { +$("#custom-url-wrapper").addClass('hidden'); +$("#system-url-wrapper").addClass('hidden'); +} + + + +$("#url_type").change(function() { + var control = $(this); + +if (control.val() == 1) +{ +$("#custom-url-wrapper").removeClass('hidden'); +$("#system-url-wrapper").addClass('hidden'); +} + +if (control.val() == 0) { +$("#custom-url-wrapper").addClass('hidden'); +$("#system-url-wrapper").removeClass('hidden'); +} + +if (control.val() == 2) { +$("#custom-url-wrapper").addClass('hidden'); +$("#system-url-wrapper").addClass('hidden'); +} + +}); + + +var control = $("#icon_type"); + +if (control.val() == 1) +{ +$("#icon-class-wrapper").removeClass('hidden'); +$("#image-icon-wrapper").addClass('hidden'); +} + +if (control.val() == 0) { +$("#icon-class-wrapper").addClass('hidden'); +$("#image-icon-wrapper").removeClass('hidden'); +} + + + +$("#icon_type").change(function() { + var control = $(this); + +if (control.val() == 1) +{ +$("#icon-class-wrapper").removeClass('hidden'); +$("#image-icon-wrapper").addClass('hidden'); +} + +if (control.val() == 0) { +$("#icon-class-wrapper").addClass('hidden'); +$("#image-icon-wrapper").removeClass('hidden'); +} + +}); + + +var control1 = $("#submenu_type"); + +if (control1.val() == 2) +{ +$("#grid-submenu").removeClass('hidden'); +$("#cssstyle-submenu").removeClass('hidden'); + + +} + +if (control1.val() == 1) +{ +$("#tabs-submenu").removeClass('hidden'); +$("#cssstyle-submenu").removeClass('hidden'); +} + +$("#submenu_type").change(function() { + var control1 = $(this); +if (control1.val() == 2) +{ +$("#grid-submenu").removeClass('hidden'); +$("#cssstyle-submenu").removeClass('hidden'); +$("#tabs-submenu").addClass('hidden'); +} + +if (control1.val() == 1) +{ +$("#tabs-submenu").removeClass('hidden'); +$("#grid-submenu").addClass('hidden'); +$("#cssstyle-submenu").removeClass('hidden'); +} + +if (control1.val() == 0) { +$("#tabs-submenu").addClass('hidden'); +$("#grid-submenu").addClass('hidden'); +$("#cssstyle-submenu").addClass('hidden'); +} + +}); + + + $('.list-wrapper-horizontal').show(); + $('#options_tab a').click(function (e) { + e.preventDefault(); + $('.list-wrapper').hide(); + if($(this).attr('href')=='#main_tab') + $('.list-wrapper-horizontal').show(); + if($(this).attr('href')=='#vertical_tab') + $('.list-wrapper-vertical').show(); + if($(this).attr('href')=='#submenutabs_tab') + $('.list-wrapper-submenutabs').show(); + if($(this).attr('href')=='#customhtml_tab') + $('.list-wrapper-html').show(); + + + + $(this).tab('show'); + }); + +$('#menuOrderUp').click(function(e){ + e.preventDefault(); + move(true); +}); +$('#menuOrderDown').click(function(e){ + e.preventDefault(); + move(); +}); +$("#items").closest('form').on('submit', function(e) { + $("#items option").prop('selected', true); +}); +$("#addItem").click(add); +$("#availableItems").dblclick(add); +$("#removeItem").click(remove); +$("#items").dblclick(remove); +function add() +{ + $("#availableItems option:selected").each(function(i){ + var val = $(this).val(); + var text = $(this).text(); + text = text.replace(/(^\s*)|(\s*$)/gi,""); + if (val == "PRODUCT") + { + val = prompt('{l s='Indicate the ID number for the product' mod='iqitmegamenu' js=1}'); + if (val == null || val == "" || isNaN(val)) + return; + text = '{l s='Product ID #' mod='iqitmegamenu' js=1}'+val; + val = "PRD"+val; + } + $("#items").append(''); + }); + serialize(); + return false; +} +function remove() +{ + $("#items option:selected").each(function(i){ + $(this).remove(); + }); + serialize(); + return false; +} +function serialize() +{ + var options = ""; + $("#items option").each(function(i){ + options += $(this).val()+","; + }); + $("#itemsInput").val(options.substr(0, options.length - 1)); +} +function move(up) +{ + var tomove = $('#items option:selected'); + if (tomove.length >1) + { + alert('{l s='Please select just one item' mod='iqitmegamenu'}'); + return false; + } + if (up) + tomove.prev().insertAfter(tomove); + else + tomove.next().insertBefore(tomove); + serialize(); + return false; +} + + +}); + + + +{/block} + + +{block name="defaultForm"} +
    +
    +
    +
    +
    +
    +{$smarty.block.parent} +
    +
    +{/block} + +{block name="fieldset"} +{if $fieldset.form.tab_name != 'save_tab'} + +
    + {*HTML CONTENT*} {if isset($fieldset.form.assigned_list)}
    {$fieldset.form.assigned_list nofilter}
    {/if} +
    +{/if} +{$smarty.block.parent} +{if $fieldset.form.tab_name != 'save_tab'}
    {/if} +{/block} + + +{block name="label"} +{if ($input.type == 'grid_creator') || ($input.type == 'ietool') } +{else} +{$smarty.block.parent} +{/if} +{/block} + +{block name="input_row"} +{if !isset($input.iqitTheme) || !$input.iqitTheme} +{if isset($input.hide) && $input.hide}
    {/if} +{if isset($input.preffix_wrapper)}{/if} +{if isset($input.hide) && $input.hide}
    {/if} +{/if} +{/block} + + +{block name="input"} + {if $input.type == 'link_choice'} +
    +
    +

    {l s='Change position' mod='iqitmegamenu'}

    +
    +
    +
    +
    +

    {l s='Selected items' mod='iqitmegamenu'}

    + {*HTML CONTENT*} {$selected_links nofilter} +
    +
    +

    {l s='Available items' mod='iqitmegamenu'}

    + {*HTML CONTENT*} {$choices nofilter} +
    + +
    +
    + + {elseif $input.type == 'tabs_choice'} +
    +
    +

    {l s='Change position' mod='iqitmegamenu'}

    +
    +
    +
    +
    +

    {l s='Selected tabs' mod='iqitmegamenu'}

    + {*HTML CONTENT*} {$selected_tabs nofilter} +
    +
    +

    {l s='Available predefined tabs' mod='iqitmegamenu'}

    + {*HTML CONTENT*} {$choices_tabs nofilter} +
    + +
    +
    + + {elseif $input.type == 'grid_creator'} + {*HTML CONTENT*} + + + + + + +
    +
    + + {foreach $submenu_content_format as $element} + {include file="./submenu_content.tpl" node=$element} + {/foreach} + +
    +
    +
    + + + + +
    +
    +
    +
    + + + {elseif $input.type == 'image_upload'} +

    + {l s='Select image' mod='iqitmegamenu'} + + {elseif $input.type == 'ietool'} + +
    {l s='Design import/export' mod='iqitmegamenu'}
    +
    + + + +
    +
    {l s='Tabs import/export' mod='iqitmegamenu'}
    +
    + + + +
    +
    + {l s='If you using multistore: It will import or export design or tabs of your currently selected store only.' mod='iqitmegamenu'} +
    + + + {elseif $input.type == 'custom_select'} + {*HTML CONTENT*} {$input.choices nofilter} + + + {elseif $input.type == 'icon_selector'} +
    + + {l s='Select icon' mod='iqitmegamenu'} +
    + + {elseif $input.type == 'border_generator'} + +
    + +
    +
    + +
    +
    +
    +
    + +
    + + {elseif $input.type == 'custom_info'} +   + {else} + {$smarty.block.parent} + {/if} +{/block} + + + + diff --git a/modules/iqitmegamenu/views/templates/admin/_configure/helpers/form/index.php b/modules/iqitmegamenu/views/templates/admin/_configure/helpers/form/index.php new file mode 100644 index 00000000..a41987df --- /dev/null +++ b/modules/iqitmegamenu/views/templates/admin/_configure/helpers/form/index.php @@ -0,0 +1,35 @@ + +* @copyright 2007-2014 PrestaShop SA +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); + +header("Cache-Control: no-store, no-cache, must-revalidate"); +header("Cache-Control: post-check=0, pre-check=0", false); +header("Pragma: no-cache"); + +header("Location: ../"); +exit; \ No newline at end of file diff --git a/modules/iqitmegamenu/views/templates/admin/_configure/helpers/form/subcategory.tpl b/modules/iqitmegamenu/views/templates/admin/_configure/helpers/form/subcategory.tpl new file mode 100644 index 00000000..410b7046 --- /dev/null +++ b/modules/iqitmegamenu/views/templates/admin/_configure/helpers/form/subcategory.tpl @@ -0,0 +1,25 @@ +{* +* 2007-2017 IQIT-COMMERCE.COM +* +* NOTICE OF LICENSE +* +* @author IQIT-COMMERCE.COM +* @copyright 2007-2017 IQIT-COMMERCE.COM +* @license GNU General Public License version 2 +* +* You can not resell or redistribute this software. +* +*} + + +{foreach $categories as $category} + + {if isset($category.children)} + + {if isset($ids) && $type == 2} + {include file="./subcategory.tpl" categories=$category.children ids=$ids type=$type} + {else} + {include file="./subcategory.tpl" categories=$category.children} + {/if} + {/if} +{/foreach} diff --git a/modules/iqitmegamenu/views/templates/admin/_configure/helpers/form/submenu_content.tpl b/modules/iqitmegamenu/views/templates/admin/_configure/helpers/form/submenu_content.tpl new file mode 100644 index 00000000..449ec7db --- /dev/null +++ b/modules/iqitmegamenu/views/templates/admin/_configure/helpers/form/submenu_content.tpl @@ -0,0 +1,38 @@ +{* +* 2007-2017 IQIT-COMMERCE.COM +* +* NOTICE OF LICENSE +* +* @author IQIT-COMMERCE.COM +* @copyright 2007-2017 IQIT-COMMERCE.COM +* @license GNU General Public License version 2 +* +* You can not resell or redistribute this software. +* +*} + + + {if $node.type==1} +