<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум ReadyScript &mdash; СМС оповещения, логика + описания к дополнительным полям профиля]]></title>
		<link>https://forum.readyscript.ru/topic/332/sms-opoveshcheniya-logika-opisaniya-k-dopolnitelnym-polyam-profilya/</link>
		<atom:link href="https://forum.readyscript.ru/feed/rss/topic/332/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «СМС оповещения, логика + описания к дополнительным полям профиля».]]></description>
		<lastBuildDate>Tue, 14 Apr 2015 10:33:50 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: СМС оповещения, логика + описания к дополнительным полям профиля]]></title>
			<link>https://forum.readyscript.ru/post/1175/#p1175</link>
			<description><![CDATA[<div class="quotebox"><cite>admin пишет:</cite><blockquote><p>Если у вас задача: Использовать собственный код в контроллере регистрации, то</p><p>перегрузить стандартный контроллер можно двумя способами (оба описаны в нашей статье - <a href="http://readyscript.ru/text-blog/Kak-pravilno-rasshiryat-funkcional-internetmagazinov-ReadyScript/):">http://readyscript.ru/text-blog/Kak-pra … yScript/):</a></p><p>1. Перегрузкой маршрута (рекомендуется)<br />2. Подменой класса (.my.inc.php)<br />--------------------------------------------------------------------</p><p>Если у вас задача - вставить при отправке SMS проверку разрешения от пользователя, то мне кажется вы выбрали оптимальный путь (доработав всего один класс (смс-транспорт) и полностью сохранив возможность обновления):</p><p>1. Создали доп. поле стандартными средствами в настройках модуля Пользователь. (насколько я понял)<br />2. Создали свой транспортный модуль для SMS, который проверяет данное поле. (это все равно нужно было бы делать, т.к. стандартный модуль не делает проверку на разрешение пользователя)</p><p>Не совсем понятно в чем костыльность вашего решения? (Возможно задача бы решалась проще, если бы было какое-нибудь событие перед отправкой SMS, которое бы можно было перехватывать и останавливать отправку.) <br />Или опишите, как бы вы хотели видеть реализацию вашей задачи?</p></blockquote></div><p>Я бы хотел:<br />Вынести переменные, которые фильтруют получаемые значения, чтобы можно было их исправлять из дочернего (своего) контроллера.<br /></p><div class="codebox"><pre><code>$user-&gt;usePostKeys(array(&#039;is_company&#039;, &#039;company&#039;, &#039;company_inn&#039;, 
                        &#039;name&#039;, &#039;surname&#039;, &#039;midname&#039;, &#039;phone&#039;, 
                        &#039;e_mail&#039;, &#039;openpass&#039;, &#039;captcha&#039;, &#039;data&#039;, &#039;changepass&#039;));</code></pre></div><p>В данный момент, чтобы добавить туда какое то поле, мне нужно полностью дублировать indexAction в свой контроллер, что не очень хорошо, если в каком нибудь новом патче будут изменения этого action.</p><p>Это позволило бы мне использовать поле subscribe_on т.к. оно больше не используется в системе. <br />А костыльность заключается в том, что идеально бы иметь поле в таблице users, а не отдельным, которое тоже нужно добавить пользователем. Вот например я захочу сделать расширение, решающее эту проблему отправки смс, а ему для того, чтобы оно заработало, нужно добавить поле с определенным идентификатором и потом еще его случайно не удалить. В общем оно должно быть изолировано от пользователя.</p><p>Вы пишите про событие. Я еще только разбираюсь в вашей системе. Но было бы здорово иметь события типа beforeSend, это так же позволило бы не дублировать код.</p>]]></description>
			<author><![CDATA[null@example.com (Дмитрий)]]></author>
			<pubDate>Tue, 14 Apr 2015 10:33:50 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/1175/#p1175</guid>
		</item>
		<item>
			<title><![CDATA[Re: СМС оповещения, логика + описания к дополнительным полям профиля]]></title>
			<link>https://forum.readyscript.ru/post/1174/#p1174</link>
			<description><![CDATA[<p>Если у вас задача: Использовать собственный код в контроллере регистрации, то</p><p>перегрузить стандартный контроллер можно двумя способами (оба описаны в нашей статье - <a href="http://readyscript.ru/text-blog/Kak-pravilno-rasshiryat-funkcional-internetmagazinov-ReadyScript/):">http://readyscript.ru/text-blog/Kak-pra … yScript/):</a></p><p>1. Перегрузкой маршрута (рекомендуется)<br />2. Подменой класса (.my.inc.php)<br />--------------------------------------------------------------------</p><p>Если у вас задача - вставить при отправке SMS проверку разрешения от пользователя, то мне кажется вы выбрали оптимальный путь (доработав всего один класс (смс-транспорт) и полностью сохранив возможность обновления):</p><p>1. Создали доп. поле стандартными средствами в настройках модуля Пользователь. (насколько я понял)<br />2. Создали свой транспортный модуль для SMS, который проверяет данное поле. (это все равно нужно было бы делать, т.к. стандартный модуль не делает проверку на разрешение пользователя)</p><p>Не совсем понятно в чем костыльность вашего решения? (Возможно задача бы решалась проще, если бы было какое-нибудь событие перед отправкой SMS, которое бы можно было перехватывать и останавливать отправку.) <br />Или опишите, как бы вы хотели видеть реализацию вашей задачи?</p>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Tue, 14 Apr 2015 10:00:42 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/1174/#p1174</guid>
		</item>
		<item>
			<title><![CDATA[СМС оповещения, логика + описания к дополнительным полям профиля]]></title>
			<link>https://forum.readyscript.ru/post/1169/#p1169</link>
			<description><![CDATA[<p>Здравствуйте.<br />Хотел сделать смс оповещения и зарегистрировался на сайте смсуслуги, модуль которого у вас написан. Все вроде отлично и сервис понравился, но беда в том, что без договора с ними, отправлять смс на боевом сервере нельзя и сообщения блокируют. Тут я полез в гугл и увидел, что смс пользователю без его согласия отправлять нельзя, вообще никакое, иначе штраф. Далее полез в код и нашел поле в базе subscribe_on, но оно нигде не используется. Хотел его добавить например в профиль пользователя, для редактирования, но не получается т.к. в action вначале стоит фильтр post данных<br /></p><div class="codebox"><pre><code>$user = clone \RS\Application\Auth::getCurrentUser();
$user-&gt;usePostKeys(array(&#039;is_company&#039;, &#039;company&#039;, &#039;company_inn&#039;, 
                        &#039;name&#039;, &#039;surname&#039;, &#039;midname&#039;, &#039;phone&#039;, 
                        &#039;e_mail&#039;, &#039;openpass&#039;, &#039;captcha&#039;, &#039;data&#039;, &#039;changepass&#039;));</code></pre></div><p>Просто так добавить туда дополнительное поле на сколько понял нельзя. Перекрывать контроллер тоже не хочется из за одной строчки. В общем я так понял, нужно дать возможного патча.<br />Но нашел временное решение, на мой взгляд очень костыльное. Добавил доп. булевое поле в профиль пользователя с идентификатором sms_info и сделал альтернативный модуль отправки смс, который будет проверять это поле и если &quot;1&quot;, то отправлять смс. Есть ли какое то альтернативное и менее костыльное решение?<br />P.S. Еще очень не хватает описания к дополнительным полям пользователя. Например мне надо поле &quot;Вконтакте&quot; а в описании указать, что нужно вставлять ссылку, а не ФИ.</p>]]></description>
			<author><![CDATA[null@example.com (Дмитрий)]]></author>
			<pubDate>Tue, 14 Apr 2015 03:03:51 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/1169/#p1169</guid>
		</item>
	</channel>
</rss>
