Advertisement
Guest User

Untitled

a guest
Feb 10th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.08 KB | None | 0 0
  1.     public function Tags($products, $tags, $action)
  2.     {
  3.         $tags = $tags == '[]' ? false : $tags;
  4.  
  5.         if ($tags) {
  6.  
  7.             $tt = str_replace('[', '', $tags);
  8.             $tt = str_replace(']', '', $tt);
  9.  
  10.             $forSql = str_replace('"', "'", $tt);
  11.  
  12.             //получим id тегов
  13.             $sql = "SELECT id FROM " . DB_PREFIX . "tags where tagName IN ({$forSql})";
  14.             $q = $this->db->query($sql);
  15.             $tagIds = $q->rows;
  16.             //переформатируем массив тегов
  17.             foreach ($tagIds as $tid) {
  18.                 $tagIdsNew[$tid['id']] = $tid['id'];
  19.             }
  20.             $productTagsNew = [];
  21.  
  22.             //переданы чекбоксы, запускаем цикл по переданным чекбоксам
  23.             foreach ($products as $id) {
  24.  
  25.                 //если стоит чекбокс удалить теги
  26.                 if (isset($_POST['tags_check']) && $_POST['tags_delete'] == '1') {
  27.  
  28.                     foreach ($tagIdsNew as $tag) {
  29.                         $this->db->query("DELETE FROM " . DB_PREFIX . "product_tag WHERE product_id = '" . (int)$id . "' AND tag = " . (int)$tag);
  30.                     }
  31.  
  32.                 } else { //иначе записываем теги
  33.  
  34.                     //если стоит чекбокс не затирать теги
  35.                     if (isset($_POST['tags_check']) && $_POST['tags_check'] == '1') {
  36.  
  37.                         $query = $this->db->query("SELECT tag AS id FROM " . DB_PREFIX . "product_tag WHERE product_id = " . (int)$id . " ");
  38.                         $productTags = $query->rows;
  39.  
  40.                         if ($productTags) {
  41.                             foreach ($productTags as $tid) {
  42.                                 $productTagsNew[$tid['id']] = $tid['id'];
  43.                             }
  44.  
  45.                         }
  46.  
  47.                         $merge = $productTagsNew + $tagIdsNew;
  48.  
  49.                     }
  50.                     //сначала удаляем все теги товара
  51.                     $this->db->query("DELETE FROM " . DB_PREFIX . "product_tag WHERE product_id = '" . (int)$id . "'");
  52.  
  53.                     $array = isset($merge) ? $merge : $tagIdsNew;
  54.  
  55.                     //теперь создаем заново теги товара
  56.                     foreach ($array as $tag) {
  57.                         $this->db->query("INSERT INTO " . DB_PREFIX . "product_tag SET product_id = '" . (int)$id . "', language_id = 1, tag = '" . (int)$tag . "'");
  58.                     }
  59.                 }
  60.  
  61.  
  62.             }
  63.         }
  64.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement