<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Virtuemart &#8212; Nikita Spivak</title>
	<atom:link href="https://nikita-sp.com.ua/tag/virtuemart/feed" rel="self" type="application/rss+xml" />
	<link>https://nikita-sp.com.ua</link>
	<description>web developer&#039;s portfolio</description>
	<lastBuildDate>Fri, 22 Aug 2014 13:09:26 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>
	<item>
		<title>Не работает функция &#171;Автоматический выбор способа доставки&#187; Virtuemart 2.0.x</title>
		<link>https://nikita-sp.com.ua/2012/03/ne-rabotaet-funktsiya-avtomaticheskiy-v.html</link>
					<comments>https://nikita-sp.com.ua/2012/03/ne-rabotaet-funktsiya-avtomaticheskiy-v.html#disqus_thread</comments>
		
		<dc:creator><![CDATA[Nikita_Sp]]></dc:creator>
		<pubDate>Wed, 07 Mar 2012 12:15:21 +0000</pubDate>
				<category><![CDATA[Плагины и модули]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[Virtuemart]]></category>
		<guid isPermaLink="false">http://nikita-sp.com.ua/?p=509</guid>

					<description><![CDATA[Всем привет еще раз, за сегодня это уже вторая запись про Virtuemart 2.0.x, и надеюсь она поможет кому-то еще, не смотря на свою краткость, ибо когда я искал в интернете, нигде ничего не было сказано. Перейдем к проблеме: Не работает функция, которую мы активируем в Администраторской панели Virtuemart&#8217;а, &#171;Автоматический выбор способа доставки&#171;.  Я начал гуглить, [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Всем привет еще раз, за сегодня это уже вторая запись про Virtuemart 2.0.x, и надеюсь она поможет кому-то еще, не смотря на свою краткость, ибо когда я искал в интернете, нигде ничего не было сказано.</p>
<p>Перейдем к проблеме: <em>Не работает функция, которую мы активируем в Администраторской панели Virtuemart&#8217;а, &#171;<strong>Автоматический выбор способа доставки</strong>&#171;</em>. <span id="more-509"></span></p>
<p>Я начал гуглить, копаться в коде, копать в шаблонах в папке View, а ответ был прост &#8212; просто не указывайте <strong><em>НИКАКИЕ</em></strong> страны для этого способа доставки.</p>
<p>Даже если вы используете две страны: Россия и Украина, и укажите их в способе доставки, скрипт будет сначала выводить форму, для заполнения пользователем, а потом страницу с вариантом доставки. Исходя из этого я сделал вывод, что автоматический выбор доставки выполняется по странам.</p>
<p>Тут возникает противоречие! В подсказке сказано, что если у вас один способ доставки, то можете активировать эту опцию и все будет хорошо, но, тогда при наличии одного типа доставки и активированной этой опции зачем проверять страны? Тут видимо разработчики отдыхали.</p>
<p>Я бы реализовал алгоритм так: (проверка на активацию функции)  -&gt; (проверка количества опубликованных возможных способов оплаты), если один &#8212; то даже не смотреть на страны и ставить его. Все!</p>
<p>Надеюсь помогла статья, удачного кодинга!<br />
Спасибо за внимание!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nikita-sp.com.ua/2012/03/ne-rabotaet-funktsiya-avtomaticheskiy-v.html/feed</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Не отправляются письма Virtuemart 2.0.x. Не происходит подтверждение заказа</title>
		<link>https://nikita-sp.com.ua/2012/03/ne-otpravlyayutsya-pisma-virtuemart-2-0-x-podtverzhde.html</link>
					<comments>https://nikita-sp.com.ua/2012/03/ne-otpravlyayutsya-pisma-virtuemart-2-0-x-podtverzhde.html#disqus_thread</comments>
		
		<dc:creator><![CDATA[Nikita_Sp]]></dc:creator>
		<pubDate>Wed, 07 Mar 2012 12:54:39 +0000</pubDate>
				<category><![CDATA[Плагины и модули]]></category>
		<category><![CDATA[Статьи о php]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Virtuemart]]></category>
		<guid isPermaLink="false">http://nikita-sp.com.ua/?p=504</guid>

					<description><![CDATA[Доброе время суток, Уважаемые читатели и подписчики! Сегодня расскажу вам о том, как решить проблему, с которой я столкнулся во время работы с новым Virtuemart 2.0.2. Проблема заключалась в том, что после того как человек вводит свои данные и нажимает на кнопочку &#171;Подтвердить заказ&#187; загружается абсолютно пустая страница,  но сам заказ сохраняется в администраторской панели, [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Доброе время суток, Уважаемые читатели и подписчики!</p>
<p>Сегодня расскажу вам о том, как решить проблему, с которой я столкнулся во время работы с новым Virtuemart 2.0.2. Проблема заключалась в том, что после того как человек вводит свои данные и нажимает на кнопочку &#171;Подтвердить заказ&#187; <strong>загружается абсолютно пустая страница</strong>,  но сам заказ сохраняется в администраторской панели, и <strong>не отправляются письма</strong>, уведомляющие пользователя и администратора о заказе через Virtuemart.</p>
<p><span id="more-504"></span>Немного покопавшись в коде, я нашел решение этой проблемы.</p>
<p>Я гуглил, но ничего не смог найти, потом оклеветал хостинг, т.к. на Denwer&#8217;e все работало нормально, начал настраивать почту, пробовать разные варианты отправки php mail(); SMTP, sendmail. Но ничего не помогало. И тут я увидел что  в начале письма, которое отправляется пользователю <small>(у Denver&#8217;a сохраняются письма, отправленные через php mail(); в папке <em>WebServers\tmp\!sendmail</em> ),</small> выводится сообщение об ошибке. Оповещение говорит о том, что что-то не так с передаваемым параметром в функцию <em>substr();</em> в файле</p>
<p><em>administrator/components/com_virtuemart/models/orders.php на строке 997</em></p>
<p>Открыв файл, я нашел нужную строку. Она находилась в условии:</p>
<pre class="brush: php; title: Код:; notranslate">
if(empty($data['invoice_number'])) {

//$variable_fixed=sprintf(&quot;%05s&quot;,$num_rows);

$data['invoice_number'] = str_replace('-', '', substr(JFactory::getDate(),2,8)).substr(md5($orderDetails['order_number'].$orderDetails['order_status']),0,3).'0'.$count;

}
</pre>
<p>Там есть два вызова функции <em>substr();</em> и на один из них ругается сервер.</p>
<pre class="brush: php; title: Код:; notranslate">
$data['invoice_number'] = str_replace('-', '', substr(JFactory::getDate(),2,8)).substr(md5($orderDetails['order_number'].$orderDetails['order_status']),0,3).'0'.$count;
</pre>
<p>Удаление первого выражения:</p>
<pre class="brush: php; title: Код:; notranslate">
str_replace('-', '', substr(JFactory::getDate(),2,8))
</pre>
<p>привело к тому, что ошибка пропала, и все нормально начало работать. Не знаю чем чревато такого рода изменение, но сайт начал работать нормально. Отправляются все письма: администратору и пользователю, грузится страничка с подтверждением оформления заказа.</p>
<p>Вот в конечном итоге что у меня получилось на строке 997:</p>
<pre class="brush: php; title: Код:; notranslate">
$data['invoice_number'] = substr(md5($orderDetails['order_number'].$orderDetails['order_status']),0,3).'0'.$count;
</pre>
<p>Вообще, это функция присвоения номера/кода заказа к нему же. Условие проверяет указан ли уже номер/код, если нет, то формирует его из двух строк: первая часть &#8212; цифры текущей даты, вторая &#8212; md5(); от номера заказа и от его статуса.</p>
<p>Т.е. в принципе мы ничего критического не сделали, но если у вас есть более элегантное и красивое решение данной проблемы &#8212; милости просим в комментарии.</p>
<p>Удачного кодинга!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nikita-sp.com.ua/2012/03/ne-otpravlyayutsya-pisma-virtuemart-2-0-x-podtverzhde.html/feed</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
	</channel>
</rss>
