Magento - 限制seo的标题长度

时间:2012-06-27 22:28:14

标签: magento seo

我真的想限制Magento产品的标题长度。

我尝试过的是在'maxlength' => 65的某处添加\app\code\core\Mage\Adminhtml\Block\,但没有成功。

有人知道如何添加此功能吗?在HTML中,它只会添加length="65" maxlength="65"

感谢所有人提供的帮助。 :)

3 个答案:

答案 0 :(得分:0)

我没有可用的平台为您提供正确的演练,但我应该能够帮助您找到合适的位置。首先,不要在app / code / core文件中进行更改。你应该做的任何改变,你应该通过制作一个副本来做,你可以说app / code / core / Mage / Sales / something.php到app / code / local / Mage / Sales / something.php。 Magento知道自动使用本地代码覆盖核心代码。

如果您查看该页面的源代码,您将看到名称表格的位置:

<input id="name" name="product[name]" value="" class=" required-entry input-text required-entry" type="text"/>            </td>
<td class="scope-label"><span class="nobr">[STORE VIEW]</span></td>
    </tr>

这里发生的事情是你会注意到在课堂上我们有“必填项输入 - 文本,再次,必需 - 条目。这些是js / prototype / validation.js中定义的验证标签。你需要添加一些自定义验证,并将其添加到您的模板文件(不在核心,它可以在您升级时中断)。

你会在validation.js中注意到一个部分

Validation.add('IsEmpty', '', function(v) {

在本节中,您可以添加自定义验证。让我们说:

//make sure these are unique, I'm not checking
['validate-length', 'Your input needs to be less than x characters.', function(v) {
    if (v.length > x) return false;
}],

如果您在查找模板位置时需要帮助,请查看:Finding Correct Templates and Blocks in Magento。您只需添加validate-length类,例如:class =“required-entry validate-length ...”

答案 1 :(得分:0)

经过近10个小时的搜索,我放弃了“最佳”方式,并选择了环形交叉路口。

只需添加

document.getElementById("name").setAttribute("maxlength", "65");
document.getElementById("name").setAttribute("length", "65");

app/design/adminhtml/default/default/template/catalog/wysiwyg/js.phtml

答案 2 :(得分:0)

您可以将javascript验证程序添加到产品的name属性中。要实现此目的,您需要使用特殊值更新前端类的属性。只需创建sql升级:

$this->updateAttribute(
    Mage_Catalog_Model_Product::ENTITY,
    'name',
    array(
        'frontend_class' => 'validate-length maximum-length-65',
        'note'           => 'Max length is 65 characters'
    )
);