Ответы пользователя по тегу PHP
  • Импорт CSV в публичной части сайта на Bitrix

    ioffeaod
    @ioffeaod
    Web программист
    Вот готовое решение.
    // абсолютный путь до файла 
    $file_name = 'csv/import.csv'; 
    
    // подключам Модуль Main.
    CModule::IncludeModule("main");
    // подключам Модуль Информационные блоки.
    CModule::IncludeModule("iblock");
    // подключам Модуль Каталог.
    CModule::IncludeModule("catalog");
    
    $el = new CIBlockElement;
    
    $params = Array(
    	"max_len" => "200", // обрезает символьный код до 100 символов
    	"change_case" => "L", // буквы преобразуются к нижнему регистру
    	"replace_space" => "_", // меняем пробелы на нижнее подчеркивание
    	"replace_other" => "_", // меняем левые символы на нижнее подчеркивание
    	"delete_repeat_replace" => "true", // удаляем повторяющиеся нижние подчеркивания
    	"use_google" => "false", // отключаем использование google
    ); 
    
    if(($handle_f = fopen($file_name, "r" )) !== FALSE)
    {
    	fseek($handle_f, $im);
    	while(!feof($handle_f))
    	{
    		$line = fgets($handle_f);
    		
    		// меняем кодировку в файле на UTF-8
    		$buffer = iconv("WINDOWS-1251", "UTF-8", $line);
    
    		//разбиваем строку на значения и помещаем в массив
    		$data = explode(';', $buffer);
    		
    		// свойства товара.
    		$PROP = array();
    		$PROP[315] = $data[2];  // Артикул
    		$PROP[355] = $data[1];  // Бренд
    		$PROP[356] = "PRIDE";  	// Поставщик
    
    		// изображение.
    		$img = CFile::MakeFileArray('http://www.pride.ru/site_images/products/'.$data[0].'.jpg');
    		
    		$arLoadProductArray = Array(
    			"MODIFIED_BY"    	=> 1, // элемент изменен текущим пользователем
    			"IBLOCK_SECTION_ID" => "",    	// элемент лежит в разделе Инструменты
    			"CODE"				=> CUtil::translit($data[3], "ru" , $params),	// символьный код
    			"IBLOCK_ID"      	=> 15,			// ID инфоблока
    			"PROPERTY_VALUES"	=> $PROP,		// массив свойств
    			"NAME"           	=> $data[3],	// имя товара
    			"ACTIVE"         	=> "Y",        	// активен
    			"PREVIEW_PICTURE"   => $img,		// изображение анонса
    			"DETAIL_PICTURE" 	=> $img			// детальное изображение
    		);
    
    		if($PRODUCT_ID = $el->Add($arLoadProductArray))
    		{
    			//
    		}else{
    			//
    		}
    	}
    	fclose($handle_f);
    }
    Ответ написан
  • Bitrix: Проблема с urlwrite.php?

    ioffeaod
    @ioffeaod
    Web программист
    Решается через .htaccess
    Пример.
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
    RewriteRule ^index\.php$ www.site.ru [R=301,L]
    RewriteCond %{HTTP_HOST} ^site\.ru
    RewriteRule ^(.*)$ www.site.ru/$1 [R=permanent,L]
    Ответ написан
    Комментировать