Files
2024-10-28 22:14:22 +01:00

1845 lines
65 KiB
PHP

<?php
/**
* 2007-2022 Leotheme
*
* NOTICE OF LICENSE
*
* LeoElements is module help you can build content for your shop
*
* DISCLAIMER
*
* @author Leotheme <leotheme@gmail.com>
* @copyright 2007-2022 Leotheme
* @license http://leotheme.com - prestashop template provider
*/
if (!defined('_PS_VERSION_')) {
# module validation
exit;
}
class leoECHelper
{
public static function getLicenceTPL()
{
return Tools::file_get_contents( _PS_MODULE_DIR_.'leoelements/views/templates/admin/licence_tpl.txt');
}
/**
* generate array to use in create helper form
*/
public static function getArrayOptions($ids = array(), $names = array(), $val = 1)
{
$res = array();
foreach ($names as $key => $value) {
// module validate
unset($value);
$res[] = array(
'id' => $ids[$key],
'name' => $names[$key],
'val' => $val,
);
}
return $res;
}
/**
* Check is Release or Developing
* Release : load css in themes/THEME_NAME/modules/MODULE_NAME/ folder
* Developing : load css in themes/THEME_NAME/assets/css/ folder
*/
public static function isRelease()
{
if (defined('_LEO_MODE_DEV_') && _LEO_MODE_DEV_ === true) {
# CASE DEV
return false;
}
# Release
return true;
}
public static function defaultConfig() {
$category = array('filter_position' => '1', 'use_button_toggle' => 0, 'category_position' => '1', 'category_image' => '1', 'category_des' => '1', 'category_dleng' => 140, 'scategory_position' => 1, 'scategory_image' => 1, 'scategory_des' => 1, 'scategory_dleng' => 140, 'product_list' => 0, 'product_list_mobile' => 0, 'product_list_tablet' => 0);
$product_list = array('listing_product_mode' => 'grid', 'listing_product_column_module' => 3, 'listing_product_column' => 3, 'listing_product_largedevice' => 3, 'listing_product_tablet' => 2, 'listing_product_extrasmalldevice' => 2, 'listing_product_mobile' => 1 ,'top_total' => 1, 'top_sortby' => 1, 'top_grid'=>'1', 'pg_count' => 1, 'pg_type' => 1, 'plist_load_more_product_img' => 0, 'plist_load_more_product_img_option' => 1, 'plist_load_multi_product_img' => 0, 'plist_load_cdown' => 0, 'lmobile_swipe' => 0, 'class' => '');
return array('category' => $category, 'product_list' => $product_list);
}
public static function createDir($path = '')
{
if (!file_exists($path))
{
if (!mkdir($path, 0755, true))
{
die("Please create folder ".$path." and set permission 755");
}
}
}
public static function getConfigDir($key = '_PS_THEME_DIR_', $value = '')
{
static $data;
if (!$data )
{
$folder_theme = _PS_ALL_THEMES_DIR_._THEME_NAME_.'/';
$data = array(
'module_img_admin' => _PS_ROOT_DIR_.'/modules/leoelements/img/admin/',
'module_details' => _PS_ROOT_DIR_.'/modules/leoelements/views/templates/front/products/',
'module_profiles' => _PS_ROOT_DIR_.'/modules/leoelements/views/templates/front/profiles/',
'theme_ap_image' => $folder_theme.'assets/img/modules/leoelements/images/', // apPageHelper::getImgThemeDir()
'theme_ap_icon' => $folder_theme.'assets/img/modules/leoelements/icon/', // apPageHelper::getImgThemeDir('icon')
'theme_profile_logo' => $folder_theme.'profiles/images/',
'theme_profile_js' => $folder_theme.'modules/leoelements/js/profiles/',
'theme_profile_css' => $folder_theme.'modules/leoelements/css/profiles/',
'theme_position_js' => $folder_theme.'modules/leoelements/js/positions/',
'theme_position_css' => $folder_theme.'modules/leoelements/css/positions/',
'theme_export_profile' => $folder_theme.'profiles_export/',
'theme_download_profile' => $folder_theme.'profiles_download/',
'theme_image_leoelements' => $folder_theme.'assets/img/modules/leoelements/',
'theme_image_leoslideshow' => $folder_theme.'assets/img/modules/leoslideshow/',
'theme_image_leoblog' => $folder_theme.'assets/img/modules/leoblog/',
'theme_image_leobootstrapmenu' => $folder_theme.'assets/img/modules/leobootstrapmenu/',
'theme_details' => $folder_theme.'templates/catalog/_partials/miniatures/',
'theme_profiles' => $folder_theme.'profiles/',
'_PS_THEME_DIR_' => $folder_theme,
);
if (version_compare(_PS_VERSION_, '1.7.4.0', '>=') || version_compare(Configuration::get('PS_VERSION_DB'), '1.7.4.0', '>=')) {
$data['theme_profiles'] = $folder_theme.'modules/leoelements/views/templates/front/profiles/';
}
}
if ($value && !array_key_exists($key.$value, $data)) {
$temp = array(
'theme_pfdl_ap' => $folder_theme.'profiles_download/'.'_TUANVU_'.'/leoelements/',
'theme_pfdl_ap_image' => $folder_theme.'profiles_download/'.'_TUANVU_'.'/leoelements/images/', // apPageHelper::getConfigDir('theme_export_profile') . $this->profile_key . '/leoelements/images/';
'theme_pfdl_ap_icon' => $folder_theme.'profiles_download/'.'_TUANVU_'.'/leoelements/icon/', // apPageHelper::getConfigDir('theme_export_profile') . $this->profile_key . '/leoelements/icon/';
);
if (!isset($temp[$key])) {
$temp[$key] = '';
}
$data[$key.$value] = str_replace('_TUANVU_', $value, $temp[$key]);
}
if (isset($data[$key.$value])) {
return $data[$key.$value];
} else {
return '';
}
}
public static function getUriFromPath($fullPath)
{
$uri = str_replace(
_PS_ROOT_DIR_,
rtrim(__PS_BASE_URI__, '/'),
$fullPath
);
return str_replace(DIRECTORY_SEPARATOR, '/', $uri);
}
public static function getSkins()
{
$folders = array();
if (!leoECHelper::isRelease()) {
$folders[] = leoECHelper::getConfigDir('_PS_THEME_DIR_').'assets/css/'.leoECHelper::getCssDir().'skins/*';
}
$folders[] = leoECHelper::getConfigDir('_PS_THEME_DIR_').leoECHelper::getCssDir().'skins/*';
$output = array();
foreach ($folders as $folder) {
$dirs = glob($folder, GLOB_ONLYDIR);
$output = array();
if ($dirs) {
$i = 0;
foreach ($dirs as $dir) {
$output[$i]['id'] = basename($dir);
$output[$i]['name'] = Tools::ucfirst(basename($dir));
$skinFileUrl = leoECHelper::getUriFromPath($dir).'/';
if (file_exists($dir.'/icon.png')) {
$output[$i]['icon'] = $skinFileUrl.'icon.png';
}
$output[$i]['css'] = $skinFileUrl;
$isRTL = Context::getContext()->language->is_rtl;
if ($isRTL && file_exists($dir.'/custom-rtl.css')) {
$output[$i]['rtl'] = 1;
} else {
$output[$i]['rtl'] = 0;
}
$i++;
}
}
if (!empty($output)) {
break;
}
}
return $output;
}
public static function getInstance()
{
static $_instance;
if (!$_instance) {
$_instance = new leoECHelper();
}
return $_instance;
}
public static function getConfigName($name)
{
return Tools::strtoupper(self::getThemeKey().'_'.$name);
}
public static function getThemeKey($module_key = 'leo_module')
{
static $theme_key;
if (!$theme_key) {
#CASE : load theme_key from ROOT/THEMES/THEME_NAME/config.xml
$xml = self::getThemeInfo(self::getThemeName());
if (isset($xml->theme_key)) {
$theme_key = trim((string)$xml->theme_key);
}
}
if (!$theme_key && !empty($module_key)) {
#CASE : default load from module_key
$theme_key = $module_key;
}
return $theme_key;
}
public static function getCssAdminDir()
{
static $css_folder;
if (!$css_folder) {
if (is_dir(_PS_MODULE_DIR_.'leoelements/views/css/')) {
$css_folder = __PS_BASE_URI__.'modules/leoelements/views/css/';
} else {
$css_folder = __PS_BASE_URI__.'modules/leoelements/css/';
}
}
return $css_folder;
}
public static function getCssDir()
{
static $css_folder;
if (!$css_folder) {
if (is_dir(_PS_MODULE_DIR_.'leoelements/views/css/')) {
$css_folder = 'modules/leoelements/views/css/';
} else {
$css_folder = 'modules/leoelements/css/';
}
}
return $css_folder;
}
public static function getJsDir()
{
static $js_folder;
if (!$js_folder) {
if (is_dir(_PS_MODULE_DIR_.'leoelements/views/css/')) {
$js_folder = 'modules/leoelements/views/js/';
} else {
$js_folder = 'modules/leoelements/js/';
}
}
return $js_folder;
}
public static function getJsAdminDir()
{
static $js_folder;
if (!$js_folder) {
if (is_dir(_PS_MODULE_DIR_.'leoelements/views/css/')) {
$js_folder = __PS_BASE_URI__.'modules/leoelements/views/js/';
} else {
$js_folder = __PS_BASE_URI__.'modules/leoelements/js/';
}
}
return $js_folder;
}
public static function getThemeInfo($theme)
{
$xml = _PS_ALL_THEMES_DIR_.$theme.'/config.xml';
$output = array();
if (file_exists($xml)) {
$output = simplexml_load_file($xml);
}
return $output;
}
public static function getPageName()
{
static $page_name;
if (!$page_name) {
$page_name = Dispatcher::getInstance()->getController();
$page_name = (preg_match('/^[0-9]/', $page_name) ? 'page_'.$page_name : $page_name);
}
if ($page_name == 'appagebuilderhome') {
$page_name = 'index';
}
return $page_name;
}
/**
* When install theme, still get old_theme
*/
public static function getInstallationThemeName()
{
$theme_name = '';
if (Tools::getValue('controller') == 'AdminThemes' && Tools::getValue('action') == 'enableTheme') {
# Case install theme
$theme_name = Tools::getValue('theme_name');
} else if (Tools::getValue('controller') == 'AdminShop' && Tools::getValue('submitAddshop')) {
# Case install theme
$theme_name = Tools::getValue('theme_name');
} else if ( preg_match('#/improve/design/themes/(?P<themeName>[a-zA-Z0-9_.-]+)/enable#sD', $_SERVER['REQUEST_URI'], $matches) ) {
if (isset($matches['themeName']) && $matches['themeName']) {
$theme_name = $matches['themeName'];
}
}
if (empty($theme_name)) {
$theme_name = self::getThemeName();
}
return $theme_name;
}
static $id_shop;
/**
* FIX Install multi theme
* apPageHelper::getIDShop();
*/
public static function getIDShop()
{
if ((int)self::$id_shop) {
$id_shop = (int)self::$id_shop;
} else {
$id_shop = (int)Context::getContext()->shop->id;
}
return $id_shop;
}
/*
* get theme in SINGLE_SHOP or MULTI_SHOP
* apPageHelper::getThemeName()
*/
public static function getThemeName()
{
static $theme_name;
if (!$theme_name) {
# DEFAULT SINGLE_SHOP
$theme_name = _THEME_NAME_;
# GET THEME_NAME MULTI_SHOP
if (Shop::getTotalShops(false, null) >= 2) {
$id_shop = Context::getContext()->shop->id;
$shop_arr = Shop::getShop($id_shop);
if (is_array($shop_arr) && !empty($shop_arr)) {
$theme_name = $shop_arr['theme_name'];
}
}
}
return $theme_name;
}
public static function fullCopy( $source, $target )
{
if (is_dir($source)) {
@mkdir($target);
$d = dir($source);
while (FALSE !== ( $name = $d->read())) {
if ($name == '.' || $name == '..' ) {
continue;
}
$entry = $source . '/' . $name;
if (is_dir($entry)) {
self::fullCopy($entry, $target . '/' . $name);
continue;
}
copy($entry, $target . '/' . $name);
}
$d->close();
} else {
copy($source, $target);
}
}
public static function leoCreateColumn($table_name, $col_name, $data_type)
{
$sql = 'SHOW FIELDS FROM `'._DB_PREFIX_.pSQL($table_name) .'` LIKE "'.pSQL($col_name).'"';
$column = Db::getInstance()->executeS($sql);
if (empty($column)) {
$sql = 'ALTER TABLE `'._DB_PREFIX_.pSQL($table_name).'` ADD COLUMN `'.pSQL($col_name).'` '.pSQL($data_type);
$res = Db::getInstance()->execute($sql);
}
}
public static function leoEditColumn($table_name, $col_name, $data_type)
{
$sql = 'SHOW FIELDS FROM `'._DB_PREFIX_.pSQL($table_name) .'` LIKE "'.pSQL($col_name).'"';
$column = Db::getInstance()->executeS($sql);
if (!empty($column)) {
$sql = 'ALTER TABLE `'._DB_PREFIX_.pSQL($table_name).'` MODIFY `'.pSQL($col_name).'` '.pSQL($data_type);
$res = Db::getInstance()->execute($sql);
}
}
public static function isLeo()
{
$result = false;
if( isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] == 'leo_tuanvu')
{
$result = true;
}
return $result;
}
}
class LeoECSetting
{
public static function getHookHome()
{
return array(
'displayTop',
'displayLeftColumn',
'displayHome',
'displayRightColumn',
'displayFooter'
);
}
const HOOK_BOXED = 0;
const HOOK_FULWIDTH_INDEXPAGE = 1;
const HOOK_FULWIDTH_OTHERPAGE = 1;
const ROW_BOXED = 0;
const ROW_FULWIDTH_INDEXPAGE = 1;
const HOOK_DISABLE_CACHE = 1;
const HOOK_ENABLE_CACHE = 0;
/**
* hook for fullwidth and boxed
*/
public static function getIndexHook($type = 1)
{
if (version_compare(_PS_VERSION_, '1.7.1.0', '>=')) {
if ($type == 1) {
# get name hook
return array(
'displayBanner',
'displayNav1',
'displayNav2',
'displayTop',
'displayHome',
'displayFooterBefore',
'displayFooter',
'displayFooterAfter',
);
} else if ($type == 2) {
# get name hook
return array(
'displayBanner' => 'displayBanner',
'displayNav1' => 'displayNav1',
'displayNav2' => 'displayNav2',
'displayTop' => 'displayTop',
'displayHome' => 'displayHome',
'displayFooterBefore' => 'displayFooterBefore',
'displayFooter' => 'displayFooter',
'displayFooterAfter' => 'displayFooterAfter',
);
} else if ($type == 3) {
# get default fullwidth or boxed for each hook
return array(
'displayBanner' => self::HOOK_BOXED,
'displayNav1' => self::HOOK_BOXED,
'displayNav2' => self::HOOK_BOXED,
'displayTop' => self::HOOK_BOXED,
'displayHome' => self::HOOK_BOXED,
'displayFooterBefore' => self::HOOK_BOXED,
'displayFooter' => self::HOOK_BOXED,
'displayFooterAfter' => self::HOOK_BOXED,
);
}
}
if ($type == 1) {
# get name hook
return array(
'displayNav1',
'displayNav2',
'displayTop',
'displayHome',
'displayFooterBefore',
'displayFooter',
'displayFooterAfter',
);
} else if ($type == 2) {
# get name hook
return array(
'displayNav1' => 'displayNav1',
'displayNav2' => 'displayNav2',
'displayTop' => 'displayTop',
'displayHome' => 'displayHome',
'displayFooterBefore' => 'displayFooterBefore',
'displayFooter' => 'displayFooter',
'displayFooterAfter' => 'displayFooterAfter',
);
} else if ($type == 3) {
# get default fullwidth or boxed for each hook
return array (
'displayNav1' => self::HOOK_BOXED,
'displayNav2' => self::HOOK_BOXED,
'displayTop' => self::HOOK_BOXED,
'displayHome' => self::HOOK_BOXED,
'displayFooterBefore' => self::HOOK_BOXED,
'displayFooter' => self::HOOK_BOXED,
'displayFooterAfter' => self::HOOK_BOXED,
);
}
}
/**
* hook for fullwidth and boxed
*/
public static function getOtherHook($type = 1)
{
if (version_compare(_PS_VERSION_, '1.7.1.0', '>=')) {
if ($type == 1) {
# get name hook
return array(
'displayBanner',
'displayNav1',
'displayNav2',
'displayTop',
'displayHome',
'displayFooterBefore',
'displayFooter',
'displayFooterAfter',
);
} else if ($type == 2) {
# get name hook
return array(
'displayBanner' => 'displayBanner',
'displayNav1' => 'displayNav1',
'displayNav2' => 'displayNav2',
'displayTop' => 'displayTop',
'displayHome' => 'displayHome',
'displayFooterBefore' => 'displayFooterBefore',
'displayFooter' => 'displayFooter',
'displayFooterAfter' => 'displayFooterAfter',
);
} else if ($type == 3) {
# get default value
return array(
'displayBanner' => self::HOOK_BOXED,
'displayNav1' => self::HOOK_BOXED,
'displayNav2' => self::HOOK_BOXED,
'displayTop' => self::HOOK_BOXED,
'displayHome' => self::HOOK_BOXED,
'displayFooterBefore' => self::HOOK_BOXED,
'displayFooter' => self::HOOK_BOXED,
'displayFooterAfter' => self::HOOK_BOXED,
);
}
}
if ($type == 1) {
# get name hook
return array(
'displayNav1',
'displayNav2',
'displayTop',
'displayHome',
'displayFooterBefore',
'displayFooter',
'displayFooterAfter',
);
} else if ($type == 2) {
# get name hook
return array(
'displayNav1' => 'displayNav1',
'displayNav2' => 'displayNav2',
'displayTop' => 'displayTop',
'displayHome' => 'displayHome',
'displayFooterBefore' => 'displayFooterBefore',
'displayFooter' => 'displayFooter',
'displayFooterAfter' => 'displayFooterAfter',
);
} else if ($type == 3) {
# get default value
return array(
'displayNav1' => self::HOOK_BOXED,
'displayNav2' => self::HOOK_BOXED,
'displayTop' => self::HOOK_BOXED,
'displayHome' => self::HOOK_BOXED,
'displayFooterBefore' => self::HOOK_BOXED,
'displayFooter' => self::HOOK_BOXED,
'displayFooterAfter' => self::HOOK_BOXED,
);
}
}
public static function getCacheHook($type = 1)
{
if (version_compare(_PS_VERSION_, '1.7.1.0', '>=')) {
if ($type == 1) {
# get name hook
return array(
'displayBanner',
'displayNav1',
'displayNav2',
'displayTop',
'displayHome',
'displayFooterBefore',
'displayFooter',
'displayFooterAfter',
);
} else if ($type == 2) {
# get name hook
return array(
'displayTop' => 'displayTop',
'displayHome' => 'displayHome',
'displayFooter' => 'displayFooter',
);
} else if ($type == 3) {
# get default value
return array(
'displayTop' => self::HOOK_ENABLE_CACHE,
'displayHome' => self::HOOK_ENABLE_CACHE,
'displayFooter' => self::HOOK_ENABLE_CACHE,
);
}
}
if ($type == 1) {
# get name hook
return array(
'displayNav1',
'displayNav2',
'displayTop',
'displayHome',
'displayFooterBefore',
'displayFooter',
'displayFooterAfter',
);
} else if ($type == 2) {
# get name hook
return array (
'displayTop' => 'displayTop',
'displayHome' => 'displayHome',
'displayFooter' => 'displayFooter',
);
} else if ($type == 3) {
# get default value
return array (
'displayTop' => self::HOOK_ENABLE_CACHE,
'displayHome' => self::HOOK_ENABLE_CACHE,
'displayFooter' => self::HOOK_ENABLE_CACHE,
);
}
}
public static function getPositionsName()
{
return array('header', 'content', 'footer', 'product');
}
/**
* Get list hooks by type
* @param type $type: string in {all, header, footer, content, product}
* @return array
*/
public static function getHook($type = 'all')
{
$list_hook = array();
if (version_compare(_PS_VERSION_, '1.7.1.0', '>=')) {
$hook_header_default = array(
'displayBanner',
'displayNav1',
'displayNav2',
'displayTop',
'displayNavFullWidth',
);
} else {
$hook_header_default = array(
'displayNav1',
'displayNav2',
'displayTop',
'displayNavFullWidth',
);
}
$hook_content_default = array(
'displayLeftColumn',
'displayHome',
'displayRightColumn',
);
$hook_footer_default = array(
'displayFooterBefore',
'displayFooter',
'displayFooterAfter',
);
$hook_product_default = array(
'displayReassurance',
'displayFooterProduct',
);
$hook_category_default = array(
'displayHeaderCategory',
'displayFooterCategory'
);
if ($type == 'all') {
$list_hook = array_merge($hook_header_default, $hook_content_default, $hook_footer_default, $hook_product_default, $hook_category_default);
} else if ($type == 'header') {
$list_hook = $hook_header_default;
} else if ($type == 'content') {
$list_hook = $hook_content_default;
} else if ($type == 'footer') {
$list_hook = $hook_footer_default;
} else if ($type == 'product') {
$list_hook = $hook_product_default;
} else if ($type == 'category') {
$list_hook = $hook_category_default;
}
return $list_hook;
}
public static function getProductContainer()
{
$html = '';
$html .= '<article class="product-miniature js-product-miniature" data-id-product="{$product.id_product}" data-id-product-attribute="{$product.id_product_attribute}">' . "\n";
$html .= ' <div class="thumbnail-container">' . "\n";
return $html;
}
public static function getProductContainerEnd()
{
$html = '';
$html .= ' </div>' . "\n";
$html .= '</article>' . "\n";
return $html;
}
public static function getProductFunctionalButtons()
{
return '<div class="functional-buttons clearfix">';
}
public static function getProductLeftBlock()
{
return ' <div class="product-image">';
}
public static function getProductRightBlock()
{
return ' <div class="product-meta">';
}
public static function getProductElementIcon()
{
// return array(
// 'add_to_cart' => 'icon-shopping-cart',
// 'color' => 'icon-circle',
// 'compare' => 'icon-bar-chart',
// 'description' => 'icon-file-text',
// 'display_product_price_block' => 'icon-dollar',
// 'flags' => 'icon-flag',
// 'functional_buttons' => 'icon-puzzle-piece',
// 'name' => 'icon-file',
// 'product_delivery_time' => 'icon-time',
// 'reviews' => 'icon-star',
// 'status' => 'icon-question-sign',
// 'view' => 'icon-eye-open',
// 'quick_view' => 'icon-eye-open',
// 'image_container' => 'icon-picture',
// 'price' => 'icon-money',
// 'wishlist' => 'icon-heart',
// );
return array(
'add_to_cart' => 'icon-shopping-cart',
'add_to_cart_attribute' => 'icon-list',
'add_to_cart_quantity' => 'icon-sort',
'product_variants' => 'icon-circle',
'compare' => 'icon-bar-chart',
'description' => 'icon-file-text',
'display_product_price_block' => 'icon-dollar',
'product_flags' => 'icon-flag',
'functional_buttons' => 'icon-puzzle-piece',
'product_name' => 'icon-file',
'product_delivery_time' => 'icon-time',
'reviews' => 'icon-star',
'status' => 'icon-question-sign',
'view' => 'icon-eye-open',
'quickview' => 'icon-eye-open',
'product_thumbnail' => 'icon-picture',
'product_price_and_shipping' => 'icon-money',
'wishlist' => 'icon-heart',
'product_description_short' => 'icon-file-text-o',
'product_description' => 'icon-file-text',
);
}
public static function writeFile($folder, $file, $value)
{
$file = $folder.'/'.$file;
$handle = fopen($file, 'w+');
fwrite($handle, ($value));
fclose($handle);
}
public static function getRandomNumber()
{
return rand() + time();
}
public static function returnYesNo()
{
return array(
array(
'id' => 'active_on',
'value' => 1,
'label' => self::l('Enabled')
),
array(
'id' => 'active_off',
'value' => 0,
'label' => self::l('Disabled')
));
}
public static function returnTrueFalse()
{
return array(array(
'id' => 'active_on',
'value' => 'true',
'label' => self::l('Enabled')
),
array(
'id' => 'active_off',
'value' => 'false',
'label' => self::l('Disabled')
));
}
public static function getOrderByBlog()
{
return array(
array(
'id' => 'id_leoblogcat', 'name' => self::l('Category')),
array(
'id' => 'id_leoblog_blog', 'name' => self::l('ID')),
array(
'id' => 'meta_title', 'name' => self::l('Title')),
array(
'id' => 'date_add', 'name' => self::l('Date add')),
array(
'id' => 'date_upd', 'name' => self::l('Date update')),
);
}
public static function getOrderByManu()
{
return array(
array(
'id' => 'id_manufacturer', 'name' => self::l('ID')),
array(
'id' => 'name', 'name' => self::l('Name')),
array(
'id' => 'date_add', 'name' => self::l('Date add')),
array(
'id' => 'date_upd', 'name' => self::l('Date update')),
);
}
public static function getOrderBy()
{
return array(
// array(
// 'id' => 'position', 'name' => self::l('Position')), // remove to increase speed
array(
'id' => 'id_product', 'name' => self::l('ID')),
array(
'id' => 'name', 'name' => self::l('Name')),
array(
'id' => 'reference', 'name' => self::l('Reference')),
array(
'id' => 'price', 'name' => self::l('Base price')),
array(
'id' => 'position', 'name' => self::l('Position')),
array(
'id' => 'date_add', 'name' => self::l('Date add')),
array(
'id' => 'date_upd', 'name' => self::l('Date update')),
array(
'id' => 'quantity', 'name' => self::l('Sales (only for Best Sales)')),
);
}
public static function getColumnGrid()
{
return array(
'xl' => self::l('Extra large devices - Desktops (≥1200px)'),
'lg' => self::l('Large devices - Desktops (≥992px)'),
'md' => self::l('Medium devices - Tablets (≥768px)'),
'sm' => self::l('Small devices (≥576px)'),
'xs' => self::l('Extra small devices (<576px)'),
'sp' => self::l('Smart Phones (< 480px)'),
);
}
public static function l($text)
{
return $text;
}
public static function getAnimations()
{
return array(
'none' => array(
'name' => self::l('Turn off'),
'query' => array(
array(
'id' => 'none',
'name' => self::l('None'),
)
)
),
'attention_seekers' => array(
'name' => self::l('Attention Seekers'),
'query' => array(
array(
'id' => 'bounce',
'name' => self::l('bounce'),
),
array(
'id' => 'flash',
'name' => self::l('flash'),
), array(
'id' => 'pulse',
'name' => self::l('pulse'),
), array(
'id' => 'rubberBand',
'name' => self::l('rubberBand'),
), array(
'id' => 'shake',
'name' => self::l('shake'),
), array(
'id' => 'swing',
'name' => self::l('swing'),
), array(
'id' => 'tada',
'name' => self::l('tada'),
), array(
'id' => 'wobble',
'name' => self::l('wobble'),
)
)
),
'Bouncing_Entrances' => array(
'name' => self::l('Bouncing Entrances'),
'query' => array(
array(
'id' => 'bounceIn',
'name' => self::l('bounceIn'),
),
array(
'id' => 'bounceInDown',
'name' => self::l('bounceInDown'),
),
array(
'id' => 'bounceInLeft',
'name' => self::l('bounceInLeft'),
),
array(
'id' => 'bounceInRight',
'name' => self::l('bounceInRight'),
),
array(
'id' => 'bounceInUp',
'name' => self::l('bounceInUp'),
)
),
),
'Bouncing_Exits' => array(
'name' => self::l('Bouncing Exits'),
'query' => array(
array(
'id' => 'bounceOut',
'name' => self::l('bounceOut'),
),
array(
'id' => 'bounceOutDown',
'name' => self::l('bounceOutDown'),
),
array(
'id' => 'bounceOutLeft',
'name' => self::l('bounceOutLeft'),
),
array(
'id' => 'bounceOutRight',
'name' => self::l('bounceOutRight'),
),
array(
'id' => 'bounceOutUp',
'name' => self::l('bounceOutUp'),
)
),
),
'Fading_Entrances' => array(
'name' => self::l('Fading Entrances'),
'query' => array(
array(
'id' => 'fadeIn',
'name' => self::l('fadeIn'),
),
array(
'id' => 'fadeInDown',
'name' => self::l('fadeInDown'),
),
array(
'id' => 'fadeInDownBig',
'name' => self::l('fadeInDownBig'),
),
array(
'id' => 'fadeInLeft',
'name' => self::l('fadeInLeft'),
),
array(
'id' => 'fadeInLeftBig',
'name' => self::l('fadeInLeftBig'),
),
array(
'id' => 'fadeInRight',
'name' => self::l('fadeInRight'),
),
array(
'id' => 'fadeInRightBig',
'name' => self::l('fadeInRightBig'),
),
array(
'id' => 'fadeInRight',
'name' => self::l('fadeInRight'),
),
array(
'id' => 'fadeInRightBig',
'name' => self::l('fadeInRightBig'),
),
array(
'id' => 'fadeInUp',
'name' => self::l('fadeInUp'),
),
array(
'id' => 'fadeInUpBig',
'name' => self::l('fadeInUpBig'),
),
),
),
'Fading_Exits' => array(
'name' => self::l('Fading Exits'),
'query' => array(
array(
'id' => 'fadeOut',
'name' => self::l('fadeOut'),
),
array(
'id' => 'fadeOutDown',
'name' => self::l('fadeOutDown'),
),
array(
'id' => 'fadeOutDownBig',
'name' => self::l('fadeOutDownBig'),
),
array(
'id' => 'fadeOutLeft',
'name' => self::l('fadeOutLeft'),
),
array(
'id' => 'fadeOutRight',
'name' => self::l('fadeOutRight'),
),
array(
'id' => 'fadeOutRightBig',
'name' => self::l('fadeOutRightBig'),
),
array(
'id' => 'fadeOutUp',
'name' => self::l('fadeOutUp'),
),
array(
'id' => 'fadeOutUpBig',
'name' => self::l('fadeOutUpBig'),
)
),
),
'Flippers' => array(
'name' => self::l('Flippers'),
'query' => array(
array(
'id' => 'flip',
'name' => self::l('flip'),
),
array(
'id' => 'flipInX',
'name' => self::l('flipInX'),
),
array(
'id' => 'flipInY',
'name' => self::l('flipInY'),
),
array(
'id' => 'flipOutX',
'name' => self::l('flipOutX'),
),
array(
'id' => 'flipOutY',
'name' => self::l('flipOutY'),
)
),
),
'Lightspeed' => array(
'name' => self::l('Lightspeed'),
'query' => array(
array(
'id' => 'lightSpeedIn',
'name' => self::l('lightSpeedIn'),
),
array(
'id' => 'lightSpeedOut',
'name' => self::l('lightSpeedOut'),
)
),
),
'Rotating_Entrances' => array(
'name' => self::l('Rotating Entrances'),
'query' => array(
array(
'id' => 'rotateIn',
'name' => self::l('rotateIn'),
),
array(
'id' => 'rotateInDownLeft',
'name' => self::l('rotateInDownLeft'),
),
array(
'id' => 'rotateInDownRight',
'name' => self::l('rotateInDownRight'),
),
array(
'id' => 'rotateInUpLeft',
'name' => self::l('rotateInUpLeft'),
),
array(
'id' => 'rotateInUpRight',
'name' => self::l('rotateInUpRight'),
)
),
),
'Rotating_Exits' => array(
'name' => self::l('Rotating Exits'),
'query' => array(
array(
'id' => 'rotateOut',
'name' => self::l('rotateOut'),
),
array(
'id' => 'rotateOutDownLeft',
'name' => self::l('rotateOutDownLeft'),
),
array(
'id' => 'rotateOutDownRight',
'name' => self::l('rotateOutDownRight'),
),
array(
'id' => 'rotateOutUpLeft',
'name' => self::l('rotateOutUpLeft'),
),
array(
'id' => 'rotateOutUpRight',
'name' => self::l('rotateOutUpRight'),
)
),
),
'Specials' => array(
'name' => self::l('Specials'),
'query' => array(
array(
'id' => 'hinge',
'name' => self::l('hinge'),
),
array(
'id' => 'rollIn',
'name' => self::l('rollIn'),
),
array(
'id' => 'rollOut',
'name' => self::l('rollOut'),
)
),
),
'Zoom Entrances' => array(
'name' => self::l('Zoom Entrances'),
'query' => array(
array(
'id' => 'zoomIn',
'name' => self::l('zoomIn'),
),
array(
'id' => 'zoomInDown',
'name' => self::l('zoomInDown'),
),
array(
'id' => 'zoomInLeft',
'name' => self::l('zoomInLeft'),
),
array(
'id' => 'zoomInRight',
'name' => self::l('zoomInRight'),
),
array(
'id' => 'zoomInUp',
'name' => self::l('zoomInUp'),
)
),
),
'Zoom_Exits' => array(
'name' => self::l('Zoom Exits'),
'query' => array(
array(
'id' => 'zoomOut',
'name' => self::l('zoomOut'),
),
array(
'id' => 'zoomOutDown',
'name' => self::l('zoomOutDown'),
),
array(
'id' => 'zoomOutLeft',
'name' => self::l('zoomOutLeft'),
),
array(
'id' => 'zoomOutRight',
'name' => self::l('zoomOutRight'),
),
array(
'id' => 'zoomOutUp',
'name' => self::l('zoomOutUp'),
)
),
)
);
}
//DONGND:: build list animation for group and column
public static function getAnimationsColumnGroup()
{
return array(
'none' => array(
'name' => self::l('Turn off'),
'query' => array(
array(
'id' => 'none',
'name' => self::l('None'),
)
)
),
'Fading_Entrances' => array(
'name' => self::l('Fading Entrances'),
'query' => array(
array(
'id' => 'fadeIn',
'name' => self::l('fadeIn'),
),
array(
'id' => 'fadeInDown',
'name' => self::l('fadeInDown'),
),
array(
'id' => 'fadeInDownBig',
'name' => self::l('fadeInDownBig'),
),
array(
'id' => 'fadeInLeft',
'name' => self::l('fadeInLeft'),
),
array(
'id' => 'fadeInLeftBig',
'name' => self::l('fadeInLeftBig'),
),
array(
'id' => 'fadeInRight',
'name' => self::l('fadeInRight'),
),
array(
'id' => 'fadeInRightBig',
'name' => self::l('fadeInRightBig'),
),
array(
'id' => 'fadeInUp',
'name' => self::l('fadeInUp'),
),
array(
'id' => 'fadeInUpBig',
'name' => self::l('fadeInUpBig'),
),
),
),
'Bouncing_Entrances' => array(
'name' => self::l('Bouncing Entrances'),
'query' => array(
array(
'id' => 'bounceIn',
'name' => self::l('bounceIn'),
),
array(
'id' => 'bounceInDown',
'name' => self::l('bounceInDown'),
),
array(
'id' => 'bounceInLeft',
'name' => self::l('bounceInLeft'),
),
array(
'id' => 'bounceInRight',
'name' => self::l('bounceInRight'),
),
array(
'id' => 'bounceInUp',
'name' => self::l('bounceInUp'),
)
),
),
'Zoom Entrances' => array(
'name' => self::l('Zoom Entrances'),
'query' => array(
array(
'id' => 'zoomIn',
'name' => self::l('zoomIn'),
),
array(
'id' => 'zoomInDown',
'name' => self::l('zoomInDown'),
),
array(
'id' => 'zoomInLeft',
'name' => self::l('zoomInLeft'),
),
array(
'id' => 'zoomInRight',
'name' => self::l('zoomInRight'),
),
array(
'id' => 'zoomInUp',
'name' => self::l('zoomInUp'),
)
),
),
'attention_seekers' => array(
'name' => self::l('Attention Seekers'),
'query' => array(
array(
'id' => 'bounce',
'name' => self::l('bounce'),
),
array(
'id' => 'flash',
'name' => self::l('flash'),
),
array(
'id' => 'pulse',
'name' => self::l('pulse'),
),
array(
'id' => 'rubberBand',
'name' => self::l('rubberBand'),
),
array(
'id' => 'shake',
'name' => self::l('shake'),
),
array(
'id' => 'swing',
'name' => self::l('swing'),
),
array(
'id' => 'tada',
'name' => self::l('tada'),
),
array(
'id' => 'wobble',
'name' => self::l('wobble'),
)
)
),
'Flippers' => array(
'name' => self::l('Flippers'),
'query' => array(
array(
'id' => 'flip',
'name' => self::l('flip'),
),
array(
'id' => 'flipInX',
'name' => self::l('flipInX'),
),
array(
'id' => 'flipInY',
'name' => self::l('flipInY'),
),
array(
'id' => 'flipOutX',
'name' => self::l('flipOutX'),
),
array(
'id' => 'flipOutY',
'name' => self::l('flipOutY'),
)
),
),
'Lightspeed' => array(
'name' => self::l('Lightspeed'),
'query' => array(
array(
'id' => 'lightSpeedIn',
'name' => self::l('lightSpeedIn'),
),
array(
'id' => 'lightSpeedOut',
'name' => self::l('lightSpeedOut'),
)
),
),
'Rotating_Entrances' => array(
'name' => self::l('Rotating Entrances'),
'query' => array(
array(
'id' => 'rotateIn',
'name' => self::l('rotateIn'),
),
array(
'id' => 'rotateInDownLeft',
'name' => self::l('rotateInDownLeft'),
),
array(
'id' => 'rotateInDownRight',
'name' => self::l('rotateInDownRight'),
),
array(
'id' => 'rotateInUpLeft',
'name' => self::l('rotateInUpLeft'),
),
array(
'id' => 'rotateInUpRight',
'name' => self::l('rotateInUpRight'),
)
),
),
'Specials' => array(
'name' => self::l('Specials'),
'query' => array(
array(
'id' => 'hinge',
'name' => self::l('hinge'),
),
array(
'id' => 'rollIn',
'name' => self::l('rollIn'),
),
array(
'id' => 'rollOut',
'name' => self::l('rollOut'),
)
),
),
'Bouncing_Exits' => array(
'name' => self::l('Bouncing Exits'),
'query' => array(
array(
'id' => 'bounceOut',
'name' => self::l('bounceOut'),
),
array(
'id' => 'bounceOutDown',
'name' => self::l('bounceOutDown'),
),
array(
'id' => 'bounceOutLeft',
'name' => self::l('bounceOutLeft'),
),
array(
'id' => 'bounceOutRight',
'name' => self::l('bounceOutRight'),
),
array(
'id' => 'bounceOutUp',
'name' => self::l('bounceOutUp'),
)
),
),
'Fading_Exits' => array(
'name' => self::l('Fading Exits'),
'query' => array(
array(
'id' => 'fadeOut',
'name' => self::l('fadeOut'),
),
array(
'id' => 'fadeOutDown',
'name' => self::l('fadeOutDown'),
),
array(
'id' => 'fadeOutDownBig',
'name' => self::l('fadeOutDownBig'),
),
array(
'id' => 'fadeOutLeft',
'name' => self::l('fadeOutLeft'),
),
array(
'id' => 'fadeOutRight',
'name' => self::l('fadeOutRight'),
),
array(
'id' => 'fadeOutRightBig',
'name' => self::l('fadeOutRightBig'),
),
array(
'id' => 'fadeOutUp',
'name' => self::l('fadeOutUp'),
),
array(
'id' => 'fadeOutUpBig',
'name' => self::l('fadeOutUpBig'),
)
),
),
'Rotating_Exits' => array(
'name' => self::l('Rotating Exits'),
'query' => array(
array(
'id' => 'rotateOut',
'name' => self::l('rotateOut'),
),
array(
'id' => 'rotateOutDownLeft',
'name' => self::l('rotateOutDownLeft'),
),
array(
'id' => 'rotateOutDownRight',
'name' => self::l('rotateOutDownRight'),
),
array(
'id' => 'rotateOutUpLeft',
'name' => self::l('rotateOutUpLeft'),
),
array(
'id' => 'rotateOutUpRight',
'name' => self::l('rotateOutUpRight'),
)
),
),
'Zoom_Exits' => array(
'name' => self::l('Zoom Exits'),
'query' => array(
array(
'id' => 'zoomOut',
'name' => self::l('zoomOut'),
),
array(
'id' => 'zoomOutDown',
'name' => self::l('zoomOutDown'),
),
array(
'id' => 'zoomOutLeft',
'name' => self::l('zoomOutLeft'),
),
array(
'id' => 'zoomOutRight',
'name' => self::l('zoomOutRight'),
),
array(
'id' => 'zoomOutUp',
'name' => self::l('zoomOutUp'),
)
),
)
);
}
public static function requireShortCode($short_code, $theme_dir = '')
{
if (file_exists($theme_dir.'modules/leoelements/classes/shortcodes/'.$short_code)) {
return $theme_dir.'modules/leoelements/classes/shortcodes/'.$short_code;
}
if (file_exists(_PS_MODULE_DIR_.'leoelements/classes/shortcodes/'.$short_code)) {
return _PS_MODULE_DIR_.'leoelements/classes/shortcodes/'.$short_code;
}
return false;
}
public static function getControllerId($controller, $ids)
{
switch ($controller) {
case 'product':
$current_id = Tools::getValue('id_product');
if ($current_id == $ids || (is_array($ids) && in_array($current_id, $ids))) {
return $current_id;
}
break;
case 'category':
$current_id = Tools::getValue('id_category');
if ($current_id == $ids || (is_array($ids) && in_array($current_id, $ids))) {
return $current_id;
}
break;
case 'cms':
$current_id = Tools::getValue('id_cms');
if ($current_id == $ids || (is_array($ids) && in_array($current_id, $ids))) {
return $current_id;
}
break;
default:
return false;
}
}
public static function getAllowOverrideHook()
{
return array('rightcolumn', 'leftcolumn', 'home', 'top', 'footer');
}
public static function returnWidthList()
{
return array('12', '11', '10', '9.6', '9', '8', '7.2', '7', '6', '4.8', '5', '4', '3', '2.4', '2', '1');
}
public static function getDefaultNameImage($type = 'small')
{
$sep = '_';
$arr = array('small' => 'small'.$sep.'default', 'thickbox' => 'thickbox'.$sep.'default');
return $arr[$type];
}
public static function getModeDebugLog()
{
return 0;
}
public static function buildGuide($context, $path = '', $current_step = 1)
{
$skip = Tools::getIsset('skip') ? Tools::getValue('skip') : '';
$done = Tools::getIsset('done') ? Tools::getValue('done') : '';
$reset = Tools::getIsset('ap_guide_reset') ? Tools::getValue('ap_guide_reset') : '';
if ($skip || $done) {
Configuration::updateValue('leoelements_GUIDE', 4);
return '';
}
if ($reset) {
Configuration::updateValue('leoelements_GUIDE', 1);
}
$status = Configuration::get('leoelements_GUIDE');
if ($status > 3) {
return '';
}
// Save next step
if ($status < $current_step) {
Configuration::updateValue('leoelements_GUIDE', $current_step);
}
if ($current_step == 0) {
$current_step = $status;
}
$url1 = 'index.php?controller=adminmodules&configure=leoelements&token='.Tools::getAdminTokenLite('AdminModules')
.'&tab_module=Home&module_name=leoelements';
$url2 = '';
$url3 = '';
$next_step = '';
// Add new profile
if ($current_step == 1) {
$next_step = $context->link->getAdminLink('AdminLeoElementsProfiles').'&addleoelements_profiles';
}
if ($current_step == 2) {
$url2 = $context->link->getAdminLink('AdminLeoElementsProfiles').'&addleoelements_profiles';
$next_step = $context->link->getAdminLink('AdminLeoElementsProfiles');
}
if ($current_step == 3) {
$url2 = $context->link->getAdminLink('AdminLeoElementsProfiles').'&addleoelements_profiles';
$url3 = $context->link->getAdminLink('AdminLeoElementsProfiles');
$next_step = $context->link->getAdminLink('AdminLeoElementsProfiles');
}
$context->smarty->assign(array(
'is_guide' => 1,
'url1' => $url1,
'url2' => $url2,
'url3' => $url3,
'next_step' => $next_step,
'step' => $current_step));
return $context->smarty->fetch($path);
}
public static function listFontAwesome()
{
return array(
array('value' => 'icon-font'),
array('value' => 'icon-bold'),
array('value' => 'icon-adjust'),
array('value' => 'icon-calendar'),
array('value' => 'icon-bookmark'),
array('value' => 'icon-bolt'),
array('value' => 'icon-book'),
array('value' => 'icon-certificate'),
array('value' => 'icon-bullhorn'),
array('value' => 'icon-check'),
array('value' => 'icon-check-square-o'),
array('value' => 'icon-comments-o'),
array('value' => 'icon-comment'),
array('value' => 'icon-credit-card'),
array('value' => 'icon-thumbs-up'),
array('value' => 'icon-thumbs-down'),
array('value' => 'icon-thumbs-o-up'),
array('value' => 'icon-thumbs-o-down'),
array('value' => 'icon-truck'),
array('value' => 'icon-angle-left'),
array('value' => 'icon-angle-right'),
array('value' => 'icon-angle-up'),
array('value' => 'icon-angle-down'),
array('value' => 'icon-angle-double-left'),
array('value' => 'icon-angle-double-right'),
array('value' => 'icon-angle-double-up'),
array('value' => 'icon-angle-double-down'),
array('value' => 'icon-arrow-left'),
array('value' => 'icon-arrow-right'),
array('value' => 'icon-arrow-up'),
array('value' => 'icon-arrow-down'),
array('value' => 'icon-align-left'),
array('value' => 'icon-align-right'),
array('value' => 'icon-align-center'),
array('value' => 'icon-align-justify'),
array('value' => 'icon-arrow-circle-o-left'),
array('value' => 'icon-arrow-circle-o-right'),
array('value' => 'icon-toggle-left'),
array('value' => 'icon-toggle-right'),
array('value' => 'icon-eye'),
array('value' => 'icon-eye-slash'),
array('value' => 'icon-smile-o'),
array('value' => 'icon-spinner'),
array('value' => 'icon-user'),
array('value' => 'icon-users'),
array('value' => 'icon-user-plus'),
array('value' => 'icon-user-times'),
array('value' => 'icon-user-md'),
array('value' => 'icon-user-secret'),
array('value' => 'icon-female'),
array('value' => 'icon-male'),
array('value' => 'icon-quote-left'),
array('value' => 'icon-quote-right'),
array('value' => 'icon-html5'),
array('value' => 'icon-css3'),
array('value' => 'icon-android'),
array('value' => 'icon-google'),
array('value' => 'icon-apple'),
array('value' => 'icon-windows'),
array('value' => 'icon-linux'),
array('value' => 'icon-youtube'),
array('value' => 'icon-twitter'),
array('value' => 'icon-yahoo'),
array('value' => 'icon-skype'),
array('value' => 'icon-trello'),
array('value' => 'icon-slack'),
array('value' => 'icon-wordpress'),
array('value' => 'icon-drupal'),
array('value' => 'icon-joomla'),
);
}
public static function getOverrideHook()
{
if (version_compare(_PS_VERSION_, '1.7.1.0', '>=')) {
$list_hook = array(
'displayBanner',
'displayNav1',
'displayNav2',
'displayTop',
'displayHome',
'displayLeftColumn',
'displayRightColumn',
'displayFooterBefore',
'displayFooter',
'displayFooterAfter',
'displayFooterProduct',
'displayRightColumnProduct',
'displayLeftColumnProduct',
);
return $list_hook;
}
$list_hook = array(
'displayNav1',
'displayNav2',
'displayTop',
'displayHome',
'displayLeftColumn',
'displayRightColumn',
'displayFooterBefore',
'displayFooter',
'displayFooterAfter',
'displayFooterProduct',
'displayRightColumnProduct',
'displayLeftColumnProduct',
);
return $list_hook;
}
public static function ConvertSpecialChar($str = '')
{
$result = '';
if (is_string($str)) {
$result = str_replace('LEO_BACKSLASH', '\\', $str);
}
return $result;
}
public static function leoExitsDb($type='', $table_name='', $col_name='')
{
if ($type == 'table') {
# EXITS TABLE
$sql = 'SELECT COUNT(*) FROM information_schema.tables
WHERE table_schema = "'._DB_NAME_.'"
AND table_name = "'._DB_PREFIX_.pSQL($table_name).'"';
$table = Db::getInstance()->getValue($sql);
if (empty($table)) {
return false;
}
return true;
} else if ($type == 'column') {
# EXITS COLUMN
$sql = 'SHOW FIELDS FROM `'._DB_PREFIX_.pSQL($table_name) .'` LIKE "'.pSQL($col_name).'"';
$column = Db::getInstance()->executeS($sql);
if (empty($column)) {
return false;
}
return true;
}
return false;
}
}