<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.umisoft.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D1%87%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8_%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0%D0%BC%D0%B8_API_UMI.CMS</id>
	<title>Работа с подписчиками средствами API UMI.CMS - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.umisoft.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D1%87%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8_%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0%D0%BC%D0%B8_API_UMI.CMS"/>
	<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D1%87%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8_%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0%D0%BC%D0%B8_API_UMI.CMS&amp;action=history"/>
	<updated>2026-05-15T23:10:26Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D1%87%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8_%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0%D0%BC%D0%B8_API_UMI.CMS&amp;diff=3176&amp;oldid=prev</id>
		<title>VITL&#039;: Новая страница: «В некоторых случаях, когда очень много подписчиков, сложно выполнить однотипные операции …»</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D1%87%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8_%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0%D0%BC%D0%B8_API_UMI.CMS&amp;diff=3176&amp;oldid=prev"/>
		<updated>2011-10-28T13:40:35Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «В некоторых случаях, когда очень много подписчиков, сложно выполнить однотипные операции …»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;В некоторых случаях, когда очень много подписчиков, сложно выполнить однотипные операции для &lt;br /&gt;
большого количества объектов, к примеру привязка все подписчиков к определенной рассылке. &lt;br /&gt;
В статье рассмотрим два скрипта. Первый скрипт снимает привязку к рассылке для всех подписчиков:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
header(&amp;quot;Content-type: text/html; charset=utf-8&amp;quot;);&lt;br /&gt;
include &amp;quot;standalone.php&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// поиск подписчиков, которые потом будут отписаны от всех рассылок&lt;br /&gt;
$subscribers = new selector(&amp;#039;objects&amp;#039;);&lt;br /&gt;
$subscribers-&amp;gt;types(&amp;#039;object-type&amp;#039;)-&amp;gt;name(&amp;#039;dispatches&amp;#039;, &amp;#039;subscriber&amp;#039;);&lt;br /&gt;
// подписчик должен быть подписан хотя бы на одну рассылку&lt;br /&gt;
$subscribers-&amp;gt;where(&amp;#039;subscriber_dispatches&amp;#039;)-&amp;gt;isnull();&lt;br /&gt;
$subscribers-&amp;gt;limit(0, 50);&lt;br /&gt;
$total = $subscribers-&amp;gt;length;&lt;br /&gt;
foreach($subscribers as $subscribers){&lt;br /&gt;
  $subscribers-&amp;gt;setValue(&amp;#039;subscriber_dispatches&amp;#039;, array());&lt;br /&gt;
  $subscribers-&amp;gt;commit();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if($total &amp;gt; 0){&lt;br /&gt;
  echo &amp;#039;Отписка от рассылок еще 50-ти подписчиков выполнена&amp;#039;;&lt;br /&gt;
}else echo &amp;#039;Отписка всех подписчиков выполнена&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;                                                              &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
создается файл, к примеру с названием &amp;#039;&amp;#039;&amp;#039;set_null_dispath.php&amp;#039;&amp;#039;&amp;#039; копируется в корень сайта и запускается.&lt;br /&gt;
Второй скрипт привязывает всех подписчиков к указанным рассылкам:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Рассылки, 324, 325 - object_id рассылок&lt;br /&gt;
$dispatchs[] = 324;&lt;br /&gt;
$dispatchs[] = 325;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
header(&amp;quot;Content-type: text/html; charset=utf-8&amp;quot;);&lt;br /&gt;
include &amp;quot;standalone.php&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$dispatchs = array();&lt;br /&gt;
// Рассылки, 324, 325 - object_id рассылок&lt;br /&gt;
$dispatchs[] = 324;&lt;br /&gt;
$dispatchs[] = 325;&lt;br /&gt;
&lt;br /&gt;
$objectTypes = umiObjectTypesCollection::getInstance();&lt;br /&gt;
$dispatchObjectTypeId = $objectTypes-&amp;gt;getBaseType(&amp;quot;dispatches&amp;quot;, &amp;quot;dispatch&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
$objects = umiObjectsCollection::getInstance();&lt;br /&gt;
$dispatchs_objects = array();&lt;br /&gt;
foreach($dispatchs as $dispatch_id){&lt;br /&gt;
  $object_dispatch = $objects-&amp;gt;getObject($dispatch_id);&lt;br /&gt;
  if($object_dispatch &amp;amp;&amp;amp; $object_dispatch-&amp;gt;getTypeId() == $dispatchObjectTypeId) $dispatchs_objects[] = $object_dispatch;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// поиск подписчиков, которые не подписаны ни на одну из рассылок&lt;br /&gt;
$subscribers = new selector(&amp;#039;objects&amp;#039;);&lt;br /&gt;
$subscribers-&amp;gt;types(&amp;#039;object-type&amp;#039;)-&amp;gt;name(&amp;#039;dispatches&amp;#039;, &amp;#039;subscriber&amp;#039;);&lt;br /&gt;
$subscribers-&amp;gt;where(&amp;#039;subscriber_dispatches&amp;#039;)-&amp;gt;isnull(true);&lt;br /&gt;
$subscribers-&amp;gt;limit(0, 50);&lt;br /&gt;
$total = $subscribers-&amp;gt;length;&lt;br /&gt;
&lt;br /&gt;
foreach($subscribers as $subscribers){&lt;br /&gt;
  $subscribers-&amp;gt;setValue(&amp;#039;subscriber_dispatches&amp;#039;, $dispatchs_objects);&lt;br /&gt;
  $subscribers-&amp;gt;commit();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if($total &amp;gt; 0){&lt;br /&gt;
  echo &amp;#039;Подписаны следующие 50-ти подписчиков&amp;#039;;&lt;br /&gt;
}else echo &amp;#039;Выполнена подписка всех подписчиков&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;     &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория: Модуль Рассылки]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
</feed>