Jump to content
Sign in to follow this  
freelancer

делимся диким индусским кодом

Recommended Posts

при работе на тем или иным проектом каждый из нас наверняка натыкался на дикий индусский код от которого волосы встают дыбом.

вот этот код прислал мне товарищ, представившийся Julio/ кусок кода и сам файл в атаче

<!--?php
$conexion = mysql_connect("localhost", "xxxx", "xxxx");
mysql_select_db("spazioso_oc1", $conexion);
mysql_query("SET NAMES 'utf8';");
print $header;
$c1 = mysql_query("SELECT `rate` FROM `oc_tax_rate` WHERE `tax_rate_id` = '86';", $conexion);

if (mysql_num_rows($c1) --> 0) {
	$r1 = mysql_fetch_assoc($c1);
	$factor = (100 + $r1["rate"]) / 100;
}

print $column_right;
?><div id="content">
 <!--?php print $content_top; ?-->
 <!--
 <div class="clearfix cat-head">
  <div class="cat-nav">
	  <div class="cat-header clearfix">
		<h1 class="cat_heading"><?php print $heading_title; ?></h1>
	  </div>
  </div>

  <?php /*if ($categories) { ?>
  <h2 class="cat_refine clearfix"><?php print $text_refine; ?></h2>
  <?php } */?>

  <?php if ($products) {
		/*if (!$categories) { ?><div class="clearfix block"><?}*/?>
   <?php }?>
 </div>

--></div>

category(5).tpl.zip

Share this post


Link to post
Share on other sites

при работе на тем или иным проектом каждый из нас наверняка натыкался на дикий индусский код от которого волосы встают дыбом.

вот этот код прислал мне товарищ, представившийся Julio/ кусок кода и сам файл в атаче

у меня сейчас три таких сайта, пару отрывков могу показать. есть файлы еще похуже

<?php  if (strpos($_SERVER['REQUEST_URI'], 'ncat=59' )>1) { ?>
<div class="product-grid3" style="float:left;">
<?php } else { ?>
<div class="product-grid2" style="float:left;">
<?php } ?>

<?php if ($_SERVER['REQUEST_URI'] == '/proizvodstvo' or  $_SERVER['REQUEST_URI'] == '/krasnaya-ikra' or  $_SERVER['REQUEST_URI'] == '/uslovija-ispolzovanija-informatsii' or  $_SERVER['REQUEST_URI'] == '/ikra-lososevaja-zernistaja') { ?>
<div style="padding:35px;color:#000;font-size:14px;"><span style="color:#00A4E4;font-size:18px;"><?php echo $heading_title; ?></span>
<br /><br />
 <?php echo $description; ?>
</div>
<?php } elseif ($_SERVER['REQUEST_URI'] == '/traditsii' ) { ?>
<div style="padding:35px;color:#000;font-size:14px;"><span style="color:#00A4E4;font-size:18px;"><?php echo $heading_title; ?></span><br /><br />  <?php echo $description; ?> </div>
<?php } elseif ($_SERVER['REQUEST_URI'] == '/kachestvo' ) { ?>
<div style="padding:35px;color:#000;font-size:14px;"><span style="color:#00A4E4;font-size:18px;"><?php echo $heading_title; ?></span><br /><br />  <?php echo $description; ?> </div>
<?php } elseif ($_SERVER['REQUEST_URI'] == '/oplata-kreditnoj-kartoj-cherez-internet' ) { ?>
 <style>
#content {
min-height: 10px !important;
}
#pol {
padding-bottom:0px;
 min-height: 1350px !important;
}
#shapka {

 min-height: 1320px !important;
}
#container {
min-height:0px !important;
}
</style>
<div style="padding:35px;color:#000;font-size:14px;"><span style="color:#00A4E4;font-size:18px;"><?php echo $heading_title; ?></span><br /><br />  <?php echo $description; ?> <div style="clear:both;">
 </div></div>
