Plugin Directory

Changeset 798223


Ignore:
Timestamp:
11/03/2013 08:48:06 PM (11 years ago)
Author:
Usernaprimer
Message:

Fixed thumb bugs

Location:
portgorod-ocstore-opencart-product-widget/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • portgorod-ocstore-opencart-product-widget/trunk/portgorod_opencart.php

    r795304 r798223  
    55Description: Shows products from your ocstore on your wp
    66Author: Dmitrii Smirnov
    7 Version: 1.0
     7Version: 1.1
    88Author URI: [email protected]
    99*/
     
    129129//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    130130
    131 $por_seo_is_seo = get_option('por_openopt_is_seo'); //включено ли seo
    132 $por_seo_is_html = get_option('por_openopt_is_html'); //seo окончание, если оно есть
    133 $por_seo_is_subcat = get_option('por_openopt_is_subcat'); //если включено seo - отображать ли товар через категории в адресе
    134 $por_seo_main_dom = get_option('por_openopt_main_dom'); //корневая папка магазина. Если на другом домене - надо писать домен. 'http://shop.com/' или вместе с подпапкой 'http://site.com/shop/' если она есть. Если нет - просто папку /shop/ или /
    135 //$por_seo_dom = get_option('por_openopt_dom'); //вписываем ТОЛЬКО если магазин на другом адресе. БЕЗ СЛЭША НА КОНЦЕ  (нафиг)
    136 $por_img_def = plugins_url( 'no_image.jpg', __FILE__ );//пусть к картинке по-умолчанию, если у товара нет картинки. Местоположение этой картинки - папка /image/ в папке магазина
     131$por_seo_is_seo = get_option('por_openopt_is_seo');
     132$por_seo_is_html = get_option('por_openopt_is_html');
     133$por_seo_is_subcat = get_option('por_openopt_is_subcat');
     134$por_seo_main_dom = get_option('por_openopt_main_dom');
     135//$por_seo_dom = get_option('por_openopt_dom');
     136$por_img_def = plugins_url( 'no_image.jpg', __FILE__ );
    137137$por_img_cha_folder = 'portgorod_ocstore_pipka';
    138 $por_img_qua = get_option('por_openopt_img_qua'); //качество превьюшек
     138$por_img_qua = get_option('por_openopt_img_qua');
    139139$por_buttext = get_option('por_openopt_buttext');
    140140$por_showbutt = get_option('por_openopt_showbutt');
     
    149149$por_dbprefix = get_option('por_openopt_db_prefix');
    150150
    151 $por_prtag = $instance[ 'por_prtag' ]; //тэг товара
    152 $por_num = $instance[ 'por_num' ]; //количество товаров
    153 $por_template = $instance[ 'por_template' ]; //шаблон, через который выводить товар
    154 $por_cat_to_look = $instance[ 'por_cat_to_look' ]; //id категории, из которой добирать товары до оставшегося количества, если не хватит товаров с нужным тэгом, если добирать из всех категорий - оставить пустым
    155 
    156 $por_img_size_w = $instance[ 'por_img_size_w' ]; //размер превьюшки товара: ширина
    157 $por_img_size_h = $instance[ 'por_img_size_h' ]; //размер превьюшки товара: высота
    158 $por_img_rtype = get_option('por_openopt_img_rtype'); // тип изготовления превьюшки
    159 $por_img_bg = get_option('por_openopt_img_bg'); //фон для картинки, если будут оставаться поля
     151$por_prtag = $instance[ 'por_prtag' ];
     152$por_num = $instance[ 'por_num' ];
     153$por_template = $instance[ 'por_template' ];
     154$por_cat_to_look = $instance[ 'por_cat_to_look' ];
     155
     156$por_img_size_w = $instance[ 'por_img_size_w' ];
     157$por_img_size_h = $instance[ 'por_img_size_h' ];
     158$por_img_rtype = get_option('por_openopt_img_rtype');
     159$por_img_bg = get_option('por_openopt_img_bg');
    160160$por_language = '1';
    161161
     
    180180    if(($por_is_seo=='yes')and($por_is_subcat=='yes'))
    181181    {
    182     //у нас ситуация, когда включен сео-юрл и отображение товара через категории
    183         //забираем родительскую категорию для товара
    184182        $por_seocatq=mysql_query("SELECT category_id FROM `" . TABLE_PREFIX . "product_to_category` WHERE main_category='1' AND product_id='$por_product_id'");
    185183        $por_seocata=mysql_fetch_array($por_seocatq);
    186184        $por_pre_url_c='';
    187185        $por_cn_s='0';
    188         //загоняем в массив все родительские категории с соблюдением иерархии
    189186        while($por_seocata[$por_cn_s] !== '0')
    190187        {
     
    193190            $por_cn_s++;
    194191            $por_seocata[$por_cn_s] = $por_seocatarra['0'];
    195             //массив категорий нафиг не нужен, будем вытаскивать сео
     192           
    196193            $por_get_cat_seo_pr = 'category_id='.$por_seocata[$por_cn_s-1];
    197194            $por_get_cat_seo_q = mysql_query("SELECT keyword FROM `" . TABLE_PREFIX . "url_alias` WHERE query='$por_get_cat_seo_pr'");
    198195            $por_get_cat_seo_a = mysql_fetch_array($por_get_cat_seo_q);
    199             //засаживаем в переменную адрес вида cat/podcat/podcat/
     196
    200197            $por_pre_url_c = $por_get_cat_seo_a['0'].'/'.$por_pre_url_c;
    201             //забираем сео самого товара
     198
    202199            $por_qseo='product_id='.$por_product_id;
    203200            $por_seoq=mysql_query("SELECT keyword FROM `" . TABLE_PREFIX . "url_alias` WHERE query='$por_qseo'");
    204201            $por_seoa=mysql_fetch_array($por_seoq);
    205             //склеиваем с категориями
     202
    206203            $por_pre_url=$por_pre_url_c.$por_seoa['0'];
    207204
     
    210207    elseif(($por_is_seo == 'yes')and($por_is_subcat == 'no'))
    211208    {
    212     //теперь сео включено, но товар все время находится в корне, без родительских категорий
     209
    213210        $por_qseo='product_id='.$por_product_id;
    214211        $por_seoq=mysql_query("SELECT keyword FROM `" . TABLE_PREFIX . "url_alias` WHERE query = '$por_qseo'");
     
    218215    elseif($por_is_seo=='no')
    219216    {
    220     //seo вообще выключено
     217
    221218        $por_pre_url = 'index.php?route=product/product&product_id='.$por_product_id;
    222219    }
    223220    if($por_is_html !== '0')
    224221    {
    225     //если есть seo окончание, например, .html, приклеиваем
     222
    226223        $por_pre_url=$por_pre_url.$por_is_html;
    227224    }
     
    231228}
    232229
    233 //функция для изображений
     230
    234231function portgorod_img_crop($por_img, $por_img_destination, $por_img_need_w, $por_img_need_h, $por_img_bg, $por_img_qua, $por_img_folder, $por_img_rtype)
    235232{
     
    242239    }
    243240
    244     if (file_exists($por_img_chache_dir.'/'.$por_img_destination.'-'.$por_img_need_w.'-'.$por_img_rtype.'.jpg'))
    245     {
    246         $por_img_final = $por_img_folder.'/'.$por_img_destination.'-'.$por_img_need_w.'-'.$por_img_rtype.'.jpg';
     241    if (file_exists($por_img_chache_dir.'/'.$por_img_destination.'-'.$por_img_need_w.'x'.$por_img_need_h.'-'.$por_img_rtype.'.jpg'))
     242    {
     243        $por_img_final = $por_img_folder.'/'.$por_img_destination.'-'.$por_img_need_w.'x'.$por_img_need_h.'-'.$por_img_rtype.'.jpg';
    247244        return $por_img_final;
    248245    }
     
    258255
    259256        if ($por_img_rtype == '1')
    260         {//оставить исходные пропорции сторон и уменьшить бОльшую сторону до нужной величины. Тут все стороны будем приравнивать к требуемой ширине.
     257        {
    261258
    262259
    263260            if($por_img_get_size['0'] > $por_img_get_size['1'])
    264             {//Ширина картинки больше высоты, будем работать с ней
     261            {
    265262
    266263                if($por_img_get_size['0'] <= $por_img_need_w)
    267                 {//Ширина картинки меньше нужной или равна ей, просто копируем картинку и отдаем
     264                {
    268265
    269266                    $por_img_calc_cut_w = $por_img_get_size['0'];
     
    277274                }
    278275                else
    279                 {//Ширина картинки больше нужной, пропорционально уменьшаем до нужной ширины
     276                {
    280277
    281278                    $por_img_calc_cut_w = $por_img_get_size['0'];
     
    290287            }
    291288            elseif($por_img_get_size['0'] < $por_img_get_size['1'])
    292             {//высота картинки больше ширины, будем работать с ней
     289            {
    293290
    294291                if($por_img_get_size['1'] <= $por_img_need_w)
    295                 {//высота картинки меньше или равна нужной, просто копируем и отдаем картинку
     292                {
    296293
    297294                    $por_img_calc_cut_w = $por_img_get_size['0'];
     
    305302                }
    306303                else
    307                 {//высота картинки больше нужной, будем пропорцинально уменьшать высоту до нужной
     304                {
    308305
    309306                    $por_img_calc_cut_w = $por_img_get_size['0'];
     
    320317            {
    321318                if($por_img_get_size['1'] <= $por_img_need_w)
    322                 {//просто копируем
     319                {
    323320
    324321                    $por_img_calc_cut_w = $por_img_get_size['0'];
     
    332329                }
    333330                else
    334                 {//пропорционально уменьшаем ширину и высоту картики до нужного размера
     331                {
    335332
    336333                    $por_img_calc_cut_w = $por_img_get_size['0'];
     
    349346        }
    350347        elseif ($por_img_rtype == '2')
    351         {//сделать квадратную или какую-нибудь еще, сохранив всю исходную картинку целиком. Просто ужав, если надо и поместив в нужные размеры.
     348        {
    352349
    353350            if(($por_img_need_w <= $por_img_get_size['0']) or ($por_img_need_h <= $por_img_get_size['1']))
    354             {//Или ширина или высота больше или равны нужным
     351            {
    355352
    356353                if($por_img_get_size['0'] > $por_img_get_size['1'])
    357                 {//ширина больше высоты, ужимаем
     354                {
    358355
    359356                    $por_img_calc_cut_w = $por_img_get_size['0'];
     
    367364                }
    368365                elseif($por_img_get_size['0'] < $por_img_get_size['1'])
    369                 {//выста больше шири, жмем
     366                {
    370367
    371368                    $por_img_calc_cut_w = $por_img_get_size['0'];
     
    378375                    $por_img_calc_put_h = $por_img_need_h;
    379376                }
    380                 elseif(($por_img_get_size['0'] / $por_img_need_w) == ($por_img_get_size['1'] / $por_img_need_h))
    381                 {//стороны равны
    382 
    383                     $por_img_calc_cut_w = $por_img_get_size['0'];
    384                     $por_img_calc_cut_h = $por_img_get_size['1'];
    385                     $por_img_calc_cut_t = '0';
    386                     $por_img_calc_cut_l = '0';
    387                     $por_img_calc_put_t = floor(( $por_img_need_h - (( $por_img_need_w / $por_img_get_size['0'] ) * $por_img_get_size['1'])) / 2);
    388                     $por_img_calc_put_l = floor(( $por_img_need_w - (( $por_img_need_h / $por_img_get_size['1'] ) * $por_img_get_size['0'])) / 2);
    389                     $por_img_calc_put_w = $por_img_need_w;
    390                     $por_img_calc_put_h = $por_img_need_w;
     377                elseif($por_img_get_size['0'] == $por_img_get_size['1'])
     378                {
     379
     380                    if($por_img_need_w > $por_img_need_h)
     381                    {
     382                        $por_img_calc_cut_w = $por_img_get_size['0'];
     383                        $por_img_calc_cut_h = $por_img_get_size['1'];
     384                        $por_img_calc_cut_t = '0';
     385                        $por_img_calc_cut_l = '0';
     386                        $por_img_calc_put_t = '0';
     387                        $por_img_calc_put_l = floor(($por_img_need_w - $por_img_need_h)/2);
     388                        $por_img_calc_put_w = $por_img_need_h;
     389                        $por_img_calc_put_h = $por_img_need_h;
     390                    }
     391                    elseif($por_img_need_w < $por_img_need_h)
     392                    {
     393                        $por_img_calc_cut_w = $por_img_get_size['0'];
     394                        $por_img_calc_cut_h = $por_img_get_size['1'];
     395                        $por_img_calc_cut_t = '0';
     396                        $por_img_calc_cut_l = '0';
     397                        $por_img_calc_put_t = floor(($por_img_need_h - $por_img_need_w)/2);
     398                        $por_img_calc_put_l = '0';
     399                        $por_img_calc_put_w = $por_img_need_w;
     400                        $por_img_calc_put_h = $por_img_need_w;
     401                    }
     402                    elseif($por_img_need_w == $por_img_need_h)
     403                    {
     404                        $por_img_calc_cut_w = $por_img_get_size['0'];
     405                        $por_img_calc_cut_h = $por_img_get_size['1'];
     406                        $por_img_calc_cut_t = '0';
     407                        $por_img_calc_cut_l = '0';
     408                        $por_img_calc_put_t = '0';
     409                        $por_img_calc_put_l = '0';
     410                        $por_img_calc_put_w = $por_img_need_w;
     411                        $por_img_calc_put_h = $por_img_need_h;
     412                    }
    391413                }
    392414            }
     
    406428        }
    407429        elseif ($por_img_rtype == '3')
    408         {//сделать квадратную или какую-нибудь еще, ничего не приклеивая. Фон приклеится только в том случае, если ТРЕБУЕМЫЙ размер больше размера исходной картинки.
     430        {
    409431
    410432            if(($por_img_need_w < $por_img_get_size['0']) & ($por_img_need_h < $por_img_get_size['1']))
     
    412434                if(($por_img_get_size['0'] / $por_img_need_w) > ($por_img_get_size['1'] / $por_img_need_h))
    413435                {
    414                     $por_img_calc_cut_w = floor(($por_img_get_size['1'] / $por_img_need_h) * $por_img_need_w);
     436                    $por_img_calc_cut_w = floor(($por_img_need_w * $por_img_get_size['1']) / $por_img_need_h);
    415437                    $por_img_calc_cut_h = $por_img_get_size['1'];
    416438                    $por_img_calc_cut_t = '0';
     
    424446                {
    425447                    $por_img_calc_cut_w = $por_img_get_size['0'];
    426                     $por_img_calc_cut_h = floor(($por_img_get_size['0'] / $por_img_need_w) * $por_img_need_h);
     448                    $por_img_calc_cut_h = floor(($por_img_need_h * $por_img_get_size['0']) / $por_img_need_w);
    427449                    $por_img_calc_cut_t = floor(($por_img_get_size['1'] - $por_img_calc_cut_h) / 2);
    428450                    $por_img_calc_cut_l = '0';
     
    430452                    $por_img_calc_put_l = '0';
    431453                    $por_img_calc_put_w = $por_img_need_w;
    432                     $por_img_calc_put_h = $por_img_need_w;
     454                    $por_img_calc_put_h = $por_img_need_h;
    433455                }
    434456                elseif(($por_img_get_size['0'] / $por_img_need_w) == ($por_img_get_size['1'] / $por_img_need_h))
     
    441463                    $por_img_calc_put_l = '0';
    442464                    $por_img_calc_put_w = $por_img_need_w;
    443                     $por_img_calc_put_h = $por_img_need_w;
     465                    $por_img_calc_put_h = $por_img_need_h;
    444466                }
    445467            }
     
    510532        imagecopyresampled($por_img_dest, $por_img_c, $por_img_calc_put_l, $por_img_calc_put_t, $por_img_calc_cut_l, $por_img_calc_cut_t, $por_img_calc_put_w, $por_img_calc_put_h, $por_img_calc_cut_w, $por_img_calc_cut_h);
    511533
    512         $por_img_final_d = $por_img_chache_dir.'/'.$por_img_destination.'-'.$por_img_need_w.'-'.$por_img_rtype.'.jpg';
     534        $por_img_final_d = $por_img_chache_dir.'/'.$por_img_destination.'-'.$por_img_need_w.'x'.$por_img_need_h.'-'.$por_img_rtype.'.jpg';
    513535        imagejpeg($por_img_dest, $por_img_final_d, $por_img_qua);
    514536
     
    516538        imagedestroy($por_img_dest);
    517539
    518         $por_img_final = $por_img_folder.'/'.$por_img_destination.'-'.$por_img_need_w.'-'.$por_img_rtype.'.jpg';
     540        $por_img_final = $por_img_folder.'/'.$por_img_destination.'-'.$por_img_need_w.'x'.$por_img_need_h.'-'.$por_img_rtype.'.jpg';
    519541
    520542        return $por_img_final;
     
    524546$por_query = mysql_query("SELECT COUNT(*) FROM `" . TABLE_PREFIX . "product_description` WHERE tag LIKE '$por_prtag'");
    525547$por_row = mysql_fetch_row($por_query);
    526 $por_total = $por_row[0]; // всего записей
     548$por_total = $por_row[0];
    527549
    528550if(($por_total < $por_num) and ($por_total !== '0'))
    529551{
    530 //просто выдаем все товары с тэгом, потому что их меньше, чем надо
     552
    531553    $por_r = mysql_query("SELECT product_id FROM `" . TABLE_PREFIX . "product_description` WHERE tag LIKE '$por_prtag' AND language_id='$por_language'");
    532554    $por_uids = array();
     
    580602    $por_restnum = $por_num-$por_total;
    581603
    582 //добираем до нужного количества еще любых случайных товаров, кроме тех, что уже есть
    583604    if ($por_cat_to_look !== '%%')
    584605    {
     
    625646        $por_imga=mysql_fetch_array($por_imgq);
    626647
    627         ///выводим
     648
    628649        $por_url=portgorod_get_product_url($por_row['product_id'], $por_seo_is_html, $por_seo_is_subcat, $por_seo_is_seo, $por_seo_main_dom);
    629650
     
    648669elseif (($por_total > $por_num) or ($por_total == $por_num) )
    649670{
    650 //просто выдаем $por_num случайных товаров с тэгом. Их хватает.
    651671    $por_r = mysql_query("SELECT product_id FROM `" . TABLE_PREFIX . "product_description` WHERE tag LIKE '$por_prtag' AND language_id='$por_language'");
    652672    $por_uids = array();
     
    678698        $por_imga=mysql_fetch_array($por_imgq);
    679699
    680         ///выводим
    681700        $por_url=portgorod_get_product_url($por_row['product_id'], $por_seo_is_html, $por_seo_is_subcat, $por_seo_is_seo, $por_seo_main_dom);
    682701
     
    701720elseif ($por_total == '0')
    702721{
    703 //просто выдаем $por_num случайных товаров. Товаров с нужным тэгом нет.
    704722    if ($por_cat_to_look !== '%%')
    705723    {
     
    746764        $por_imga=mysql_fetch_array($por_imgq);
    747765
    748         ///выводим
    749766        $por_url=portgorod_get_product_url($por_row['product_id'], $por_seo_is_html, $por_seo_is_subcat, $por_seo_is_seo, $por_seo_main_dom);
    750767
  • portgorod-ocstore-opencart-product-widget/trunk/readme.txt

    r795304 r798223  
    44Requires at least: 3.0.1
    55Tested up to: 3.6.1
    6 Stable tag: 1.0
     6Stable tag: 1.1
    77License: GPLv2 or later
    88License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    7474
    7575added "display widgets" support
     76= 1.1 =
     77Fixed bugs with thumb create
    7678
    7779 == Upgrade Notice ==
Note: See TracChangeset for help on using the changeset viewer.