Автор Тема: Вывести карточки товаров с другого сайта на свой  (Прочитано 500 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Лусмит19

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
  • Версия modx: Modx.Revo. 2.4.0

Здравствуйте,


Подскажите пожалуйста, как вывести товары с другого сайта на свой под управлением modx revo на отдельные страницы?


То есть, я спарсировала товары с помощью get_file_content и собрала данные по каждому товару в массив, очистив от общего контента.


Вывела превью и ссылки на товары в категорию, которая реально существует на сайте, страница. Теперь мне надо, чтобы при нажатии на превью товара, открывалась карточка товара, информация по ней  т.д. на моем сайте. При этом чтобы товары не загружались в базу и не создавались физически новые страницы в админке.


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


пот мой снипет


<?php
function translit($str, $bool=0) {
   $mess = Array ( 'а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g', 'д' => 'd', 'е' => 'e', 'ё' => 'jo', 'ж' => 'zh', 'з' => 'z', 'и' => 'i', 'й' => 'j', 'к' => 'k', 'л' => 'l', 'м' => 'm', 'н' => 'n', 'о' => 'o', 'п' => 'p', 'р' => 'r', 'с' => 's', 'т' => 't', 'у' => 'u', 'ф' => 'f', 'х' => 'h', 'ц' => 'c', 'ч' => 'ch', 'ш' => 'sh', 'щ' => 'shch', 'ъ' => '', 'ы' => 'y', 'ь' => '', 'э' => 'e-', 'ю' => 'yu', 'я' => 'ya', 'А' => 'a', 'Б' => 'b', 'В' => 'v', 'Г' => 'g', 'Д' => 'd', 'Е' => 'e', 'Ё' => 'jo', 'Ж' => 'zh', 'З' => 'z', 'И' => 'i', 'Й' => 'j', 'К' => 'k', 'Л' => 'l', 'М' => 'm', 'Н' => 'n', 'О' => 'o', 'П' => 'p', 'Р' => 'r', 'С' => 's', 'Т' => 't', 'У' => 'u', 'Ф' => 'f', 'Х' => 'h', 'Ц' => 'c', 'Ч' => 'ch', 'Ш' => 'sh', 'Щ' => 'shch', 'Ъ' => '', 'Ы' => 'y', 'Ь' => '', 'Э' => 'e-', 'Ю' => 'yu', 'Я' => 'ya', ' ' => '-', '0' => '0', '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9');
   $c_str = preg_split('/\s+/is', $str);
    $str = '';
   for ($i = 0; $i < (count($c_str)); $i++) {
    $str .= trim($c_str[$i]." ");
    }
   
   if($bool) {
        $mess = array_flip($mess);
        return $mess[$str];
    }
   $str = preg_replace('/[^a-zА-Яа-яёЁ0-9\s-]/is', ' ', strtolower($str));
   $str = preg_replace('/\s+/', ' ', $str);   
   foreach($mess as $key1 => $val1) {
        $str = preg_replace("/$key1/is", $val1, $str);
        //$str = preg_replace('/'.ucfirst($key).'/s', ucfirst($val), $str);
   }
   return $str;   
}


function btw($b1) {
    $b1 = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $b1);
    $b1 = str_replace(array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $b1);
    return $b1;
}


$host_get_content = 'http://www.vologdamaz.ru/';


$array_category_rus_avtomobili_ID = '7';
$array_category_rus_pricep_ID = '167';




$array_category_vologdamaz_url = 'http://www.vologdamaz.ru/catalog.html?cid=';
$array_category_vologdamaz_pricep_ID = '7';