<?php } elseif ($_SERVER['REQUEST_URI'] == '/oplata-kurjeru' ) { ?>
 <style>
#content {
min-height: 10px !important;
}
#pol {
padding-bottom:0px;
 min-height: 1350px !important;
}
#shapka {

 min-height: 1320px !important;
}
#container {
min-height:0px !important;
}
</style>
<div style="padding:35px;color:#000;font-size:14px;"><span style="color:#00A4E4;font-size:18px;"><?php echo $heading_title; ?></span><br /><br />  <?php echo $description; ?> <div style="clear:both;">
 </div></div>
<?php } elseif ($_SERVER['REQUEST_URI'] == '/oplata-po-schet-fakture' ) { ?>
 <style>
#content {
min-height: 10px !important;
}
#pol {
padding-bottom:0px;
 min-height: 1350px !important;
}
#shapka {

 min-height: 1320px !important;
}
#container {
min-height:0px !important;
}
</style>
<div style="padding:35px;color:#000;font-size:14px;"><span style="color:#00A4E4;font-size:18px;"><?php echo $heading_title; ?></span><br /><br />  <?php echo $description; ?> <div style="clear:both;">
 </div></div>
<?php } else { ?>
 <!--<br /><br /><br /><br />-->
<?php echo $description; ?>
<?php } ?>

  • +1 1

Share this post


Link to post
Share on other sites

Вопрос клиентов: нам сделали модуль, показывающий новинки каталога, но он как-то странно работает. Залажу, вижу:

$this->model_catalog_sidebarsslidershow->getRandomProduct()

Два года после сдачи прошло. Не индусский код, но порадовал :)

  • +1 2

Share this post


Link to post
Share on other sites

Переменная stock может быть "В наличии" и "Нет в наличии" :-)

<span class="{{if stock[0]=='Н'}}un{{/if}}available">${stock}</span>

Мне кажется, вышло по-дебильному, но как иначе сделать, я не догадался

Share this post


Link to post
Share on other sites

Для меня самым индусским до сих пор остается перекладывание языковых переменных из одного массива в другой в контроллерах. В каждой функции! По несколько десятков раз.

И очень частое дублирование кода там, где прям само просится - вынеси в отдельные функции-хелперы и исправляй всё централизованно.

Share this post


Link to post
Share on other sites

И очень частое дублирование кода там, где прям само просится - вынеси в отдельные функции-хелперы и исправляй всё централизованно.

Пардон за оффтоп, но сразу вспомнилось :-)

обсуждаем чей-то код на работе:

xxx: Так вы представляете, у него там фрагмент кода в 15 строк повторяется 37 раз. Если вынести в функцию можно сэкономить полтыщи строк!

yyy: это припев.

  • +1 1

Share this post


Link to post
Share on other sites

при работе на тем или иным проектом каждый из нас наверняка натыкался на дикий индусский код от которого волосы встают дыбом.

вот этот код прислал мне товарищ, представившийся Julio/ кусок кода и сам файл в атаче

<!--?php
$conexion = mysql_connect("localhost", "xxxx", "xxxx");
mysql_select_db("spazioso_oc1", $conexion);
mysql_query("SET NAMES 'utf8';");
print $header;
$c1 = mysql_query("SELECT `rate` FROM `oc_tax_rate` WHERE `tax_rate_id` = '86';", $conexion);

if (mysql_num_rows($c1) --> 0) {
	$r1 = mysql_fetch_assoc($c1);
	$factor = (100 + $r1["rate"]) / 100;
}

print $column_right;
?><div id="content">
 <!--?php print $content_top; ?-->
 <!--
 <div class="clearfix cat-head">
  <div class="cat-nav">
	  <div class="cat-header clearfix">
		<h1 class="cat_heading"><?php print $heading_title; ?></h1>
	  </div>
  </div>

  <?php /*if ($categories) { ?>
  <h2 class="cat_refine clearfix"><?php print $text_refine; ?></h2>
  <?php } */?>

  <?php if ($products) {
		/*if (!$categories) { ?><div class="clearfix block"><?}*/?>
   <?php }?>
 </div>

