Bitrix-D7  20.0.0
Класс SitemapForum

Открытые статические члены

static __callStatic ($name, $arguments)
 

Защищенные статические члены

static checkParams ($arMessage=array(), &$arTopic, &$arForum)
 
static actionUpdate ($arOldTopic, $arTopic, $arForum=array())
 
static actionDelete ($arTopic, $arForum=array())
 
static actionAdd ($arMessage, $arTopic, $arForum=array())
 

Подробное описание

См. определение в файле sitemapforum.php строка 19

Методы

◆ __callStatic()

static __callStatic (   $name,
  $arguments 
)
static

См. определение в файле sitemapforum.php строка 21

22  {
23  $name = ToUpper($name);
24  switch($name)
25  {
26  case "ADDMESSAGE":
27  if ($arguments[1]["APPROVED"] == "Y")
28  {
29  self::actionUpdate($arguments[2], $arguments[2]);
30  }
31  break;
32  case 'ADDTOPIC':
33  if ($arguments[1]["APPROVED"] == "Y")
34  {
35  self::actionAdd(array(), $arguments[1]);
36  }
37  break;
38  case 'UPDATETOPIC':
39  if ($arguments[1]["APPROVED"] == "N")
40  {
41  self::actionDelete($arguments[1]);
42  }
43  else if (empty($arguments[2]) || $arguments[1]["FORUM_ID"] == $arguments[2]["FORUM_ID"])
44  {
45  self::actionUpdate((empty($arguments[2]) ? $arguments[1] : $arguments[2]), $arguments[1]);
46  }
47  else
48  {
49  self::actionDelete($arguments[2]);
50  self::actionAdd(array(), $arguments[1]);
51  }
52  break;
53  case 'DELETETOPIC':
54  if ($arguments[1]["APPROVED"] == "Y")
55  {
56  self::actionDelete($arguments[1]);
57  }
58  break;
59  }
60  }

◆ actionAdd()

static actionAdd (   $arMessage,
  $arTopic,
  $arForum = array() 
)
staticprotected

См. определение в файле sitemapforum.php строка 173

174  {
175  if (($arSitemaps = self::checkParams($arMessage, $arTopic, $arForum)) && $arSitemaps)
176  {
177  foreach($arSitemaps as $arSitemap)
178  {
179  $sitemapFile = new SitemapFile($arSitemap["fileName"], $arSitemap);
180  $sitemapFile->appendIblockEntry($arSitemap['url'], $arSitemap['date']);
181 
182  $sitemapIndex = new SitemapIndex($arSitemap['SITEMAP_FILE'], $arSitemap);
183  $sitemapIndex->appendIndexEntry($sitemapFile);
184 
185  if($arSitemap['ROBOTS'] == 'Y')
186  {
187  $robotsFile = new RobotsFile($arSitemap['SITE_ID']);
188  $robotsFile->addRule(
189  array(RobotsFile::SITEMAP_RULE, $sitemapIndex->getUrl())
190  );
191  }
192  }
193  }
194  }

◆ actionDelete()

static actionDelete (   $arTopic,
  $arForum = array() 
)
staticprotected

См. определение в файле sitemapforum.php строка 129

130  {
131  if (($arSitemaps = self::checkParams(array(), $arTopic, $arForum)) && $arSitemaps)
132  {
133  foreach($arSitemaps as $arSitemap)
134  {
135  $sitemapFile = new SitemapFile($arSitemap["fileName"], $arSitemap);
136  $sitemapFile->removeEntry($arSitemap['url']);
137  $informRobots = false;
138  if (!$sitemapFile->isNotEmpty())
139  {
140  $rule = array(
141  'url' => \CForumNew::PreparePath2Message(
142  $arForum["PATH2FORUM_MESSAGE"][$arSitemap["SITE_ID"]],
143  array(
144  "FORUM_ID" => $arForum["ID"],
145  "TOPIC_ID" => $arForum["TID"],
146  "TITLE_SEO" => $arForum["TITLE_SEO"],
147  "MESSAGE_ID" => "s",
148  "SOCNET_GROUP_ID" => $arForum["SOCNET_GROUP_ID"],
149  "OWNER_ID" => $arForum["OWNER_ID"],
150  "PARAM1" => $arForum["PARAM1"],
151  "PARAM2" => $arForum["PARAM2"]
152  )
153  ),
154  'date' => MakeTimeStamp($arForum['LAST_POST_DATE'])
155  );
156  $sitemapFile->appendIblockEntry($rule['url'], $rule['date']);
157  $informRobots = true;
158  }
159 
160  $sitemapIndex = new SitemapIndex($arSitemap['SITEMAP_FILE'], $arSitemap);
161  $sitemapIndex->appendIndexEntry($sitemapFile);
162  if ($informRobots && $arSitemap['ROBOTS'] == 'Y')
163  {
164  $robotsFile = new RobotsFile($arSitemap['SITE_ID']);
165  $robotsFile->addRule(
166  array(RobotsFile::SITEMAP_RULE, $sitemapIndex->getUrl())
167  );
168  }
169  }
170  }
171  }

