我真的想限制Magento产品的标题长度。
我尝试过的是在'maxlength' => 65
的某处添加\app\code\core\Mage\Adminhtml\Block\
,但没有成功。
有人知道如何添加此功能吗?在HTML中,它只会添加length="65" maxlength="65"
。
感谢所有人提供的帮助。 :)
答案 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'
)
);