--></div>

Это не индусский, а скорее, судя по "conexion", испанский код. Вообще конечно порадовало, но правлю магазины, которые делал два года назад и того хуже извороты есть ))

Share this post


Link to post
Share on other sites

некий "magic toolbox"

интересно, seopro не совместим с magic toolbox. при активации seopro в "Тип ЧПУ:" получаем от magic toolbox в категориях сообщение "Notice: Undefined offset: 0 in /home/..../admin/controller/module/magictoolbox/module.php on line 471" и неактивный magic toolbox.

это кусок кода с модуля (471 строка), подскажите пожалуйста что нужно исправить что бы он был совместим с seopro?

		if (!strpos($link,'product_id')) { //SEO links fix
		$furl = substr($link, strrpos($link, '/') + 1);
		$currentController = $GLOBALS['magictoolbox']['currentController'];
		$query = $currentController->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `keyword` = '".$furl."'");
		$query = $query->rows[0]['query'];
		$id = preg_replace('/^.*?id=(\d+).*/is','$1',$query);
	}

  • +1 2

Share this post


Link to post
Share on other sites

да простит меня @markimax... :unsure:

сказал, что исправлено с версии "4.18.7", но тем не менее...

Модуль Блог | Новости | Статьи | Отзывы | Галерея | Акции | FAQ версии 4.14.2

Ссылка в админку на редактирование "записи" блога (record).

catalog/view/theme/default/template/record/blog.tpl

	<?php
require_once(DIR_SYSTEM . 'library/user.php');
// User
$this->registry->set('user', new User($this->registry));

  if ($this->user->isLogged())	 {
	  $userLogged = true;
	}
	else
	{
	  $userLogged = false;
	}

 if ($userLogged)  {
?>
<div class="blog-edit_container">
   <a class="zametki" target="_blank" href="/admin/index.php?route=catalog/record/update&token=<?php echo $this->session->data['token']; ?>&record_id=<?php echo $record['record_id']; ?>"><?php echo $this->language->get('text_edit');?></a>
 </div>
<?php
 }
?>

Share this post


Link to post
Share on other sites

zametki =)

помнится markimax громче всех писал про кривую архитектуру OpenCart ))

Share this post


Link to post
Share on other sites

Отвечу - давно исправлено.

И где здесь супер кривой код? Обычный Ctrl-V из opencart.

Вам придолбаться не к чему? К ссылке ...

Я наверно вас afwollis немного зацепил в ЛС, так вы решили объявить войну.

Занимайтесь лучше новой версией ocStore, не отвлекайтесь.

Это была фишка для использования в "личных" целях, о ней ни слова не было в описании модуля.

Вообще завели какую-то холиварную тему.

Скажу так никто не безгрешен, и если покопаться у каждого можно найти индусский код, написанный уставшим разрабом ночью или для быстрой проверки работоспособности кода.

Я не буду участвовать в ваших холиварных войнах, но видел и у ocStore не лучший код (поправьте наконец seo_pro.php).

Share this post


Link to post
Share on other sites

markimax, не обижайтесь, эта тема была создана не для публичного высмеивания программистов, а для примеров как делать не надо. кстати, где в opencart библиотека подгружается в шаблоне?

Share this post


Link to post
Share on other sites
И где здесь супер кривой код? Обычный Ctrl-V из opencart.

Вам придолбаться не к чему? К ссылке ...

да отстаньте вы сами от ссылки :-) - сама ссылка здесь в самую последнюю очередь вспоминается.

речь про подключение и регистрацию библиотеки в шаблоне.

Я наверно вас afwollis немного зацепил в ЛС, так вы решили объявить войну.

