"PHP" / Говнокод #1866 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
function CompletesGetTableOld($clist, $mid =0)
{
  if(strlen($clist) or $mid > 0)
  {
    $com = CatalogComplsCostsGet(0, 0, $clist, $mid);
    $csz = sizeof($com['id']);
    if($csz > 0)
    {
        $param = CatalogComplParamsGet();
        $psz = sizeof($param);
        $tds = '';
        
        $cVals = CatalogComplParamValsGet(implode(",", $com['cid']));
        
        echo '
		<table cellpadding="4" cellspacing="0" border="0" width="700" class="table-comp">
		 <tr><td width="50%" class="first"></td>
       	';
        for($i = 0; $i < $csz; $i++)
 	    {
 	        echo '<td align="center">'.$com['name'][$i].'</td>';
 	        $tds .= '<td>   </td>';
 	    }
        echo '</tr>';
        
        $prgrnm = '';
        for($i = 0; $i < $psz; $i++)
 	    {
 	        $data = false;
 	        $html = '';
 	        if($i==0||$param[$i]['gr_name']!=$prgrnm)
 	        {
				$html='
				<tr>
					<td class="first"><br><b>'.$param[$i]['gr_name'].'</b></td>';for($ii = 0; $ii < $csz; $ii++)$html.='<td class="second" >   </td>';
					$html.= $tds.'
				</tr>';
 	        }
 	        $html.= '
 	        <tr>
 	          <td class="first">'.$param[$i]['name'].'</td>';
 	        
 	        for($ii = 0; $ii < $csz; $ii++)
     	    {
     	        @$val = $cVals[$com['cid'][$ii]][$param[$i]['id']];
     	        if(isset($val) and strlen($val))
     	        {
     	            if($param[$i]['type'] == 'CH') 
     	            {
     	                if($val == 1)
     	                {
     	                    $html.= '<td class="second" align="center"><img src="/images/tochka.gif" ></td>'; 
     	                    $data = true;
     	                }
     	                else $html.= '<td class="second">   </td>';
     	                
     	            }
     	            else 
     	            {
     	                $html.= '<td class="second" align="center">'.$val.'</td>';
     	                $data = true;
     	            }
     	        }
     	        else $html.= '<td class="second">   </td>';
     	    }
     	    $html.= '</tr>';
     	    
     	    if($data) 
     	    {
     	        $prgrnm = $param[$i]['gr_name'];
     	        echo $html;
     	    }
 	    }
 	    
 	    echo '
 	     <tr><td width="50%" class="first"><b>????</b></td>';
 	    for($i = 0; $i < $csz; $i++)
 	    {
 	    	$cost = intval($com['cost'][$i]);
 	        if($cost > 1000000) $cost = '<nobr>'.substr($cost, 0, -6)." ".substr($cost, 1, -3).". ".substr($cost, 4).'</nobr> ???';
 	        elseif($cost > 100) $cost = '<nobr>'.substr($cost, 0, -3)." ".substr($cost, strlen($cost)-3).'</nobr> ???';
 	        else $cost = '';
     	        
 	        echo '<td class="second" align="center" height="30">'.$cost.'</td>';
 	    }
               
        echo '</tr>
        </table>';
         
        return true;
    }
  }
   
  return false;
}

обратите внимание на переменную $data. долго и упорно собираем из кусочков $html, и только если $data истинно тогда выводим $html (примерно 5-10% случаев)

Запостил: gorky gorky, (Updated )

Комментарии (5) RSS

  • Ого, какая куча. Строки 80-82 выносят напрочь.
    Ответить
  • Функциональный подход! ... это даже не смешно, зачем такое УГ постить ...
    Ответить
  • Постфикс Old в имени функции можно рассматривать как @deprecated?
    Ответить
    • в принципе можно. поставил его в процессе рефакторинга.
      Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8