- 1
- 2
- 3
- 4
- 5
&НаСервере
Процедура ОтсортироватьЧТ()
ТЧсерНомера = Объект.СерийныеНомера;
ТЧсерНомера.Сортировать("IDСтрокиТЧМатериалы Возр, СерийныйНомер Убыв");
КонецПроцедуры // ()
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−103
&НаСервере
Процедура ОтсортироватьЧТ()
ТЧсерНомера = Объект.СерийныеНомера;
ТЧсерНомера.Сортировать("IDСтрокиТЧМатериалы Возр, СерийныйНомер Убыв");
КонецПроцедуры // ()
+410
CBroadcastPropPP::CBroadcastPropPP()
{
m_bAdminMode = FALSE;
m_aProps.Add(new CRPProp_01);
m_aProps.Add(new CRPProp_02);
m_aProps.Add(new CRPProp_021);
m_aProps.Add(new CRPProp_022);
m_aProps.Add(new CRPProp_03);
m_aProps.Add(new CRPProp_05);
m_aProps.Add(new CRPProp_06);
m_aProps.Add(new CRPProp_07);
}
#define PPPos_Dir 0
#define PPPos_Recursive 1
#define PPPos_Masks 2
#define PPPos_MaxSize 3
#define PPPos_Archive 4
#define PPPos_Subject 5
#define PPPos_Types 6
#define PPPos_MaxRcpt 7
#define PPPos_BCC 8
void CBroadcastPropPP::Initialize(IRegistrator* pRegistrator)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState( ));
m_pRegistrator=pRegistrator;
((CRPProp_01*)(m_aProps[PPPos_Dir]))->_Initialize(m_pRegistrator->m_sStartupPath, m_pRegistrator);
((CRPProp_02*)(m_aProps[PPPos_Recursive]))->_Initialize(m_pRegistrator->m_sStartupPath, m_pRegistrator);
((CRPProp_021*)(m_aProps[PPPos_Masks]))->_Initialize(m_pRegistrator->m_sStartupPath, m_pRegistrator);
((CRPProp_022*)(m_aProps[PPPos_MaxSize]))->_Initialize(m_pRegistrator->m_sStartupPath, m_pRegistrator);
((CRPProp_03*)(m_aProps[PPPos_Archive]))->_Initialize(m_pRegistrator->m_sStartupPath, m_pRegistrator);
((CRPProp_05*)(m_aProps[PPPos_Types]))->_Initialize(&m_pRegistrator->m_DB,m_pRegistrator->m_sStartupPath);
((CRPProp_06*)(m_aProps[PPPos_MaxRcpt]))->_Initialize(m_pRegistrator->m_sStartupPath, m_pRegistrator );
((CRPProp_07*)(m_aProps[PPPos_BCC]))->_Initialize(m_pRegistrator->m_sStartupPath, m_pRegistrator );
}
CBroadcastPropPP::~CBroadcastPropPP()
{
delete (CRPProp_01*)m_aProps[PPPos_Dir];
delete (CRPProp_02*)m_aProps[PPPos_Recursive];
delete (CRPProp_021*)m_aProps[PPPos_Masks];
delete (CRPProp_022*)m_aProps[PPPos_MaxSize];
delete (CRPProp_03*)m_aProps[PPPos_Archive];
delete (CRPProp_05*)m_aProps[PPPos_Types];
delete (CRPProp_06*)m_aProps[PPPos_MaxRcpt];
delete (CRPProp_07*)m_aProps[PPPos_BCC];
}
«Вот что бывает, когда пишешь на C++, не зная, зачем нужны виртуальные деструкторы...
классы CRPProp_0n - производные от общего базового класса. Вроде задумка неплохая, можно работать с их массивом, удобно. Но видимо, что-то не заладилось, почему-то их методы не вызывались (про виртуальные функции разработчик не знал)... И тут на выручку эмо-кодеру пришло приведение типов! Правда, про работу с массивом в цикле пришлось забыть...»
Источник: http://emo-coders.livejournal.com/59977.html
0
public static function getTree($version, $lang = 'en')
{
$pt_root = KbTree::findOne(($version == 'pt2') ?
KbTree::NODE_PT2 : KbTree::NODE_PT3);
$list = $pt_root
->children()
->andWhere(['root' => ($version == 'pt2') ? KbTree::NODE_PT2 : KbTree::NODE_PT3])
->andWhere(['visible' => 1, 'pub' => 1])
->orderBy('lft ASC')
->all();
$tree = [$pt_root->id => []];
$currentLevel = 1;
$levelsIds[$currentLevel] = $pt_root->id;
$dic = [];
foreach($list as $key => $_node)
{
if(isset($_node->level, $_node->id))
{
$dic[$_node->id][] = $_node->getTranslateMessage($lang);
$dic[$_node->id][] = $_node->getFullAlias();
$currentLevel = $_node->level;
switch($_node->level) {
case 2:
$tree[$levelsIds[1]][$_node->id] = [];
break;
case 3:
$tree[$levelsIds[1]][$levelsIds[2]][$_node->id] = [];
break;
case 4:
$tree[$levelsIds[1]][$levelsIds[2]][$levelsIds[3]][$_node->id] = [];
break;
case 5:
$tree[$levelsIds[1]][$levelsIds[2]][$levelsIds[3]][$levelsIds[4]][$_node->id] = [];
break;
case 6:
$tree[$levelsIds[1]][$levelsIds[2]][$levelsIds[3]][$levelsIds[4]][$levelsIds[5]][$_node->id] = [];
break;
}
$levelsIds[$currentLevel] = $_node->id;
}
}
return [$tree[$pt_root->id], $dic];
}
Получение дерева каталогов от PHP middle developer
+5
if (isset($response['initialize'])) {
$initialize = $response['initialize'];
unset($response['initialize']);
$response['initialize'] = $initialize;
}
cometchat
(Как говорится, шаг вперед и два назад)
−1
if (COption::GetOptionString("vote", "VOTE_COMPATIBLE_OLD_TEMPLATE", "Y") == "N")
{
unset($arDisplayOptions[2]);
unset($arDisplayOptions[3]);
unset($arDisplayOptions[4]);
unset($arDisplayOptions[5]);
unset($arDisplayOptions[6]);
}
elseif ($old_module_version=="Y")
{
unset($arDisplayOptions[6]);
}
else
{
unset($arDisplayOptions[2]);
unset($arDisplayOptions[3]);
unset($arDisplayOptions[4]);
unset($arDisplayOptions[5]);
}
bitrix/modules/vote/options.php:44
−3
<?php
abstract class Upload {//Клас загрузка файлов на сервер //Класс, который не имеет реализации.
private $dir;//директория для загрузки
private $mime_type;//Некий mime_type
public function __construct($dir, $mime_type) {
$this->dir = $dir;
$this->mime_type = $mime_type;
}
public function UploadFile($file) {
if (!$this->isSequrity($file)) return false;
$dirupload = $_SERVER['DOCUMENT_ROOT']."/".$this->dir."/".$file['name'];
return move_uploaded_file($file['tmp_name'], $dirupload);
}
protected function isSequrity($file) {
$blacklist = array (".php", ".php3", ".php4", ".html", ".htm", ".exe", ".js", ".css");//Запрещено
foreach ($blacklist as $item) {
if (preg_match("/$item\$/i", $file["name"])) return false;
}
$type = $file["type"];//тип файла
$mime_types = $this->mime_type;
$i = 0;
foreach ($mime_types as $k => $v) {
if ($type == $v) break;//Если тип файла найден(равняется типу, что файл какого типа, то выходим из цикла.
if ($i + 1 === count($this->mime_type)) return false;
$i++;
}
$size = $file["size"];
if ($size > 2048000) return false;
return true;
}
}
?>
Код мне прислал адепт пРуссакова. С вопросом, "че не раблотает?". Собственно орфография, пунктуация и стили сохранены. Если кто-то будет спрашивать "чем плохи видеокурсы?", просто скиньте линку на данный код.
+102
string sql = "select " + (sender == sbFind_Phone ? "distinct " : "") +
"orders.id, orders.dat_add, users.family, orders.status, " +
"clients.name, clients.phone, " +
"orders.adress, orders.note_adress, orders.dat, orders.time_, orders.\"SUM\", orders.skidka, " +
"factories.name, " +
"drivers.family || ' ' || drivers.name, orders.actions, " +
"orders.pay, orders.enter, clients.note, orders.website " + // website: 0 - сайт 1, 1 - сайт 2
(
bPrimeCost || bRolly ? ", orders.subitems || ';' || orders.actions || ';' " : ""
) +
"from orders " +
"left outer join users on users.id = orders.id_user_in " +
"left outer join clients on clients.id = orders.id_client " +
"left outer join factories on factories.id = orders.factory " +
"left outer join drivers on drivers.id = orders.driver " +
(
bFrom_Site ? //---- поиск заказов с сайта ---------
"where factory = " + Factorys[cbFactories.SelectedIndex - 1].id.ToString()
: sender == sbMobil ? //---- поиск заказов, поступивших с моб./устройств
"where '" + (bDataDelivery
? dataFrom.ToShortDateString() + "'<= dat and dat < '" + dtTo.AddDays(1).ToShortDateString() + "'"
: // дата доставки попадает в интервал или
dataFrom.ToShortDateString() + "'<= dat_add and dat_add < '" + dtTo.AddDays(1).ToShortDateString() +
"'" // дата приема заказа попадает в интервал
) +
" and (orders.note_adress containing 'Android' or orders.note_adress containing 'IOS')"
: sender == sbFind_Phone ? //---- поиск по номеру телефона ------
"where orders.id_client = " + ((id_client_Phone as int?)?.ToString() ?? "0")
: sender == sbFind_Order // так быстрее
? //---- поиск заказов по номеру -------
"where orders.id in (" + sOrders + ")"
: "where '" + //---- поиск заказов по фильтрам ----
(bDataDelivery
? dataFrom.ToShortDateString() + "'<= dat and dat < '" + dtTo.AddDays(1).ToShortDateString() +
"'"
: // дата доставки попадает в интервал или
dataFrom.ToShortDateString() + "'<= dat_add and dat_add < '" + dtTo.AddDays(1).ToShortDateString() +
"'" // дата приема заказа попадает в интервал
)
+ //---- вид оплаты --------------------
(!chPayNal.Checked ? " and orders.pay != 0 " : "") + // 0 - нал.
(!chPayOnl.Checked ? " and orders.pay != 1 " : "") + // 1 - онлайн
(!chPayMt.Checked ? " and orders.pay != 3 " : "") + // 3 - моб/терминал
(!chPayNull.Checked ? " and orders.pay != 2 " : "") // 2 - б/о
+ //---- откуда поступил ---------------
(!chFromPhone.Checked ? " and orders.enter != 0 " : "") + // 0 - телефон
(!chFromSite.Checked ? " and orders.enter != 1 " : "") + // 1 - сайт
(!chFromClub.Checked ? " and orders.enter != 2 " : "") // 2 - delivery club
+
(rbTake.Checked
? " and orders.status = 0"
: // принят
rbKitchen.Checked
? " and orders.status = 1"
: // на кухне
// rbReady.Checked ? " and orders.status = 2": // готов - убрал, не хватает места
rbShip.Checked
? " and orders.status = 3"
: // в пути
// rbDelive.Checked ? " and orders.status = 4": // доставлен - убрал, не хватает места
rbPay.Checked
? " and orders.status = 5"
: // оплачен
rbCancel.Checked ? " and orders.status = 6" : "" // отменен
)
+ // производство
(cbFactories.SelectedIndex <= 0
? ""
: " and factory = " + Factorys[cbFactories.SelectedIndex - 1].id.ToString()
)
+ // акция
(cbActions.SelectedIndex <= 0
? ""
: " and substring(actions from 1 for " +
Actions[cbActions.SelectedIndex - 1].id.ToString().Length.ToString() + ") = '"
+ Actions[cbActions.SelectedIndex - 1].id.ToString() + "'"
)
+ // манагеры
(cbManagers.SelectedIndex <= 0
? ""
: " and orders.id_user_in = " + Managers[cbManagers.SelectedIndex - 1].id.ToString()
)
+ // водители
(cbDrivers.SelectedIndex <= 0
? ""
: " and orders.driver = " + Drivers[cbDrivers.SelectedIndex - 1].id.ToString()
)
+ // сайт заказа: первый(0) или второй(1)
(rbSiteAll.Checked
? ""
: " and orders.website = " +
(rbSitePirogu.Checked ? FLogo.LOGO_1 : FLogo.LOGO_2).ToString()
)
);
Абсолютно коричневый код одного пожилого разработчика с 20-летним стажем и кандидатской степенью (прямо в классе формы).
0
const int DD_GOOD = 1;
const int DD_BAD = 2;
const int DD_BAD_VERT = 3;
auto segStatus = [&DD_GOOD, &DD_BAD, &DD_BAD_VERT](SomeClass* seg, EXTR ext, coord pickPt, double pickElev) -> int
{
Pt& pt = seg->ExtremePt(ext);
Line& line = seg->ExtremeLn(ext);
coord btPt = seg->GetExtremeWallPos(ext);
if (pt.GetCoord() != pickPt && btPt != pickPt)
{
return DD_BAD;
}
if (pt.pairGuid == GUID_NULL && EQ(pt.GetHeight(), pickElev))
{
return DD_GOOD;
}
if (!line.IsNonVert())
{
return DD_BAD;
}
double e1 = line.m_startPt.GetHeight();
double e2 = line.m_endPt.GetHeight();
if (e1 < e2 && e1 < pickElev && pickElev < e2)
{
return DD_GOOD;
}
if (e2 < e1 && e2 < pickElev && pickElev < e1)
{
return DD_GOOD;
}
return DD_BAD_VERT;
};
Когда не умеешь пользоваться энумами.
+506
if(isset($db_array["reference"]) && is_array($db_array["reference"]))
$ref = $db_array["reference"];
elseif(isset($db_array["REFERENCE"]) && is_array($db_array["REFERENCE"]))
$ref = $db_array["REFERENCE"];
else
$ref = array();
if(isset($db_array["reference_id"]) && is_array($db_array["reference_id"]))
$ref_id = $db_array["reference_id"];
elseif(isset($db_array["REFERENCE_ID"]) && is_array($db_array["REFERENCE_ID"]))
$ref_id = $db_array["REFERENCE_ID"];
else
$ref_id = array();
bitrix/modules/main/tools.php:182
+916
if(!empty($_REQUEST['action_button']))
$_REQUEST['action'] = $_REQUEST['action_button'];
bitrix/modules/main/interface/admin_lib.php:3320