Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

MultiMerch транслитерация имен картинок


 Поделиться

Рекомендованные сообщения

Заставить русскоязычную аудиторию переименовывать имена файлов на латиницу практически невозможно.
 
По этому сделан следующий костыль. (ну не программист я а обращение к разработчику результатов не дало)
 
В файле system\library\msfile.php находим

public function uploadImage($file) {
        $filename =   time() . '_' . md5(rand()) . '.' . $file["name"];

и меняем на

public function uploadImage($file) {

$translit = array("а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d","е"=>"e", "ё"=>"yo","ж"=>"j","з"=>"z","и"=>"i","й"=>"i","к"=>"k","л"=>"l", "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r","с"=>"s","т"=>"t", "у"=>"y","ф"=>"f","х"=>"h","ц"=>"c","ч"=>"ch", "ш"=>"sh","щ"=>"sh","ы"=>"i","э"=>"e","ю"=>"u","я"=>"ya",
  "А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D","Е"=>"E", "Ё"=>"Yo","Ж"=>"J","З"=>"Z","И"=>"I","Й"=>"I","К"=>"K", "Л"=>"L","М"=>"M","Н"=>"N","О"=>"O","П"=>"P", "Р"=>"R","С"=>"S","Т"=>"T","У"=>"Y","Ф"=>"F", "Х"=>"H","Ц"=>"C","Ч"=>"Ch","Ш"=>"Sh","Щ"=>"Sh", "Ы"=>"I","Э"=>"E","Ю"=>"U","Я"=>"Ya",
  "ь"=>"","Ь"=>"","ъ"=>"","Ъ"=>""," "=>"_");

$latfilename=strtr($file['name'], $translit);
$latfilename = mb_strtolower( $latfilename, 'UTF-8');
$latfilename=preg_replace("#-{2,}#","_",$latfilename);
$filename =   time() . '_' . md5(rand()) . '.' . $latfilename;

Сам ищу решение  по ресайзу загружаемой картинки (у самого не получается пока) -  пользователь грузит 2048х2048 px а сохраняется 1024х1024 px.

 

Изменено пользователем Nashlab
Ссылка на комментарий
Поделиться на других сайтах


Классное решение! А для транслитерации чпу случайно не знаете решение? А то получается site.com/товар-на-кириллице, и соответственно в sitemap.xml такая же беда. Ставлю эксперименты с translit.js и кучу модулей перепробовал - на multimerch не могу заставить систему автоматически генерить чпу с транлитом на латиницу (((

Ссылка на комментарий
Поделиться на других сайтах


Я так понял копать надо здесь catalog/controller/seller/account-product.php, каким-то образом вставить транслитерацию на латиницу ... но я также не программист и не могу разобраться как? (

		// SEO urls generation for products
		if ($this->config->get('msconf_enable_seo_urls_product')) {
			$latin_check = '/[^\x{0030}-\x{007f}]/u';
			$product_name = $data['languages'][$default]['product_name'];
			$non_latin_chars = preg_match($latin_check, $product_name);
			if ($this->config->get('msconf_enable_non_alphanumeric_seo') && $non_latin_chars) {
				$data['keyword'] = implode("-", str_replace("-", "", explode(" ", preg_replace("/[^\p{L}\p{N} ]/u", '', strtolower($product_name)))));
			}
			else {
				$data['keyword'] = implode("-", str_replace("-", "", explode(" ", preg_replace("/[^A-Za-z0-9 ]/", '', strtolower($product_name)))));
			}
		}
		 
Изменено пользователем mojo
Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.