Пример #1
0
 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;
 }
Пример #2
0
 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);
 }
Пример #3
0
 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}");
 }
Пример #4
0
 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;
 }
Пример #5
0
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'));
}
Пример #6
0
 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}");
 }
Пример #7
0
 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;
 }
Пример #8
0
 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);
 }
Пример #9
0
 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'));
 }
Пример #10
0
 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);
 }
Пример #11
0
 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);
 }
Пример #12
0
 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);
 }
Пример #13
0
 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;
 }
Пример #14
0
 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;
 }
Пример #15
0
 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);
 }
Пример #16
0
 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');
 }
Пример #17
0
 static function load($class, $name)
 {
     require SSUConfig::registry('paths', 'plugins') . "{$class}/{$name}.php";
 }
Пример #18
0
 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'));
 }
Пример #19
0
 function checkQueryExcludedList($page)
 {
     if (in_array($page, SSUConfig::registry('configs', 'queries_excluded_list'))) {
         return true;
     }
     return false;
 }
Пример #20
0
?>
">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 
Пример #21
0
 /**
  * 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);
 }
Пример #22
0
                $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";
    }
}
Пример #23
0
 /**
  * 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);
 }
Пример #24
0
        } 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();
}
Пример #25
0
 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();
         }
     }
 }
Пример #26
0
 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;
     }
 }
<?php

$langConfig = array('languages_code' => isset($_SESSION['languages_code']) ? $_SESSION['languages_code'] : DEFAULT_LANGUAGE, 'languages_id' => isset($_SESSION['languages_id']) ? $_SESSION['languages_id'] : 1);
SSUConfig::registerArray('configs', $langConfig);
Пример #28
0
 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);
 }