◆ actionUpdate()

static actionUpdate (   $arOldTopic,
  $arTopic,
  $arForum = array() 
)
staticprotected

См. определение в файле sitemapforum.php строка 104

105  {
106  if (($arSitemaps = self::checkParams(array(), $arTopic, $arForum)) && $arSitemaps)
107  {
108  $arSitemapsOld = self::checkParams(array(), $arOldTopic, $arForum);
109  foreach($arSitemaps as $key => $arSitemap)
110  {
111  $sitemapFile = new SitemapFile($arSitemap["fileName"], $arSitemap);
112  $sitemapFile->removeEntry($arSitemapsOld[$key]['url']);
113 
114  $sitemapFile->appendIblockEntry($arSitemap["url"], $arSitemap['date']);
115 
116  $sitemapIndex = new SitemapIndex($arSitemap['SITEMAP_FILE'], $arSitemap);
117  $sitemapIndex->appendIndexEntry($sitemapFile);
118  if($arSitemap['ROBOTS'] == 'Y')
119  {
120  $robotsFile = new RobotsFile($arSitemap['SITE_ID']);
121  $robotsFile->addRule(
122  array(RobotsFile::SITEMAP_RULE, $sitemapIndex->getUrl())
123  );
124  }
125  }
126  }
127  }

◆ checkParams()

static checkParams (   $arMessage = array(),
$arTopic,
$arForum 
)
staticprotected

См. определение в файле sitemapforum.php строка 62

63  {
64  if (\Bitrix\Main\Loader::includeModule('forum'))
65  {
66  $arTopic = (!empty($arTopic) ? $arTopic : \CForumTopic::GetByID($arMessage["TOPIC_ID"]));
67  if (empty($arTopic))
68  return false;
69  $arSitemaps = SitemapForumTable::getSitemapsByEntityId($arTopic["FORUM_ID"]);
70  if (!empty($arSitemaps) && ($arForum = \CForumNew::GetByIDEx($arTopic["FORUM_ID"])) && $arForum)
71  {
72  $arForum["PATH2FORUM_MESSAGE"] = \CForumNew::GetSites($arTopic["FORUM_ID"]);
73  $date = MakeTimeStamp($arTopic['LAST_POST_DATE']);
74  $result = array();
75  foreach($arSitemaps as $arSitemap)
76  {
77  $path = $arForum["PATH2FORUM_MESSAGE"][$arSitemap["SITE_ID"]];
78  if (!empty($path))
79  {
80  $arSitemap["fileName"] = str_replace("#FORUM_ID#", $arForum["ID"], $arSitemap['SITEMAP_FILE_FORUM']);
81  $arSitemap["url"] = \CForumNew::PreparePath2Message(
82  $path,
83  array(
84  "FORUM_ID" => $arForum["ID"],
85  "TOPIC_ID" => $arTopic["ID"],
86  "TITLE_SEO" => $arTopic["TITLE_SEO"],
87  "MESSAGE_ID" => "s",
88  "SOCNET_GROUP_ID" => $arTopic["SOCNET_GROUP_ID"],
89  "OWNER_ID" => $arTopic["OWNER_ID"],
90  "PARAM1" => $arTopic["PARAM1"],
91  "PARAM2" => $arTopic["PARAM2"]
92  )
93  );
94  $arSitemap["date"] = $date;
95  $result[] = $arSitemap;
96  }
97  }
98  return (empty($result) ? false : $result);
99  }
100  }
101  return false;
102  }

Объявления и описания членов класса находятся в файле:
Bitrix\Seo\SitemapForum\checkParams
static checkParams($arMessage=array(), &$arTopic, &$arForum)
Definition: sitemapforum.php:62
Bitrix\Seo\SitemapForum\actionUpdate
static actionUpdate($arOldTopic, $arTopic, $arForum=array())
Definition: sitemapforum.php:104
Bitrix\Seo\RobotsFile\SITEMAP_RULE
const SITEMAP_RULE
Definition: robotsfile.php:18
Bitrix\Seo\SitemapEntityTable\getSitemapsByEntityId
static getSitemapsByEntityId($entityId)
Definition: sitemapentity.php:71
Bitrix\Seo\SitemapForum\actionAdd
static actionAdd($arMessage, $arTopic, $arForum=array())
Definition: sitemapforum.php:173
Bitrix\Seo\SitemapForum\actionDelete
static actionDelete($arTopic, $arForum=array())
Definition: sitemapforum.php:129
Bitrix
Class Button.
Bitrix\Main\Loader\includeModule
static includeModule($moduleName)
Includes module by its name.
Definition: main/lib/loader.php:70