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

shishifr1

Новачок
  
  • Публікації

    14
  • З нами

  • Відвідування

Повідомлення, опубліковані користувачем shishifr1

  1. ну или сделать так 

    if($this->request->get['path']) {
    	$this->document->addLink($this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $this->request->get['product_id']), 'canonical');
    } else {
    	$this->document->addLink($this->url->link('product/product', 'product_id=' . $this->request->get['product_id']), 'canonical');
    } 
    
  2. PS Рекомендую решить проблему другим способом - спрятать текст описания категории под спойлер. И места занимать не будет много и поисковики индексировать будут как надо и гемороя с версткой избежите

    Ну вы конечно советуете. Человек попросил совета в конкретной задаче. Зачем прятать сеошный текст под спойлер и потом челове захочет его прочтать и увиди что там ничего интересного, расстроится.

     

    Автор, в вашем случае нужно элементу div.category-info в цсс задать

     

    element.style {
    position: absolute;
    bottom: 0;
    }
    

    для div#content добавить в css

    position: relative;
    

    теперь описание находится внизу блока content, но оно налезает на список товаров. ЧТобы это исправить нужно задать свойство margin-bottom для блока product-list, которое равно высоте блока category-description. Cделать это можно на ходу с помощью javascript. Например

     

    <script type="text/javascript">
    var infoHeight = document.getElementById('category-info').offsetHeight;
    var list = document.getElementsByClassName('product-list'); 
    if( list !== null ) {
    	list[0].setAttribute("style", "margin-bottom:" + infoHeight.toString() + "px");
    }
    </script>
    

    теперь у вас описание внизу визуально, но в коде оно вверху

  3. Всем привет.

     

    Столкнулся с проблемой, заказчик просит в админке вбивать цены в евро, а на сайте, чтобы они отображались в гривнах.

    Нашел решение, вот делюсь, вдруг, кто-то то же такое ищет. 

     

    Все до удивительного просто. Вы должны указать опенкарту главную валюту одну, а пользователю (браузеру пользователя) указать другую. И будет произведен пересчет для него.

     

    Меняем всего одну строку в файле /system/library/currency.php

    В функции 

    public function __construct($registry) {
    

    в последней ее строке (строка 33 в OcStore 1.5.4.1) меняем

    $this->set($this->config->get('config_currency'));
    

    на

    $this->set('UAH');
    

    в данном случае я в админке создал валюту "гривны" с кодом "UAH"

    У рубля это код "RUB"

    У доллара "USD"

     

    Функция set(); задает пользователю начальную валюту

    Вот и все, надеюсь, кому-то это поможет

    • +1 1
  4. Вставлю свои 5 копеек :)

     

    2 функции - ресайз изображений с зумом (если не пропорционально, то картинка приближается для заполнения окна и белых полос нет)

     

    Установка:

     

    1) Открываем файл /catalog/models/tool/image.php и перед 

     

    public function resize($filename, $width, $height) {
    

    вставляем

     

    	public function myresize($filename, $width, $height) {
    		if (!file_exists(DIR_IMAGE . $filename) || !is_file(DIR_IMAGE . $filename)) {
    			return;
    		} 
    		
    		$info = pathinfo($filename);
    		$extension = $info['extension'];
    		
    		$old_image = $filename;
    		$new_image = 'cache/' . substr($filename, 0, strrpos($filename, '.')) . '-' . $width . 'x' . $height . '.' . $extension;
    		
    		if (!file_exists(DIR_IMAGE . $new_image) || (filemtime(DIR_IMAGE . $old_image) > filemtime(DIR_IMAGE . $new_image))) {
    			$path = '';
    			
    			$directories = explode('/', dirname(str_replace('../', '', $new_image)));
    			
    			foreach ($directories as $directory) {
    				$path = $path . '/' . $directory;
    				
    				if (!file_exists(DIR_IMAGE . $path)) {
    					@mkdir(DIR_IMAGE . $path, 0777);
    				}		
    			}
    			
    			$image = new Image(DIR_IMAGE . $old_image);
    			$image->myresize($width, $height);
    			$image->save(DIR_IMAGE . $new_image);
    		}
    		
    		if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
    			return HTTPS_IMAGE . $new_image;
    		} else {
    			return HTTP_IMAGE . $new_image;
    		}	
    	}
    

    2) Файл /system/library/image.php

     

    перед

     

    public function resize($width = 0, $height = 0) {
    

    вставляем

     

    public function myresize($width = 0, $height = 0) {
        	if (!$this->info['width'] || !$this->info['height']) {
    			return;
    		}
    
                $x = $this->info['width'];
                $y = $this->info['height'];
    
                // old images width will fit
                if(($x / $y) < ($width/$height)){
                    $scale = $width/$x;
                    $newX = 0;
                    $newY = - ($scale * $y - $height) / 2;
    
                // else old image's height will fit
                }else{
                    $scale = $height/$y;
                    $newX = - ($scale * $x - $width) / 2;
                    $newY = 0;
                }
    
                $image_old = $this->image;
                $this->image = imagecreatetruecolor($width, $height);
    
                $new_width =  $scale * $x;
                $new_height = $scale * $y;
    
                // now use imagecopyresampled
                imagecopyresampled($this->image, $image_old, $newX, $newY, 0, 0, $new_width, $new_height, $x, $y);
    
    		if (isset($this->info['mime']) && $this->info['mime'] == 'image/png') {		
    			imagealphablending($this->image, false);
    			imagesavealpha($this->image, true);
    			$background = imagecolorallocatealpha($this->image, 255, 255, 255, 127);
    			imagecolortransparent($this->image, $background);
    		} else {
    			$background = imagecolorallocate($this->image, 255, 255, 255);
    		}
            imagedestroy($image_old);
               
            $this->info['width']  = $width;
            $this->info['height'] = $height;
        }
    

     

    3) теперь везде используется пока стандартная функция ресайза. Если вы хотите использовать новую, например в категории (в списке отображения товаров), то вам нужно открыть файл /catalog/controller/product/category.php, найти там $this->model_tool_image->resize и заменить на $this->model_tool_image->myresize. И так везьде где вам нужно. Не забудьте зайти потом в папку /image/cache/data  и удалить кшированые изображения со старым ресайзом

    • +1 1
  5. Здравствуйте. Купил модуль, установил на 1.5.3.1, все вроде гуд, но если нажать на кнопку оформить после заполнения всех полей, то ничего не происходит

×
×
  • Створити...

Important Information

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