- 1
if(!empty($filter['features']) && !empty($filter['features'])) ...
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+50
if(!empty($filter['features']) && !empty($filter['features'])) ...
Simpla CMS /api/Products.php
+50
<?php
session_start();
if(empty($_SESSION['UserLogin']) or empty($_SESSION['UserId']))
{
header('Location: /');
}
else
{
include("application/db.config.php");
$GetterUser = $_POST['ForUser'];
$SenderUser = $_SESSION['UserId'];
$Rem = strip_tags($_POST['Rem']);
$Text = strip_tags($_POST['Text']);
if($Rem == "" or $Text == "")
{
header("Location: sent_mess?to=$GetterUser&status=bad");
}
else
{
$SendingMessQuery = mysql_query("INSERT INTO Dialogs(From, To, Rem, Text) VALUES($SenderUser, $GetterUser, '$Rem', '$Text')", $db) or die(mysql_error());
mysql_close($db);
header("Location: sent_mess?to=$GetterUser&status=good");
}
}
...
+50
$sw = false;
if($valid_from && $valid_to)
if( ($valid_from<=date('U')) && ($valid_to>=mktime(0,0,0,date('m'),date('d'),date('Y'))) )
$sw = true;
else
{
//Nimic
}
elseif($valid_form)
if($valid_form<=date('U'))
$sw = true;
else
{
//Nimic
}
elseif($valid_to)
if($valid_to>=mktime(0,0,0,date('m'),date('d'),date('Y')))
$sw = true;
else
{
//Nimic
}
else
$sw = true;
+50
function StringForCountryInt($countryInt)
{
switch ($countryInt)
{
case "1" : return 'Afghanistan'; break;
case "2" : return 'Albania'; break;
case "3" : return 'Algeria'; break;
case "4" : return 'American Samoa'; break;
case "5" : return 'Andorra'; break;
case "6" : return 'Angola'; break;
case "7" : return 'Anguilla'; break;
case "8" : return 'Antarctica'; break;
// ....
// ....
// ....
case "239" : return 'Zimbabwe'; break;
}
}
MODx, evolution. Сниппет WebLoginPE.
В базе сохраняет ID страну, в классе вот такой метод для обратного преобразования :)
+50
public function getFilename($filename) {
$string = ereg_replace("ж", "zh", $filename);
$string = ereg_replace("ё","yo",$string);
$string = ereg_replace("и", "i",$string);
......
$string = ereg_replace("Т","T",$string);
$string = ereg_replace("Б","B",$string);
$string = ereg_replace(" ","_",$string);
$filename = preg_replace("/[^\w\.\-_]/","",$string);
return strtolower($filename);
}
+50
$result = ( !empty($this->skins[$skin]['gplum']) ) ? TRUE : FALSE;
return $result;
Наверное, это уже баян.
+50
if(!$category = $this->EE->product_model->get_category_by_key($key)){
$this->EE->functions->redirect($this->EE->functions->create_url($this->EE->config->item('site_404')));
exit();
}
// Эти 4 строчки достают все продукт которые относятся к выбранной категории. Дальше веселее ..
// Build our variable data
$vars[0] = array(
'site_id' => $category[0]['site_id'],
'category_id' => $category[0]['category_id'],
'category_image' => $img,
'category_detail' => $category[0]['detail'],
'parent_id' => $category[0]['parent_id'],
'category_title' => $category[0]['title'],
'url_title' => $category[0]['url_title'],
'meta_title' => $category[0]['meta_title'],
'meta_keyword' => $category[0]['meta_keyword'],
'meta_descr' => $category[0]['meta_descr'],
'total_results' => count($category[0]["products"]),
'results' => $category[0]["products"],
'no_results' => array(),
'result_filter_set' => '',
'breadcrumb_parent_categories' => $breadcrumb_parent_categories,
'catalog_guest_flag' => $flag_catalog,
'catalog_price_visible' => $catalog_visible
);
// Filter the results
if(count($category[0]["products"]) != 0)
$vars = $this->_filter_results($vars,$key,true);
// А теперь count($vars['results']) == $this->EE->config->products_per_page;
// И самое веселое -
foreach($vars[0]['results'] as $rst){
$tmp = $this->_get_product($rst["product_id"]);
$results[] = $tmp[0];
}
$vars[0]['results'] = $results;
// Функция _get_product() получает все данные о продукте: отзывы, описание, цена, куча опций. Пара строчек оттуда:
if($product_id == ''){
// Get product by param or dynamically
$product_id = $this->EE->TMPL->fetch_param('product_id');
$url_title = $this->EE->TMPL->fetch_param('url_title');
if($product_id != ''){
$products = $this->EE->product_model->get_products($product_id);
}else{
// get by url key
$key = ($url_title == '') ? $this->EE->uri->segment(2) : $url_title;
if(!$products = $this->EE->product_model->get_product_by_key($key)){
// Not a product page
return false;
}
}
}else{
if(!$products = $this->EE->product_model->get_products($product_id)){
return false;
}
}
// Очень интересен вызов функции get_products(), эта ф-ция вызывается и для продуктов в каталоге и на странице продукта.
// Каждый вызов тянет за собой 25 запросов в базу, если на странице 40 продуктов * 25 = 1000 запросов = ~ 20 секунд на загрузку страницы
кусочек кода который выводит продукты в каталог, взят из eCommerce плагина BrilliantRetail для ExpressionEngine. Плагин кстати говоря стоит 150 баксов, мда )
+50
$submit = $_REQUEST['submit'];
if(isset($submit))
{
$first_name = $_REQUEST['first_name'];
$last_name = $_REQUEST['last_name'];
$address = $_REQUEST['address'];
$city = $_REQUEST['city'];
$country = $_REQUEST['country'];
$state = $_REQUEST['state'];
$zipcode = $_REQUEST['zipcode'];
$phone = $_REQUEST['phone'];
$email = $_REQUEST['email'];
$_SESSION['first_name'] = $first_name;
$_SESSION['last_name'] = $last_name;
$_SESSION['address'] = $address;
$_SESSION['city'] = $city;
$_SESSION['country'] = $country;
$_SESSION['state'] = $state;
$_SESSION['zipcode'] = $zipcode;
$_SESSION['phone'] = $phone;
$_SESSION['email'] = $email;
?>
<meta http-equiv="refresh" content="0;url=https://www.site.com/development1/billing_info.php"/>
<?
exit();
оригинальная обработка сабмита формы и редиректа
+50
//Зарплата с пересчетом в уях
$salary = NULL;
$parse_array[2] = str_replace('от','',$parse_array[2]); //Выпиливаем слово "от", на нем спотыкается прегматч и дергалка ЗП
$parse_array[2] = str_replace('От','',$parse_array[2]);
$parse_array[2] = trim($parse_array[2]);
if (strpos($parse_array[2],"у.е."))
{
$salary_currency = "у.е.";
} else
{
$salary_currency = "руб.";
}
$salary = substr($parse_array[2], 0 , strpos($parse_array[2]," "));
if ($salary_currency!="руб.") {$salary = $salary*$options["ue_value"];}
//конец выдергивания зарплаты
Внимание! Все комментарии в коде - реальны...
+50
/**
* Что я курил, когда это писал? Почему нельзя было date('H:i:s', $time) ??? +___=
* @param $seconds
* @return string
*/
private static function prettySecondsPrint($seconds){
return str_pad((int)($seconds / 3600), 2, '0', STR_PAD_LEFT)
.':'.str_pad((int)(($seconds % 3600) / 60), 2, '0', STR_PAD_LEFT)
.':'.str_pad($seconds % 60, 2, '0', STR_PAD_LEFT);
}
А это, к сожалению, мое творение) Комменарий приписал когда позже просматривал код и обнаружил это)