江苏快三开奖结果今天:OC小店 - Co. Ltd.青海快三走势图//www.kbjgz.cn/Good Luck To You!opencart之分类筛选开发 - Co. Ltd.青海快三走势图//www.kbjgz.cn/post/36.html<p>&nbsp;&nbsp;&nbsp;&nbsp;基于前面这么多文章都没有涉及到opencart二次开发的内容,本篇文章就为大家详细的讲述一个开发功能的过程,这个功能是后台商品分类的一个筛选功能。</p><ol class=" list-paddingleft-2" style="list-style-type: decimal;"><li><p>首先登录后台打开商品分类页面,然后通过路由我们可以得知商品分类页面所在的位置,然后我们打开商品分类的controller文件。<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905221558509100222701.png" title="1.png" alt="1.png"/><br/><br/></p></li><li><p>打开商品分类controller文件后,我们通过index 方法发现它第一个跳转的方法是getlist方法<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905221558509508323333.png" title="4.png" alt="4.png"/><br/><br/>然后找到getlist 方法,我们看到这个方法的最后一步是输出这些数据到模板文件,并且可以得出模板文件的路由和名称 catalog/category_list<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905221558509615570743.png" title="5.png" alt="5.png"/><br/><br/>打开商品分类列表模板文件, 现在我们需要添加筛选功能的样式,那么问题来了,这个样式该怎么添加?这个功能要怎么改写? opencart的css和js都是有固定框架构造,所以我们这里就不用自己去写,直接照着用就可以了,这个筛选功能虽然商品分类页面没有,但商品管理页面有这个功能,所以我们去吧商品管理页面的这个筛选功能的样式照搬过来。<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905221558509870612011.png" title="6.png" alt="6.png"/><br/><br/>打开商品管理页面<img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905221558515018624100.png" title="2.png" alt="2.png"/><br/>F12审查元素,对比两个页面结构不一样的地方,我发现商品管理列表页多了下图红框中的代码<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905221558515788439781.png" title="7.png" alt="7.png"/><br/><br/>然后根据商品管理页面路由我们找到商品管理列表页的模板文件 product_list.twig,找到对应代码,并加在商品分类列表页模板文件里,这里我们只需要1个分类名称筛选,所以在复制的时候其他不需要的给删除掉,这里要注意的是我们添加的代码时要注意结构,不能乱了,否则页面显示的结构也是乱的。<br/><br/></p></li></ol><pre class="prism-highlight prism-language-php">&lt;!--添加代码开始--&gt; &lt;div&nbsp;class=&quot;row&quot;&gt; &nbsp;&nbsp;&lt;div&nbsp;id=&quot;filter-product&quot;&nbsp;class=&quot;col-md-3&nbsp;col-md-push-9&nbsp;col-sm-12&nbsp;hidden-sm&nbsp;hidden-xs&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;div&nbsp;class=&quot;panel&nbsp;panel-default&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&nbsp;class=&quot;panel-heading&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;h3&nbsp;class=&quot;panel-title&quot;&gt;&lt;i&nbsp;class=&quot;fa&nbsp;fa-filter&quot;&gt;&lt;/i&gt;&nbsp;{{&nbsp;text_filter&nbsp;}}&lt;/h3&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&nbsp;class=&quot;panel-body&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&nbsp;class=&quot;form-group&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;label&nbsp;class=&quot;control-label&quot;&nbsp;for=&quot;input-name&quot;&gt;{{&nbsp;entry_name&nbsp;}}&lt;/label&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;type=&quot;text&quot;&nbsp;name=&quot;filter_name&quot;&nbsp;value=&quot;{{&nbsp;filter_name&nbsp;}}&quot;&nbsp;placeholder=&quot;{{&nbsp;entry_name&nbsp;}}&quot;&nbsp;id=&quot;input-name&quot;&nbsp;class=&quot;form-control&quot;&nbsp;/&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&nbsp;class=&quot;form-group&nbsp;text-right&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;button&nbsp;type=&quot;button&quot;&nbsp;id=&quot;button-filter&quot;&nbsp;class=&quot;btn&nbsp;btn-default&quot;&gt;&lt;i&nbsp;class=&quot;fa&nbsp;fa-filter&quot;&gt;&lt;/i&gt;&nbsp;{{&nbsp;button_filter&nbsp;}}&lt;/button&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt; &nbsp;&nbsp;&lt;/div&gt; &nbsp;&nbsp;&lt;div&nbsp;class=&quot;col-md-9&nbsp;col-md-pull-3&nbsp;col-sm-12&quot;&gt; &nbsp;&nbsp;&lt;!--添加代码结束--&gt; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&nbsp;class=&quot;panel&nbsp;panel-default&quot;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;..... &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;!--添加代码开始--&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;/div&gt; &lt;/div&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;!--添加代码结束--&gt;</pre><p>在商品分类列表模板页面结尾&nbsp;{{ footer }}之前不要忘了添加筛选按钮触发的类似于提交的功能,并删除多余的筛选、修改route路由为catalog/category</p><pre class="prism-highlight prism-language-php">&lt;script&nbsp;type=&quot;text/javascript&quot;&gt;&lt;!-- &nbsp;&nbsp;$(&#39;#button-filter&#39;).on(&#39;click&#39;,&nbsp;function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;url&nbsp;=&nbsp;&#39;&#39;; &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;filter_name&nbsp;=&nbsp;$(&#39;input[name=\&#39;filter_name\&#39;]&#39;).val(); &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(filter_name)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url&nbsp;+=&nbsp;&#39;&amp;filter_name=&#39;&nbsp;+&nbsp;encodeURIComponent(filter_name); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;location&nbsp;=&nbsp;&#39;index.php?route=catalog/category&amp;user_token={{&nbsp;user_token&nbsp;}}&#39;&nbsp;+&nbsp;url; &nbsp;&nbsp;}); &nbsp;&nbsp;//--&gt;&lt;/script&gt;</pre><p style="text-align: left;"><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;模板文件添加完成之后我们就需要在controller里添加模板文件里没有的那些变量(也就是我们新增的代码中原程序没有的变量):text_filter、entry_name、filter_name&nbsp;、button_filter、user_token。在商品分类的controller文件里添加这些变量之前我们首先要明白这些变量是什么以及怎么赋值,通过在商品管理的controller文件里面搜索这些变量发现text_filter、entry_name、button_filter为语言文件里的变量,所以我们需要在对应language文件里添加,如果不考虑语言,我们也可以直接在模板文件里去把这些名称变量写成固定的,filter_name 和user_taken 我们就可以参考商品管理的controller文件,去查询这些变量然后照着写就好了。<br/><br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905231558580223131823.png" title="8.png" alt="8.png"/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;变量处理完后我们需要把这个新增的筛选条件传入到查询数据库的方法中,也就是上图的<span style="color: #FF0000;">getTotalCategories</span>查询总数方法和<span style="color: #FF0000;">getCategories</span>查询所有分类方法,不过我们需要修改的是model文件里的这两个方法,所以根据路由<span style="color: #FF0000;">model_catalog_category</span>我们需要打开&nbsp;admin/model/catalog/category.php 文件去查看这两个方法,并补充好新增的筛选条件。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在我找到<span style="color: #FF0000;">getCategories</span>方法的时候我发现它这个里面已经写好了,也许这是原程序没有做完留下的一部分吧。<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905231558579783631817.png" title="10.png" alt="10.png"/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下面修改要格外注意了,修改<span style="color: #FF0000;">getTotalCategories</span>查询总数方法要给这个方法一个形参,并且要给它一个默认空值,因为这个方法可能在别的controller文件里有会调用,它本身是没有参数的,所以别的调用的地方是没有传递变量,也就没有参数,下图是修改后的代码。</p><pre class="prism-highlight prism-language-php">public&nbsp;function&nbsp;getTotalCategories($filter_name=&#39;&#39;)&nbsp;{ &nbsp;&nbsp;&nbsp;if&nbsp;(!empty($filter_name))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$query&nbsp;=&nbsp;$this-&gt;db-&gt;query(&quot;SELECT&nbsp;COUNT(*)&nbsp;AS&nbsp;total&nbsp;FROM&nbsp;&quot;&nbsp;.&nbsp;DB_PREFIX&nbsp;.&nbsp;&quot;category&nbsp;c&nbsp;LEFT&nbsp;JOIN&nbsp;&quot;&nbsp;.&nbsp;DB_PREFIX&nbsp;.&nbsp;&quot;category_description&nbsp;cd&nbsp;ON&nbsp;(c.category_id&nbsp;=&nbsp;cd.category_id)&nbsp;WHERE&nbsp;cd.language_id&nbsp;=&nbsp;&#39;&quot;&nbsp;.&nbsp;(int)$this-&gt;config-&gt;get(&#39;config_language_id&#39;)&nbsp;.&nbsp;&quot;&#39;&nbsp;AND&nbsp;cd.name&nbsp;LIKE&nbsp;&#39;%&quot;&nbsp;.&nbsp;$this-&gt;db-&gt;escape($filter_name)&nbsp;.&nbsp;&quot;%&#39;&quot;); &nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$query&nbsp;=&nbsp;$this-&gt;db-&gt;query(&quot;SELECT&nbsp;COUNT(*)&nbsp;AS&nbsp;total&nbsp;FROM&nbsp;&quot;&nbsp;.&nbsp;DB_PREFIX&nbsp;.&nbsp;&quot;category&quot;); &nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;return&nbsp;$query-&gt;row[&#39;total&#39;]; }</pre><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这是修改之前的代码<br/></p><pre class="prism-highlight prism-language-php">public&nbsp;function&nbsp;getTotalCategories()&nbsp;{ &nbsp;&nbsp;&nbsp;$query&nbsp;=&nbsp;$this-&gt;db-&gt;query(&quot;SELECT&nbsp;COUNT(*)&nbsp;AS&nbsp;total&nbsp;FROM&nbsp;&quot;&nbsp;.&nbsp;DB_PREFIX&nbsp;.&nbsp;&quot;category&quot;); &nbsp;&nbsp;&nbsp;return&nbsp;$query-&gt;row[&#39;total&#39;]; }</pre><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;最后在提示一点记得把分页上的筛选条件也带上,下图<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905231558581267391938.png" title="12.png" alt="12.png"/><br/><br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905231558580994704882.png" title="11.png" alt="11.png"/><br/></p>Wed, 22 May 2019 14:32:19 +0800opencart3.0之邮箱设置 - Co. Ltd.青海快三走势图//www.kbjgz.cn/post/35.html<p>opencart程序在安装时大家可能都会遇到无法发送邮件的问题,下面给大家介绍一种方案解决这个问题。<br/>1.首先我们登录后台然后 打开系统设置的网店设置,查看邮件协议这一项,我们看到邮件引擎默认的是mail,这里我们最好将它选择为SMTP,因为Mail邮件引擎需要服务器支持需要额外去设置,邮件参数可以不用填写,SMTP主机就是指你的邮箱的SMTP服务器(列举两个QQ邮箱的是smtp.qq.com,网易邮箱的是smtp.163.com),SMTP用户就是填写你的邮箱,SMTP密码是开通你邮箱的<span class="nui-chkGroup nui-chkGroup-vertical">POP3/SMTP服务后显示给你的授权密码,下面的端口和SMTP超时不用修改。<br/></span><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905221558497223439826.png" title="2.png" alt="2.png"/><br/><br/></p><p>2.QQ邮箱开启POP3/SMTP服务设置<br/>登录qq邮箱后 点击设置 -&gt;&nbsp; 账户,&nbsp;<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905221558498373874009.png" title="3.png" alt="3.png"/><br/><br/>往下滚动我们会看到POP3/SMTP服务,然后点击开启,这里可能还需要一些验证,开启后它会给你授权码,然后将这个授权码填写到SMTP密码里就可以了<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905221558498408323067.png" title="4.png" alt="4.png"/><br/><br/>3.网易邮箱开启POP3/SMTP服务设置<br/>登录后点击设置 -&gt; POP3/SMTP/IMAP -&gt; 开启POP3/SMTP服务,得到授权码。<br/><br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905221558498751688953.png" title="Q0A@%}HP)UG{FYNQD)YI0[K.png" alt="Q0A@%}HP)UG{FYNQD)YI0[K.png"/></p>Tue, 21 May 2019 17:16:38 +0800opencart之数据库查询便捷查询 - Co. Ltd.青海快三走势图//www.kbjgz.cn/post/34.html<ol class=" list-paddingleft-2" style="list-style-type: decimal;"><li><p>本篇文章给大家分享一个opencart查询数据库简单方法,这个方法当然不是自带的啦,只需要添加一个文件(<a href="//www.kbjgz.cn/ocxdm.zip" target="_blank">ocxdm.php</a>)和一行代码就可以使用了。<br/>&nbsp; &nbsp;首先将ocxdm.php 上传到系统类库目录下 <span style="background-color: #FFFF00;">system/library</span><br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905181558163264392031.png" title="60$7]Y4ZMGP]JIX~DFB5XS6.png" alt="60$7]Y4ZMGP]JIX~DFB5XS6.png"/><br/><br/><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">然后 打开 system 文件夹下的 framework.php文件,并在</span><span style="box-sizing: border-box; color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFF00;">// Session</span><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">&nbsp;之前加上下面代码,让opencart加在这个类。<br/></span></p></li></ol><pre class="prism-highlight prism-language-php">&nbsp;&nbsp;&nbsp;&nbsp;$registry-&gt;set(&#39;ocxdm&#39;,new&nbsp;ocxdm($registry));</pre><p>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;2.使用方法<br/>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">①.增加方法(所有表名无需添加前缀)</span><br style="box-sizing: border-box; color: rgb(51, 51, 51); font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; white-space: normal; background-color: rgb(255, 255, 255);"/><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data[&#39;字段名&#39;] = 对应的值;</span><br style="box-sizing: border-box; color: rgb(51, 51, 51); font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; white-space: normal; background-color: rgb(255, 255, 255);"/><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;ocxdm-&gt;table(&#39;表名&#39;)-&gt;add($data);<br/></span></p><pre class="prism-highlight prism-language-php">$data[&#39;name&#39;]&nbsp;=&nbsp;$this-&gt;request-&gt;post[&#39;name&#39;]; $data[&#39;price&#39;]&nbsp;=&nbsp;$this-&gt;request-&gt;post[&#39;price&#39;]; $data[&#39;quantity&#39;]&nbsp;=&nbsp;$this-&gt;request-&gt;post[&#39;quantity&#39;]; $this-&gt;ocxdm-&gt;table(&#39;product&#39;)-&gt;add($data);</pre><p>&nbsp;&nbsp;&nbsp;&nbsp;②.<span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">删除方法</span><br style="box-sizing: border-box; color: rgb(51, 51, 51); font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; white-space: normal; background-color: rgb(255, 255, 255);"/><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">&nbsp;&nbsp;&nbsp;&nbsp;$data[&#39;字段名&#39;] = 对应的值;//where条件数组</span><br style="box-sizing: border-box; color: rgb(51, 51, 51); font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; white-space: normal; background-color: rgb(255, 255, 255);"/><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;ocxdm-&gt;table(&#39;表名&#39;)-&gt;where($data)-&gt;delete();</span><br/></p><pre class="prism-highlight prism-language-php">$data[&#39;product_id&#39;]&nbsp;=&nbsp;1; $this-&gt;ocxdm-&gt;table(&#39;product&#39;)-&gt;where($data)-&gt;delete();</pre><p>&nbsp;&nbsp;&nbsp;&nbsp;③.<span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">修改方法</span><br style="box-sizing: border-box; color: rgb(51, 51, 51); font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; white-space: normal; background-color: rgb(255, 255, 255);"/><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">&nbsp;&nbsp;&nbsp;&nbsp;$map[&#39;字段名&#39;] = 对应的值;//where条件数组</span><br style="box-sizing: border-box; color: rgb(51, 51, 51); font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; white-space: normal; background-color: rgb(255, 255, 255);"/><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">&nbsp;&nbsp;&nbsp;&nbsp;$data[&#39;字段名&#39;] = 对应的值;</span></p><pre class="prism-highlight prism-language-php">$map[&#39;product_id&#39;]&nbsp;=&nbsp;$this-&gt;request-&gt;get[&#39;product_id&#39;]; $data[&#39;name&#39;]&nbsp;=&nbsp;$this-&gt;request-&gt;post[&#39;name&#39;]; $data[&#39;price&#39;]&nbsp;=&nbsp;$this-&gt;request-&gt;post[&#39;price&#39;]; $data[&#39;quantity&#39;]&nbsp;=&nbsp;$this-&gt;request-&gt;post[&#39;quantity&#39;]; $this-&gt;ocxdm-&gt;table(&#39;product&#39;)-&gt;where($map)-&gt;update($data);</pre><p>&nbsp;&nbsp;&nbsp;&nbsp;④.<span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">查询方法</span><br/><span style="background-color: #FFFFFF; color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif;">&nbsp;&nbsp;&nbsp;&nbsp;普通查询</span><br/></p><p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 10px; color: rgb(51, 51, 51); font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; white-space: normal; background-color: rgb(255, 255, 255);">&nbsp;&nbsp;&nbsp;&nbsp;$filter_data[&#39;product_id&#39;] = $product_id;//查询条件关于非相等条件的表达式 $filter_data[&#39;name&#39;] = array(&#39;like&#39;,&#39;%&#39;.$this-&gt;request-&gt;get[$filters].&#39;%&#39;);更多表达式方法可在ocxdm.php文件里查看里查看<br style="box-sizing: border-box;"/>&nbsp;&nbsp;&nbsp;&nbsp;$results = $this-&gt;ocxdm-&gt;table(‘表名’)-&gt;where(‘条件’)-&gt;page(&#39;page&#39;,‘limit数’)-&gt;order(&quot;排序方式&quot;)-&gt;select();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //find()方法也可使用</p><pre class="prism-highlight prism-language-php">$filter_data[&#39;product_id&#39;]&nbsp;=&nbsp;$product_id; $results&nbsp;=&nbsp;$this-&gt;ocxdm-&gt;table(&#39;product&#39;) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;where($filter_data) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;page($sort_data[&#39;page&#39;],$this-&gt;sort[&#39;limit&#39;]) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;order(&quot;date_added&nbsp;DESC&quot;) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;select();</pre><p>&nbsp; &nbsp;&nbsp;<span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">左联表查询</span><br/><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">&nbsp;&nbsp;&nbsp;&nbsp;$results = $this-&gt;ocxdm-&gt;table(‘表名’)</span><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">-&gt;join(&#39;表名&#39;,&#39;左联条件&#39;)</span><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">-&gt;where(‘条件’)</span><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">-&gt;page(&#39;page&#39;,‘limit数’)</span><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">-&gt;order(&quot;排序方式&quot;)</span><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">-&gt;select();&nbsp; &nbsp;//find()方法也可使用</span></p><pre class="prism-highlight prism-language-php">$filter_data[&#39;product_id&#39;]&nbsp;=&nbsp;$product_id; $results&nbsp;=&nbsp;$this-&gt;ocxdm-&gt;table(&#39;product&#39;) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;where($filter_data) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;join(&#39;product_description&#39;,&#39;product.product_id&nbsp;=&nbsp;product_description.product_id&#39;) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;page($sort_data[&#39;page&#39;],$this-&gt;sort[&#39;limit&#39;]) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;order(&quot;date_added&nbsp;DESC&quot;) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;select();</pre><p><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">&nbsp;&nbsp;&nbsp;&nbsp;like,&gt;,&lt; 查询</span><br style="box-sizing: border-box; color: rgb(51, 51, 51); font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; white-space: normal; background-color: rgb(255, 255, 255);"/><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">&nbsp;&nbsp;&nbsp;&nbsp;$filter_data[&#39;字段名&#39;] = array(&#39;条件符号&#39;,变量);</span><br style="box-sizing: border-box; color: rgb(51, 51, 51); font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; white-space: normal; background-color: rgb(255, 255, 255);"/><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">&nbsp;&nbsp;&nbsp;&nbsp;$results = $this-&gt;ocxdm-&gt;table(‘表名’)</span><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">-&gt;where(‘条件’)</span><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">-&gt;page(&#39;page&#39;,‘limit数’)</span><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">-&gt;order(&quot;排序方式&quot;)</span><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">-&gt;select();</span></p><pre class="prism-highlight prism-language-php">like&nbsp;查询 $filter_data[&#39;name&#39;]&nbsp;=&nbsp;array(&#39;like&#39;,&#39;%&#39;.$filter_name.&#39;%&#39;) $results&nbsp;=&nbsp;$this-&gt;ocxdm-&gt;table(&#39;product&#39;) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;where($filter_data) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;page($sort_data[&#39;page&#39;],$this-&gt;sort[&#39;limit&#39;]) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;order(&quot;date_added&nbsp;DESC&quot;) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;select(); &#39;&gt;&#39;&nbsp;查询 $filter_data[&#39;date_time&#39;]&nbsp;=&nbsp;array(&#39;egt&#39;,$filter_date_name) $results&nbsp;=&nbsp;$this-&gt;ocxdm-&gt;table(&#39;product&#39;) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;where($filter_data) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;page($sort_data[&#39;page&#39;],$this-&gt;sort[&#39;limit&#39;]) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;order(&quot;date_added&nbsp;DESC&quot;) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;select(); &#39;in&#39;多个查询 $filter_data[&#39;product_id&#39;]&nbsp;=&nbsp;array(&#39;in&#39;,$priduct_ids) $results&nbsp;=&nbsp;$this-&gt;ocxdm-&gt;table(&#39;product&#39;) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;where($filter_data) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;page($sort_data[&#39;page&#39;],$this-&gt;sort[&#39;limit&#39;]) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;order(&quot;date_added&nbsp;DESC&quot;) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;select(); 更多非等号查询符号代码 &nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;$exp&nbsp;=&nbsp;array(&#39;eq&#39;=&gt;&#39;=&#39;,&#39;neq&#39;=&gt;&#39;&lt;&gt;&#39;,&#39;gt&#39;=&gt;&#39;&gt;&#39;,&#39;egt&#39;=&gt;&#39;&gt;=&#39;,&#39;lt&#39;=&gt;&#39;&lt;&#39;,&#39;elt&#39;=&gt;&#39;&lt;=&#39;,&#39;notlike&#39;=&gt;&#39;NOT&nbsp;LIKE&#39;,&#39;like&#39;=&gt;&#39;LIKE&#39;,&#39;in&#39;=&gt;&#39;IN&#39;,&#39;notin&#39;=&gt;&#39;NOT&nbsp;IN&#39;,&#39;not&nbsp;in&#39;=&gt;&#39;NOT&nbsp;IN&#39;,&#39;between&#39;=&gt;&#39;BETWEEN&#39;,&#39;not&nbsp;between&#39;=&gt;&#39;NOT&nbsp;BETWEEN&#39;,&#39;notbetween&#39;=&gt;&#39;NOT&nbsp;BETWEEN&#39;);</pre><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">count查询</span><br/></p><pre class="prism-highlight prism-language-php">$filter_data[&#39;add_time&#39;]&nbsp;=&nbsp;array(&#39;&gt;&#39;,$filter_add_time) $results&nbsp;=&nbsp;$this-&gt;ocxdm-&gt;table(&#39;product&#39;) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;where($filter_data) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;page($sort_data[&#39;page&#39;],$this-&gt;sort[&#39;limit&#39;]) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;order(&quot;date_added&nbsp;DESC&quot;) &nbsp;&nbsp;&nbsp;&nbsp;-&gt;count();</pre><p><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;"></span><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">&nbsp;&nbsp;&nbsp;&nbsp;查询字段的和<br/></span></p><pre class="prism-highlight prism-language-php">$results&nbsp;=&nbsp;$this-&gt;ocxdm-&gt;table(&quot;order_product&quot;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt;where(array(&#39;order_id&#39;&nbsp;=&gt;&nbsp;array(&#39;in&#39;,$order_id_array),)) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt;field(&quot;&nbsp;name,SUM(quantity)&nbsp;AS&nbsp;quantity&quot;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt;group(&quot;product_id&quot;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt;select()</pre><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">输出SQL功能<br/>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;">在写的sql方法中加上is_echo(1)即可。</span></span><span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; background-color: #FFFFFF;"></span></p><pre class="prism-highlight prism-language-php">$results_total&nbsp;=&nbsp;$this-&gt;ocxdm-&gt;table(&#39;product&#39;)-&gt;where($filter_data)-&gt;select()-&gt;is_echo(1);</pre><p><br/></p><p>&nbsp;&nbsp;&nbsp;&nbsp;3.这个方法在一些简单的查询中 是比较方便的,但是面对一些比较复杂的查询方法就不是特别好用。如果大家在用的过程中发现了哪些可以优化的地方普天同庆欢迎您给出宝贵的建议。</p>Sat, 18 May 2019 14:29:32 +0800opencart之缓存数据 - Co. Ltd.青海快三走势图//www.kbjgz.cn/post/32.html<ol class=" list-paddingleft-2" style="list-style-type: decimal;"><li><p>说到缓存数据,那么我们这里就要说明一下为啥需要缓存数据,在我们游览网站时,网站的商品或其他页面时,大部分页面信息需要查询数据库,每次打开页面时都需要去查询数据库,一旦访问量过多就会增加服务器的负担,所以这里生成缓存数据文件后,它就不会再去查询数据库直接访问缓存文件,这样就能够更快捷更方便的查询到数据信息。<br/><br/></p></li><li><p>下面就给大家示列一个生成缓存的案列(这个生成缓存的方法是opencart自带的方法,可直接生成缓存文件很方便,它的类库文件路径system/library/cache.php,里面的具体方法感兴趣的可自行查看)<br/>这个文件是网站前端商品详情页的controller文件&nbsp;&nbsp;catalog\controller\product\product.php<br/>①读取缓存文件</p></li></ol><pre class="prism-highlight prism-language-php">//检查是否存在缓存文件 $cache_key&nbsp;=&nbsp;&#39;product_.&#39;.$this-&gt;session-&gt;data[&#39;language&#39;].&#39;_&#39;.$product_id;&nbsp;&nbsp;//设置缓存文件的名称,我这里是根据网站当前的语言代码和商品id来设置的文件名称,这里我们要尽量确保名称唯一。 $return&nbsp;=&nbsp;$this-&gt;cache-&gt;get($cache_key);&nbsp;&nbsp;&nbsp;&nbsp;//查找改商品的缓存文件&nbsp; if&nbsp;($return)&nbsp;{ &nbsp;&nbsp;&nbsp;return&nbsp;$this-&gt;response-&gt;setOutput($this-&gt;load-&gt;view(&#39;product/product&#39;,&nbsp;$return)); }</pre><p>&nbsp; &nbsp; &nbsp;如下图这个查询缓存文件的代码我们需要放在商品查询之前,否则它就失去了它的意义~<br/>&nbsp; &nbsp; &nbsp;<img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905161557996503307537.png" title="1.png" alt="1.png"/><br/>&nbsp; &nbsp; &nbsp; ②生成缓存文件<br/></p><pre class="prism-highlight prism-language-php">$jsonStr&nbsp;=&nbsp;json_encode($data);&nbsp;&nbsp;&nbsp;//转化数据 $return&nbsp;=&nbsp;json_decode($jsonStr,true);//转化数据 $this-&gt;cache-&gt;set($cache_key,&nbsp;$return);&nbsp;//将所有数据生成到缓存文件</pre><p>&nbsp; &nbsp; 生成缓存文件的代码需要放在输出模板最后一步之前,因为这样能保证把所有的数据都保存到缓存文件中<br/>&nbsp; <img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905161557997681752280.png" title="2.png" alt="2.png"/></p><p><br/></p><p>&nbsp;&nbsp;&nbsp;&nbsp;3.缓存文件存放的路径&nbsp;storage\cache, 缓存的方法虽然好用,但在修改和更新商品数据或网站功能之后,一定要记得删除这些缓存文件,或者写一个方法来自动清空这些缓存文件,否则可能会出现异常问题。</p><p><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905161557997961127348.png" title="EM~0FI1X3((}YEIBDU~L552.png" alt="EM~0FI1X3((}YEIBDU~L552.png"/></p>Thu, 16 May 2019 14:22:16 +0800opencart3.0之伪静态设置 - Co. Ltd.青海快三走势图//www.kbjgz.cn/post/31.html<ol class=" list-paddingleft-2" style="list-style-type: decimal;"><li><p><span style="font-size: 16px;">本篇文章为大家讲述如何设置伪静态,既然说到伪静态,这里就顺便提一下它的用处:<span style="color: #273746; font-family: Arial, &quot;Microsoft yahei&quot;, &quot;Hiragino Sans GB&quot;, &quot;冬青黑体简体中文 w3&quot;, STXihei, 华文细黑, 微软雅黑, SimSun, 宋体, Heiti, 黑体, sans-serif; background-color: #FFFFFF;">主要好处就是为了迎合搜索引擎的抓取,以此对搜索引擎表示友好,达到更佳的 SEO 优化效果,其次也就是明确了网站的的 URL 链接,方便了用户的浏览、输入、以及传播等。<br/></span></span></p></li><li><p><span style="font-size: 16px;">下面进入本篇文章的正题:<br/>系统设置 -&gt; 网店设置 -&gt; 服务器设置 -&gt; 启用伪静态<br/><br/>在启用伪静态的时候&nbsp; 我们可以看到它提示了 服务器必须支持Apache Rewrite Mod 功能,也就是<span style="color: #555555; font-family: &quot;Microsoft Yahei&quot;; background-color: #FFFFFF; font-size: 16px;">appache服务器要开启mod_rewrite。<br/></span>然后还需要将htaccess.txt文件 重命名为.htaccess文件。其实htaccess.txt文件 就是opencart自带写好的伪静态规则文件,不过要修改成 .htaccess 才能生效。<span style="font-size: 16px; color: #FF0000;">htaccess文件只有apache服务器有效。</span><br/><span style="font-family: &quot;Source Sans Pro&quot;, sans-serif; background-color: #FFFFFF; font-size: 16px;">修改网站根目录下的.htaccess.txt为.htaccess文件,在windows环境下去掉.txt时,会有一个错误提示导致无法修改,我整合了几种简单的方式来修改:<br/></span>①<span style="font-family: &quot;Source Sans Pro&quot;, sans-serif; background-color: #FFFFFF; font-size: 16px;">用记事本打开htaccess.txt文件,然后点击文件–另存为,在文件名窗口输入<span style="font-family: &quot;Source Sans Pro&quot;, sans-serif; background-color: #FFFFFF; color: #FF0000; font-size: 16px;">”.htaccess”</span>,注意<span style="font-family: &quot;Source Sans Pro&quot;, sans-serif; background-color: #FFFFFF; color: #FF0000; font-size: 16px;">文件名</span>需要包含<span style="font-family: &quot;Source Sans Pro&quot;, sans-serif; background-color: #FFFFFF; color: #FF0000; font-size: 16px;">英文引号</span>,然后点击保存就行了。<br/></span>②在网站根目录的system文件夹下有一个<span style="font-family: &quot;Source Sans Pro&quot;, sans-serif; background-color: #FFFFFF; font-size: 16px;">.htaccess文件,直接把它复制出来 ,然后将<span style="font-family: &quot;Source Sans Pro&quot;, sans-serif; background-color: #FFFFFF; font-size: 16px;">htaccess.txt的内容复制一遍到<span style="font-family: &quot;Source Sans Pro&quot;, sans-serif; background-color: #FFFFFF; font-size: 16px;">.htaccess文件里<br/></span></span></span></span><span style="font-size: 16px;">③</span><span style="font-family: &quot;Source Sans Pro&quot;, sans-serif; font-size: 16px; background-color: #FFFFFF;">进入cmd命令 窗口,通过cd切换当刚建立htaccess.txt文件的文件夹,然后输入命令:rename htaccess.txt .htaccess ,然后点击键盘Enter键即可。</span><br/>&nbsp;<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905161557975268882568.png" title="1.png" alt="1.png"/><br/><br/></p></li><li><p>做完以上步骤 ,我们需要去设置的SEO关键词 ,<br/>下图是商品的seo关键词设置示列(分类、品牌、信息管理等也可以设置seo关键词)<br/><br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905161557976718721678.png" title="2.png" alt="2.png"/><br/><br/>设置完成后 网站前端访问效果<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905161557976860686212.png" title="3.png" alt="3.png"/><br/><br/>4.这里给大家补充一下opencart在Nginx服务器的伪静态设置,Nginx下设置伪静态方法与Apache差不多,直接在nginx.conf (或者在对应的*.conf) 中找到需设置伪静态规则的服务器对应字段,在server{ location/{ } }中添加以下代码:(<span style="color: #FF0000;">添加后重启Nginx服务,www.abc.com记得要换成自己的网站域名</span>)<br/></p></li></ol><pre class="prism-highlight prism-language-php"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($host&nbsp;!=&nbsp;&#39;www.abc.com&#39;)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rewrite&nbsp;^/(.*)$&nbsp;//www.abc.com/$1&nbsp;permanent; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try_files&nbsp;$uri&nbsp;@opencart; &nbsp;} &nbsp;location&nbsp;@opencart&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rewrite&nbsp;^/(.+)$&nbsp;/index.php?_route_=$1&nbsp;last; &nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;location&nbsp;/admin/&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index&nbsp;index.php; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;location&nbsp;~*&nbsp;(\.(tpl|ini))$&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;deny&nbsp;all;</pre><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.这里再补充一下如何全站设置伪静态:首先我们打开 catalog\controller\startup\seo_url.php 文件,然后找到下面第一段代码,然后加上后面的代码<br/></p><pre class="prism-highlight prism-language-php">&nbsp;&nbsp;elseif&nbsp;($key&nbsp;==&nbsp;&#39;path&#39;)&nbsp;{ &nbsp;&nbsp;&nbsp;$categories&nbsp;=&nbsp;explode(&#39;_&#39;,&nbsp;$value); &nbsp;&nbsp;&nbsp;foreach&nbsp;($categories&nbsp;as&nbsp;$category)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$query&nbsp;=&nbsp;$this-&gt;db-&gt;query(&quot;SELECT&nbsp;*&nbsp;FROM&nbsp;&quot;&nbsp;.&nbsp;DB_PREFIX&nbsp;.&nbsp;&quot;seo_url&nbsp;WHERE&nbsp;`query`&nbsp;=&nbsp;&#39;category_id=&quot;&nbsp;.&nbsp;(int)$category&nbsp;.&nbsp;&quot;&#39;&nbsp;AND&nbsp;store_id&nbsp;=&nbsp;&#39;&quot;&nbsp;.&nbsp;(int)$this-&gt;config-&gt;get(&#39;config_store_id&#39;)&nbsp;.&nbsp;&quot;&#39;&nbsp;AND&nbsp;language_id&nbsp;=&nbsp;&#39;&quot;&nbsp;.&nbsp;(int)$this-&gt;config-&gt;get(&#39;config_language_id&#39;)&nbsp;.&nbsp;&quot;&#39;&quot;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($query-&gt;num_rows&nbsp;&amp;&amp;&nbsp;$query-&gt;row[&#39;keyword&#39;])&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url&nbsp;.=&nbsp;&#39;/&#39;&nbsp;.&nbsp;$query-&gt;row[&#39;keyword&#39;]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url&nbsp;=&nbsp;&#39;&#39;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;unset($data[$key]); } //找到上面的代码位置(一般在103行),添加下面的代码 &nbsp;elseif&nbsp;($key&nbsp;==&nbsp;&#39;route&#39;)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;$query&nbsp;=&nbsp;$this-&gt;db-&gt;query(&quot;SELECT&nbsp;*&nbsp;FROM&nbsp;&quot;&nbsp;.&nbsp;DB_PREFIX&nbsp;.&nbsp;&quot;seo_url&nbsp;WHERE&nbsp;`query`&nbsp;=&nbsp;&#39;&quot;&nbsp;.&nbsp;$this-&gt;db-&gt;escape($value)&nbsp;.&nbsp;&quot;&#39;&quot;); &nbsp;&nbsp;&nbsp;if&nbsp;($query-&gt;num_rows)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url&nbsp;.=&nbsp;&#39;/&#39;&nbsp;.&nbsp;$query-&gt;row[&#39;keyword&#39;]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unset($data[$key]); &nbsp;&nbsp;&nbsp;} }</pre><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;添加代码之后打开数据库执行以下sql语句添加伪静态关键词,这样就完成了全站的伪静态设置。<br/></p><pre class="prism-highlight prism-language-php">&nbsp;&nbsp;&nbsp;&nbsp;INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;common/home&#39;,&nbsp;&#39;&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;account/wishlist&#39;,&nbsp;&#39;wishlist.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;account/account&#39;,&nbsp;&#39;my-account.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;checkout/cart&#39;,&nbsp;&#39;shopping-cart.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;checkout/checkout&#39;,&nbsp;&#39;checkout.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;account/login&#39;,&nbsp;&#39;login.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;account/logout&#39;,&nbsp;&#39;logout.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;account/order&#39;,&nbsp;&#39;order-history.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;account/newsletter&#39;,&nbsp;&#39;newsletter.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;product/special&#39;,&nbsp;&#39;specials.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;affiliate/account&#39;,&nbsp;&#39;affiliates.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;checkout/voucher&#39;,&nbsp;&#39;gift-vouchers.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;product/manufacturer&#39;,&nbsp;&#39;brands.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;information/contact&#39;,&nbsp;&#39;contact-us.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;account/return/insert&#39;,&nbsp;&#39;request-return.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;information/sitemap&#39;,&nbsp;&#39;sitemap.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;account/forgotten&#39;,&nbsp;&#39;forgot-password.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;account/download&#39;,&nbsp;&#39;downloads.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;account/return&#39;,&nbsp;&#39;returns.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;account/transaction&#39;,&nbsp;&#39;transactions.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;account/register&#39;,&nbsp;&#39;create-account.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;product/compare&#39;,&nbsp;&#39;compare-products.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;product/search&#39;,&nbsp;&#39;search.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;account/edit&#39;,&nbsp;&#39;edit-account.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;account/password&#39;,&nbsp;&#39;change-password.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;account/address&#39;,&nbsp;&#39;address-book.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;account/reward&#39;,&nbsp;&#39;reward-points.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;affiliate/edit&#39;,&nbsp;&#39;edit-affiliate-account.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;affiliate/password&#39;,&nbsp;&#39;change-affiliate-password.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;affiliate/payment&#39;,&nbsp;&#39;affiliate-payment-options.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;affiliate/tracking&#39;,&nbsp;&#39;affiliate-tracking-code.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;affiliate/transaction&#39;,&nbsp;&#39;affiliate-transactions.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;affiliate/logout&#39;,&nbsp;&#39;affiliate-logout.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;affiliate/forgotten&#39;,&nbsp;&#39;affiliate-forgot-password.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;affiliate/register&#39;,&nbsp;&#39;create-affiliate-account.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;affiliate/login&#39;,&nbsp;&#39;affiliate-login.html&#39;); INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;account/voucher&#39;,&nbsp;&#39;account-voucher.html&#39;);&nbsp; INSERT&nbsp;INTO&nbsp;oc_seo_url&nbsp;(query,&nbsp;keyword)&nbsp;VALUES&nbsp;(&#39;account/return/add&#39;,&nbsp;&#39;account-return-add.html&#39;);</pre><p><br/></p>Tue, 14 May 2019 10:21:53 +0800opencart3.0之目主题插件讲解 - Co. Ltd.青海快三走势图//www.kbjgz.cn/post/30.html<ol class=" list-paddingleft-2" style="list-style-type: decimal;"><li><p>本篇文章给大家讲解opencart的主题插件,主题插件其实和普通的扩展插件目录结构一样,所以安装方法也一样,下面给大家示列安装一个materialize 主题插件。<br/><br/></p></li><li><p>插件管理 -&gt; 插件安装 -&gt; 上传插件 -&gt; 插件管理 -&gt; OCMOD配置 -&gt; 更新<br/><br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905141557817019542349.png" title="1.png" alt="1.png"/></p></li><li><p>插件管理 -&gt; 主题模板 -&gt; 安装 -&gt;开启状态&nbsp;<br/><br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905141557817588864699.png" title="2.png" alt="2.png"/><br/><br/></p></li><li><p>&nbsp;系统设置 -&gt; 网店设置 -&gt; 选择网站主题 保存<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905141557817738893381.png" title="3.png" alt="3.png"/><br/><br/></p></li><li><p>网站主题<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905141557817917557609.png" title="4.png" alt="4.png"/><br/><br/></p></li><li><p>这是一个比较简单的主题插件,没有太多的设置,相对的它的功能也是比较简单的,当然也会有一些比较复杂的主题插件,需要设置很多选项或者需要导入数据才能正常使用,一般在购买插件时会有安装教程说明,在使用需要导入数据的主题插件时一定要记得备份所有文件和数据库数据。如果在安装主题插件之前有安装其他插件,这时我们需要去检查一下是否会有冲突,并及时修正。如下图是安装的最近游览插件和当前主题的冲突。<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905141557818965719167.png" title="5.png" alt="5.png"/><br/></p></li></ol><p><br/></p>Tue, 14 May 2019 10:18:35 +0800opencart3.0之插件开发 - Co. Ltd.青海快三走势图//www.kbjgz.cn/post/29.html<p>opencart的插件机制 不仅可以不改变程序原代码实现功能需求,还可以重复利用 分享给其他需求者,本篇文件就给大家介绍opencart 插件的原理以及如何开发opencart插件。<br/></p><ol class=" list-paddingleft-2" style="list-style-type: decimal;"><li><p>首先我们来查看一个插件的目录结构 (显示最近游览商品的插件)<br/><br/>这个插件里主要的是upload文件夹 和install.xml文件。&nbsp; upload文件夹里一般都新增的文件,也有些是会覆盖的文件(同名同路径),但覆盖的文件是不可逆的,也就是<br/>说如果要卸载这个插件,那么覆盖之前的文件也会被删除,会造成程序文件缺失。所以如果不是必须的,我们最好在upload文件夹中不要有会覆盖的文件。<br/><br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905101557475843536468.png" title="1.png" alt="1.png"/><br/><br/>install.xml 文件的开头内容是声明插件合适的opencart的版本,以及开发者的相关信息,主体内容是修改程序的代码片段。<br/><br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905131557734843729244.png" title="2.png" alt="2.png"/><br/></p></li><li><p>简单的讲解一下 插件安装到实现的原理: 上传插件 -&gt; 解压文件 -&gt; 将解压后upload下的文件移动到对应的目录 并将文件路径记录到数据库中,然后将install.xml文件的内容<br/>记录到数据库中 -&gt; 更新ocmod配置,系统根据 保存的install.xml文件内容生成 改动后的缓存文件在 /storage/modification目录下,opencart在执行代码时,会优先执行缓<br/>存中的文件,跳过原来的文件。<br/><br/>关于install.xml文件添加修改代码片段的常用属性说明<br/></p></li><li><pre class="prism-highlight prism-language-php">&lt;file&nbsp;name=&quot;admin/controller/catalog/product.php&quot;&gt;&nbsp;&nbsp;&lt;!--&nbsp;文件标签&nbsp;双标签&nbsp;必填--&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;operation&nbsp;error=&quot;skip&quot;&gt;&nbsp;&lt;!--声明开始修改的第一个片段,有多个修改的片段,则需要添加多个完整的operation标签。有error属性:找不到目标代码时执行的操作,属性值有skip、log;双标签必填--&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;search&nbsp;搜索代码标签,作用是为add标签添加代码做参考定位,在代码下面添加目标代码&nbsp;search标签有&nbsp;index属性:目标代码有多个时用该属性声明排序(从0开始),属性值为数字;Offset属性: &nbsp;&nbsp;&nbsp;&nbsp;目标代码为原点往下排的第几行,属性值为数字;双标签&nbsp;必填&nbsp;--&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;search&gt;&lt;![CDATA[&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data[&#39;text_form&#39;]&nbsp;=&nbsp;!isset($this-&gt;request-&gt;get[&#39;product_id&#39;])&nbsp;?&nbsp;$this-&gt;language-&gt;get(&#39;text_add&#39;)&nbsp;:&nbsp;$this-&gt;language-&gt;get(&#39;text_edit&#39;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]]&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/search&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;添加的内容标签&nbsp;添加或修改代码部分。常用属性position,属性值有&nbsp;after&nbsp;意思是在search目标代码之后添加,还有&nbsp;before&nbsp;在目标代码之前,replace&nbsp;替换目标代码,双标签&nbsp;必填&nbsp;--&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;add&nbsp;position=&quot;after&quot;&gt;&gt;&lt;![CDATA[&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data[&#39;product_id&#39;]&nbsp;=&nbsp;!isset($this-&gt;request-&gt;get[&#39;product_id&#39;])&nbsp;?&nbsp;&#39;&#39;&nbsp;:&nbsp;$this-&gt;request-&gt;get[&#39;product_id&#39;]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]]&gt;&lt;/add&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;/operation&gt;&nbsp;&lt;!--&nbsp;第一个修改片段结束&nbsp;--&gt; &lt;/file&gt;</pre><p><br/></p></li><li><p>通过以上的说明,可以知道我们将新增的文件按照对应的路径放入upload空文件夹里,然后将install.xml文件和upload文件夹压缩命名为 xxxx.ocmod.zip,插件就完成了。<br/>这里需要额外说明一个情况,如果没有新增文件,只有install.xml文件,那么这个插件也是需要新建一个空的upload目录,我经过代码追踪查询到 安装插件的程序中会检<br/>查是否含有upload目录,如下图。<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905141557799947511899.png" title="4.png" alt="4.png"/><br/><br/>制作心得:插件的制作其实不是特别难,但插件的兼容性是一个比较繁琐的问题,因为插件和插件之间也可能会有冲突的地方,针对于不同版本也会有冲突的地方,所以<br/>想要真正的做好一个插件,还是要对应好每一个文件和每一段代码。</p></li></ol>Fri, 10 May 2019 14:09:07 +0800opencart3.0之安装插件 - Co. Ltd.青海快三走势图//www.kbjgz.cn/post/28.html<ol class=" list-paddingleft-2" style="list-style-type: decimal;"><li><p>安装好opencart,弄清楚它的目录结构之后,我们就要来谈论opencart的二次开发。opencart在原程序上修改的内容不便于重复利用、而且也是不便于恢复,所以opencart就有了插件机制。<br/>opencart的插件我把它分为扩展插件和修改插件,插件通过新增文件或是替换原文件来生效的,注意这里的替换并不是覆盖,而是让程序执行系统根据插件生成的新文件,这个新文件也算是<br/>一个缓存文件,这样做的好处就是可以不改变原程序并且实现功能需求。</p></li><li><p>扩展插件就是在原程序的基础上再增加一些其他已经有的功能扩展,并且几乎不需要改动原程序代码,安装后即可实现功能,列如语言包插件、支付类型插件等;而修改插件则需要在原程序上改动并生成<br/>新文件才能达到新增功能或者修改功能的效果,安装后需要更新ocmod缓存。<br/>首先来一发扩展插件安利:安装中文语言包插件。这里自带下载地址哟~<a href="https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=19126&filter_search=language&filter_category_id=2&filter_license=0&filter_download_id=49" target="_blank" title="opencart3.0语言包">opencart 3.0中文语言包下载</a><br/><br/>登录opencart后台 打开插件安装页面 上传插件,上传成功之后会有提示,在这个上传步骤中它做了解压文件、记录插件文件路径 和安装插件记录等这些步骤,<br/>我们可以根据路由 marketplace/installer 找到对应的文件去查看它的具体执行步骤。<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905091557390264710236.png" title="1.png" alt="1.png"/><br/><br/>安装成功之后 还需要去设置:System -&gt;Localisation -&gt; Languages&nbsp; -&gt;点击新增 -&gt;添加信息 -&gt;保存&nbsp;<br/><span style="color: #0070C0;">Locale</span>:&nbsp;<span style="color: #FF0000;">zh,zh-hk,zh-cn,UTF-8,cn-gb,chinese<span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; (语言代码红色字体)</span></span><br/><br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905091557391225234584.png" title="4.png" alt="4.png"/><br/><br/>网站语言设置&nbsp; :System -&gt; setting -&gt; 编辑&nbsp; -&gt; local&nbsp; -&gt; 选择语言 -&gt; 保存<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905091557391767137380.png" title="5.png" alt="5.png"/><br/><br/></p><p>修改插件:商品选项图片插件&nbsp; &nbsp;<br/>第一步上传<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905091557392837238786.png" title="6.png" alt="6.png"/><br/><br/>更新ocmod 生成修改后的新文件(<a href="//www.kbjgz.cn/post/13.html" target="_blank" title="opencart ocmod和vqmod">关于opencart 的ocmod的详细介绍</a>)<br/><br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905091557392854226769.png" title="7.png" alt="7.png"/><br/><br/>插件功能示例图<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/05/201905101557455575595865.png" title="8.png" alt="8.png"/><br/></p></li></ol>Tue, 30 Apr 2019 16:09:03 +0800opencart3.0之目录结构巧学 - Co. Ltd.青海快三走势图//www.kbjgz.cn/post/27.html<p>想要改动opencart网站的内容,首先得了解它的网站文件的目录结构。本篇内容给大家介绍opencart的程序结构以及如果查询文件路由。</p><p><br/></p><ol class=" list-paddingleft-2" style="list-style-type: decimal;"><li><p>第一层目录是网站所有的文件<br/><br/><img src="//www.kbjgz.cn/zb_users/upload/2019/04/201904291556520417562691.png" title="1.png" alt="1.png"/><br/></p></li><li><p>网站后台文件目录&nbsp; (网站前台目录(catalog)的结构与之相同,但它的入口文件在第一层目录里)<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/04/201904291556522348884832.png" title="2.png" alt="2.png"/><br/><br/></p></li><li><p>一般来说&nbsp; 每个页面都会有一个controller文件、一个model文件、至少一个view文件,而语言文件的数量则是根据程序安装语言种类的数量决定。<br/>那么如何找到页面对应的文件呢? 首先我们要根据路由来找到对应的文件(如下图是后台的商品列表页面): 我们通过网址栏 可以看到 ‘<span style="color: #FF0000;">route=catalog/product’</span><br/>从route一直到‘&amp;’符号之前的字段就是当前页面的路由。<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/04/201904301556606048873902.png" title="3.png" alt="3.png"/><br/><br/></p></li><li><p>根据路由 我们分别找到对应的文件 如图是controller文件,&nbsp; 关于model文件和view文件 我们可以打开这个product.php 文件去查看它调用的model文件和输出view文件。<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/04/201904301556609583654661.png" title="4.png" alt="4.png"/><br/></p></li></ol>Mon, 29 Apr 2019 13:32:57 +0800opencart3.0之安装教学 - Co. Ltd.青海快三走势图//www.kbjgz.cn/post/26.html<p>作为学习opencart的起点,本篇文章就给大家一本正经详细的介绍opencart程序的安装步骤,让你在这条不归路上越走越远。<br/>1.安装:<br/>①下载opencart程序&nbsp;&nbsp;<a href="https://www.opencart.com/index.php?route=cms/download/download&download_id=59" target="_blank" title="opencart源码" textvalue="下载点我opencart v3.0.3.2 ">下载点我opencart v3.0.3.2 </a>,本篇文章就先以3.0版本的系统程序为示列讲解opencart的一系列使用及开发,关于opencart其他版本 <a href="https://www.opencart.com/index.php?route=cms/download/history#steps" target="_blank" title="opencart不同版本">点击查看</a>。</p><p>②将下载的opencart程序压缩包解压,然后把upload文件夹下的config-dist.php文件重命名为config.php文件,admin文件夹下的也需要修改,这两个文件分别是</p><p>前端和后台的配置文件,修改后将整个程序上传到服务器的网站根目录或者搭建的测试环境目录中,网站的运行目录记得选择upload。程序上传后,再新建一个数据库。<br/></p><p><img src="//www.kbjgz.cn/zb_users/upload/2019/04/201904201555744185628417.png" title="1.png" alt="1.png"/></p><p><br/>③ 现在访问这个程序,可以看到这里提示有4个步骤,不用管它的这些说明,我们只用点击continue 完成安装步骤,旁边也有语言选择,但只有有英语。</p><p>第一步骤开始安装</p><p><img src="//www.kbjgz.cn/zb_users/upload/2019/04/201904201555746266876919.png" title="2.png" alt="2.png"/></p><p>第二步骤&nbsp; 检查环境配置以及文件目录<br/>如果这些都没有提示错误,continue 下一步,否则就根据提示的设置名称去开启对应的设置。</p><p><img src="//www.kbjgz.cn/zb_users/upload/2019/04/201904201555747431885098.png" title="3.png" alt="3.png"/></p><p>第三步骤 绑定数据库并设置后台账号</p><p>添加数据库信息&nbsp; &nbsp;管理员后台信息&nbsp; 填写正确后 continue ,点击continue后需要等待好几秒然后跳转到第四步骤</p><p><img src="//www.kbjgz.cn/zb_users/upload/2019/04/201904201555748153678092.png" title="4.png" alt="4.png"/></p><p>第四步骤&nbsp; 完成安装&nbsp;&nbsp;<br/>出现这个页面&nbsp; 恭喜你已经成功安装了opencart系统,但还是不要着急,因为下面有句红色的文字提示你要删除安装文件夹:upload下的install文件夹。虽然这个<br/>安装文件夹不删除也可以访问,但是为了网站的安全建议删除比较好。<br/>下面去网站的前台和后台查看吧!<br/><img src="//www.kbjgz.cn/zb_users/upload/2019/04/201904201555748391709413.png" title="5.png" alt="5.png"/></p><p><br/></p><p>第五步骤&nbsp; &nbsp;这里我额外加了一个步骤,据说心细的人才能发现。在安装后登录后台它会弹出提示框 ,这个提示框是建议你把 storage 这个文件夹放到网站的运行目录之外,这里是为网站的安全性考虑,<br/>这个文件夹是网站存放一些缓存文件的目录,可以手动移动它的位置,但是作为新手&nbsp; 肯定是要通过程序来移动这个文件夹&nbsp;&nbsp;</p><p><br/><img src="//www.kbjgz.cn/zb_users/upload/2019/04/201904201555749753185967.png" title="6.png" alt="6.png"/></p><p>选择&nbsp; 有绿色标记的目录(这些目录都在网站运行目录upload之外),为了方便以后开发 建议选择与upload同级的目录&nbsp; 然后点击move 即可完成自动移动&nbsp; &nbsp;<br/></p><p><img src="//www.kbjgz.cn/zb_users/upload/2019/04/201904201555750809732537.png" title="7.png" alt="7.png"/>&nbsp; &nbsp; &nbsp;<br/></p><p><br/></p><p>重要提示:网站的访问目录是upload文件夹,但是在域名绑定时是绑定upload的上一级为网站目录,而网站的运行目录需要设置为upload文件夹。opencart3.0安装的PHP版本必须为5.6及以上版本才可以。在安装的第二个步骤中都会有提示说明。</p><p></p>Fri, 19 Apr 2019 16:50:11 +0800
  • 天上不会掉馅饼,想要富起来,就要把别人的据为己有,能把别人的据为己有的问世间能有谁,能有几人,所谓的专家明白了吗。 2019-06-15
  • 火到怀疑人生!这些抖音网红款奶茶,你统统拔草了吗? 2019-06-05
  • “龙江二号”微卫星传回地月合影 2019-06-05
  • 古人清居生活是啥样?看看这些书画你就知道 2019-06-03
  • 去杠杆之问:货币供应惯性能不能停?怎么停? 2019-05-31
  • 北京市进入腹泻高发季 专家注意洁净饮食 保证充足睡眠 2019-05-27
  • 习近平主持上海合作组织青岛峰会小范围会谈 2019-05-26
  • 国家税务总局甘肃省税务局正式挂牌 2019-05-25
  • 汉能发布汉纸、汉包:移动能源时代全面到来 2019-05-25
  • “独角兽”基金今日开售 投资者仍需注意防范风险 2019-05-23
  • 今晚明晨战况如何 赶快来猜一猜 2019-05-16
  • 印度的城镇怎可用一个“吵”字形容 2019-05-15
  • 小偷暴力撞门 偷走12万元财物 2019-05-14
  • 【央视快评】让传统文化焕发新时代风采 2019-05-09
  • 银白配色更高贵-热门标签-华商网数码 2019-05-09