не выдумывайте - никакой войны.

одно сообщение касаемо одного конкретного дикого участка кода.

ничего больше.

Share this post


Link to post
Share on other sites

Я и сам перманентный индус. Про код молчу - там либо копипаст с заменой буковок, либо обращение за помощью к адекватным и компетентным товарищам.

Но вот что касается верстки... то на начальном этапе у меня везде по коду можно обнаружить конструкцию типа:

<div style="position:absolute; top:10px; left:20px; padding:5px 10px 15px 5px; text-decoration:none;">12345</div>

:-) однако, при завершении проектов всегда привожу все к виду

<div id(or class(which not so useful 4 design in my case))="divname">12345</div>

Возможно, кто-нибудь поступает как-то иначе? Ну я не знаю, там.. подключение отладочного css etc.

Мне удобно именно так, как описано выше и за это меня недавно один авторитетный верстальщик, к мнению которого я склонен прислушиваться, обозвал индусом )

Share this post


Link to post
Share on other sites

сам иногда так делаю если нужно отпозиционировать какой-нить маленький элемент, а создавать отдельный класс для float:left; например - лень. Лень потому что нужно лезть в кучу папок и открывать файл стилей :)

Share this post


Link to post
Share on other sites

русские индусы. файл category.tpl

    <?php if ($product['price']) { ?>
      
<?php
// начало
/*
$discounts = $this->model_catalog_product->getProductDiscounts($product['product_id']);
            
            $this->data['discounts'] = array();
            
            foreach ($discounts as $discount) {
                $this->data['discounts'][] = array(
                    'quantity' => $discount['quantity'],
                    'product_id' => $discount['product_id'],
                    'price'    => $this->currency->format($this->tax->calculate($discount['price'], $result['tax_class_id'], $this->config->get('config_tax')))
                );
            }
            
if ($discount['quantity']==9994)
    {
$podkl='
<div class="podkl">Цена при подключении '.$discount['price'].'</div>
';
    }
*/

// ===начало===

$q1='SELECT price,quantity FROM `oc_product_discount` where product_id="'.(int)$product['product_id'].'" and quantity="9999"';
$q2='SELECT price,quantity FROM `oc_product_discount` where product_id="'.(int)$product['product_id'].'"';
// echo $q2;
$res=mysql_query($q1);
if (mysql_num_rows($res) > 0)
    {
$disc = mysql_result($res, 0, 1);
$podkl_1 = mysql_result($res, 0, 0);
$podkl = $this->currency->format($this->tax->calculate($podkl_1, $this->config->get('config_tax')));
// (int)$podkl;
// if ($disc<>'') {echo (int)$podkl.' -полно- '.$disc;} else {echo'пусто';}
    }
// ===конец===


?>


 
  • +1 1

Share this post


Link to post
Share on other sites

заказчик и не подозревает о том, что творится в коде. он видит, что всё работает)

Share this post


Link to post
Share on other sites

sql-запрос в файле шаблона, даже я так не делаю  :-D

Share this post


Link to post
Share on other sites

