- 1
- 2
$arParams["SET_TITLE"] = $arParams["SET_TITLE"]!="N";
$arParams["SET_LAST_MODIFIED"] = $arParams["SET_LAST_MODIFIED"]==="Y";
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Этот поиск практически ничего не может найти! Но вы всё-таки попытайтесь, вдруг повезет.
Найдено: 108
+3
$arParams["SET_TITLE"] = $arParams["SET_TITLE"]!="N";
$arParams["SET_LAST_MODIFIED"] = $arParams["SET_LAST_MODIFIED"]==="Y";
news.detail - cтандартный компонент Битрикса
0
function CheckPropertyForSend(&$fields) {
if ($fields["IBLOCK_ID"] == CATALOG_ID) {
$arFilter = array("IBLOCK_ID" =>CATALOG_ID, "ID"=>$fields["ID"], "PROPERTY_NOT_ALLOWED" =>92);
$res = CIBlockElement::GetList(Array(), $arFilter);
if($res->SelectedRowsCount() == 1){
$GLOBALS['NEED_CHECK'] = true;
}else{
$GLOBALS['NEED_CHECK'] = false;
}
$prod = LenalHelp::getProductInfo($fields["ID"]);
$count = 0;
$cheked = ( $fields["PROPERTY_VALUES"][580][0]["VALUE"] == 92 ) ? true : false;
foreach ( $prod["STORES"] as $item ) {
if ( $item["PRODUCT_AMOUNT"] ) {
$count += $item["PRODUCT_AMOUNT"];
}
}
// -- убираем фдаг "нет в наличии" ---
if ( $count > 0 && $cheked ) {
$fields["PROPERTY_VALUES"][580] = "";
}
// -- устанавливаем фдаг "нет в наличии" ---
if ( $count == 0 && !$cheked ) {
$fields["PROPERTY_VALUES"][580][0]["VALUE"] = 92;
}
}
}
Платформа Битрикс, Lenal гребанные ублюдки
+2
<?if( $arResult['PROPERTIES']['NOT_ALLOWED']['VALUE'] == 'да' || $arItem["PROPERTIES"]["NOT_ALLOWED"]["VALUE_XML_ID"] == "Y" ) { ?>
<div class="alert-empty alert--licence">
<?$APPLICATION->IncludeComponent(
"bitrix:main.include",
"",
Array(
"AREA_FILE_SHOW" => "file",
"PATH" => SITE_DIR."/inc/card_not_allowed.php",
"EDIT_TEMPLATE" => ""
)
);?>
Платформа Битрикс, очередное творение Lenal в шаблоне компонента.
Сравнение значения с КИРИЛИЦЕЙ в template.php.
+1
header.php
<?$APPLICATION->IncludeComponent(
"lenal:lenal.menu",
"mobile",
array(
"VIEW_MODE" => "LINE",
"SHOW_PARENT_NAME" => "Y",
"IBLOCK_TYPE" => "catalog",
"IBLOCK_ID" => "39",
"SECTION_ID" => $_REQUEST["SECTION_ID"],
"SECTION_CODE" => "",
"SECTION_URL" => "",
"COUNT_ELEMENTS" => "N",
"TOP_DEPTH" => "1",
"SECTION_FIELDS" => array(
0 => "",
1 => "",
),
"SECTION_USER_FIELDS" => array(
0 => "UF_MOST_POPULAR",
1 => "",
),
"ADD_SECTIONS_CHAIN" => "Y",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "36000000",
"CACHE_GROUPS" => "Y",
"COMPONENT_TEMPLATE" => "ds_main_menu",
"MAX_COUNT" => "12",
"MAX_ACTIONS" => "4",
"MAX_POPULAR" => "5"
),
false
);?>
/**************************************************************/
component.php
if(!isset($arParams["CACHE_TIME"]))
$arParams["CACHE_TIME"] = 36000000;
if($this->StartResultCache(false, ($arParams["CACHE_GROUPS"]==="N"? false: $USER->GetGroups())))
{
if(!\Bitrix\Main\Loader::includeModule("iblock"))
{
$this->AbortResultCache();
ShowError(GetMessage("IBLOCK_MODULE_NOT_INSTALLED"));
return;
}
/**************************************************************/
В параметрах стоит "SECTION_ID" => $_REQUEST["SECTION_ID"] и единственным условием сброса кеша ("CACHE_TIME" => "36000000") является отсутствие одного из основных модулей.
Результат: по 99 460 файлов кеша на каждый сайт. И это - простое МЕНЮ.
Производство компания Lenal, платформа 1С-Битрикс
0
header.php
<?$APPLICATION->IncludeComponent(
"lenal:lenal.menu",
"mobile",
array(
"VIEW_MODE" => "LINE",
"SHOW_PARENT_NAME" => "Y",
"IBLOCK_TYPE" => "catalog",
"IBLOCK_ID" => "39",
"SECTION_ID" => $_REQUEST["SECTION_ID"],
"SECTION_CODE" => "",
..................................................
component.php
if(!isset($arParams["CACHE_TIME"]))
$arParams["CACHE_TIME"] = 36000000;
if($this->StartResultCache(false, ($arParams["CACHE_GROUPS"]==="N"? false: $USER->GetGroups())))
{
/*
* Lenal вы гребаные идиоты, у вас в параметрах стоит "SECTION_ID" => $_REQUEST["SECTION_ID"] и
* единственным условием у вас сброса кеша ("CACHE_TIME" => "36000000"!!!!!! бля)
* ВОТ ЭТО?! Отсутствие модуля iblock ?!?
* Чтоб вы всю жизнь на жевачку работали, придурки!
*
* 100 000 файлов кеша на ОДНО МЕНЮ ОДНОГО САЙТА!
*
* Дегенераты.
*
*/
if(!\Bitrix\Main\Loader::includeModule("iblock"))
{
$this->AbortResultCache();
ShowError(GetMessage("IBLOCK_MODULE_NOT_INSTALLED"));
return;
}
/*********************
Компонент меню на публичной части от компании Lenal (платформа 1С-Битрикс)
+2
<?php
/*
You can place here your functions and event handlers
AddEventHandler("module", "EventName", "FunctionName");
function FunctionName(params)
{
//code
}
*/
AddEventHandler('form', 'onBeforeResultAdd', 'my_onBeforeResultAdd');
CModule::IncludeModule('cleantalk.antispam');
function my_onBeforeResultAdd($WEB_FORM_ID, $arFields, $arrVALUES) {
$ct_status = COption::GetOptionString('cleantalk.antispam', 'status', '0');
if ($ct_status == 1) {
global $APPLICATION;
$aParams = array();
$aParams['type'] = 'comment';
$aParams['sender_email'] = isset($arrVALUES['email']) ? $arrVALUES['email'] : '';
$aParams['sender_nickname'] = isset($arrVALUES['nickname']) ? $arrVALUES['nickname'] : '';
$aParams['message_title'] = isset($arrVALUES['title']) ? $arrVALUES['title'] : '';
$aParams['message_body'] = isset($arrVALUES['message']) ? $arrVALUES['message'] : '';
$aResult = CleantalkAntispam::CheckAllBefore($aParams, FALSE);
if (isset($aResult) && is_array($aResult)) {
if ($aResult['errno'] == 0) {
if ($aResult['allow'] == 1) {
//Not spammer - just return;
return;
} else {
if (preg_match('//u', $aResult['ct_result_comment'])) {
$err_str=preg_replace('/^[^\*]*?\*\*\*|\*\*\*[^\*]*?$/iu','',$aResult['ct_result_comment']);
$err_str=preg_replace('/<[^<>]*>/iu', '', $err_str);
} else {
$err_str=preg_replace('/^[^\*]*?\*\*\*|\*\*\*[^\*]*?$/i','',$aResult['ct_result_comment']);
$err_str=preg_replace('/<[^<>]*>/i', '', $err_str);
}
$APPLICATION->ThrowException($err_str);
return false;
}
}
}
}
}
?>
Четкая конторка написала четкий антиспам-модуль для битрикса и показывает как его нужно использовать. Тут все в одном флаконе - от игнорирования всех стандартов PSR разом до иррациональной реализации ... Пост на хабре: https://habrahabr.ru/company/cleantalk/blog/302800/
+1
if (!CModule::IncludeModule("iblock")) die();//7-оборудование. 8-отрасли. 5-разработки. 6-проекты.
$a=0;if(strpos($_SERVER['REQUEST_URI'], '/development/')!==false) $a=5;
elseif(strpos($_SERVER['REQUEST_URI'], '/projects/')!==false) $a=6;
elseif(strpos($_SERVER['REQUEST_URI'], '/serial-production/')!==false) $a=13;
elseif(strpos($_SERVER['REQUEST_URI'], '/control-systems/')!==false) $a=7;
elseif(strpos($_SERVER['REQUEST_URI'], '/industry/')!==false) $a=8;
Классика битрикс - разработки в индусском стиле. Проект стоил 500к+ дерева, не считая поддержки.
+3
if(!empty($arResult["PostToShow"]["SPERM"]))
{
$arResult["PostToShow"]["FEED_DESTINATION"]['SELECTED'] = Array();
if (empty($arResult["PostToShow"]["SPERM"]))
{
Проверка в битриксовском стандартном компоненте
0
<?php
namespace DoctrineExtensions;
use \Doctrine\ORM\Event\LoadClassMetadataEventArgs;
/**
* Расширение для Doctrine ORM
* Позволяет отслеживать и работать не со всей базой, а только с таблицами с префиксом
* Необходимо для уживания с битриксом
*
* Class TablePrefix
* @package DoctrineExtensions
*/
class TablePrefix
{
protected $prefix = '';
public function __construct($prefix)
{
$this->prefix = (string) $prefix;
}
public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs)
{
$classMetadata = $eventArgs->getClassMetadata();
$classMetadata->setTableName($this->prefix . $classMetadata->getTableName());
foreach ($classMetadata->getAssociationMappings() as $fieldName => $mapping) {
if ($mapping['type'] == \Doctrine\ORM\Mapping\ClassMetadataInfo::MANY_TO_MANY) {
$mappedTableName = $classMetadata->associationMappings[$fieldName]['joinTable']['name'];
$classMetadata->associationMappings[$fieldName]['joinTable']['name'] = $this->prefix . $mappedTableName;
}
}
}
}
Адепты битрикса добрались до Doctrine ORM. И вот что из этого получилось.
Заставь дурака ORM подключать, он и events задрочит.
+1
<?
/*
Bitrix Cleaner v2.2 - https://github.com/creadome/bitrixcleaner
Быстрая очистка 1С-Битрикс
(c) 2015 Станислав Васильев - http://creado.me
[email protected]
*/
require $_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_admin_before.php';
$trash = array(
'cache' => array(
'/bitrix/cache/' => 'Неуправляемый кеш',
'/bitrix/managed_cache/' => 'Управляемый кеш',
'/bitrix/html_pages/' => 'HTML кеш'
),
'files' => array(
'/upload/resize_cache/' => 'Кеш изображений'
)
);
if ($_GET['clean']) {
BXClearCache(true);
$GLOBALS['CACHE_MANAGER']->CleanAll();
$GLOBALS['stackCacheManager']->CleanAll();
$staticHtmlCache = \Bitrix\Main\Data\StaticHtmlCache::getInstance();
$staticHtmlCache->deleteAll();
foreach ($trash['files'] as $files => $name) DeleteDirFilesEx($files);
}
function countsize($directory) {
$count = array('file' => 0, 'size' => 0);
foreach (scandir($directory) as $file) {
if ($file != '.' && $file != '..') {
if (is_dir($directory.$file)) {
$inner = countsize($directory.$file.'/');
$count['file'] += $inner['file'];
$count['size'] += $inner['size'];
} else {
$count['file'] ++;
$count['size'] += filesize($directory.$file);
}
}
}
return $count;
}
?>
<table>
<tr>
<th>Описание</th>
<th>Путь</th>
<th>Файлы</th>
<th>Размер</th>
</tr>
<?
foreach ($trash as $type) {
foreach ($type as $directory => $name) {
$count = countsize($_SERVER['DOCUMENT_ROOT'].$directory);
?>
<tr>
<td><?=$name?></td>
<td><a href="/bitrix/admin/fileman_admin.php?lang=ru&path=<?=$directory?>"><?=$directory?></a></td>
<td><?=$count['file']?></td>
<td><?=round($count['size'] / 1048576, 2)?> Мб</td>
</tr>
<?
}
}
?>
</table>
<input type="button" value="Очистить" class="adm-btn-save" data-action="clean">
Битрикс. порадовала строчка "'/bitrix/cache/' => 'Неуправляемый кеш'". Оказывается даже адептам битрикса не подвластно управление кешом самого битрикса :D
https://github.com/creadome/bitrixcleaner/blob/master/cleaner/cleaner.php