更改元描述中的最大字符数

问题描述 投票:0回答:1

我在更改元描述中的字符限制时遇到问题。我已修改如下所示:

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

但它只检测您是否从 magento admin 创建或修改产品,并且我从 .csv 文件上传产品,我必须一一查看元描述中的每个产品,然后从 255 下降到 155。

有什么方法可以在不从 Magento 更改它的情况下更改它,我认为问题的出现是因为代码说:

setOnkeyup

php magento meta
1个回答
0
投票

据我所知,您的每个产品的元描述中的数据太长。

您可以在加载之前通过布局 XML 配置或直接通过每种页面类型的 PHTML 模板来缩短该值。

获得您需要的结果的更好方法是不要导入比您需要的最长的数据。

导入不需要的数据解决导入后需要再次修正。

也许在开始导入到 magento 之前制作脚本来剪切 CSV 文件中的元描述会更好。

我解决了类似的问题并做了这样的事情: (脚本将您的 csv 文件创建为新文件,仅包含 2 列、SKU 和名为 DECSRIPTION 的更新文本,然后您可以在首次导入 csv 后导入到 magento(首先导入没有元描述的所有内容,之后仅导入您的元描述例如 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

您可以获得另一个描述长度为 250 个字符的 csv 文件并将其导入到 magento (您必须更新代码,它仅返回 SKU 列表,从文件中获取您的描述);

© www.soinside.com 2019 - 2024. All rights reserved.