protected static function getName($id, $id_field, $name_field, $table, $identifier, $cache_folder, $languages_id, $languages_code, $languages_field = "languages_id") { $id = (int) $id; $cache_filename = self::buildFileName($id, $languages_code); if (($name = SSUCache::read($cache_filename, $cache_folder)) !== false) { return $name; } $sql_query = "SELECT {$name_field} FROM {$table} WHERE {$id_field} ='{$id}'"; if ($languages_id != 0) { $sql_query .= " AND {$languages_field} = '{$languages_id}'"; } $_name = self::getNameFromDB($sql_query, $name_field); // fall back to default language if (empty($_name) && $languages_id != 0) { $sql_query = "SELECT {$name_field} FROM {$table} WHERE {$id_field} ='{$id}' AND {$languages_field} = 1"; $_name = self::getNameFromDB($sql_query, $name_field); } if (empty($_name)) { $_name = $name_field; } $_name = SSULanguage::parseName($_name, $languages_code); $name = $_name . $identifier . $id; SSUCache::write($cache_filename, $cache_folder, $name); // write to link alias if (SSUConfig::registry('configs', 'auto_alias')) { // here we want to make sure we use the product id without the attribute, we dont want to create aliases for attributes if (!is_numeric($id) && ($sem_pos = strpos($id, ':')) !== false) { $id = substr($id, 0, $sem_pos); $name = $_name . $identifier . $id; } SSUAlias::autoAlias($id, $cache_folder, $name, $_name); } return $name; }
static function getName($id, $languages_id, $languages_code) { if (defined('TABLE_EZPAGES_TEXT')) { self::$table = TABLE_EZPAGES_TEXT; } return parent::getName($id, self::$id_field, self::$name_field, self::$table, SSUConfig::registry('identifiers', self::$identifier), self::$identifier, $languages_id, $languages_code); }
static function read($name, $cache_folder) { if (isset(self::$cache[$cache_folder][$name])) { return self::$cache[$cache_folder][$name]; } return @file_get_contents(SSUConfig::registry('paths', 'cache') . "{$cache_folder}/{$name}"); }
function resetCache($cache_folder) { global $messageStack; self::$file_counter = 0; if ($cache_folder == 'all') { $cache_folder = SSUConfig::registry('paths', 'cache'); if (!@is_writable($cache_folder)) { $messageStack->add("{$cache_folder} folder is not writable", 'error'); } else { self::sureRemoveDir($cache_folder, false); } } else { $cache_folder = SSUConfig::registry('paths', 'cache') . $cache_folder; if (!@is_writable($cache_folder)) { $messageStack->add("{$cache_folder} folder is not writable", 'error'); } else { self::sureRemoveDir($cache_folder, false); } $cache_folder = SSUConfig::registry('paths', 'cache') . 'pc'; if (!@is_writable($cache_folder)) { $messageStack->add("{$cache_folder} folder is not writable", 'error'); } else { self::sureRemoveDir($cache_folder, false); } } return self::$file_counter; }
function checkCache() { global $messageStack; $messageStack->add('ssu', 'Checking cache write permission', 'warning'); // Lets check the chmod of cache folders first. checkChmod(SSUConfig::registry('paths', 'cache')); }
static function exists($name, $cache_folder, $use_subfolder) { $cache_folder = SSUConfig::registry('paths', 'cache') . "{$cache_folder}/"; if ($use_subfolder) { $path = substr($name, 0, 4); $cache_folder .= chunk_split($path, 1, '/'); } $cache_folder = rtrim($cache_folder, '/'); return file_exists("{$cache_folder}/{$name}"); }
static function removeIdentifiers($name) { foreach (SSUConfig::registry('identifiers') as $identifier) { if (!is_array($identifier)) { $name = str_replace($identifier, '', $name); } else { foreach ($identifier as $sub_dentifier) { $name = str_replace($sub_dentifier, '', $name); } } } return $name; }
static function parseName($name) { $name = strtolower($name); // we replace any non alpha numeric characters by the name delimiter $name = self::removeNonAlphaNumeric($name, SSUConfig::registry('delimiters', 'name')); // Remove short words first $name = self::removeShortWords($name, SSUConfig::registry('configs', 'minimum_word_length'), SSUConfig::registry('delimiters', 'name')); // trim the sentence $name = self::trimLongName($name); // remove excess SSUConfig::registry('delimiters', 'name') $name = self::removeDelimiter($name); // remove identifiers $name = self::removeIdentifiers($name); // remove trailing _ $name = trim($name, SSUConfig::registry('delimiters', 'name')); return urlencode($name); }
static function parseName($name) { $cyrillic = array("ж", "ё", "й", "ю", "ь", "ч", "щ", "ц", "у", "к", "е", "н", "г", "ш", "з", "х", "ъ", "ф", "ы", "в", "а", "п", "р", "о", "л", "д", "э", "я", "с", "м", "и", "т", "б", "Ё", "Й", "Ю", "Ч", "Ь", "Щ", "Ц", "У", "К", "Е", "Н", "Г", "Ш", "З", "Х", "Ъ", "Ф", "Ы", "В", "А", "П", "Р", "О", "Л", "Д", "Ж", "Э", "Я", "С", "М", "И", "Т", "Б"); $translit = array("zh", "yo", "i", "yu", "", "ch", "sh", "c", "u", "k", "e", "n", "g", "sh", "z", "h", "", "f", "y", "v", "a", "p", "r", "o", "l", "d", "ye", "ya", "s", "m", "i", "t", "b", "yo", "I", "YU", "CH", "", "SH", "C", "U", "K", "E", "N", "G", "SH", "Z", "H", "", "F", "Y", "V", "A", "P", "R", "O", "L", "D", "Zh", "Ye", "Ya", "S", "M", "I", "T", "B"); $name = str_replace($cyrillic, $translit, $name); $name = strtolower($name); // we replace any non alpha numeric characters by the name delimiter $name = self::removeNonAlphaNumeric($name, SSUConfig::registry('delimiters', 'name')); // Remove short words first $name = self::removeShortWords($name, SSUConfig::registry('configs', 'minimum_word_length'), SSUConfig::registry('delimiters', 'name')); // trim the sentence $name = self::trimLongName($name); // remove excess SSUConfig::registry('delimiters', 'name') $name = self::removeDelimiter($name); // remove identifiers $name = self::removeIdentifiers($name); // remove trailing _ $name = trim($name, SSUConfig::registry('delimiters', 'name')); }
static function parseName($name) { $cyrillic = array("�", "�", "�", "�", "�", "ó", "�"); $translit = array("n", "a", "e", "i", "o", "o", "u"); $name = str_ireplace($cyrillic, $translit, $name); $name = strtolower($name); // we replace any non alpha numeric characters by the name delimiter $name = self::removeNonAlphaNumeric($name, SSUConfig::registry('delimiters', 'name')); // Remove short words first $name = self::removeShortWords($name, SSUConfig::registry('configs', 'minimum_word_length'), SSUConfig::registry('delimiters', 'name')); // trim the sentence $name = self::trimLongName($name); // remove excess SSUConfig::registry('delimiters', 'name') $name = self::removeDelimiter($name); // remove identifiers $name = self::removeIdentifiers($name); // remove trailing _ $name = trim($name, SSUConfig::registry('delimiters', 'name')); return urlencode($name); }
static function parseName($name) { $cyrillic = array("�", "�", "ş", "Ş", "�", "�", "ç", "Ç", "�", "�", "Ü", "ü", "�", "�", "ö", "Ö", "�", "�", "ğ", "Ğ", "�", "�", "ı", "İ"); $translit = array("s", "S", "s", "S", "c", "C", "c", "C", "U", "u", "U", "u", "o", "O", "o", "O", "g", "G", "g", "G", "i", "I", "i", "I"); $name = str_ireplace($cyrillic, $translit, $name); $name = strtolower($name); // we replace any non alpha numeric characters by the name delimiter $name = self::removeNonAlphaNumeric($name, SSUConfig::registry('delimiters', 'name')); // Remove short words first $name = self::removeShortWords($name, SSUConfig::registry('configs', 'minimum_word_length'), SSUConfig::registry('delimiters', 'name')); // trim the sentence $name = self::trimLongName($name); // remove excess SSUConfig::registry('delimiters', 'name') $name = self::removeDelimiter($name); // remove identifiers $name = self::removeIdentifiers($name); // remove trailing _ $name = trim($name, SSUConfig::registry('delimiters', 'name')); return urlencode($name); }
static function parseName($name) { $hebrew = array("חצאיות", "מכנסיים", "אביזרים", "שמלות", "וו", "יי", "א", "ב", "ג", "ד", "ה", "ו", "ז", "ח", "ט", "י", "ך", "כ", "ל", "ם", "מ", "ן", "נ", "ס", "ע", "ף", "פ", "ץ", "צ", "ק", "ר", "ש", "ת"); $translit = array("khatzayot", "mehnasaim", "avizarim", "smalot", "v", "ai", "a", "b", "g", "d", "h", "o", "z", "kh", "t", "i", "kh", "k", "l", "m", "m", "n", "n", "s", "a", "f", "p", "tz", "tz", "k", "r", "sh", "t"); $name = str_replace($hebrew, $translit, $name); $name = strtolower($name); // we replace any non alpha numeric characters by the name delimiter $name = self::removeNonAlphaNumeric($name, SSUConfig::registry('delimiters', 'name')); // Remove short words first $name = self::removeShortWords($name, SSUConfig::registry('configs', 'minimum_word_length'), SSUConfig::registry('delimiters', 'name')); // trim the sentence $name = self::trimLongName($name); // remove excess SSUConfig::registry('delimiters', 'name') $name = self::removeDelimiter($name); // remove identifiers $name = self::removeIdentifiers($name); // remove trailing _ $name = trim($name, SSUConfig::registry('delimiters', 'name')); return urlencode($name); }
static function getName($cPath, $languages_id, $languages_code) { $cache_filename = self::buildFileName($cPath, $languages_code); if (($name = SSUCache::read($cache_filename, self::$identifier)) !== false) { return $name; } // do not trust the passed cPath, always rebuild it $current_categories_id = self::getID($cPath, '_'); $category_ids = array(); zen_get_parent_categories($category_ids, $current_categories_id); $category_ids = array_reverse($category_ids); $category_ids[] = $current_categories_id; $cat_count = count($category_ids); $counter = $cat_count - SSUConfig::registry('configs', 'max_level'); if ($counter < 0) { $counter = 0; } $result = ''; // this may not be the best way to build the category name, but we do this once per cPath only while ($counter <= $cat_count - 1) { $category_ids[$counter] = (int) $category_ids[$counter]; $sql_query = "SELECT categories_name FROM " . TABLE_CATEGORIES_DESCRIPTION . " WHERE categories_id ='" . $category_ids[$counter] . "' AND language_id= '{$languages_id}' LIMIT 1"; $result .= self::getNameFromDB($sql_query, self::$name_field) . SSUConfig::registry('delimiters', 'name'); $counter++; } $result = trim(SSULanguage::parseName($result, $languages_code)); if (empty($result)) { $result = self::$name_field; } $result = $result . SSUConfig::registry('identifiers', self::$identifier) . $cPath; // write to file EVEN if we get an empty content SSUCache::write($cache_filename, self::$identifier, $result); return $result; }
static function getName($cPath, $languages_id, $languages_code) { $cache_filename = self::buildFileName($cPath, $languages_code); if (($name = SSUCache::read($cache_filename, self::$identifier)) !== false) { return $name; } $current_categories_id = self::getID($cPath, '_'); $category_ids = explode('_', $cPath); $cat_count = count($category_ids); $counter = $cat_count - SSUConfig::registry('configs', 'max_level'); if ($counter < 0) { $counter = 0; } $_name = array(); // this may not be the best way to build the category name, but we do this once per cPath only while ($counter <= $cat_count - 1) { $category_ids[$counter] = (int) $category_ids[$counter]; $sql_query = "SELECT categories_name FROM " . self::$table . " WHERE categories_id ='" . $category_ids[$counter] . "' AND language_id= '{$languages_id}' LIMIT 1"; $__name = self::getNameFromDB($sql_query, self::$name_field); // fall back to default language if (empty($__name) && $languages_id != 0) { $sql_query = "SELECT categories_name FROM " . self::$table . " WHERE categories_id ='" . $category_ids[$counter] . "' AND language_id = 1 LIMIT 1"; $__name = self::getNameFromDB($sql_query, self::$name_field); } //if(empty($__name)) // $__name = self::$name_field; $_name[] = SSULanguage::parseName($__name, $languages_code); $counter++; } if (empty($_name)) { $_name = SSULanguage::parseName($name_field, $languages_code); } if (SSUConfig::registry('configs', 'alias_status')) { $_name = implode(SSUConfig::registry('configs', 'category_separator'), $_name); $name = str_replace(SSUConfig::registry('configs', 'category_separator'), SSUConfig::registry('delimiters', 'name'), $_name) . SSUConfig::registry('identifiers', self::$identifier) . $cPath; } else { $_name = implode(SSUConfig::registry('delimiters', 'name'), $_name); $name = $_name . SSUConfig::registry('identifiers', self::$identifier) . $cPath; } // write to file EVEN if we get an empty content SSUCache::write($cache_filename, self::$identifier, $name); // write to link alias if (SSUConfig::registry('configs', 'auto_alias')) { SSUAlias::autoAlias($current_categories_id, self::$identifier, $name, $_name); } return $name; }
static function removeIdentifiers($name) { $name = SSUConfig::registry('delimiters', 'id') . $name . SSUConfig::registry('delimiters', 'id'); foreach (SSUConfig::registry('identifiers') as $identifier) { if (!is_array($identifier)) { $name = str_replace($identifier, '', $name); } else { foreach ($identifier as $sub_dentifier) { $name = str_replace($sub_dentifier, '', $name); } } } return trim($name, SSUConfig::registry('delimiters', 'id')); }
static function getName($id, $languages_id, $languages_code) { $sql_query = "SELECT " . self::$name_field . " FROM " . self::$table . " WHERE products_id ='{$id}' AND language_id = '{$languages_id}'"; $identifiers = SSUConfig::registry('identifiers', self::$identifier); return parent::getName($id, $sql_query, self::$name_field, $identifiers[self::$main_page], self::$identifier, $languages_code); }
static function getName($id, $languages_id, $languages_code) { $identifiers = SSUConfig::registry('identifiers', self::$identifier); return parent::getName($id, self::$id_field, self::$name_field, self::$table, $identifiers[self::$main_page], self::$identifier, $languages_id, $languages_code, 'language_id'); }
static function load($class, $name) { require SSUConfig::registry('paths', 'plugins') . "{$class}/{$name}.php"; }
function checkQueryExcludedList($page) { if (in_array($page, SSUConfig::registry('configs', 'queries_excluded_list'))) { return true; } return false; }
?> ">Click here</a><br /> <!--Reset cache timer(Run this when you add new product ONLY IF you use Auto Alias): <a href="<?php echo zen_href_link(FILENAME_SSU, 'action=reset_cache_timer'); ?> ">Click here</a><br />--> Reset all cache: <a href="<?php echo zen_href_link(FILENAME_SSU, 'action=reset_cache&folder=all'); ?> ">Click here</a><br /> Reset alias cache: <a href="<?php echo zen_href_link(FILENAME_SSU, 'action=reset_cache&folder=aliases'); ?> ">Click here</a><br /> <?php foreach (SSUConfig::registry('plugins', 'parsers') as $parser) { ?> Reset only <?php echo $parser; ?> cache: <a href="<?php echo zen_href_link(FILENAME_SSU, "action=reset_cache&folder={$parser}"); ?> ">Click here</a><br /> <?php } ?> </fieldset> <fieldset> <legend>Alias Functions</legend> Manage Aliases: <a href="<?php
static function removeCache($id_list) { global $db; if (!is_array($id_list)) { $id_list = array($id_list); } foreach ($id_list as $id) { // use the id to delete alias cache $alias_cache = $db->Execute("SELECT * FROM " . TABLE_SSU_CACHE . " WHERE referring_id = {$id} and type = 'aliases' LIMIT 1"); // delete alias cache $cache_folder = SSUConfig::registry('paths', 'cache') . "aliases/" . chunk_split(substr($alias_cache->fields['file'], 0, 4), 1, '/'); $cache_folder = rtrim($cache_folder, '/') . '/'; if (@unlink($cache_folder . $alias_cache->fields['file'])) { // now we have to delete all things related $db->Execute("DELETE FROM " . TABLE_SSU_CACHE . " WHERE file='{$alias_cache->fields['file']}' AND type='aliases'"); } // get the related cache files $pc = $db->Execute("SELECT * FROM " . TABLE_LINKS_ALIASES . " WHERE id = {$id}"); $pc_cache = $db->Execute("SELECT * FROM " . TABLE_SSU_CACHE . " WHERE referring_id = {$pc->fields['referring_id']} and type = '{$pc->fields['alias_type']}'"); while (!$pc_cache->EOF) { $cache_folder = SSUConfig::registry('paths', 'cache') . "pc/" . chunk_split(substr($pc_cache->fields['file'], 0, 4), 1, '/'); $cache_folder = rtrim($cache_folder, '/') . '/'; if (@unlink($cache_folder . $pc_cache->fields['file'])) { // now we have to delete all things related $db->Execute("DELETE FROM " . TABLE_SSU_CACHE . " WHERE file='{$pc_cache->fields['file']}' AND type!='aliases'"); } $pc_cache->MoveNext(); } } }
/** * Given the id, languages, queries the name * * @param int $id * @param int $languages_id * @param string $languages_code * @return string */ static function getName($id, $languages_id, $languages_code) { $sql_query = "SELECT " . self::$name_field . " FROM " . self::$table . " WHERE manufacturers_id ='{$id}'"; return parent::getName($id, $sql_query, self::$name_field, SSUConfig::registry('identifiers', self::$identifier), self::$identifier, $languages_code); }
$ssuConfig[$key][$subKey] = $ssuLocalConfig[$key][$subKey]; } else { $ssuConfig[$key][$subKey] = array_merge($ssuConfig[$key][$subKey], $ssuLocalConfig[$key][$subKey]); } } } } $ssuConfig['configs']['pages_excluded_list'] = explode(',', ltrim(SSU_EXCLUDE_LIST . ',advanced_search_result,checkout,redirect,popup_image_additional,search,download,wordpress', ',')); $ssuConfig['configs']['queries_excluded_list'] = explode(',', ltrim(SSU_QUERY_EXCLUDE_LIST . ',zenid,gclid,number_of_uploads,number_of_downloads,action,sort,page,disp_order,filter_id,alpha_filter_id,currency,keyword,search_in_description,attributes_filter_id,mix_price,max_price,payment_error,error,inc_subcat', ',')); SSUConfig::init($ssuConfig); // load the core classes foreach (SSUConfig::registry('cores') as $class) { require SSUConfig::registry('paths', 'cores') . "{$class}.php"; } // set identifiers foreach (SSUConfig::registry('identifiers') as $key => $identifier) { if (is_array($identifier)) { foreach ($identifier as $sub_key => $sub_identifier) { $identifiers[$sub_key] = SSU_ID_DELIMITER . $sub_identifier . SSU_ID_DELIMITER; } } else { $identifiers = SSU_ID_DELIMITER . $identifier . SSU_ID_DELIMITER; } SSUConfig::register('identifiers', $key, $identifiers); } // init plugins foreach (SSUConfig::registry('plugins') as $className => $classArray) { foreach ($classArray as $plugin) { require SSUConfig::registry('paths', 'plugins') . "{$className}/{$plugin}.php"; } }
} else { $ssuConfig[$key][$subKey] = array_merge($ssuConfig[$key][$subKey], $ssuLocalConfig[$key][$subKey]); } } } SSUConfig::init($ssuConfig); // load the core classes foreach (SSUConfig::registry('cores') as $class) { require SSUConfig::registry('paths', 'cores') . "{$class}.php"; } // set identifiers foreach (SSUConfig::registry('identifiers') as $key => $identifier) { if (is_array($identifier)) { foreach ($identifier as $sub_key => $sub_identifier) { $identifiers[$sub_key] = SSU_ID_DELIMITER . $sub_identifier . SSU_ID_DELIMITER; } } else { $identifiers = SSU_ID_DELIMITER . $identifier . SSU_ID_DELIMITER; } SSUConfig::register('identifiers', $key, $identifiers); } // init plugins foreach (SSUConfig::registry('plugins') as $className => $classArray) { foreach ($classArray as $plugin) { require SSUConfig::registry('paths', 'plugins') . "{$className}/{$plugin}.php"; } } // init alias if (SSUConfig::registry('alias_status')) { SSUAlias::retrieveAliases(); }
static function getName($id, $languages_id, $languages_code, $identifier = '', $cache_folder = '', $languages_code = '') { $sql_query = "SELECT " . self::$name_field . " FROM " . self::$table . " WHERE pages_id ='{$id}' AND languages_id = '{$languages_id}'"; return parent::getName($id, $sql_query, self::$name_field, SSUConfig::registry('identifiers', self::$identifier), self::$identifier, $languages_code); }
/** * Given the id, languages, queries the name * * @param int $id * @param int $languages_id * @param string $languages_code * @return string */ static function getName($id, $languages_id, $languages_code) { return parent::getName($id, self::$id_field, self::$name_field, self::$table, SSUConfig::registry('identifiers', self::$identifier), self::$identifier, 0, $languages_code); }
function canonical() { // is this a product page? switch ($_GET['main_page']) { case 'index': break; default: if (key_exists($_GET['main_page'], SSUConfig::registry('identifiers', 'products')) && isset($_GET['products_id'])) { echo zen_href_link($_GET['main_page'], 'products_id=' . $_GET['main_page']); } break; } }