$lC_Database->importSQL($sql_file, $db['DB_DATABASE'], $db['DB_TABLE_PREFIX']); } if ($lC_Database->isError() === false) { foreach ($lC_Language->extractDefinitions('en_US.xml') as $def) { $Qdef = $lC_Database->query('insert into :table_languages_definitions (languages_id, content_group, definition_key, definition_value) values (:languages_id, :content_group, :definition_key, :definition_value)'); $Qdef->bindTable(':table_languages_definitions', $db['DB_TABLE_PREFIX'] . 'languages_definitions'); $Qdef->bindInt(':languages_id', 1); $Qdef->bindValue(':content_group', $def['group']); $Qdef->bindValue(':definition_key', $def['key']); $Qdef->bindValue(':definition_value', $def['value']); $Qdef->execute(); } $lC_DirectoryListing = new lC_DirectoryListing('../includes/languages/en_US'); $lC_DirectoryListing->setRecursive(true); $lC_DirectoryListing->setIncludeDirectories(false); $lC_DirectoryListing->setAddDirectoryToFilename(true); $lC_DirectoryListing->setCheckExtension('xml'); foreach ($lC_DirectoryListing->getFiles() as $files) { foreach ($lC_Language->extractDefinitions('en_US/' . $files['name']) as $def) { $Qdef = $lC_Database->query('insert into :table_languages_definitions (languages_id, content_group, definition_key, definition_value) values (:languages_id, :content_group, :definition_key, :definition_value)'); $Qdef->bindTable(':table_languages_definitions', $db['DB_TABLE_PREFIX'] . 'languages_definitions'); $Qdef->bindInt(':languages_id', 1); $Qdef->bindValue(':content_group', $def['group']); $Qdef->bindValue(':definition_key', $def['key']); $Qdef->bindValue(':definition_value', $def['value']); $Qdef->execute(); } } } if ($lC_Database->isError() === false) { define('DB_TABLE_PREFIX', $db['DB_TABLE_PREFIX']);
public static function checkHooks() { global $lC_Language; $list = ''; foreach (lC_Store_Admin::getInstalledAddons() as $key => $val) { $code = $val['code']; $title = $val['title']; $lC_DirectoryListing = new lC_DirectoryListing(DIR_FS_CATALOG . 'addons/' . $code . '/hooks'); $lC_DirectoryListing->setRecursive(true); $lC_DirectoryListing->setIncludeDirectories(false); $lC_DirectoryListing->setAddDirectoryToFilename(true); $lC_DirectoryListing->setStats(true); $lC_DirectoryListing->setCheckExtension('xml'); foreach ($lC_DirectoryListing->getFiles() as $file) { $status = self::_cacheFileExists($file['path'], 'catalog') == true ? $lC_Language->get('cached_file_exists') . '<span class="icon-tick icon-green icon-size2 margin-left"></span>' : $lC_Language->get('cached_file_not_exists') . '<span class="icon-cross icon-red icon-size2 margin-left"></span>'; $list .= '<li>' . $title . ' => hooks/' . $file['name'] . ' => ' . $status . '</li>'; } $lC_DirectoryListing = new lC_DirectoryListing(DIR_FS_CATALOG . 'addons/' . $code . '/admin/hooks'); $lC_DirectoryListing->setRecursive(true); $lC_DirectoryListing->setIncludeDirectories(false); $lC_DirectoryListing->setAddDirectoryToFilename(true); $lC_DirectoryListing->setStats(true); $lC_DirectoryListing->setCheckExtension('xml'); foreach ($lC_DirectoryListing->getFiles() as $file) { $status = self::_cacheFileExists($file['path']) == true ? $lC_Language->get('cached_file_exists') . '<span class="icon-tick icon-green icon-size2 margin-left"></span>' : $lC_Language->get('cached_file_not_exists') . '<span class="icon-cross icon-red icon-size2 margin-left"></span>'; $list .= '<li>' . $title . ' => admin/hooks/' . $file['name'] . ' => ' . $status . '</li>'; } } return $list; }
public static function import($file, $type) { global $lC_Database, $lC_Currencies; if (file_exists('../includes/languages/' . $file . '.xml')) { $lC_XML = new lC_XML(file_get_contents('../includes/languages/' . $file . '.xml')); $source = $lC_XML->toArray(); $language = array('name' => $source['language']['data']['title'], 'code' => $source['language']['data']['code'], 'locale' => $source['language']['data']['locale'], 'charset' => $source['language']['data']['character_set'], 'date_format_short' => $source['language']['data']['date_format_short'], 'date_format_long' => $source['language']['data']['date_format_long'], 'time_format' => $source['language']['data']['time_format'], 'text_direction' => $source['language']['data']['text_direction'], 'currency' => $source['language']['data']['default_currency'], 'numeric_separator_decimal' => $source['language']['data']['numerical_decimal_separator'], 'numeric_separator_thousands' => $source['language']['data']['numerical_thousands_separator'], 'parent_language_code' => isset($source['language']['data']['parent_language_code']) ? $source['language']['data']['parent_language_code'] : '', 'parent_id' => 0); if (lC_Currencies_Admin::exists($language['currency']) === false) { $language['currency'] = DEFAULT_CURRENCY; } if (!empty($language['parent_language_code']) && self::exists($language['parent_language_code'])) { $language['parent_id'] = self::get($language['parent_language_code'], 'languages_id'); } $definitions = array(); if (isset($source['language']['definitions']['definition'])) { $definitions = $source['language']['definitions']['definition']; if (isset($definitions['key']) && isset($definitions['value']) && isset($definitions['group'])) { $definitions = array(array('key' => $definitions['key'], 'value' => $definitions['value'], 'group' => $definitions['group'])); } } unset($source); $error = false; $add_category_and_product_placeholders = true; $lC_Database->startTransaction(); $language_id = self::get($language['code'], 'languages_id'); if ($language_id !== false) { $add_category_and_product_placeholders = false; $Qlanguage = $lC_Database->query('update :table_languages set name = :name, code = :code, locale = :locale, charset = :charset, date_format_short = :date_format_short, date_format_long = :date_format_long, time_format = :time_format, text_direction = :text_direction, currencies_id = :currencies_id, numeric_separator_decimal = :numeric_separator_decimal, numeric_separator_thousands = :numeric_separator_thousands, parent_id = :parent_id where languages_id = :languages_id'); $Qlanguage->bindInt(':languages_id', $language_id); } else { $Qlanguage = $lC_Database->query('insert into :table_languages (name, code, locale, charset, date_format_short, date_format_long, time_format, text_direction, currencies_id, numeric_separator_decimal, numeric_separator_thousands, parent_id) values (:name, :code, :locale, :charset, :date_format_short, :date_format_long, :time_format, :text_direction, :currencies_id, :numeric_separator_decimal, :numeric_separator_thousands, :parent_id)'); } $Qlanguage->bindTable(':table_languages', TABLE_LANGUAGES); $Qlanguage->bindValue(':name', $language['name']); $Qlanguage->bindValue(':code', $language['code']); $Qlanguage->bindValue(':locale', $language['locale']); $Qlanguage->bindValue(':charset', $language['charset']); $Qlanguage->bindValue(':date_format_short', $language['date_format_short']); $Qlanguage->bindValue(':date_format_long', $language['date_format_long']); $Qlanguage->bindValue(':time_format', $language['time_format']); $Qlanguage->bindValue(':text_direction', $language['text_direction']); $Qlanguage->bindInt(':currencies_id', lC_Currencies_Admin::getData($language['currency'], 'currencies_id')); $Qlanguage->bindValue(':numeric_separator_decimal', $language['numeric_separator_decimal']); $Qlanguage->bindValue(':numeric_separator_thousands', $language['numeric_separator_thousands']); $Qlanguage->bindInt(':parent_id', $language['parent_id']); $Qlanguage->setLogging($_SESSION['module'], $language_id !== false ? $language_id : null); $Qlanguage->execute(); if ($lC_Database->isError()) { $error = true; } else { if ($language_id === false) { $language_id = $lC_Database->nextID(); } $default_language_id = lC_Languages_Admin::get(DEFAULT_LANGUAGE, 'languages_id'); if ($type == 'replace') { $Qdel = $lC_Database->query('delete from :table_languages_definitions where languages_id = :languages_id'); $Qdel->bindTable(':table_languages_definitions', TABLE_LANGUAGES_DEFINITIONS); $Qdel->bindInt(':languages_id', $language_id); $Qdel->execute(); if ($lC_Database->isError()) { $error = true; } } } if ($error === false) { $lC_DirectoryListing = new lC_DirectoryListing('../includes/languages/' . $file); $lC_DirectoryListing->setRecursive(true); $lC_DirectoryListing->setIncludeDirectories(false); $lC_DirectoryListing->setAddDirectoryToFilename(true); $lC_DirectoryListing->setCheckExtension('xml'); foreach ($lC_DirectoryListing->getFiles() as $files) { $definitions = array_merge($definitions, lC_Language_Admin::extractDefinitions($file . '/' . $files['name'])); } foreach ($definitions as $def) { $insert = false; $update = false; if ($type == 'replace') { $insert = true; } else { $Qcheck = $lC_Database->query('select definition_key, content_group from :table_languages_definitions where definition_key = :definition_key and languages_id = :languages_id and content_group = :content_group'); $Qcheck->bindTable(':table_languages_definitions', TABLE_LANGUAGES_DEFINITIONS); $Qcheck->bindValue(':definition_key', $def['key']); $Qcheck->bindInt(':languages_id', $language_id); $Qcheck->bindValue(':content_group', $def['group']); $Qcheck->execute(); if ($Qcheck->numberOfRows() > 0) { if ($type == 'update') { $update = true; } } elseif ($type == 'add') { $insert = true; } } if ($insert === true || $update === true) { if ($insert === true) { $Qdef = $lC_Database->query('insert into :table_languages_definitions (languages_id, content_group, definition_key, definition_value) values (:languages_id, :content_group, :definition_key, :definition_value)'); } else { $Qdef = $lC_Database->query('update :table_languages_definitions set content_group = :content_group, definition_key = :definition_key, definition_value = :definition_value where definition_key = :definition_key and languages_id = :languages_id and content_group = :content_group'); $Qdef->bindValue(':definition_key', $def['key']); $Qdef->bindValue(':content_group', $def['group']); } $Qdef->bindTable(':table_languages_definitions', TABLE_LANGUAGES_DEFINITIONS); $Qdef->bindInt(':languages_id', $language_id); $Qdef->bindValue(':content_group', $def['group']); $Qdef->bindValue(':definition_key', $def['key']); $Qdef->bindValue(':definition_value', $def['value']); $Qdef->execute(); if ($lC_Database->isError()) { $error = true; break; } } } } if ($add_category_and_product_placeholders === true) { if ($error === false) { $Qcategories = $lC_Database->query('select categories_id, categories_name, categories_menu_name, categories_blurb, categories_keyword from :table_categories_description where language_id = :language_id'); $Qcategories->bindTable(':table_categories_description', TABLE_CATEGORIES_DESCRIPTION); $Qcategories->bindInt(':language_id', $default_language_id); $Qcategories->execute(); while ($Qcategories->next()) { $Qinsert = $lC_Database->query('insert into :table_categories_description (categories_id, language_id, categories_name) values (:categories_id, :language_id, :categories_name)'); $Qinsert->bindTable(':table_categories_description', TABLE_CATEGORIES_DESCRIPTION); $Qinsert->bindInt(':categories_id', $Qcategories->valueInt('categories_id')); $Qinsert->bindInt(':language_id', $language_id); $Qinsert->bindValue(':categories_name', $Qcategories->value('categories_name')); $Qinsert->bindValue(':categories_menu_name', $Qcategories->value('categories_menu_name')); $Qinsert->bindValue(':categories_blurb', $Qcategories->value('categories_blurb')); $Qinsert->bindValue(':categories_keyword', $Qcategories->value('categories_keyword')); $Qinsert->execute(); if ($lC_Database->isError()) { $error = true; break; } } } if ($error === false) { $Qproducts = $lC_Database->query('select products_id, products_name, products_description, products_keyword, products_tags, products_url from :table_products_description where language_id = :language_id'); $Qproducts->bindTable(':table_products_description', TABLE_PRODUCTS_DESCRIPTION); $Qproducts->bindInt(':language_id', $default_language_id); $Qproducts->execute(); while ($Qproducts->next()) { $Qinsert = $lC_Database->query('insert into :table_products_description (products_id, language_id, products_name, products_description, products_keyword, products_tags, products_url) values (:products_id, :language_id, :products_name, :products_description, :products_keyword, :products_tags, :products_url)'); $Qinsert->bindTable(':table_products_description', TABLE_PRODUCTS_DESCRIPTION); $Qinsert->bindInt(':products_id', $Qproducts->valueInt('products_id')); $Qinsert->bindInt(':language_id', $language_id); $Qinsert->bindValue(':products_name', $Qproducts->value('products_name')); $Qinsert->bindValue(':products_description', $Qproducts->value('products_description')); $Qinsert->bindValue(':products_keyword', $Qproducts->value('products_keyword')); $Qinsert->bindValue(':products_tags', $Qproducts->value('products_tags')); $Qinsert->bindValue(':products_url', $Qproducts->value('products_url')); $Qinsert->execute(); if ($lC_Database->isError()) { $error = true; break; } } } if ($error === false) { $Qattributes = $lC_Database->query('select products_id, value from :table_product_attributes where languages_id = :languages_id'); $Qattributes->bindTable(':table_product_attributes', TABLE_PRODUCT_ATTRIBUTES); $Qattributes->bindInt(':languages_id', $default_language_id); $Qattributes->execute(); while ($Qattributes->next()) { $Qinsert = $lC_Database->query('insert into :table_product_attributes (products_id, languages_id, value) values (:products_id, :languages_id, :value)'); $Qinsert->bindTable(':table_product_attributes', TABLE_PRODUCT_ATTRIBUTES); $Qinsert->bindInt(':products_id', $Qattributes->valueInt('products_id')); $Qinsert->bindInt(':languages_id', $language_id); $Qinsert->bindValue(':value', $Qattributes->value('value')); $Qinsert->execute(); if ($lC_Database->isError()) { $error = true; break; } } } if ($error === false) { $Qgroups = $lC_Database->query('select id, title, sort_order, module from :table_products_variants_groups where languages_id = :languages_id'); $Qgroups->bindTable(':table_products_variants_groups', TABLE_PRODUCTS_VARIANTS_GROUPS); $Qgroups->bindInt(':languages_id', $default_language_id); $Qgroups->execute(); while ($Qgroups->next()) { $Qinsert = $lC_Database->query('insert into :table_products_variants_groups (id, languages_id, title, sort_order, module) values (:id, :languages_id, :title, :sort_order, :module)'); $Qinsert->bindTable(':table_products_variants_groups', TABLE_PRODUCTS_VARIANTS_GROUPS); $Qinsert->bindInt(':id', $Qgroups->valueInt('id')); $Qinsert->bindInt(':languages_id', $language_id); $Qinsert->bindValue(':title', $Qgroups->value('title')); $Qinsert->bindInt(':sort_order', $Qgroups->valueInt('sort_order')); $Qinsert->bindValue(':module', $Qgroups->value('module')); $Qinsert->execute(); if ($lC_Database->isError()) { $error = true; break; } } } if ($error === false) { $Qvalues = $lC_Database->query('select id, products_variants_groups_id, title, sort_order from :table_products_variants_values where languages_id = :languages_id'); $Qvalues->bindTable(':table_products_variants_values', TABLE_PRODUCTS_VARIANTS_VALUES); $Qvalues->bindInt(':languages_id', $default_language_id); $Qvalues->execute(); while ($Qvalues->next()) { $Qinsert = $lC_Database->query('insert into :table_products_variants_values (id, languages_id, products_variants_groups_id, title, sort_order) values (:id, :languages_id, :products_variants_groups_id, :title, :sort_order)'); $Qinsert->bindTable(':table_products_variants_values', TABLE_PRODUCTS_VARIANTS_VALUES); $Qinsert->bindInt(':id', $Qvalues->valueInt('id')); $Qinsert->bindInt(':languages_id', $language_id); $Qinsert->bindInt(':products_variants_groups_id', $Qvalues->valueInt('products_variants_groups_id')); $Qinsert->bindValue(':title', $Qvalues->value('title')); $Qinsert->bindInt(':sort_order', $Qvalues->valueInt('sort_order')); $Qinsert->execute(); if ($lC_Database->isError()) { $error = true; break; } } } if ($error === false) { $Qmanufacturers = $lC_Database->query('select manufacturers_id, manufacturers_url from :table_manufacturers_info where languages_id = :languages_id'); $Qmanufacturers->bindTable(':table_manufacturers_info', TABLE_MANUFACTURERS_INFO); $Qmanufacturers->bindInt(':languages_id', $default_language_id); $Qmanufacturers->execute(); while ($Qmanufacturers->next()) { $Qinsert = $lC_Database->query('insert into :table_manufacturers_info (manufacturers_id, languages_id, manufacturers_url) values (:manufacturers_id, :languages_id, :manufacturers_url)'); $Qinsert->bindTable(':table_manufacturers_info', TABLE_MANUFACTURERS_INFO); $Qinsert->bindInt(':manufacturers_id', $Qmanufacturers->valueInt('manufacturers_id')); $Qinsert->bindInt(':languages_id', $language_id); $Qinsert->bindValue(':manufacturers_url', $Qmanufacturers->value('manufacturers_url')); $Qinsert->execute(); if ($lC_Database->isError()) { $error = true; break; } } } if ($error === false) { $Qstatus = $lC_Database->query('select orders_status_id, orders_status_name from :table_orders_status where language_id = :language_id'); $Qstatus->bindTable(':table_orders_status', TABLE_ORDERS_STATUS); $Qstatus->bindInt(':language_id', $default_language_id); $Qstatus->execute(); while ($Qstatus->next()) { $Qinsert = $lC_Database->query('insert into :table_orders_status (orders_status_id, language_id, orders_status_name) values (:orders_status_id, :language_id, :orders_status_name)'); $Qinsert->bindTable(':table_orders_status', TABLE_ORDERS_STATUS); $Qinsert->bindInt(':orders_status_id', $Qstatus->valueInt('orders_status_id')); $Qinsert->bindInt(':language_id', $language_id); $Qinsert->bindValue(':orders_status_name', $Qstatus->value('orders_status_name')); $Qinsert->execute(); if ($lC_Database->isError()) { $error = true; break; } } } if ($error === false) { $Qstatus = $lC_Database->query('select id, status_name from :table_orders_transactions_status where language_id = :language_id'); $Qstatus->bindTable(':table_orders_transactions_status', TABLE_ORDERS_TRANSACTIONS_STATUS); $Qstatus->bindInt(':language_id', $default_language_id); $Qstatus->execute(); while ($Qstatus->next()) { $Qinsert = $lC_Database->query('insert into :table_orders_transactions_status (id, language_id, status_name) values (:id, :language_id, :status_name)'); $Qinsert->bindTable(':table_orders_transactions_status', TABLE_ORDERS_TRANSACTIONS_STATUS); $Qinsert->bindInt(':id', $Qstatus->valueInt('id')); $Qinsert->bindInt(':language_id', $language_id); $Qinsert->bindValue(':status_name', $Qstatus->value('status_name')); $Qinsert->execute(); if ($lC_Database->isError()) { $error = true; break; } } } if ($error === false) { $Qstatus = $lC_Database->query('select id, title, css_key from :table_shipping_availability where languages_id = :languages_id'); $Qstatus->bindTable(':table_shipping_availability', TABLE_SHIPPING_AVAILABILITY); $Qstatus->bindInt(':languages_id', $default_language_id); $Qstatus->execute(); while ($Qstatus->next()) { $Qinsert = $lC_Database->query('insert into :table_shipping_availability (id, languages_id, title, css_key) values (:id, :languages_id, :title, :css_key)'); $Qinsert->bindTable(':table_shipping_availability', TABLE_SHIPPING_AVAILABILITY); $Qinsert->bindInt(':id', $Qstatus->valueInt('id')); $Qinsert->bindInt(':languages_id', $language_id); $Qinsert->bindValue(':title', $Qstatus->value('title')); $Qinsert->bindValue(':css_key', $Qstatus->value('css_key')); $Qinsert->execute(); if ($lC_Database->isError()) { $error = true; break; } } } if ($error === false) { $Qstatus = $lC_Database->query('select weight_class_id, weight_class_key, weight_class_title from :table_weight_classes where language_id = :language_id'); $Qstatus->bindTable(':table_weight_classes', TABLE_WEIGHT_CLASS); $Qstatus->bindInt(':language_id', $default_language_id); $Qstatus->execute(); while ($Qstatus->next()) { $Qinsert = $lC_Database->query('insert into :table_weight_classes (weight_class_id, weight_class_key, language_id, weight_class_title) values (:weight_class_id, :weight_class_key, :language_id, :weight_class_title)'); $Qinsert->bindTable(':table_weight_classes', TABLE_WEIGHT_CLASS); $Qinsert->bindInt(':weight_class_id', $Qstatus->valueInt('weight_class_id')); $Qinsert->bindValue(':weight_class_key', $Qstatus->value('weight_class_key')); $Qinsert->bindInt(':language_id', $language_id); $Qinsert->bindValue(':weight_class_title', $Qstatus->value('weight_class_title')); $Qinsert->execute(); if ($lC_Database->isError()) { $error = true; break; } } } if ($error === false) { $Qgroup = $lC_Database->query('select id, title, code, size_width, size_height, force_size from :table_products_images_groups where language_id = :language_id'); $Qgroup->bindTable(':table_products_images_groups', TABLE_PRODUCTS_IMAGES_GROUPS); $Qgroup->bindInt(':language_id', $default_language_id); $Qgroup->execute(); while ($Qgroup->next()) { $Qinsert = $lC_Database->query('insert into :table_products_images_groups (id, language_id, title, code, size_width, size_height, force_size) values (:id, :language_id, :title, :code, :size_width, :size_height, :force_size)'); $Qinsert->bindTable(':table_products_images_groups', TABLE_PRODUCTS_IMAGES_GROUPS); $Qinsert->bindInt(':id', $Qgroup->valueInt('id')); $Qinsert->bindInt(':language_id', $language_id); $Qinsert->bindValue(':title', $Qgroup->value('title')); $Qinsert->bindValue(':code', $Qgroup->value('code')); $Qinsert->bindInt(':size_width', $Qgroup->value('size_width')); $Qinsert->bindInt(':size_height', $Qgroup->value('size_height')); $Qinsert->bindInt(':force_size', $Qgroup->value('force_size')); $Qinsert->execute(); if ($lC_Database->isError()) { $error = true; break; } } } // added for permalinks if ($error === false) { $Qpermalinks = $lC_Database->query('select * from :table_permalinks where language_id = :language_id'); $Qpermalinks->bindTable(':table_permalinks', TABLE_PERMALINKS); $Qpermalinks->bindInt(':language_id', $default_language_id); $Qpermalinks->execute(); while ($Qpermalinks->next()) { $Qinsert = $lC_Database->query('insert into :table_permalinks (item_id, language_id, type, query, permalink) values (:item_id, :language_id, :type, :query, :permalink)'); $Qinsert->bindTable(':table_permalinks', TABLE_PERMALINKS); $Qinsert->bindInt(':item_id', $Qpermalinks->valueInt('item_id')); $Qinsert->bindInt(':language_id', $language_id); $Qinsert->bindInt(':type', $Qpermalinks->valueInt('type')); $Qinsert->bindValue(':query', $Qpermalinks->value('query')); $Qinsert->bindValue(':permalink', $Qpermalinks->value('permalink')); $Qinsert->execute(); if ($lC_Database->isError()) { $error = true; break; } } } } } if ($error === false) { $lC_Database->commitTransaction(); lC_Cache::clear('languages'); return true; } else { $lC_Database->rollbackTransaction(); } return false; }
public static function getData($id) { global $lC_Database, $lC_Language, $lC_Vqmod; $lC_Language->loadIniFile('templates_modules_layout.php'); $result = array(); $Qboxes = $lC_Database->query('select id, title from :table_templates_boxes where modules_group = :modules_group order by title'); $Qboxes->bindTable(':table_templates_boxes', TABLE_TEMPLATES_BOXES); $Qboxes->bindValue(':modules_group', $_GET['set']); $Qboxes->execute(); while ($Qboxes->next()) { $result['boxes_array'][$Qboxes->valueInt('id')] = $Qboxes->value('title'); } $Qtemplate = $lC_Database->query('select id from :table_templates where code = :code'); $Qtemplate->bindTable(':table_templates', TABLE_TEMPLATES); $Qtemplate->bindValue(':code', $_GET['filter']); $Qtemplate->execute(); $filter_id = $Qtemplate->valueInt('id'); $pages_array = array(array('id' => $filter_id . '/*', 'text' => '*')); $d_boxes = new lC_DirectoryListing('../templates/' . $_GET['filter'] . '/content'); $d_boxes->setRecursive(true); $d_boxes->setAddDirectoryToFilename(true); $d_boxes->setCheckExtension('php'); $d_boxes->setExcludeEntries('.svn'); foreach ($d_boxes->getFiles(false) as $box) { if ($box['is_directory'] === true) { $entry = array('id' => $filter_id . '/' . $box['name'] . '/*', 'text' => $box['name'] . '/*'); } else { $page_filename = substr($box['name'], 0, strrpos($box['name'], '.')); $entry = array('id' => $filter_id . '/' . $page_filename, 'text' => $page_filename); } if ($_GET['filter'] != DEFAULT_TEMPLATE && $d_boxes->getSize() > 0) { $entry['group'] = '-- ' . $_GET['filter'] . ' --'; } $pages_array[] = $entry; } if ($_GET['filter'] != DEFAULT_TEMPLATE) { $d_boxes = new lC_DirectoryListing('../templates/' . DEFAULT_TEMPLATE . '/content'); $d_boxes->setRecursive(true); $d_boxes->setAddDirectoryToFilename(true); $d_boxes->setCheckExtension('php'); $d_boxes->setExcludeEntries('.svn'); foreach ($d_boxes->getFiles(false) as $box) { if ($box['is_directory'] === true) { $entry = array('id' => $filter_id . '/' . $box['name'] . '/*', 'text' => $box['name'] . '/*'); } else { $page_filename = substr($box['name'], 0, strrpos($box['name'], '.')); $entry = array('id' => $filter_id . '/' . $page_filename, 'text' => $page_filename); } $check_entry = $entry; $check_entry['group'] = '-- ' . $_GET['filter'] . ' --'; if (!in_array($check_entry, $pages_array)) { $entry['group'] = '-- ' . DEFAULT_TEMPLATE . ' --'; $pages_array[] = $entry; } } } $result['pages_array'] = $pages_array; require $lC_Vqmod->modCheck('includes/templates/' . $_GET['filter'] . '.php'); $class = 'lC_Template_' . $_GET['filter']; $filter_template = new $class(); $groups_array = array(); foreach ($filter_template->getGroups($_GET['set']) as $group) { $groups_array[] = array('id' => $group, 'text' => $group); } $Qgroups = $lC_Database->query('select distinct b2p.boxes_group from :table_templates_boxes_to_pages b2p, :table_templates_boxes b where b2p.templates_id = :templates_id and b2p.templates_boxes_id = b.id and b.modules_group = :modules_group and b2p.boxes_group not in (:boxes_group) order by b2p.boxes_group'); $Qgroups->bindTable(':table_templates_boxes_to_pages', TABLE_TEMPLATES_BOXES_TO_PAGES); $Qgroups->bindTable(':table_templates_boxes', TABLE_TEMPLATES_BOXES); $Qgroups->bindInt(':templates_id', $filter_id); $Qgroups->bindValue(':modules_group', $_GET['set']); $Qgroups->bindRaw(':boxes_group', '"' . implode('", "', $filter_template->getGroups($_GET['set'])) . '"'); $Qgroups->execute(); while ($Qgroups->next()) { if ($Qgroups->value('boxes_group') == null) { continue; } $groups_array[] = array('id' => $Qgroups->value('boxes_group'), 'text' => $Qgroups->value('boxes_group')); } if (!empty($groups_array)) { array_unshift($groups_array, array('id' => null, 'text' => $lC_Language->get('please_select'))); $result['groups_dropdown'] = lc_draw_pull_down_menu('group', $groups_array, null, 'class="input with-small-padding"') . ' '; } if ($id != null) { $Qlayout = $lC_Database->query('select b2p.*, b.id as box_id, b.title as box_title, b.code as box_code from :table_templates_boxes_to_pages b2p, :table_templates_boxes b where b2p.id = :id and b2p.templates_boxes_id = b.id'); $Qlayout->bindTable(':table_templates_boxes_to_pages', TABLE_TEMPLATES_BOXES_TO_PAGES); $Qlayout->bindTable(':table_templates_boxes', TABLE_TEMPLATES_BOXES); $Qlayout->bindInt(':id', $id); $Qlayout->execute(); $result['modules_selected'] = $Qlayout->value('box_id'); $result['pages_selected'] = $Qlayout->valueInt('templates_id') . '/' . $Qlayout->value('content_page'); $result['page_specific'] = $Qlayout->valueInt('page_specific') === 1 ? true : false; $result['group_selected'] = $Qlayout->value('boxes_group'); $result['sort_order'] = $Qlayout->valueInt('sort_order'); $Qlayout->freeResult; } return $result; }
public static function getInstalledAddons() { global $lC_Vqmod; $lC_DirectoryListing = new lC_DirectoryListing(DIR_FS_CATALOG . 'addons'); $lC_DirectoryListing->setRecursive(true); $lC_DirectoryListing->setIncludeDirectories(false); $lC_DirectoryListing->setAddDirectoryToFilename(true); // $lC_DirectoryListing->setStats(true); $lC_DirectoryListing->setCheckExtension('php'); $addons = array(); foreach ($lC_DirectoryListing->getFiles() as $addon) { $ao = utility::cleanArr($addon); if (!stristr($ao['name'], 'controller.php')) { continue; } $class = substr($ao['name'], 0, strpos($ao['name'], '/')); if (file_exists(DIR_FS_CATALOG . 'addons/' . $ao['name'])) { include_once $lC_Vqmod->modCheck(DIR_FS_CATALOG . 'addons/' . $ao['name']); $aoData = new $class(); $addon['code'] = substr($ao['name'], 0, strpos($ao['name'], '/')); $addon['type'] = $aoData->getAddonType(); $addon['title'] = $aoData->getAddonTitle(); $addon['description'] = $aoData->getAddonDescription(); $addon['rating'] = $aoData->getAddonRating(); $addon['author'] = $aoData->getAddonAuthor(); $addon['authorWWW'] = $aoData->getAddonAuthorWWW(); $addon['thumbnail'] = $aoData->getAddonThumbnail(); $addon['version'] = $aoData->getAddonVersion(); $addon['compatibility'] = $aoData->getCompatibility(); $addon['installed'] = $aoData->isInstalled(); $addon['mobile'] = $aoData->isMobileEnabled(); $addon['enabled'] = $aoData->isEnabled(); $addons[] = $addon; } } usort($addons, "self::_usortAddonsByRating"); return $addons; }