2013-10-11 139 views
0

我在更改元描述中字符的限制時遇到問題。我\\'已經修改如下所示:更改元描述中字符的最大數量

http://www.magentocommerce.com/boards/v/viewthread/278911/#t392935

但是,如果你創建或者從Magento後臺修改的產品,我上傳的產品從.csv文件只探測,我有一個去一個在meta描述每一個產品,然後往下走,從255到155:(

有沒有辦法改變它,而不從Magento的改變的話,我覺得問題就來了,因爲代碼說:

setOnkeyup

在此先感謝和問候!

+0

你在csv文件中從255下降到155是什麼意思?我認爲數據庫沒有任何關於字符限制的問題。 – ggDeGreat

回答

0

我明白,您的meta_description中的每個產品的數據都過長。

您可以在通過佈局XML配置加載它之前縮短值,或直接通過PHTML模板爲每個頁面類型加載值。

更好的方法來獲得您所需要的結果不是導入比您需要的最長的數據。

導入不必要的數據解決導入,之後你需要再次糾正它。

在開始導入到magento之前,也許會更好地製作剪切CSV文件中元描述的腳本。

我解決了類似的問題,並做了這樣的事情: (腳本把你的csv文件,只有2列,SKU和更新的文本名爲DECSRIPTION,比你可以導入到第一次導入csv後的magento進口一切沒有meta描述,之後,只有你的meta描述cuted出了250個字符例如))

//////// get csv and take variable you need in my case is it SKU 
$csv = file_get_contents ('myimportfile.csv'); 

function parse_csv ($csv_string, $delimiter = ";", $skip_empty_lines = true, $trim_fields = true) 
{ 
    $enc = preg_replace('/(?<!")""/', '!!Q!!', $csv_string); 
    $enc = preg_replace_callback(
     '/"(.*?)"/s', 
     function ($field) { 
      return urlencode(utf8_encode($field[1])); 
     }, 
     $enc 
    ); 
    $lines = preg_split($skip_empty_lines ? ($trim_fields ? '/(*\R)+/s' : '/\R+/s') : '/\R/s', $enc); 
    return array_map(
     function ($line) use ($delimiter, $trim_fields) { 
      $fields = $trim_fields ? array_map('trim', explode($delimiter, $line)) : explode($delimiter, $line); 
      return array_map(
       function ($field) { 
        return str_replace('!!Q!!', '"', utf8_decode(urldecode($field))); 
       }, 
       $fields 
      ); 
     }, 
     $lines 
    ); 
} 
// list of variables to array 
$vystup = parse_csv($csv); 
enter code here 

之後,你可以循環每個變量排,由PHP修改你想要什麼:

$seznamsku = array(); 
    foreach ($vystup as $row){ 
    array_push($seznamsku, $sku[0]); 
unset($seznamsku[0]); 
$seznamskufin = array_filter($seznamsku, 'strlen'); 
}; 
foreach ($seznamskufin as $row) { 
    $__OUT .= '  "ROW_YOURSKU","'.htmlspecialchars(substr(ROW_YOURMETADESCRIPTION, 0, 155)).'"'."\n"; // TODO exactly dont know how to call variables, maybye $row['something'] or $row[0]['something'] 
    }; 
    $feed = fopen($newfile, 'w'); 
    fwrite($feed, $__OUT); 
    fclose($feed); 
    //remember to unset variables 

你可以得到另一個csv文件,描述長250個字符,並將其導入到magento (您必須更新代碼,它只返回SKU列表,從文件中獲取您的描述);