Opencart + TecDoc

Статус
В этой теме нельзя размещать новые ответы.
найди блок поиска в header.tpl, присвой поисковому запросу id="artnum", затем вставь код кода послсе </div> модуля поиска
<script type="text/javascript">
function tdm_search_bubmit(){
var str='';
str = $('#artnum').val();
str = str.replace(/[^a-zA-Z0-9.-]+/g, '');
url = '/autoparts/search/'+str+'/';
location = url;
}
$('#artnum').keypress(function (e){
if (e.which == 13) {
tdm_search_bubmit();
return false;
}
});
</script>
 
Интерес к моему предложению пропал. Ну что ж: надо кому скрипт выгрузки изображений с сермеров TecDoc?
 
Интерес к моему предложению пропал. Ну что ж: надо кому скрипт выгрузки изображений с сермеров TecDoc?
А что за скрипт? На чем написан? Только выгружает? Или сразу "на лету" конвертирует?

гм, а кто тебе сказал это?
Ну я, например, поиск тоже через common.js делаю)) Но мой код поиска немного совсем не такой..))
 
А что за скрипт? На чем написан? Только выгружает? Или сразу "на лету" конвертирует?


Ну я, например, поиск тоже через common.js делаю)) Но мой код поиска немного совсем не такой..))
php, конвертация на лету Apache+imagick
 