как вам такое, товарищи разработчики ?

 <file name="admin/controller/extension/module.php">
        <operation error="skip">
            <search position="after" offset="6"><![CDATA[public function uninstall() {]]>
            </search>
            <add><![CDATA[                        //farid-------
                        if ($this->request->get['extension'] == 'labelimage') {
                            if (isset($this->request->get['store_id'])) {
                                $store_id = $this->request->get['store_id'];
                            } else {
                                $store_id = 0;
                            }
                            $this->load->model('setting/labelimage');
                            if (!$this->model_setting_labelimage->uninstall()){
                                $this->session->data['error'] = 'Error Uninstall Module';
                                $this->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL'));
                            }
                         }
                        //end-------            
]]>
            </add>
        </operation>
        <operation error="skip">
            <search position="after" offset="6"><![CDATA[public function install() {]]>
            </search>
            <add><![CDATA[                        //farid-------
                        if ($this->request->get['extension'] == 'labelimage') {
                            if (isset($this->request->get['store_id'])) {
                                $store_id = $this->request->get['store_id'];
                            } else {
                                $store_id = 0;
                            }
                            $this->load->model('setting/labelimage');
                            if (!$this->model_setting_labelimage->install()){
                                $this->session->data['error'] = 'Error Install Module';
                                $this->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL'));
                            }
                        }
                        //end-------            
]]>
            </add>
        </operation>

    </file>

Share this post


Link to post
Share on other sites

					<?php foreach ($event_day as $place) {

if ($this->intgrt) {

foreach ($this->menucl as $mcl) {

if (($mcl->showcat==1)&&($place->cat_id==$mcl->cat)) { $ItemId = $mcl->id; $fl=1; }

elseif ($mcl->showcat==0) { $ItemId = $mcl->id; $fl=1; }

} } else {$ItemId = $this->Itemid;}

?>

<tr>

<td><a href="<?php echo JRoute::_('index.php?option='.$this->lnkint.'&task=place&pid='.$place->places_id.$date_link.'&Itemid='.$ItemId)?>"><?php echo $place->place_name?></a></td>

<!--TIME-->

<td><?php

for ($i=0;$i<=count($place->times)-1;$i++) {

switch ($place->fformats[$i]) {

case '3D': $this->ddd .= "<span class='{$place->classes[$i]}'>{$place->times[$i]}</span>     "; break;

case 'IMAX_3D': $this->imaxddd .= "<span class='{$place->classes[$i]}'>{$place->times[$i]}</span>     "; break;

case '4D': $this->dddd .= "<span class='{$place->classes[$i]}'>{$place->times[$i]}</span>     "; break;

case '5D': $this->ddddd .= "<span class='{$place->classes[$i]}'>{$place->times[$i]}</span>     "; break;

case 'DEFAULT': $this->d .= "<span class='{$place->classes[$i]}'>{$place->times[$i]}</span>     "; break;

} } echo $this->ddd ? '<span class="seanses_times_3d">3D сеансы: </span>'.$this->ddd.'<br />' : '';

echo $this->imaxddd ? '<span class="seanses_times_i3d">IMAX 3D сеансы: </span>'.$this->imaxddd.'<br />' : '';

echo $this->dddd ? '<span class="seanses_times_4d">4D сеансы: </span>'.$this->dddd.'<br />' : '';

echo $this->ddddd ? '<span class="seanses_times_5d">5D сеансы: </span>'.$this->ddddd.'<br />' : '';

echo $this->d ? $this->d : '';

$this->ddd='';$this->imaxddd=''; $this->dddd='';$this->ddddd='';$this->d='';

?>

</td>

<!--END TIME-->

<!--PRICE-->

<td><div style="float:left;"><?php $flagc=0;$baylnk=''; for ($i=0;$i<=count($place->prices)-1;$i++) {if ($place->prices[$i]!='') { $flagc=1;}} if ($flagc==1) { for ($i=0;$i<=count($place->prices)-1;$i++) { /**/if (isset($place->baylnks[$i])) {$baylnk=$place->baylnks[$i];} /**/ echo "<span class='{$place->classes[$i]}'>{$place->prices[$i]}</span>    "; } }

else {echo "<span>{$place->plprice}</span>";}if ($baylnk!='') {echo '  <a href="'.$baylnk.'" title="Купить билеты" target="_blank"><img src="/components/com_afisha/images/price.png" alt="Купить билеты"></a>';}

?></div><div style="float:right;">

</div>

</td>

<!--END PRICE-->

</tr>

<?php } ?>

Это типа контроллер, если на первый взгляд не понятно

Share this post


Link to post
Share on other sites

тут и "на второй взгляд", мягко говоря, диву даешься  :ugeek:

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.