Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions getLastNews.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?php

if(empty($_SERVER['DOCUMENT_ROOT'])){
$_SERVER['DOCUMENT_ROOT'] = '/home/wdev1/web/test.wdev1.ru/public_html';
}
require $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php';

use \Bitrix\Main\Loader;
use \Br\Base\Debug;

Loader::includeModule("br.base");

$oHttp = new \Bitrix\Main\Web\HttpClient;
$sRssResult = $oHttp->Get('https://lenta.ru/rss');

if($sRssResult){
$objXML = new CDataXML();
$objXML->LoadString($sRssResult);
$aResult = $objXML->GetArray();

foreach($aResult['rss']['#']['channel'][0]['#']['item'] as $iKey => $aItem){

echo "---------------------\n";
echo $aItem['#']['title'][0]['#']."\n";
echo $aItem['#']['link'][0]['#']."\n";
echo $aItem['#']['description'][0]['#']."\n";
echo "---------------------\n";
echo "\n";

if($iKey >= 4){
break;
}
}

}

18 changes: 18 additions & 0 deletions iblocktool.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?
require $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php';

use \Bitrix\Main\Loader;
use \Br\Base\Debug;
use \Br\Base\IblockTool;

Loader::includeModule("br.base");


$oNewsList = new IblockTool(1, ['ID' => 'DESC'], ['%NAME' => 'Форум'], ['NAME', 'ID']);
$oNewsList->setCacheTtl(1);
$oNewsList->setPageCount(10);
$aNewsListResult = $oNewsList->getList();


Debug::pr($aNewsListResult);

1 change: 1 addition & 0 deletions local/modules/br.base/include.php
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<?php
56 changes: 56 additions & 0 deletions local/modules/br.base/install/index.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<?

class br_base extends CModule {

var $MODULE_ID = "br.base";
var $MODULE_VERSION;
var $MODULE_VERSION_DATE;
var $MODULE_NAME;
var $MODULE_DESCRIPTION;

/**
* Module installator constructor
*/
function br_base() {
$arModuleVersion = array();

include(__DIR__ . "/version.php");

$this->MODULE_VERSION = $arModuleVersion["VERSION"];
$this->MODULE_VERSION_DATE = $arModuleVersion["VERSION_DATE"];

$this->MODULE_NAME = 'Br Base';
$this->MODULE_DESCRIPTION = 'Br Base';

$this->PARTNER_NAME = "Br";
$this->PARTNER_URI = "https://vk.com/romani_nsk";
}

/**
* Do install module
* @return bool
*/
function DoInstall() {
if (IsModuleInstalled("br.base")) {
return false;
}

if (!check_bitrix_sessid()) {
return false;
}

RegisterModule("br.base");
LocalRedirect("/bitrix/admin/partner_modules.php");
return true;
}

/**
* Uninstall module
* @return bool
*/
function DoUninstall() {
UnRegisterModule("br.base");
LocalRedirect("/bitrix/admin/partner_modules.php");
return true;
}
}
6 changes: 6 additions & 0 deletions local/modules/br.base/install/version.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?
$arModuleVersion = array(
"VERSION" => "0.0.1",
"VERSION_DATE" => "2018-06-06 16:00:00"
);
?>
55 changes: 55 additions & 0 deletions local/modules/br.base/lib/debug.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<?php

namespace Br\Base;

/*
* Вывод переменных подробно для админа + backtrace
* @param mixed[] $mVar переменная для вывода
* @param int $iToFile сохранить в файл. 1 - сохранить переписать, 2 - сохранить дописать
* @param int $iMore вывести backtrace
* @param string путь к файлу относительно корня прим. /mylog.txt, по умолчанию создаст файл printrlog.txt в корне DOCUMENT_ROOT
*/
class Debug {
public function pr($mVar, $iToFile = 0, $iMore = 0, $sFileName = ''){
global $USER;
if($USER->IsAdmin()) {

if($iToFile > 0){

if(strlen($sFileName) <= 0){
$sFileName = '/printrlog.txt';
}
$sFilePath = $_SERVER['DOCUMENT_ROOT'].$sFileName;
if(!file_exists( $sFilePath )){
fclose(fopen($sFilePath, 'w+'));
}

ob_start();
if($iMore == 1){
debug_print_backtrace();
}
is_array($mVar) ? print_r($mVar) : var_dump($mVar);
$sVarResult = ob_get_clean();


if($iToFile == 2){
file_put_contents($sFilePath, $sVarResult, FILE_APPEND);
} else {
file_put_contents($sFilePath, $sVarResult);
}

} else {
echo '<pre>';
if($iMore == 1){
echo "<br>########################################################<br>";
debug_print_backtrace();
echo "########################################################<br>";
}
is_array($mVar) ? print_r($mVar) : var_dump($mVar);
echo "-------<br><br>";
echo '</pre>';
}
}
}

}
72 changes: 72 additions & 0 deletions local/modules/br.base/lib/iblocktool.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
<?php

namespace Br\Base;
use \Br\Base\Debug;
use \Bitrix\Main\Data\Cache;
use \Bitrix\Main\Loader;
use \Bitrix;

class IblockTool {

private $_aOrder;
private $_aFilter;
private $_aSelect;
private $_iPageCount;
private $_iCacheTtl;
private $_mResult;


function __construct($iIbId, $aOrderParam = false, $aFilterParam = false, $aSelectParam = false){

if( (int)$iIbId == 0 ){
die("Не указан ID инфоблока");
}

$this->_aOrder = (is_array($aOrderParam)) ? $aOrderParam : ['ID' => 'ASC'];
$this->_aFilter = (is_array($aFilterParam)) ? array_merge(['IBLOCK_ID' => $iIbId], $aFilterParam) : ['IBLOCK_ID' => $iIbId];
$this->_aSelect = (is_array($aSelectParam)) ? $aSelectParam : [];
$this->_iCacheTtl = 86400;
$this->_iPageCount = ["nPageSize" => "20"];
$this->_mResult = false;
}

public function setCacheTtl($iCacheTtl){
if( (int)$iCacheTtl > 0 ){
$this->_iCacheTtl = $iCacheTtl;
}
}

public function setPageCount($iPageCount){
if( (int)$iPageCount > 0 ){
$this->_iPageCount = $iPageCount;
}
}

public function getList(){

$oCache = Cache::createInstance();
if ($oCache->initCache($this->_iCacheTtl, md5(serialize(array_merge($this->_aOrder, $this->_aFilter, $this->_aSelect))))) {
$this->_mResult = $oCache->getVars();
}
elseif ($oCache->startDataCache()) {
Loader::includeModule("iblock");

$oResult = \CIBlockElement::GetList($this->_aOrder, $this->_aFilter, false, $this->_iPageCount, $this->_aSelect);
$aResult = [];
while ($aElement = $oResult->GetNext()) {
$aResult[] = $aElement;
}

if(count($aResult) > 0){
$this->_mResult['RESULT'] = $aResult;
$oCache->endDataCache(array('RESULT' => $aResult));
}

}

return $this->_mResult;
}



}