我需要确定添加到购物车按钮并根据产品ID禁用它(js和php)(这不是问题的真正目的,大胆是真实的)
因为我没有找到任何我认为的解决方案让管理员按下管理部分专用的tomy扩展按钮,用js捕获按钮信息,然后保存.
为此,我想显示产品页面的主体和设计部分中每个主题的类别.
这是我检索主题和包的方式:
//Main package/theme
Mage::getStoreConfig('design/package/name')
//Reegex theme
$ob=unserialize(Mage::getStoreConfig('design/package/ua_regexp'));
foreach($ob as $key)
echo $key['value'];
Run Code Online (Sandbox Code Playgroud)
我主要担心的是大胆的部分,如果有可能的话?我该怎么做?
需要明确的是:我只需要红色矩形:
在它上方有面包屑,右侧是侧边栏
更多详细信息
当管理员创建/编辑产品时,它可以选择是否可以选择项目的国家/地区.
会发生什么:当页面加载系统时检查该项目是否可以在客户所在国家/地区销售,否则它会删除该按钮.
现在这带来了一些问题:
在同一页面中可以存在适销和不适销产品:识别分类页面,其中有多个他们的正确的项目的按钮,这样做,我检查一下按键的行为:它通常包含:/checkout/cart/加product id的onlick属性或按钮提交一个表单,我认为如果管理员"显示"我发生了什么,经过分析,我将能够识别按钮并使用id(安全)或class(不太确定)替换它,因为不是全部商店使用默认btn-cart类
获取页面的缓存/ FPC系统:我不知道他们是否会捕获禁用该按钮的js,或者客户是否已经废弃了任何脚本(可能它甚至无法使用该网站),但是通常情况下添加到购物车这些程序不会缓存块(有时如果项目不可用,则隐藏按钮)
搜索引擎优化问题:访客不是被迫选择一个国家,但我尝试用一些外部服务使用ip来识别它,所以可能它也会检测机器人作为用户,我不知道这是不是一个问题(我不这么认为),否则我必须使用JS来进行AJAX调用,然后隐藏按钮
我想避免对任何模板文件进行任何编辑,并为用户创建一个非常简单的方法来设置模块(单击一个按钮比创建属性的整个过程简单,亲戚选项并将其关联到集合)
基本上:如何在后端显示产品和类别页面?
我不能用Swift Mailer发送multipart/alternative(我没有找到任何引用,所以也许我不能使用这个函数),这是我的代码:
$file[1]=html_entity_decode($file[1]);
//Prepare plain/html body
foreach($rep as $find => $sost)
$file[1]=str_replace($find,$sost,$file[1]);
//Prepare plain/text body
$plain=strip_tags(str_replace(' ',' ',str_replace('<br/>',"\n",$file[1])));
$boundary=uniqid('n_=_p');
//Prepare mail body
$body = "--".$boundary."\r\n";
$body .= "Content-type: text/plain;\r\ncharset=utf-8\r\nContent-Transfer-Encoding: 7bit\r\n";
$body .= $plain;
$body .= "\r\n--".$boundary."\r\n";
$body .= "Content-type: text/html;\r\ncharset=utf-8\r\nContent-Transfer-Encoding: 7bit\r\n";
$body .= "<html><body>".$file[1]."</body></html>";
$body .= "r\n--".$boundary ."--";
//Send Mail
$message = Swift_Message::newInstance();
$message->setFrom(array($stmp[2]=>$stmp[1]));
$message->setReplyTo(array($stmp[2]=>$stmp[1]));
$message->setSubject($file[0]);
$message->setContentType("multipart/alternative");
$message->setBody($body);
$message->setTo($mail);
$message->setBoundary($boundary);
if($stmp[0]==0)
$transport = Swift_SendmailTransport::newInstance('/usr/sbin/sendmail -t');
else if($stmp[0]==1){
if($stmp[5]==0)
$transport = Swift_SmtpTransport::newInstance($stmp[2],$stmp[4]);
else
$transport = Swift_SmtpTransport::newInstance($stmp[2],$stmp[4],'ssl');
if($stmp[6]==1){
$transport->setUsername($stmp[7]);
$transport->setPassword($stmp[8]);
}
}
$mailer …Run Code Online (Sandbox Code Playgroud) 我正在使用这个正则表达式来删除空行:
(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+
Run Code Online (Sandbox Code Playgroud)
在 php 中:
$search = array(
'@( |\t|\f)+@', // Shorten multiple whitespace sequences
'@^\s+|\s+$@', // Trim lines
'@(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+@' //Remove blank lines
);
$replace = array(' ','',"\r\n");
$string = preg_replace($search, $replace, $string);
Run Code Online (Sandbox Code Playgroud)
但是我对这段代码有一些特别的问题:
原始:
<script type="text/javascript">
//<![CDATA[
iCart.init({
title: 'Aggiungi',
cart: 'Carrello',
....
</script>
Run Code Online (Sandbox Code Playgroud)
更换后:
<script type="text/javascript">
//<![CDATA[iCart.init({
title: 'Aggiungi',
cart: 'Carrello',
....
</script>
Run Code Online (Sandbox Code Playgroud)
我想获得什么:
<script type="text/javascript">
//<![CDATA[
iCart.init({
title: 'Aggiungi',
cart: 'Carrello',
....
</script>
Run Code Online (Sandbox Code Playgroud)
我已经用 regex101 ( FIDDLE )做了一些测试,它给了我正确的结果,但我无法在真实环境中实现相同的目标
编辑
更改查找正则表达式(修剪产生了一些问题):
$search = array(
'@( |\t|\f)+@', // Shorten …Run Code Online (Sandbox Code Playgroud)