Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Транслітерація назв картинок


Recommended Posts

Підкажіть, шукаю варіант як зробити  - для Ocstore

МОЖЛиво є готові модулі!

 

1. щоб назви картинок у великому обємі  (прописані  кирилицею )  перегенерувати на  латиницю 

 

2. Якщо загружаю  картинку де назва на кирилиці - щоб їх автоматично перегерувало на латиницю (на сервері)

 

Змінено користувачем Sokolov39
Надіслати
Поділитися на інших сайтах


  • Sokolov39 changed the title to Транслітерація назв картинок

э невеликий скріпт
котрий
SELECT image from product
file get_content CURL
translit
file_put_content
UPDATE product

 

 

			$sql ="SELECT product_id, image FROM " . DB_PREFIX . "product";
			$result = $this->db->query($sql);
			foreach ($result->rows as $p) {
				$curl = curl_init('Адрес Сайта/image/' . rawurlencode($p['image']));
				curl_setopt($curl, CURLOPT_HEADER, 0);
				curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
				curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
				curl_setopt($curl, CURLOPT_FORBID_REUSE, 1);
				curl_setopt($curl, CURLOPT_FRESH_CONNECT, 1);
	
				$response = curl_exec($curl);
				$file_name = strtolower($this->translit(str_replace('data/', '',$p['image'])));
	
				$directories = explode('/', dirname($file_name));
				$path = '';
				foreach ($directories as $directory) {
					$path = $path . '/' . $directory;
	
					if (!is_dir(DIR_IMAGE . 'catalog/' .  $path)) {
						@mkdir(DIR_IMAGE .  'catalog/' . $path, 0777);
					}
				}			
				file_put_contents(DIR_IMAGE . 'catalog/' . $file_name, $response);
				var_dump($file_name, $p['product_id']);
			$this->db->query("UPDATE " . DB_PREFIX . "product 
			SET `image` = '" . $this->db->escape('catalog/' . $file_name) . "'
			WHERE `product_id` = " . (int)$p['product_id']);

код не далек от совершенства, но 10гиг фото пробежал
 

  • +1 1
Надіслати
Поділитися на інших сайтах

  В 06.12.2023 в 19:08, chukcha сказав:

э невеликий скріпт
котрий
SELECT image from product
file get_content CURL
translit
file_put_content
UPDATE product

 

 

			$sql ="SELECT product_id, image FROM " . DB_PREFIX . "product";
			$result = $this->db->query($sql);
			foreach ($result->rows as $p) {
				$curl = curl_init('Адрес Сайта/image/' . rawurlencode($p['image']));
				curl_setopt($curl, CURLOPT_HEADER, 0);
				curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
				curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
				curl_setopt($curl, CURLOPT_FORBID_REUSE, 1);
				curl_setopt($curl, CURLOPT_FRESH_CONNECT, 1);
	
				$response = curl_exec($curl);
				$file_name = strtolower($this->translit(str_replace('data/', '',$p['image'])));
	
				$directories = explode('/', dirname($file_name));
				$path = '';
				foreach ($directories as $directory) {
					$path = $path . '/' . $directory;
	
					if (!is_dir(DIR_IMAGE . 'catalog/' .  $path)) {
						@mkdir(DIR_IMAGE .  'catalog/' . $path, 0777);
					}
				}			
				file_put_contents(DIR_IMAGE . 'catalog/' . $file_name, $response);
				var_dump($file_name, $p['product_id']);
			$this->db->query("UPDATE " . DB_PREFIX . "product 
			SET `image` = '" . $this->db->escape('catalog/' . $file_name) . "'
			WHERE `product_id` = " . (int)$p['product_id']);

код не далек от совершенства, но 10гиг фото пробежал
 

Expand  
$curl = curl_init('Адрес Сайта/image/' . rawurlencode($p['image']));

 

$file_name = strtolower($this->translit(str_replace('data/', '',$p['image'])));

Невистарчає методу $this->translit)

 

Ну і в curl_init свій адрес сайту потрібно вписати)

 

  • +1 1
Надіслати
Поділитися на інших сайтах

  В 06.12.2023 в 19:58, Eldaeron сказав:

Невистарчає методу $this->translit)

Expand  

Ну.. в мене там складний трансліт - бібліотечний

Надіслати
Поділитися на інших сайтах

тут э нюанс

str_replace('data/', '',$p['image'])));
можна прибрати

$this->db->escape('catalog/' . $file_name) . "'

прибрати catalog

Це переносилось з 1.5

Надіслати
Поділитися на інших сайтах

Старый древний относительно рабочий скрипт

 

  Показати вміст

 

  • +1 2
Надіслати
Поділитися на інших сайтах

  В 06.12.2023 в 20:24, spectre сказав:

Старый древний относительно рабочий скрипт

 

  Показати вміст

 

Expand  

 

  В 07.12.2023 в 09:44, Sokolov39 сказав:

А готового модуля нема, щоб мав такий функціонал

Або можливо у пакетном редакторі він є якомусь ? 

Expand  

 

Надіслати
Поділитися на інших сайтах

  В 07.12.2023 в 09:44, Sokolov39 сказав:

А готового модуля нема, щоб мав такий функціонал

Або можливо у пакетном редакторі він є якомусь ? 

Expand  

@spectre вам надав.

 

  1. Створюєте новий файл cyrlat.php в admin/controller/common
  2. Вставляєте весь код в файл
  3. В Правах груп користувачів надаєте доступ до common/cyrlat
  4. Запускаєте скрипт через браузер - https://ваш_сайт/admin/index.php?route=common/cyrlat

 

 

 

  • +1 1
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.