Все в одном
PHP:
//Используются таблицы
    //ARTICLES
    //LINK_GRA_ART
    //GRAPHICS
    //SUPPLIERS
    //
    $setting = parse_ini_file("..\setting.ini");
    ini_set('memory_limit', '2048M');
    set_time_limit(0);
    //Папка выгрузки
    $upload_folder = 'J:/ImgTecDoc032015_original/';
    if(!file_exists($upload_folder)) mkdir($upload_folder, 0700);
    //Номер поставщика в таблице SUPPLIERS (начальная позиция)
    $id_postav = '1';
    //Номер последнего поставщика в таблице SUPPLIERS (см последнюю запись SUP_ID)
    //03.2015 - 11667
    //01.2016 - 11892
    //$id_postav_end = $id_postav;
    $id_postav_end = '11892';
    // Соединяемся, выбираем базу данных
    $link = mysql_connect($setting['server_php'], $setting['user_php'], $setting['pass_php'])
    or die("Could not connect : " . mysql_error());
    mysql_select_db($setting['base_php']) or die("Could not select database");
  
    // Выполняем SQL-запрос получение ссылок на файлы JP2
    do {
        $query = "SELECT     ARTICLES.ART_ARTICLE_NR,
                            SUPPLIERS.SUP_BRAND,
                            GRAPHICS.GRA_TAB_NR,
                            GRAPHICS.GRA_SUPPLIER_NR,
                            GRAPHICS.GRA_ID,
                            GRAPHICS.GRA_LNG_ID,
                            LGA_SORT
                FROM ARTICLES
                    INNER JOIN LINK_GRA_ART ON LINK_GRA_ART.LGA_ART_ID = ARTICLES.ART_ID
                    INNER JOIN GRAPHICS ON GRAPHICS.GRA_SUP_ID = ARTICLES.ART_SUP_ID AND GRAPHICS.GRA_ID = LINK_GRA_ART.LGA_GRA_ID
                    INNER JOIN SUPPLIERS ON SUPPLIERS.SUP_ID = GRAPHICS.GRA_SUP_ID
                WHERE GRAPHICS.GRA_DOC_TYPE = 4 AND
                SUPPLIERS.SUP_ID = $id_postav;";
        $result = mysql_query($query) or die("Query failed : " . mysql_error());
        $id_postav = $id_postav + '1';
          
        while ($csv = mysql_fetch_array($result, MYSQL_ASSOC)){
            // Функция добавления "0" в GRA_LNG_ID (язык документа pdf) до трех символов 16=>016, 6=>006 и т.д.
            $csv['GRA_LNG_ID']=str_pad($csv['GRA_LNG_ID'], 3, "0", STR_PAD_LEFT);
            // Вид ссылки на скачивание JP2-файлов (третий квартал 2014 года) http://update.tecdoc.net/webdownload/einbau/32014/6/00060020802255.PDF
            // Вид ссылки на скачивание JP2-файлов (первый квартал 2016 года) http://toc-cdn.tecdoc.net/webdownload/Bilder/12016/432/04320089101255.JP2
            //$pdfs .='http://update.tecdoc.net/webdownload/Bilder/32015/' . $csv['GRA_SUPPLIER_NR'] . '/'. $csv['GRA_ID'] .'' . $csv['GRA_LNG_ID'] .".JP2 \r\n";
          
            // Создаем папку поставщика
            if(!file_exists($upload_folder.$csv['GRA_SUPPLIER_NR'])) mkdir($upload_folder.$csv['GRA_SUPPLIER_NR'], 0700); // Стандарт
            //if(!file_exists($upload_folder.$csv['SUP_BRAND'])) mkdir($upload_folder.$csv['SUP_BRAND'], 0700); // BRAND/ARTICLE
          
            //Приведем номер номенклатуры к буквенночисовому виду
            $remove = array ('/', ' ', '-', '.', ',', '_'); //что удалить в номере номенклатуры
            $replase = array ('\'', '*'); // что заменить в номере номенклатуры
            $csv['ART_ARTICLE_NR']=str_replace($remove, "", $csv['ART_ARTICLE_NR']); // удаляем
            $csv['ART_ARTICLE_NR']=str_replace($remove, "#", $csv['ART_ARTICLE_NR']); // заменяем
          
            //Поскольку одна иллюстрация может быть применена к разной номенклатуре, проверяем существование иллюстрации
            if(!file_exists($upload_folder.$csv['GRA_SUPPLIER_NR'].'/'.$csv['GRA_ID'].$csv['GRA_LNG_ID'].'.jpg')){  
                //Доступ к серверу TecDoc (1.2016 tcd2 / 0kt30h)
                $username = 'tcd2';
                $password = 'Prptkgk2';
                $context = stream_context_create(array('http' => array('header'  => "Authorization: Basic " . base64_encode("$username:$password"))));
      
                $file = file_get_contents('http://webcat-cdn.tecdoc.net/webdownload/Bilder/32015/'.$csv['GRA_SUPPLIER_NR'].'/'.$csv['GRA_ID'].$csv['GRA_LNG_ID'].'.JP2', false, $context);

                $file_tmp = fopen($_SERVER['DOCUMENT_ROOT'] .'/TECDOC/getfiles/image.jp2', 'wb');  
                fputs($file_tmp, $file);
                fclose($file_tmp);
                //print_r($csv['ART_ARTICLE_NR']);
                //header('Content-type: image/jpeg');
                $image = new Imagick($_SERVER['DOCUMENT_ROOT'] .'/TECDOC/getfiles/image.jp2');
                $image->setImageFormat('jpg');
                $image->setCompressionQuality(80);
                //echo $image;
          
                // Массив что заменять в номере номенклатуры
              
                // Функция замены в номере номенклатуры не нужных символов
              
                // Иллюстрация по пути BRAND/ARTICLE
                //file_put_contents ($upload_folder.$csv['SUP_BRAND'].'/'.$csv['ART_ARTICLE_NR'].'_'.$csv['LGA_SORT'].'.jpg', $image);
                  
                // Иллюстрация по стандартному пути TecDoc GRA_SUPPLIER_NR/GRA_ID/GRA_LNG_ID
                file_put_contents ($upload_folder.$csv['GRA_SUPPLIER_NR'].'/'.$csv['GRA_ID'].$csv['GRA_LNG_ID'].'.jpg', $image);
          
                unlink('image.jp2');
            }
        }
  
    }
    while($id_postav < $id_postav_end);
Конечно код не идеален, но работает. Еще несколько нюансов допиливаются
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху