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

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
  96. 96
  97. 97
  98. 98
  99. 99
  100. 100
$output = '<div class="catalog catalog-category">';
	$query = db_select('taxonomy_term_data','td');
	$query->innerJoin('field_data_field_category', 'fc', "fc.field_category_tid = td.tid");
	$query->innerJoin('taxonomy_term_hierarchy', 'tth', "tth.tid = td.tid");
	$query->innerJoin('node', 'n', "n.nid = fc.entity_id");
	$query->condition('td.vid', 4);
	$query->condition('n.status', 1);
	$query->condition('tth.parent', 0);
	$query->fields('td', array('tid', 'name'));
	$query->groupBy('td.tid');
	$query->orderBy('td.weight', 'ASC');
	$terms = $query->execute()->fetchAll();
foreach ($terms as $term) {
		$prod_out = '';
		$query = db_select('field_data_field_product', 'fp');

		// Выбираем товары текущего типа
		$query->innerJoin('node', 'n', "n.nid = fp.entity_id");
		$query->innerJoin('field_data_field_category', 'fc', "fc.entity_id = n.nid");
		$query->condition('n.status', 1);
		$query->condition('fc.field_category_tid', $term->tid);

		// Заголовок товара
		$query->innerJoin('commerce_product', 'cp', "cp.product_id = fp.field_product_product_id");
		$query->condition('cp.status', 1);
		$query->fields('cp', array('title'));

		// Цена без скидки
		$query->innerJoin('field_data_commerce_price', 'dcp', "dcp.entity_id = fp.field_product_product_id");
		$query->fields('dcp', array('commerce_price_amount'));

		// Размер скидки
		$query->leftJoin('field_data_field_discount', 'dcpd', "dcpd.entity_id = fp.field_product_product_id");
		$query->fields('dcpd', array('field_discount_value'));

		// Цена со скидкой
		$query->leftJoin('field_data_field_price_new', 'dcpn', "dcpn.entity_id = fp.field_product_product_id");
		$query->fields('dcpn', array('field_price_new_value'));

		// Первое изображение
		$query->innerJoin('field_data_field_image', 'dfi', "dfi.entity_id = fp.field_product_product_id");
		$query->condition('dfi.delta', 0);
		$query->fields('dfi', array('field_image_fid'));

		$query->innerJoin('field_data_field_weight', 'fw', "fw.entity_id = fp.field_product_product_id");
		$query->addExpression("(SELECT GROUP_CONCAT(td.name SEPARATOR ', ') FROM field_data_field_season AS dfs INNER JOIN taxonomy_term_data AS td ON td.tid=dfs.field_season_tid WHERE dfs.entity_id=n.nid)","name");

		// Маркер
		$query->leftJoin('field_data_field_marker', 'dfm', "dfm.entity_id = fp.field_product_product_id");
		$query->fields('dfm', array('field_marker_value'));

		// Товар
		$query->fields('fp', array('field_product_product_id'));

		// Связанная с товаром нода
		$query->fields('n', array('nid'));

		$query->range(0, 4);
		$query->orderBy('fw.field_weight_value', 'ASC');
		$products = $query->execute()->fetchAll();

//		$output .= '<h2>' . l($term->name, 'taxonomy/term/'.$term->tid) . '</h2>';

		$output .= '<div class="product_items">';
		$output .= '<div class="catalog_item"><div style="width: 225px; height: 340px;"><h2>' . l($term->name, 'taxonomy/term/'.$term->tid) . '</h2></div></div>';

		foreach ($products as $product) {
			$fid = $product->field_image_fid;
			if ($fid != 0 && is_numeric($fid)) {
				$file_picture = file_load($fid);
                $imageUrl = image_style_url('catalog', $file_picture->uri);
                $title = $product->title;
				$photo = "<img class='lazy-image' data-src='{$imageUrl}' alt='{$title}' title='{$title}'>";
			}
			else $photo = '';

			$prod_out .= '<div class="catalog_item">';
			$prod_out .= '<div class="title">' . l($product->title . '<br><span>' . $product->name . '</span><div>XS  S  M  L  XL</div>', 'node/'.$product->nid, array('html' => TRUE, 'query' => array('id' => $product->field_product_product_id))).'</div>';
			$prod_out .= '<div class="image">' . $photo . '</div>';

			if (!empty($product->field_discount_value)) {
				$prod_out .= '<div class="views-field-field-discount"><div class="field-content">Sale ' . $product->field_discount_value . ' %</div></div>';
			}

			if (!empty($product->field_marker_value)) {
				$prod_out .= '<div class="views-field-field-marker"><div class="field-content field-content field-content-' . $product->field_marker_value . '">' . ($product->field_marker_value == 'new'?'Новинка':'Бестселлер') . '</div></div>';
			}
			if (!empty($product->field_price_new_value)) {
				$price = '<s>' . number_format($product->commerce_price_amount/100,0,'',' ') . '</s> ' . number_format($product->field_price_new_value,0,'',' ') . ' Р';
			}
			else {
				$price = number_format($product->commerce_price_amount/100,0,'',' ') . ' Р';
			}
			$prod_out .= '<div class="views-field-field-price-new">' . $price . '</div>';
			$prod_out .= '</div>';
		}
}
$output .= $prod_out;
		$output .= '<div class="catalog_item" style="position: absolute;">' . l('<img src="/sites/all/themes/base/img/strelka.png" style="width: 10px; height: 17px;">', 'taxonomy/term/'.$term->tid, array('html' => true)) . '</div>';
		$output .= '</div>';

Уууъъъъъ пыхомразь

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

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

        • 1. Меньше будет тупить сервак и вылетать 500е.
          2. Оффтоп был оффтопом, и в принципе не нужен.
          3. Забавно посмотреть багор Сёмы.

          В бесконечном стоке и xyzе остались бекапы всех тредов, так что ничего не проёбано. Скажем спасибо инженерным отделам.
          Я лично против таких методов. Но в данном конкретном случае ГК дико лагал.
          Ответить
          • Лолшто? Лагал из-за существования этих оффтопов? Всё равно насрут новые.
            Ответить
          • Оффтоп нужен, и только благодаря ему ГК существует. Я уже забыл когда обсуждал здесь не оффтоп.
            Ответить
            • > и в принципе не нужен.
              На главной.
              Лично я вижу это как оптимизацию БД. На чанах треды тоже уходят в бамп-лимит и их смывает.
              Ответить
              • На главной не нужен, но нет технической возможности его скрыть.
                Ответить
                • Ну новые насрём.
                  Можно считать ГК бордой, а бесконечный сток и xyz его архивами, типа нямы и метачана.
                  Ответить
                  • Я не разбираюсь в ваших сосачевских терминах.
                    Ответить
                    • Метачан и няма давно гигикнулись.
                      Это термины конца нулевых, когда никаких сосачей не было.
                      Ответить
          • Кстати, если кто-то насрёт в очень большой тред, который не открывается, то хуз будет его перезапрашивать каждые 30 секунд и тем самим досить.
            Ответить
              • Исключение - захардкоженные 3 айдишника (каклосрач, и ещё что-то).
                Ответить
                • Запустил реакцию, проверь. Кажется, пора добавлять четвёртый.
                  Ответить

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

Помни, guest, за тобой могут следить!

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


    8