Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function Tags($products, $tags, $action)
- {
- $tags = $tags == '[]' ? false : $tags;
- if ($tags) {
- $tt = str_replace('[', '', $tags);
- $tt = str_replace(']', '', $tt);
- $forSql = str_replace('"', "'", $tt);
- //получим id тегов
- $sql = "SELECT id FROM " . DB_PREFIX . "tags where tagName IN ({$forSql})";
- $q = $this->db->query($sql);
- $tagIds = $q->rows;
- //переформатируем массив тегов
- foreach ($tagIds as $tid) {
- $tagIdsNew[$tid['id']] = $tid['id'];
- }
- $productTagsNew = [];
- //переданы чекбоксы, запускаем цикл по переданным чекбоксам
- foreach ($products as $id) {
- //если стоит чекбокс удалить теги
- if (isset($_POST['tags_check']) && $_POST['tags_delete'] == '1') {
- foreach ($tagIdsNew as $tag) {
- $this->db->query("DELETE FROM " . DB_PREFIX . "product_tag WHERE product_id = '" . (int)$id . "' AND tag = " . (int)$tag);
- }
- } else { //иначе записываем теги
- //если стоит чекбокс не затирать теги
- if (isset($_POST['tags_check']) && $_POST['tags_check'] == '1') {
- $query = $this->db->query("SELECT tag AS id FROM " . DB_PREFIX . "product_tag WHERE product_id = " . (int)$id . " ");
- $productTags = $query->rows;
- if ($productTags) {
- foreach ($productTags as $tid) {
- $productTagsNew[$tid['id']] = $tid['id'];
- }
- }
- $merge = $productTagsNew + $tagIdsNew;
- }
- //сначала удаляем все теги товара
- $this->db->query("DELETE FROM " . DB_PREFIX . "product_tag WHERE product_id = '" . (int)$id . "'");
- $array = isset($merge) ? $merge : $tagIdsNew;
- //теперь создаем заново теги товара
- foreach ($array as $tag) {
- $this->db->query("INSERT INTO " . DB_PREFIX . "product_tag SET product_id = '" . (int)$id . "', language_id = 1, tag = '" . (int)$tag . "'");
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement