<?xml version="1.0"?>
<rss version="2.0"><channel><title>Konorws (&#x420;&#x430;&#x437;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x430; &#x438; &#x43C;&#x43E;&#x434;&#x438;&#x444;&#x438;&#x43A;&#x430;&#x446;&#x438;&#x44F; Opencart)</title><link>https://opencartforum.com/en/blogs/2-konorws-razrabotka-i-modifikaciya-opencart/</link><description/><language>en</language><item><title>Redirect &#x441; POST &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x43C;&#x438;</title><link>https://opencartforum.com/blogs/entry/158-redirect-s-post-dannymi/</link><description><![CDATA[
<p>
	Всем привет. Это буде короткая запись но очень полезная.<br />
	Тема данной публикации: Как сделать redirect в PHP и отправить POST данные. 
</p>

<p>
	 
</p>

<p>
	Кто сталкивался тот знает в чем проблема. Давайте посмотрим основные варианты которые предлагают на форумах.<br />
	 
</p>

<p>
	<span style="font-size:18px;"><strong>1) Создать форму и отправить ее.</strong></span>
</p>

<p>
	Суть заключается в том что бы на лету сгенерировать html форму и отправить ее. <br />
	Пример кода
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">function redirect_post($url, array $data)
{
    </span><span class="pun">?&gt;</span><span class="pln">
    </span><span class="tag">&lt;html</span><span class="pln"> </span><span class="atn">xmlns</span><span class="pun">=</span><span class="atv">"http://www.w3.org/1999/xhtml"</span><span class="tag">&gt;</span><span class="pln">
    </span><span class="tag">&lt;head&gt;</span><span class="pln">
        </span><span class="tag">&lt;script</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"text/javascript"</span><span class="tag">&gt;</span><span class="pln">
            </span><span class="kwd">function</span><span class="pln"> closethisasap</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                document</span><span class="pun">.</span><span class="pln">forms</span><span class="pun">[</span><span class="str">"redirectpost"</span><span class="pun">].</span><span class="pln">submit</span><span class="pun">();</span><span class="pln">
            </span><span class="pun">}</span><span class="pln">
        </span><span class="tag">&lt;/script&gt;</span><span class="pln">
    </span><span class="tag">&lt;/head&gt;</span><span class="pln">
    </span><span class="tag">&lt;body</span><span class="pln"> </span><span class="atn">onload</span><span class="pun">=</span><span class="atv">"</span><span class="pln">closethisasap</span><span class="pun">();</span><span class="atv">"</span><span class="tag">&gt;</span><span class="pln">
    &lt;form name="redirectpost" method="post" action="</span><span class="pun">&lt;?</span><span class="pln"> echo $url</span><span class="pun">;</span><span class="pln"> </span><span class="pun">?&gt;</span><span class="pln">"&gt;
        </span><span class="pun">&lt;?</span><span class="pln">php
        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> </span><span class="pun">!</span><span class="pln">is_null</span><span class="pun">(</span><span class="pln">$data</span><span class="pun">)</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            </span><span class="kwd">foreach</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$data </span><span class="kwd">as</span><span class="pln"> $k </span><span class="pun">=&gt;</span><span class="pln"> $v</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                echo </span><span class="str">'&lt;input type="hidden" name="'</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $k </span><span class="pun">.</span><span class="pln"> </span><span class="str">'" value="'</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $v </span><span class="pun">.</span><span class="pln"> </span><span class="str">'"&gt; '</span><span class="pun">;</span><span class="pln">
            </span><span class="pun">}</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
        </span><span class="pun">?&gt;</span><span class="pln">
    </span><span class="tag">&lt;/form&gt;</span><span class="pln">
    </span><span class="tag">&lt;/body&gt;</span><span class="pln">
    </span><span class="tag">&lt;/html&gt;</span><span class="pln">
    </span><span class="pun">&lt;?</span><span class="pln">php
    </span><span class="kwd">exit</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	Как на меня довольно страшно выглядит тай <strong>костыль костылем.</strong>
</p>

<p>
	 
</p>

<p>
	<strong><span style="font-size:18px;">2) Сохранить данные в Session</span></strong>
</p>

<p>
	<span style="font-size:12px;">Думаю пример кода делать не нужно и там понятно как работает.  </span><br />
	Тут я скажу что это один из самых адекватных способов, хотя влечет за собою несколько лишних действий. (Проверка, удаление и так далее).
</p>

<p>
	 
</p>

<p>
	<span style="font-size:18px;"><strong>Другое. </strong></span><br />
	<span style="font-size:12px;">Примеров еще много начиная от <strong>Curl проксированния</strong> заканчивая <strong>fopen. Думаю дальнейшие приведение примеров лишние.</strong></span><br />
	<br />
	<span style="color:#c0392b;"><span style="font-size:20px;"><strong>А теперь Самое адекватное и правильное решение.</strong></span></span>
</p>

<p>
	<span style="font-size:14px;"><span>Заключается оно в том что бы использовать 307 код редиректа.</span></span>
</p>

<p>
	<span style="font-size:14px;"><span style="color:#c0392b;"><strong>307</strong></span><span> - редирект это временое перенаправление - так сказано в первых 4 силках в Google по запросу <strong>307 Redirect</strong>.</span></span>
</p>

<p>
	А теперь главный нюанс "Если указать данный код то с редиректом будут отпрвленны данные из переменой $_POST"
</p>

<p>
	 
</p>

<p>
	Реализация PHP
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted">
<span class="pun">&lt;?</span><span class="pln">php

$_POST</span><span class="pun">[</span><span class="str">'firstName'</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">'Maykl'</span><span class="pun">;</span><span class="pln">
$_POST</span><span class="pun">[</span><span class="str">'lastName'</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">'Yatsyshyn'</span><span class="pun">;</span><span class="pln">

header</span><span class="pun">(</span><span class="str">"Location: &lt;URL&gt;"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">,</span><span class="pln"> </span><span class="lit">307</span><span class="pun">);</span><span class="pln">

</span><span class="pun">?&gt;</span></pre>

<p>
	Использование в Opencart и сборках
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pun">&lt;?</span><span class="pln">php

</span><span class="com">// $this-&gt;request-&gt;post = &amp;$_POST;</span><span class="pln">

$this</span><span class="pun">-&gt;</span><span class="pln">request</span><span class="pun">-&gt;</span><span class="pln">post</span><span class="pun">[</span><span class="str">'firstName'</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">'Maykl'</span><span class="pun">;</span><span class="pln">
$this</span><span class="pun">-&gt;</span><span class="pln">request</span><span class="pun">-&gt;</span><span class="pln">post</span><span class="pun">[</span><span class="str">'lastName'</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">'YATSYSHYN'</span><span class="pun">;</span><span class="pln">

$this</span><span class="pun">-&gt;</span><span class="pln">response</span><span class="pun">-&gt;</span><span class="pln">redirect</span><span class="pun">(</span><span class="pln">$URL</span><span class="pun">,</span><span class="pln"> </span><span class="lit">307</span><span class="pun">);</span><span class="pln">
</span><span class="pun">?&gt;</span></pre>

<p>
	<span style="font-size:16px;"><strong>Замечание вместе с данными которые вы записали (firstName, lastName) будут отправлены все данные которые уже били в $_POST это может пригодится когда вам нужно перенаправить данные с формы на другой обработчик или же назад на форму.</strong></span>
</p>
]]></description><guid isPermaLink="false">158</guid><pubDate>Fri, 21 Dec 2018 11:48:52 +0000</pubDate></item><item><title>&#x412;&#x437;&#x433;&#x43B;&#x44F;&#x434; &#x43D;&#x430; Opencart &#x43F;&#x43E;&#x441;&#x43B;&#x435; Magento &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x445; &#x43F;&#x440;&#x43E;&#x434;&#x432;&#x438;&#x43D;&#x443;&#x442;&#x44B;&#x445; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;</title><link>https://opencartforum.com/blogs/entry/83-vzglyad-na-opencart-posle-magento-i-drugih-prodvinutyh-sistem/</link><description><![CDATA[
<p>
	Добрый день.
</p>

<p>
	Немного истории вот где то года три назад я начал свой путь в работе с Opencart. Скажем так полюбил я Opencart всем сердцем.
</p>

<p>
	Но в один солнечный день мне пришел лист о том что я прошел собеседование в относительно большую IT кампанию. И с того дня мой взгляд на хороший код изменился... 
</p>

<p>
	Вот не так давно меня попросили немного доработать функционал на OC. Мне не сложно в принципе вот я и приступил к работе. Я сидел и говорил себе <u><strong>Боже как я раньше с этим работал.</strong></u>
</p>

<p>
	 
</p>

<p>
	Ну теперь давайте я вам попробую описать то что меня возмутило.
</p>

<p>
	 
</p>

<p>
	<span style="font-size:20px;">1. Удобство разработки и интеграция в IDE</span>
</p>

<p>
	Да когда я работал с <strong>Sublime Text</strong> все было вроде гуд. Но уже полгода работаю через <strong>PhpStorm (PS. Лицензия есть даже на домашнем ПК а не только на работе).</strong>
</p>

<p>
	При запуске сразу получаем кучу предупреждений. Давайте взглянем на простой класс <a href="http://joxi.ru/52alLM0UGzO1Om" rel="external nofollow">http://joxi.ru/52alLM0UGzO1Om</a>
</p>

<p>
	Причин тут две:<br />
	1) Отсутствие PhpDoc
</p>

<p>
	2) Упрощенная структура самой CMS
</p>

<p>
	Ну если добавить PHPDoc то большую часть проблем это реши. <br /><span style="font-size:18px;">Зачем нужен PHPDoc ??</span><br />
	Я напишу коротко если будет интересно загуглите.
</p>

<p>
	1) Это читабельность кода<br />
	2) Автокомплит и информация о методах на лету  <a href="http://joxi.ru/brRZkROHQveeLr" rel="external nofollow">http://joxi.ru/brRZkROHQveeLr</a> как не крути сразу видно что и как надо передавать тому или другому методу или то что он возвращает. Или же увидеть ошибку на моменте написания кода а не запуска.
</p>

<p>
	 
</p>

<p>
	<span style="font-size:20px;">2) Это наверное бесит меня на данный момент больше всего. <strong>Это дублирования кода.</strong></span>
</p>

<p>
	Хотя Опенкарт и как бы MVC но он нарушает один из принципов MVC потому что с дублирование кода тут просто беда.
</p>

<p>
	Давайте посмотрим на один из контроллеров админ панели. <a href="http://joxi.ru/nAyKdw3tXz1oVm" rel="external nofollow">http://joxi.ru/nAyKdw3tXz1oVm</a> <br />
	И это один из множества примеров. который есть в каждом файле я молчу о генерации <strong>$url вот пример из файла файла покупателя. Этот кусок кода встереатся в одном файле 9 раз. ????? <br />
	Давайте посчитаем: 9 * ~40 строк = ~360 строчек кода которые можно отрефакторить к 20 максимум и будет один метод для всех файлах а в контролере это будет одна строка вместо 40  </strong>
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted">
<span class="pln">			$url </span><span class="pun">=</span><span class="pln"> </span><span class="str">''</span><span class="pun">;</span><span class="pln">

			</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">isset</span><span class="pun">(</span><span class="pln">$this</span><span class="pun">-&gt;</span><span class="pln">request</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">[</span><span class="str">'filter_name'</span><span class="pun">]))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
				$url </span><span class="pun">.=</span><span class="pln"> </span><span class="str">'&amp;filter_name='</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> urlencode</span><span class="pun">(</span><span class="pln">html_entity_decode</span><span class="pun">(</span><span class="pln">$this</span><span class="pun">-&gt;</span><span class="pln">request</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">[</span><span class="str">'filter_name'</span><span class="pun">],</span><span class="pln"> ENT_QUOTES</span><span class="pun">,</span><span class="pln"> </span><span class="str">'UTF-8'</span><span class="pun">));</span><span class="pln">
			</span><span class="pun">}</span><span class="pln">

			</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">isset</span><span class="pun">(</span><span class="pln">$this</span><span class="pun">-&gt;</span><span class="pln">request</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">[</span><span class="str">'filter_email'</span><span class="pun">]))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
				$url </span><span class="pun">.=</span><span class="pln"> </span><span class="str">'&amp;filter_email='</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> urlencode</span><span class="pun">(</span><span class="pln">html_entity_decode</span><span class="pun">(</span><span class="pln">$this</span><span class="pun">-&gt;</span><span class="pln">request</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">[</span><span class="str">'filter_email'</span><span class="pun">],</span><span class="pln"> ENT_QUOTES</span><span class="pun">,</span><span class="pln"> </span><span class="str">'UTF-8'</span><span class="pun">));</span><span class="pln">
			</span><span class="pun">}</span><span class="pln">

			</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">isset</span><span class="pun">(</span><span class="pln">$this</span><span class="pun">-&gt;</span><span class="pln">request</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">[</span><span class="str">'filter_customer_group_id'</span><span class="pun">]))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
				$url </span><span class="pun">.=</span><span class="pln"> </span><span class="str">'&amp;filter_customer_group_id='</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">request</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">[</span><span class="str">'filter_customer_group_id'</span><span class="pun">];</span><span class="pln">
			</span><span class="pun">}</span><span class="pln">

			</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">isset</span><span class="pun">(</span><span class="pln">$this</span><span class="pun">-&gt;</span><span class="pln">request</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">[</span><span class="str">'filter_status'</span><span class="pun">]))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
				$url </span><span class="pun">.=</span><span class="pln"> </span><span class="str">'&amp;filter_status='</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">request</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">[</span><span class="str">'filter_status'</span><span class="pun">];</span><span class="pln">
			</span><span class="pun">}</span><span class="pln">

			</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">isset</span><span class="pun">(</span><span class="pln">$this</span><span class="pun">-&gt;</span><span class="pln">request</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">[</span><span class="str">'filter_approved'</span><span class="pun">]))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
				$url </span><span class="pun">.=</span><span class="pln"> </span><span class="str">'&amp;filter_approved='</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">request</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">[</span><span class="str">'filter_approved'</span><span class="pun">];</span><span class="pln">
			</span><span class="pun">}</span><span class="pln">

			</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">isset</span><span class="pun">(</span><span class="pln">$this</span><span class="pun">-&gt;</span><span class="pln">request</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">[</span><span class="str">'filter_ip'</span><span class="pun">]))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
				$url </span><span class="pun">.=</span><span class="pln"> </span><span class="str">'&amp;filter_ip='</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">request</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">[</span><span class="str">'filter_ip'</span><span class="pun">];</span><span class="pln">
			</span><span class="pun">}</span><span class="pln">

			</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">isset</span><span class="pun">(</span><span class="pln">$this</span><span class="pun">-&gt;</span><span class="pln">request</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">[</span><span class="str">'filter_date_added'</span><span class="pun">]))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
				$url </span><span class="pun">.=</span><span class="pln"> </span><span class="str">'&amp;filter_date_added='</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">request</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">[</span><span class="str">'filter_date_added'</span><span class="pun">];</span><span class="pln">
			</span><span class="pun">}</span><span class="pln">

			</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">isset</span><span class="pun">(</span><span class="pln">$this</span><span class="pun">-&gt;</span><span class="pln">request</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">[</span><span class="str">'sort'</span><span class="pun">]))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
				$url </span><span class="pun">.=</span><span class="pln"> </span><span class="str">'&amp;sort='</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">request</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">[</span><span class="str">'sort'</span><span class="pun">];</span><span class="pln">
			</span><span class="pun">}</span><span class="pln">

			</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">isset</span><span class="pun">(</span><span class="pln">$this</span><span class="pun">-&gt;</span><span class="pln">request</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">[</span><span class="str">'order'</span><span class="pun">]))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
				$url </span><span class="pun">.=</span><span class="pln"> </span><span class="str">'&amp;order='</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">request</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">[</span><span class="str">'order'</span><span class="pun">];</span><span class="pln">
			</span><span class="pun">}</span><span class="pln">

			</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">isset</span><span class="pun">(</span><span class="pln">$this</span><span class="pun">-&gt;</span><span class="pln">request</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">[</span><span class="str">'page'</span><span class="pun">]))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
				$url </span><span class="pun">.=</span><span class="pln"> </span><span class="str">'&amp;page='</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">request</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">[</span><span class="str">'page'</span><span class="pun">];</span><span class="pln">
			</span><span class="pun">}</span></pre>

<p>
	А теперь представте волшебство Если бы можна было бы так
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted">
<span class="pln">$url </span><span class="pun">=</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">url</span><span class="pun">-&gt;</span><span class="pln">saveUrlParametrs</span><span class="pun">(</span><span class="str">'filter_name'</span><span class="pun">,</span><span class="pln"> </span><span class="str">'filter_email'</span><span class="pun">,</span><span class="pln"> </span><span class="str">'filter_customer_group_id'</span><span class="pun">);</span></pre>

<p>
	И подобных ситуаций уйма. Про дублирование верстки я молчу вообще. Чтоб добавить чтото к товару нада єто продлублировать в 100500 файлах.<br />
	В мадженте к примеру страница редактирования или список в админке создается с помощью двох XML файлов где просто описиваются конфигурации и єтими конфигами можна решить около 75% задач что ставлятса к кодингу доходит редко и економит просто уйму времени. С версткой аналогично создаеш блок и подтягиваеш в нужное место и живеш и радуешся жизни.
</p>

<p>
	 
</p>

<p>
	Ну думал написать по больше но с временем не сложилось. Может потом добавлю что то.
</p>

<p>
	<br />
	 
</p>
]]></description><guid isPermaLink="false">83</guid><pubDate>Wed, 07 Mar 2018 17:03:58 +0000</pubDate></item><item><title>&#x420;&#x430;&#x437;&#x43D;&#x438;&#x446;&#x430; &#x43C;&#x435;&#x436;&#x434;&#x443; redirect 301 &#x438; 302 &#x43E; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x439; &#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x432;&#x44B; &#x43D;&#x435; &#x437;&#x43D;&#x430;&#x435;&#x442;&#x435;</title><link>https://opencartforum.com/blogs/entry/38-raznica-mezhdu-redirect-301-i-302-o-kotoroy-vozmozhno-vy-ne-znaete/</link><description><![CDATA[
<p>
	Добрый день. 
</p>

<p>
	Вот не так давно столкнулся с одной <strong>фичей</strong> 301 редиректа если честно я несколько часов не мог понять в чем прикол а потом все добрый дядя <strong>Google </strong>дал мне ответ.
</p>

<p>
	 
</p>

<p>
	С чего все началось.
</p>

<p>
	Ко мне написал старый заказчик с просьбой поправить страницу заказа. А именно перекидать пользователя без авторизации на страницу самой авторизации (зачем ? это уже другая история скажу сразу у него движок не Opencart а самопис какой то). <br />
	Тут долго думать не пришлось 3 строчки кода (Буду приводить код Opencart что бы было более понятно)<br />
	Ну вставил я этот код:
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted">
<span class="kwd">if</span><span class="pun">(!</span><span class="pln">$this</span><span class="pun">-&gt;</span><span class="pln">customer</span><span class="pun">-&gt;</span><span class="pln">isLogged</span><span class="pun">()){</span><span class="pln">
    $this</span><span class="pun">-&gt;</span><span class="pln">response</span><span class="pun">-&gt;</span><span class="pln">redirect</span><span class="pun">(</span><span class="pln">$this</span><span class="pun">-&gt;</span><span class="pln">url</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">(</span><span class="str">'account/login'</span><span class="pun">));</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	Ну думаю проверю на всякий случай. И вот скидаю куки и захожу на страницу заказа оп и все работает.)))) Думаю ладно попробую еще авторизацию пройти. <br />
	Логинюсь на сайте - идем на страницу оформления - оп и я на странице авторизации с ошибкой доступа<br />
	 
</p>

<p>
	Я <u>немножко</u> <strong>афигел. </strong> Давай копать проврил код все нормально все верно. Убрал код из файла и оп ляля а Ридерект остался причем в любой ситуации перекидивает. <br />
	Я начал колдовать искал убирал скидивал кеш и нифига.  <br />
	И тут я заглянул в файл редиректа и вот какую строчку я там обнаружил
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted">
<span class="pln">header</span><span class="pun">(</span><span class="str">"HTTP/1.1 301 Moved Permanently"</span><span class="pun">);</span><span class="pln"> </span></pre>

<p>
	Уточнил у заказчика откуда он там взялся (пришлось обяснить сначала что он значит и делает). Как оказалось им какая то СЕО прога сказала что на сайте есть 302 редиректы и это не правильно и они решили все перевести в 301.<br />
	Думаю окей <strong>ваши тараканы</strong>.  
</p>

<p>
	 
</p>

<p>
	Закомментил эту строчку проблема осталась. 
</p>

<p>
	 
</p>

<p>
	Начал гуглить, гуглить, гуглить, ...........
</p>

<p>
	И на дном из тикетов поддержки <strong>Google Chrome </strong>я нашел<strong> ОТВЕТ:<br /><u>Как оказалось браузеры <span style="color:#e74c3c;">кешируют</span> 301 редирект и при повторном вызове УРЛ сразуже перенаправлять на <span style="color:#e74c3c;">кешированный</span> УРЛ. </u></strong>
</p>

<p>
	<strong>Причем не только Google Chrome а и другие браузеры также.</strong>
</p>

<p>
	 
</p>

<p>
	Итоги:<br />
	Для внутришних редеректов сайта всегда используйте <strong>302</strong> редирект который используется в PHP по умолчанию.
</p>
]]></description><guid isPermaLink="false">38</guid><pubDate>Thu, 19 Oct 2017 11:57:34 +0000</pubDate></item><item><title>&#x41C;&#x443;&#x43B;&#x44C;&#x442;&#x438; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x438;&#x437;&#x43E;&#x431;&#x440;&#x430;&#x436;&#x435;&#x43D;&#x438;&#x439; &#x43A; &#x442;&#x43E;&#x432;&#x430;&#x440;&#x443;</title><link>https://opencartforum.com/blogs/entry/26-multi-dobavlenie-izobrazheniy-k-tovaru/</link><description><![CDATA[
<p>
	Добрый день. Вот делал небольшую задачу основной целью которой было ускорить и упростить наполнения товаров. 
</p>

<p>
	Одно из самых раздражающих есть добавление изображений поэтому я добавил небольшой скрипт основан на скрипте <a href="http://www.uploadify.com/" rel="external nofollow">uploadify</a> 
</p>

<p>
	Суть в том что загрузка и добавление происходит в 2 клика. Причем картинки сортируются в свои каталоги примером вот так <br>
	/image/data/lproducts/55<br>
	где 55 это ID товара если же вы создаете новый товар и у него еще нет Айдишки тогда будет создан каталог по времени time();
</p>

<p>
	Вот видео как работает:
</p>

<div class="ipsEmbeddedVideo">
	<div>
		<iframe allowfullscreen="true" frameborder="0" height="270" src="https://opencartforum.com/applications/core/interface/js/spacer.png" width="480" data-embed-src="https://www.youtube.com/embed/4pbpmHQ2g3Q?feature=oembed"></iframe>
	</div>
</div>

<p>
	 
</p>

<p>
	Если кому нужно пишите в коментах дам исходники. Тут канешно для Opencart 1.5 то если руки ровные тогда без проблем можно поставить и на 2.Х
</p>

<p>
	Гдето видел даже готовый плагин для этой цели правда он у меня не хотел работать!
</p>
]]></description><guid isPermaLink="false">26</guid><pubDate>Fri, 10 Mar 2017 14:13:16 +0000</pubDate></item><item><title>&#x41C;&#x43E;&#x434;&#x443;&#x43B;&#x44C; &#x418;&#x441;&#x442;&#x43E;&#x440;&#x438;&#x438; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x439; (Change History)</title><link>https://opencartforum.com/blogs/entry/17-modul-istorii-izmeneniy-change-history/</link><description><![CDATA[
<p>
	Добрый день хочу представить вам небольшой обзор модуля который почти завершен и находится на этапе тестирования.<br>
	"Change History" Представляет из себя модуль который сохраняет большенство изменений которые проходят в админ панели.<br>
	В общем мы имеем несколько параметров:
</p>

<ol>
<li>
		<strong> Действие: </strong><br>
		- Добавление<br>
		- Удаление<br>
		- Изменение<br>
		При использовании первых двоих вы получите отчет о том что было удалено + некоторые дополнительные данные такие как ID<br>
		При "<strong>изменении</strong>" вы получаете отчет о том какие параметры были изменены в таком варианте (Поле: было -&gt; <strong>стало</strong>) 
	</li>
	<li>
		дальше у нас есть Модули (Название (Поддерживаемые действия)<br>
		-  Заказ (Удаление, добавление)<br>
		-  Статусы заказа (изменение)<br>
		- Товары (добавление, изменение, удаление)<br>
		- Категории (добавление, изменение, удаление)<br>
		- Покупатели (добавление, изменение, удаление)<br>
		 
	</li>
</ol>
<p>
	В отчете вы получаете такие поля<br>
	№ отчета / Имя Юзера / Модуль / Действие / дополнительные прамметры / дата<br>
	Также есть фильтр который позволяет отсортировать отчеты<br>
	 
</p>

<p>
	<strong>Настройка</strong>
</p>

<p>
	<strong>Вы можете включить или отключить те модули которые хотите отслежывать (смт. Скрин)</strong>
</p>

<p>
	 
</p>

<p>
	Также в процессе проектирования функция <strong>Recovery </strong>которая будет в будущем добавлена к функционалу данного модуля<br>
	Жду ваших комментариев и пожеланий<br><a class="ipsAttachLink ipsAttachLink_image" data-fileid="36494" href="https://opencartforum.com/storage/attachment/monthly_2017_02/58aeb23ce1fb3_.png.84464bcf9d15c699d257946dbcb849e4.png" rel=""><img alt="58aeb23d0f3eb_.thumb.png.ae3698ef90d4683d499d1440fabcb679.png" class="ipsImage ipsImage_thumbnailed" data-fileid="36494" src="https://opencartforum.com/applications/core/interface/js/spacer.png" data-src="https://opencartforum.com/storage/attachment/monthly_2017_02/58aeb23d0f3eb_.thumb.png.ae3698ef90d4683d499d1440fabcb679.png" data-ratio="48,12"></a><a class="ipsAttachLink ipsAttachLink_image" href="https://opencartforum.com/storage/attachment/monthly_2017_02/58aeb29f9cb68_1.png.3d0d660992c19b97e5fa55a7c41a9b5d.png" data-fileid="36497" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="36497" src="https://opencartforum.com/applications/core/interface/js/spacer.png" alt="58aeb29fb5f04_1.thumb.png.cac1c1e0c9e5e7c3e2b9bd345823c273.png" data-src="https://opencartforum.com/storage/attachment/monthly_2017_02/58aeb29fb5f04_1.thumb.png.cac1c1e0c9e5e7c3e2b9bd345823c273.png" data-ratio="46,72"></a>
</p>
]]></description><guid isPermaLink="false">17</guid><pubDate>Thu, 23 Feb 2017 09:59:00 +0000</pubDate></item><item><title>&#x417;&#x430;&#x431;&#x43B;&#x443;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x43E; "&#x411;&#x435;&#x437;&#x43B;&#x438;&#x43C;&#x438;&#x442;&#x43D;&#x43E; &#x421;&#x430;&#x439;&#x442;&#x43E;&#x432;"</title><link>https://opencartforum.com/blogs/entry/11-zabluzhdenie-o-bezlimitno-saytov/</link><description><![CDATA[
<p>
	Добрый день. Хочу вам рассказать том что вы получаете когда выбираете хостинг на котором вам разрешают устанавливать несколько сайтов а в некоторых случаях и неограниченное количество сайтов.<br />
	Начну с того что сам повелся на такую акцию. Мы купили хостинг с такими характеристиками:<br />
	ЖД <span lang="en-us" xml:lang="en-us">SSD</span><span lang="en-us" xml:lang="en-us"> </span>– НЕ ОГРАНИЧЕНО,<br />
	Количество сайтов – НЕ ОГРАНИЧЕНО,<br />
	ОЗУ: 1 <span lang="en-us" xml:lang="en-us">GB</span>,<br />
	Цена составила 330грн/мес. (730р/мес.)<br />
	Ну как для одного не большого интернет магазина с 1к трафика в день и 3к товарами должно было хватить тем более меня уверяли что все будет работать отлично.<br />
	Скажу сразу что я очень лояльно ставлюсь к данному хостингу («<span lang="en-us" xml:lang="en-us"><a href="https://www.unihost.com/?a_aid=589d7f13819c4" rel="external nofollow">Unihost</a></span>» <span> </span>рефф. Силка) и не хочу показать какое то негативное мнение насчет него я активно пользуюсь его услугами и такие ситуации встречал и на других хостингах.<br />
	Ну казалось все хорошо работало и не было никаких проблем.<br />
	Но тут мы начали делать еще один проект и когда стал вопрос о том где его разместить мы вспомнили о том что у нас есть хостинге где можно поставить еще файлы так как диск был неограничен проблем не должно было быть но когда мы развернули проект через месяц мы заметили что оба сайта начали подвисать и тогда мы начали искать причину этого и добрались к логам производительности и оказалось что нам просто не хватает ресурсов <span> </span>после общение с тех. поддержкой о казалось что у всех сайтов одни ресурсы то есть наш 1 ГБ ОЗУ был на два сайта.</p>
<p></p>


<p>
	Также я пообщался с другими хостингами и оказалось у них такая же ситуация, я вполне понимаю что это был сугубо наш косяк и не имею претензий к хостингу просто хочу вам рассказать возможно это вам когда то поможет сделать правильный выбор.</p>
<p></p>


<p>
	И старайтесь не экономить при выборе хостинга или сервера это та часть где лучше заплатить больше если вы хотите создать не сайт визитку. </p>
<p></p>


<p>
	Просто помните в большинстве случаев вы получаете общие ресурсы на все сайты хоть их там 5, 10 или 100. <span> </span><br /><span><span> </span><span lang="uk" xml:lang="uk"></span></span></p>
<p></p>
]]></description><guid isPermaLink="false">11</guid><pubDate>Sun, 19 Feb 2017 14:57:30 +0000</pubDate></item></channel></rss>
