- 1
foreach($query->result_array() as $row) $res[] = $row;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+160
foreach($query->result_array() as $row) $res[] = $row;
P.s на сайте не работает галочка "принять рецензию" в 4 хроме, а в 6 ие(который я включил, чтобы здесь накласть) не видно текстареи, но вроде работает :)
+160
//Из библиотеки prototype
....
unescapeHTML: function() {
return this.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>');
}
....
Смеяться надо из-за того, что замена & на & идёт первой, таким образом &lt замениться на <, а не на <
+160
$query="SHOW COLUMNS FROM ".$table;
$result_field=mysql_query($query);
$num_field=mysql_num_rows($result_field);
for ($i = 0; $i<$num_field; $i++)
{
$row=mysql_fetch_array($result_field);
$field_array[$i]=$row[0];
}
foreach ($field_array as $field)
$select_field.=$field.',';
$select_field=substr($select_field,0,-1);
$query='select '.$select_field.' from '.$table;
...
Аналог $query='select * from '.$table;
+159.9
//admin id is usually 1. to think about it
if (intval($_SESSION['userId']) == 1) {
return true;
}
True ACL.
+159.9
public function link_page()
{
$sql = "SELECT COUNT(*) FROM `".$this->table."`".$this->where;
$value = mysql_query($sql);
$value = mysql_fetch_row($value);
$alllines = $value[0];
$str = ceil($alllines / $this->lines);
if($this->page != 0) {
$return .= "<a href='".$this->prefix_p."=".($this->page)."'><</a>";
} else {
$return .= "<span><</span>";
}
$return .= " ";
if($this->page + 1 != 1) {
$return .= "<a href='".$this->prefix_p."=1'>1</a>";
} else {
$return .= "<span>1</span>";
}
$return .= " ";
if($this->page + 1 == $str && $this->page + 1 != 1 && $str < 2) {
$return .= "<a href='".$this->prefix_p."=".($this->page - 2)."'>".($this->page -
2)."</a>";
$return .= "<a href='".$this->prefix_p."=".($this->page - 1)."'>".($this->page -
1)."</a>";
}
if($this->page > 1) {
if($str > 1 && $this->page >= 4) {
if($str >= 5 && ($this->page == $str - 1 or $this->page == $str - 2)) {
if($this->page == $str - 2 && $str != 5) {
} else {
$return .= "<a href='".$this->prefix_p."=".($this->page - 2)."'>".($this->page -
2)."</a>";
}
if($this->page == 4 && $str == 6) {
} else {
$return .= "<a href='".$this->prefix_p."=".($this->page - 1)."'>".($this->page -
1)."</a>";
}
}
}
if(($str > 4 && $str < 8 && $this->page == $str - 2) or ($str == 4 && $this->
page == $str - 1)) {
$return .= "<a href='".$this->prefix_p."=".($this->page - 1)."'>".($this->page -
1)."</a>";
}
$return .= "<a href='".$this->prefix_p."=".($this->page)."'>".($this->page).
"</a>";
}
if($this->page + 1 != 1 && $this->page < 2 && $str != 2) {
$return .= "<span>".($this->page + 1)."</span>";
}
if($this->page > 1 && $this->page + 2 <= $str) {
$return .= "<span>".($this->page + 1)."</span>";
}
if($this->page + 2 < $str) {
if($this->page + 1 == 1) {
$return .= "<a href='".$this->prefix_p."=".($this->page + 2)."'>".($this->page +
2)."</a>";
if($str > 3) {
$return .= "<a href='".$this->prefix_p."=".($this->page + 3)."'>".($this->page +
3)."</a>";
}
if($this->page + 3 >= $str) {
} else {
if($str != 4) {
$return .= "<a href='".$this->prefix_p."=".($this->page + 4)."'>".($this->page +
4)."</a>";
}
}
} else {
if($this->page + 1 == 2) {
$return .= "<a href='".$this->prefix_p."=".($this->page + 2)."'>".($this->page +
2)."</a>";
if($str != 4) {
$return .= "<a href='".$this->prefix_p."=".($this->page + 3)."'>".($this->page +
3)."</a>";
}
} else {
$return .= "<a href='".$this->prefix_p."=".($this->page + 2)."'>".($this->page +
2)."</a>";
}
}
}
Один метод из класса выводит навигацию типа (мы на 6 странице максимум 10 страниц) [<][1] [5][6][7] [10][>]
Писал под травой, как оно работает не знаю, переписывать лень, работает да и ладно =)
+159.9
eval("\$value = \"$value\";");
AdsManager - компонент для Joomla!
Я не сразу понял что делает эта строчка...
+159.8
function AbstractControl_getProperty (propertyName) {
var targetElement = this.getTargetPath(propertyName);
var result = null;
if (this.isTargetAttribute(propertyName)) {
eval("result = targetElement." + this.getAttributeName(propertyName));
} else {
var getter = this.getGetterName(propertyName);
var expression = "result = targetElement." + getter + "();";
eval(expression);
}
return result;
}
Вот так наши "суровые челябинские" программисты, не имеющие представления об интроспективности javascript-а, повсюду злоупотребляют eval-ом, усложняя отладку и понимание кода.
По хорошему, вместо первого eval-а должно бы быть:
result = targetElement[this.getAttributeName(propertyName)];
а вместо второго:
result = targetElement[this.getGetterName(propertyName)]();
+159.8
function check_date() {
var message = "Дата невалидна.";
days = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var str = $('#registration-form [name="birthday"]').val();
var m = str.match(/(\d*)\.(\d*)\.(\d*)(.*)/);
if (!m ||
!m[1] ||
!m[2] ||
!m[3] ||
m[4] ||
parseInt(m[2], 10) < 1 ||
parseInt(m[2], 10) > 12 ||
parseInt(m[1], 10) < 1 ||
parseInt(m[1], 10) > days[parseInt(m[2], 10)-1] ||
parseInt(m[3], 10) < 1920 ||
parseInt(m[3], 10) > 2000 ) {
tooltip($('#registration-form [name="birthday"]').get(0), message);
} else {
removett($('#registration-form [name="birthday"]').get(0));
}
}
Не очень говно, но вполне себе код.
+159.8
document.getElementById('f1').style.display = ((document.getElementById('f1').style.display=='none'&&id==1)?'block':'none');
document.getElementById('t1').style.display = ((document.getElementById('f1').style.display=='block')?'none':'block');
document.getElementById('f2').style.display = ((document.getElementById('f2').style.display=='none'&&id==2)?'block':'none');
document.getElementById('t2').style.display = ((document.getElementById('f2').style.display=='block')?'none':'block');
document.getElementById('f3').style.display = ((document.getElementById('f3').style.display=='none'&&id==3)?'block':'none');
document.getElementById('t3').style.display = ((document.getElementById('f3').style.display=='block')?'none':'block');
Есть три формы, нужно показывать только одну. При клике на заголовок форма разворачивается, а вместо остальных появляются подсказки.
+159.7
$q = "SELECT product_id FROM jos_vm_product WHERE product_parent_id=$prodid";
$res = mysql_query($q);
if(!$res) die('Error 3: ' . mysql_error());
$td_str=' ';
$pos_atrribs=array();
$row=0;
$sort_by=0;
$subrows=0;
$show_cells=0;
while($pos=mysql_fetch_array($res))
{
$posid=$pos['product_id'];
$q1 = "SELECT attribute_value,attribute_name FROM jos_vm_product_attribute WHERE product_id=$posid ORDER BY attribute_name DESC";
$res1 = mysql_query($q1);
if(!$res1) die('Error 4: ' . mysql_error());
$col=0;
while($posattrib=mysql_fetch_array($res1))
{
if($posattrib['attribute_name']=='Код фитинга' || $posattrib['attribute_name']=='Код' || $posattrib['attribute_name']=='Кодфитинга' || $posattrib['attribute_name']=='Ordering code')
{
$sort_by=$posattrib['attribute_name'];
}
$pos_atrribs[$row][$posattrib['attribute_name']]=$posattrib['attribute_value'];
$col++;
}
$q1 = "SELECT product_in_stock FROM jos_vm_product WHERE product_id=$posid";
$res1 = mysql_query($q1);
if(!$res1) die('Error 4: ' . mysql_error());
$stock=mysql_fetch_array($res1);
$pos_atrribs[$row]['Склад']=$stock['product_in_stock'];
$q1 = "SELECT product_price FROM jos_vm_product_price WHERE product_id=$posid";
$res1 = mysql_query($q1);
if(!$res1) die('Error 4: ' . mysql_error());
$price=mysql_fetch_array($res1);
$pos_atrribs[$row]['Цена EUR']=$price['product_price'];
$pos_atrribs[$row]['posid']=$posid;
$row++;
}
function columnSort($sorted, $column) {
for ($i=0; $i < sizeof($sorted)-1; $i++)
{
for ($j=0; $j<sizeof($sorted)-1-$i; $j++)
if ($sorted[$j][$column] > $sorted[$j+1][$column])
{
$tmp = $sorted[$j];
$sorted[$j] = $sorted[$j+1];
$sorted[$j+1] = $tmp;
}
}
return $sorted;
}
$sorted = columnSort($pos_atrribs, $sort_by);
unset($pos_atrribs);
$new_attribs=array();
$num=0;
$matches=0;
for ($i=0; $i < sizeof($sorted); $i++)
{
if(substr($sorted[$i][$sort_by],-2)!='.1' && substr($sorted[$i][$sort_by],-2)!='.4')
{
$fs=(int)substr($sorted[$i][$sort_by],0,3);
$fe=(int)substr($sorted[$i][$sort_by],-3);
for ($j=0; $j<sizeof($sorted); $j++)
{
$ss=(int)substr($sorted[$j][$sort_by],0,3);
$se=(int)substr($sorted[$j][$sort_by],-3);
if ($fe==$se && $fs<$ss)
{
$new_attribs[$num]=array($sorted[$i],$sorted[$j]);
$num++;
$matches++;
}
}
}
}
Джомло проект, в ходе запросов(11-46 строки) получает 250+ запросов к БД, и время выполнения только этого куска 40+ секунд. Далее сортировка тоже не слабая.