if($_SERVER['REQUEST_URI'] == '/priczepyi-i-polupriczepyi/maz' ) {




//откуда будем парсить информацию


 $content_list_url_pricep = file_get_contents($array_category_vologdamaz_url.$array_category_vologdamaz_pricep_ID);


// Определяем позицию строки, до которой нужно все отрезать
 $pos = strpos($content_list_url_pricep, '<th>МОДЕЛЬ</th>');


//Отрезаем все, что идет до нужной нам позиции
 $content_list_url_pricep = substr($content_list_url_pricep, $pos);
 $pos2 = strpos($content_list_url_pricep, '<a href="');
 $content_list_url_pricep = substr($content_list_url_pricep, $pos2);


// Точно таким же образом находим позицию конечной строки
 $pos1 = strpos($content_list_url_pricep, '<th>&nbsp;</th>');


// Отрезаем нужное количество символов от нулевого
 $content_list_url_pricep = substr($content_list_url_pricep, 0, $pos1);


// выводим спарсенный текст.
 $content_list_url_pricep = strip_tags(trim($content_list_url_pricep), '<a></a>');
 $content_list_url_pricep = btw($content_list_url_pricep);


 preg_match_all("#<a.*href=[\"'](.*)[\"'].*>(.*)</a>#isU", $content_list_url_pricep, $content_list_url_pricep_matchs, PREG_SET_ORDER);


 $content_list_url_pricep_model = array();
 
 foreach($content_list_url_pricep_matchs as $keyy => $vall) {
    $link_file = $host_get_content.$vall[1];
    $a= file_get_contents($link_file);


    // Определяем позицию строки, до которой нужно все отрезать
    $pos_a = strpos($a, '</thead>');


    //Отрезаем все, что идет до нужной нам позиции
    $a = substr($a, $pos_a);


    // Точно таким же образом находим позицию конечной строки
    $pos_a1 = strpos($a, "</tfoot>\n</table>");


    // Отрезаем нужное количество символов от нулевого
    $a = substr($a, 0, $pos_a1);
    $a = str_replace('<td class="compare">'.("#(.*)#").'</td>','', $a);
    $content_list_url_pricep_model[] .= btw($a);
   
 }
 
 preg_match_all("#<td class=\"picture\"><a.*href=[\"'](.*)[\"'].*><img.*src=[\"'](.*)[\"'].*></a></td><td class=\"name\"><a.*href=[\"'](.*)[\"'].*>(.*)</a></td><td class=\"price\">(.*)</td><td class=\"description\">(.*)</td>#isU", $content_list_url_pricep_model[0], $content_list_url_pricep_model_matchs, PREG_SET_ORDER);
 
 $wer = "";
 foreach($content_list_url_pricep_model_matchs as $key => $val) {
    if($val[2] != '') {
        $cena = $val[5]; $cena = number_format($cena, 0, '', ' ').' <span class="price">руб.</span>';
        //$nalog = $cena * (0.18); $cena = $cena + $nalog; $cena = number_format($cena, 0, '', ' ').' <span class="price">руб.</span>';
    } else { $cena = ''; }
        $name = $val[4];
        $link = $val[1];
        $link_id = strpos($link, '=');
        $link_id = '?itemid'.substr($link, $link_id);
        $link_alias = $_SERVER['REQUEST_URI'].'/'.translit($name).'.html'.$link_id;
        $img = $host_get_content.$val[2];
        $text = substr($val[6], 0, 87);


        $wer .= '<tr>
                    <td class="views-field views-field-field-truck-image">
                        <a href="#">
                            <img typeof="foaf:Image" src="'.$img.'" alt="'.$name.'" />
                        </a>
                    </td>
                    <td class="views-field views-field-field-truck-price">
                        '.$cena.'
                    </td>
                    <td class="views-field views-field-title">
                        <a href="#">'.$name.'</a>
                        '.$text.'
                    </td>
                    <td class="views-field views-field-nothing">
                        <a href="#">Подробнее ...</a>
                    </td>
                </tr>';
 }
return $wer;


}


//------------------------------------------------------------------------------------------------------ вывести товар, в зависимости от ID пришедшего с get "itemid"---------------


if($_GET['itemid']) {


$content_list_url_pricep_model_detail = $host_get_content.'catalog.html?itemid='.$_GET['itemid'];
   
$content_list_url_pricep_model_detail = file_get_contents($content_list_url_pricep_model_detail);


// Определяем позицию строки, до которой нужно все отрезать
$pos_b = strpos($content_list_url_pricep_model_detail, '<table id="catalog_item_wrap" border="0">');


//Отрезаем все, что идет до нужной нам позиции
$content_list_url_pricep_model_detail = substr($content_list_url_pricep_model_detail, $pos_b);


// Точно таким же образом находим позицию конечной строки
$pos_b1 = strpos($content_list_url_pricep_model_detail, '<div id="div_right_column">');


// Отрезаем нужное количество символов от нулевого
$content_list_url_pricep_model_detail = substr($content_list_url_pricep_model_detail, 0, $pos_b1);
$content_list_url_pricep_model_detail = btw($content_list_url_pricep_model_detail);


preg_match_all("#<td class=\"picture\"><a.*href=[\"'](.*)[\"'].*><img.*src=[\"'](.*)[\"'].*></a><a.*href=[\"'](.*)[\"'].*><img.*src=[\"'](.*)[\"'].*></a><span class=\"item_price\">(.*)</span>(.*)<tr class=\"tr_grey\"><td class=\"item_spec\">(.*)</td><td class=\"item_spec\">(.*)</td></tr><tr class=\"tr_white\"><td class=\"item_spec\">(.*)</td><td class=\"item_spec\">(.*)</td></tr><tr class=\"tr_grey\"><td class=\"item_spec\">(.*)</td><td class=\"item_spec\">(.*)</td></tr><tr class=\"tr_white\"><td class=\"item_spec\">(.*)</td><td class=\"item_spec\">(.*)</td></tr><tr class=\"tr_grey\"><td class=\"item_spec\">(.*)</td><td class=\"item_spec\">(.*)</td></tr><tr class=\"tr_white\"><td class=\"item_spec\">(.*)</td><td class=\"item_spec\">(.*)</td></tr><tr class=\"tr_grey\"><td class=\"item_spec\">(.*)</td><td class=\"item_spec\">(.*)</td></tr></tbody><tfoot><tr class=\"tr_white\"><th colspan=\"2\">&nbsp;</th></tr></tfoot></table></td></tr></tbody></table><br><p></p><p><strong>(.*)</p>#isU", $content_list_url_pricep_model_detail, $content_list_url_pricep_model_detail_matchs, PREG_SET_ORDER);


foreach($content_list_url_pricep_model_detail_matchs as $key_m => $val_m) {
    $tovar .= $key_m.' -> '.$val_m.'<br />';
   
}


return $tovar;
   
}