- 1
- 2
- 3
$path = str_replace("\\", "/", __FILE__);
$path = substr($path, 0, strlen($path) - strlen("/index.php"));
include($path."/version.php");
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Этот поиск практически ничего не может найти! Но вы всё-таки попытайтесь, вдруг повезет.
Найдено: 72
0
$path = str_replace("\\", "/", __FILE__);
$path = substr($path, 0, strlen($path) - strlen("/index.php"));
include($path."/version.php");
официальный гайд битрикса по установке модулей))
https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=101&LESSON_ID=2902
мне литерали плохо уже
+1
<?php
// bitrix/modules/main/classes/mysql/database.php:: 176
if(!$result)
{
.......
if(!$bIgnoreErrors)
{
.......
if(file_exists($_SERVER["DOCUMENT_ROOT"].BX_PERSONAL_ROOT."/php_interface/dbquery_error.php"))
include($_SERVER["DOCUMENT_ROOT"].BX_PERSONAL_ROOT."/php_interface/dbquery_error.php");
elseif(file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/dbquery_error.php"))
include($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/dbquery_error.php");
else
die("MySQL Query Error!");
die();
}
return false;
}
// bitrix/modules/main/include/dbquery_error.php
<br>
<table>
//верстка html страницы со вставками переменных через <?= ?>
</table>
Исключения? Не, не слышали. Пусть конечный разработчик голову ломает, почему он не может отловить MySQL Query Error [1062] Duplicate entry ......
0
<?php
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if($_POST['SESS_PARAM'] && $_POST['SESS_PARAM'] !='' && $_POST['SESS_PARAM_VALUE'] && $_POST['SESS_PARAM_VALUE'] !=''){
$_SESSION[$_POST['SESS_PARAM']] = $_POST['SESS_PARAM_VALUE'];
echo 'ok';
}else{
echo 'error';
}
утверждают что сайт им писали лучшие из лучших
0
<script>
if (!window.BX && top.BX)
window.BX = top.BX;
<?CMedialib::AppendLangMessages();?>
window.<?= $arConfig['event']?> = function(bLoadJS)
{
if (window.oBXMedialib && window.oBXMedialib.bOpened)
return false;
<?if(!CMedialib::CanDoOperation('medialib_view_collection', 0)):?>
return alert(ML_MESS.AccessDenied);
<?else:?>
if (!window.BXMediaLib)
{
if (bLoadJS !== false)
{
// Append CSS
BX.loadCSS("/bitrix/js/fileman/medialib/medialib.css");
var arJS = [];
if (!window.jsAjaxUtil)
arJS.push("/bitrix/js/main/ajax.js?v=<?= filemtime($_SERVER["DOCUMENT_ROOT"].'/bitrix/js/main/ajax.js')?>");
if (!window.jsUtils)
arJS.push("/bitrix/js/main/utils.js?v=<?= filemtime($_SERVER["DOCUMENT_ROOT"].'/bitrix/js/main/utils.js')?>");
if (!window.CHttpRequest)
arJS.push("/bitrix/js/main/admin_tools.js?v=<?= filemtime($_SERVER["DOCUMENT_ROOT"].'/bitrix/js/main/admin_tools.js')?>");
arJS.push("/bitrix/js/fileman/medialib/common.js?v=<?= filemtime($_SERVER["DOCUMENT_ROOT"].'/bitrix/js/fileman/medialib/common.js')?>");
arJS.push("/bitrix/js/fileman/medialib/core.js?v=<?= filemtime($_SERVER["DOCUMENT_ROOT"].'/bitrix/js/fileman/medialib/core.js')?>");
BX.loadScript(arJS);
}
return setTimeout(function(){<?=$arConfig['event']?>(false)}, 50);
}
<?CMedialib::ShowJS()?>
<?
$arSet = explode(',' , CUserOptions::GetOption("fileman", "medialib_user_set", '600,450,0'));
$width = $arSet[0] ? intVal($arSet[0]) : 600;
$height = $arSet[1] ? intVal($arSet[1]) : 450;
$coll_id = $arSet[2] ? intVal($arSet[2]) : 0;
?>
window._mlUserSettings = window._mlUserSettings || {width: <?=$width?>, height: <?=$height?>, coll_id: <?=$coll_id?>}
var oConfig =
{
sessid: "<?=bitrix_sessid()?>",
thumbWidth : <?= COption::GetOptionInt('fileman', "ml_thumb_width", 140)?>,
thumbHeight : <?= COption::GetOptionInt('fileman', "ml_thumb_height", 105) ?>,
userSettings : window._mlUserSettings,
resType: "<?= $resultDest?>",
Types : <?= CUtil::PhpToJSObject(CMedialib::GetTypes($arConfig['types']))?>,
arResultDest : <?= CUtil::PhpToJSObject($arConfig['arResultDest'])?>,
rootAccess: {
new_col: '<?= CMedialib::CanDoOperation('medialib_new_collection', 0)?>',
edit: '<?= CMedialib::CanDoOperation('medialib_edit_collection', 0)?>',
del: '<?= CMedialib::CanDoOperation('medialib_del_collection', 0)?>',
new_item: '<?= CMedialib::CanDoOperation('medialib_new_item', 0)?>',
edit_item: '<?= CMedialib::CanDoOperation('medialib_edit_item', 0)?>',
del_item: '<?= CMedialib::CanDoOperation('medialib_del_item', 0)?>',
access: '<?= CMedialib::CanDoOperation('medialib_access', 0)?>'
},
bCanUpload: <?= $USER->CanDoOperation('fileman_upload_files') ? 'true' : 'false'?>,
bCanViewStructure: <?= $USER->CanDoOperation('fileman_view_file_structure') ? 'true' : 'false'?>,
strExt : "<?= CUtil::JSEscape(CMedialib::GetMediaExtentions())?>",
lang : "<?= $arConfig['lang']?>",
description_id : '<?= CUtil::JSEscape($arConfig['description_id'])?>'
};
window.oBXMedialib = new BXMediaLib(oConfig);
oBXMedialib.Open();
<?endif;?>
};
</script>
0
/**
* <p>Статический метод размещает все аргументы и ключи по парам.</p> <p>Нечетные аргументы - массивы, четные - ключи, по которым искать в массивах.</p> <p>Ключи могут быть массивами. В этом случае поиск происходит во вложенных массивах. Возвращает первый не пустой элемент пары аргумент/ключ.</p>
*
*
* @param array $arraya массив для анализа
*
* @param array $string Ключи поиска
*
* @param strin $integerk Неограниченные последовательно проверяемые пары массив\ключ
*
* @param integer $mixeda
*
* @return mixed
*
* @static
* @link http://dev.1c-bitrix.ru/api_d7/bitrix/main/type/collection/firstnotempty.php
* @author Bitrix
*/
public static function firstNotEmpty()
{
$argCount = func_num_args();
for ($i = 0; $i < $argCount; $i += 2)
{
$anArray = func_get_arg($i);
$key = func_get_arg($i+1);
if (is_array($key))
{
$current = &$anArray;
$found = true;
foreach ($key as $k)
{
if (!is_array($current) || !array_key_exists($k, $current))
{
$found = false;
break;
}
$current = &$current[$k];
}
if ($found)
{
if (is_array($current) || is_object($current) || $current != "")
return $current;
}
}
elseif (is_array($anArray) && array_key_exists($key, $anArray))
{
if (is_array($anArray[$key]) || is_object($anArray[$key]) || $anArray[$key] != "")
return $anArray[$key];
}
}
return "";
}
Чо ?
0
<?
class CHISLO {
private $arr = array('', 'один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять', 'десять',
'одиннадцать', 'двенадцать', 'тринадцать', 'четырнадцать', 'пятнадцать',
'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать');
private $arr2 = array('', 'сто', 'двести', 'триста', 'четыреста');
private $ar = array(
1=>array('тысяч', 'тысяча', 'тысячи', 'тысячи', 'тысячи', 'тысяч', 'тысяч', 'тысяч', 'тысяч', 'тысяч'),
array('миллионов', 'миллион', 'миллиона', 'миллиона', 'миллиона', 'миллионов', 'миллионов',
'миллионов', 'миллионов', 'миллионов'),
array('миллиардов', 'миллиард', 'миллиарда', 'миллиарда', 'миллиарда', 'миллиардов', 'миллиардов',
'миллиардов', 'миллиардов', 'миллиардов'),
array('триллионов', 'триллион', 'триллиона', 'триллиона', 'триллиона', 'триллионов', 'триллионов',
'триллионов', 'триллионов', 'триллионов')
);
public function get_chislo($ch) {
if( $ch<1000 )
return $this->get_100($ch);
$ch = preg_split('/(?=(\d{3})+(?!\d))/is', $ch, -1, PREG_SPLIT_NO_EMPTY);
$ch = array_reverse($ch);
$result[] = $this->get_100($ch[0]);
for($i=1; $i<count($ch); $i++) {
@$result[] = $this->get_100($ch[$i]) .' '. $this->ar[$i]{$ch[$i]%10};
}
$result[1] = str_replace('один', 'одна', $result[1]);
// $result[1] = str_replace('два', 'две', $result[1]);
return join(' ', array_reverse($result));
}
private function get_100($ch) {
$c1 = (int)($ch / 100);
$c2 = $ch % 100;
if( $c1<5 )
$result = $this->arr2[$c1];
else
$result = $this->arr[$c1] . 'сот';
return @$result .' '. $this->get_10($c2);
}
private function get_10($ch) {
$c1 = (int)($ch / 10);
$c2 = $ch % 10;
if( $ch<20 ) {
$result = $this->arr[$ch];
} else if( $ch<40 ) {
$result = $this->arr[$c1] . 'дцать';
} else if( $ch<50 ) {
$result = 'сорок';
} else if( $ch<90 ) {
$result = substr( $this->arr[$c1], 0, -1 ) . 'десят';
} else if( $ch<100 ) {
$result = 'девяносто';
}
if( $ch>20 && $c2!=0 )
$result .= ' ' . $this->arr[$c2];
return $result;
}
}?>
Bitrix❤️
+1
<div class="tablicmagazov">
<h2>Розничные магазины</h2>
<div class="tablica_magazinov">
<div class="stroka_zagolovok_magazin">
<div class="kolonka_magazin"></div>
<div class="kolonka_magazin"></div>
<div class="kolonka_magazin zagolovok_ico">Груминг</div>
<div class="kolonka_magazin zagolovok_ico">Ветеринар</div>
<div class="kolonka_magazin zagolovok_ico">Самовывоз</div>
</div>
<?foreach($arResult["ITEMS"] as $arItem):?>
<div class="stroka_magazina">
<div class="kolonka_magazin">
<a href="<?echo $arItem['DETAIL_PAGE_URL']?>"><?echo $magazviv->metro($arItem['ID'], $magazviv->masskarta[0])[0];?></a>
<div class="voprosik_magazini">
?
<div class="soderzimoe_voprosa">
<?echo $magazviv->metro($arItem['ID'], $magazviv->masskarta[3])[4];?>
<?echo $magazviv->metro($arItem['ID'], $magazviv->masskarta[4])[4];?>
<?echo $magazviv->metro($arItem['ID'], $magazviv->masskarta[5])[4];?>
<div class="strelka_dop_uslugi_vspliv"></div>
</div>
</div>
</div>
<div class="kolonka_magazin magaz_metro">
<div class="znachek_metro"><?echo $magazviv->metro($arItem['ID'], $magazviv->masskarta[2])[2];?></div>
<?echo $magazviv->metro($arItem['ID'], $magazviv->masskarta[1])[0];?>
</div>
<div class="kolonka_magazin ico_magaz"><?echo $magazviv->metro($arItem['ID'], $magazviv->masskarta[3])[1];?></div>
<div class="kolonka_magazin ico_magaz"><?echo $magazviv->metro($arItem['ID'], $magazviv->masskarta[4])[1];?></div>
<div class="kolonka_magazin ico_magaz"><?echo $magazviv->metro($arItem['ID'], $magazviv->masskarta[5])[1];?></div>
</div>
<?endforeach;?>
</div>
</div>
#bitrix
0
BX24.callMethod(
"crm.livefeedmessage.add",
{
fields:
{
"POST_TITLE": "Немного о сервисе",
"MESSAGE": "Битрикс24 создан на базе платформы Bitrix Framework.",
"SPERM": {
"CRMCONTACT": ["CRMCONTACT3", "CRMCONTACT7"],
"CRMCOMPANY": ["CRMCOMPANY1", "CRMCOMPANY3"],
"CRMDEAL": ["CRMDEAL3", "CRMDEAL5"],
"CRMLEAD": ["CRMLEAD9", "CRMLEAD11"],
"SG": ["SG5", "SG9"],
"U": ["U1", "U3"],
"DR": ["DR1", "DR7"],
},
"ENTITYTYPEID": 3,
"ENTITYID": 3,
}
},
function(result)
{
if(result.error())
console.error(result.error());
else
console.info("Создано сообщение с ID " + result.data());
}
);
говно битрикс умеет называть параметры))
https://dev.1c-bitrix.ru/rest_help/crm/stream/livefeedmessage_add.php
+1
public static function PhpToJSObject($arData, $bWS = false, $bSkipTilda = false, $bExtType = false)
{
static $use_bx_encode = null;
if (!isset($use_bx_encode))
$use_bx_encode = function_exists('bx_js_encode');
if ($use_bx_encode)
return bx_js_encode($arData, $bWS, $bSkipTilda, $bExtType);
switch(gettype($arData))
{
case "string":
if(preg_match("#['\"\\n\\r<\\\\\x80]#", $arData))
return "'".CUtil::JSEscape($arData)."'";
else
return "'".$arData."'";
case "array":
$i = -1;
$j = -1;
foreach($arData as $j => $temp)
{
$i++;
if ($j !== $i)
break;
}
if($j === $i)
{
$res = '[';
$first = true;
foreach($arData as $key => $value)
{
if($first)
$first = false;
else
$res .= ',';
switch(gettype($value))
{
case "string":
if(preg_match("#['\"\\n\\r<\\\\\x80]#", $value))
$res .= "'".CUtil::JSEscape($value)."'";
else
$res .= "'".$value."'";
break;
case "array":
$res .= CUtil::PhpToJSObject($value, $bWS, $bSkipTilda, $bExtType);
break;
case "boolean":
if($value === true)
$res .= 'true';
else
$res .= 'false';
break;
case "integer":
case "double":
if ($bExtType)
$res .= $value;
else
$res .= "'".$value."'";
break;
default:
if(preg_match("#['\"\\n\\r<\\\\\x80]#", $value))
$res .= "'".CUtil::JSEscape($value)."'";
else
$res .= "'".$value."'";
break;
}
}
$res .= ']';
return $res;
}
$sWS = ','.($bWS ? "\n" : '');
$res = ($bWS ? "\n" : '').'{';
$first = true;
foreach($arData as $key => $value)
{
if ($bSkipTilda && substr($key, 0, 1) == '~')
continue;
if($first)
$first = false;
else
$res .= $sWS;
if(preg_match("#['\"\\n\\r<\\\\\x80]#", $key))
$res .= "'".CUtil::JSEscape($key)."':";
else
$res .= "'".$key."':";
switch(gettype($value))
{
case "string":
if(preg_match("#['\"\\n\\r<\\\\\x80]#", $value))
$res .= "'".CUtil::JSEscape($value)."'";
else
$res .= "'".$value."'";
break;
case "array":
$res .= CUtil::PhpToJSObject($value, $bWS, $bSkipTilda, $bExtType);
В ядре битрикса в файле bitrix/modules/main/tools.php на 4613 строке, длинной в 141 строку (жаль здесь ограничение на 100 строк), есть замечательный метод который по сути почти повторяет json_encode().
Почти - это потому, что это говно генерит невалидный json (использует одинарные ковычки), да еще не учитывает типы (true превратится в строку 'true').
Битриксоиды этим подосрали даже не веб-студиям, они просто нагенерировали себе много дополнительной работы на долгое время вперед.
Желаю им держать эту планку, и никогда не расти.
+2
$DB->Query("UPDATE b_search_content SET TITLE ='".$name."' WHERE URL='".$URL."' AND PARAM1='USER'" );
$DB->Query("UPDATE b_search_content SET TITLE = CONCAT(TITLE,' тел.' '". $phone ." ' ' ' '". $email."' ) WHERE URL='".$URL."' AND PARAM1='USER'" );
Перед одним сотрудником встала задача изменить содержимое поля индексной таблицы в Bitrix...