db->query($sql); $blocksData = []; while ($blockRes = $this->db->fetch_assoc($blocksDataQuery)) { $blockImages = $this->getBlockImages($blockRes['id']); $subBlocks = $this->getSubblocks($blockRes['id']); $blockRes['images'] = $blockImages; $blockRes['items'] = $subBlocks; $blocksData[] = $blockRes; } return $blocksData; } public function getBlockImages($block_id) { $sql = "SELECT * FROM constructor_images ci WHERE EXISTS ( SELECT 1 FROM constructor_imageable_type cit WHERE cit.model_id = $block_id AND cit.type = 'block' AND cit.id = ci.id ); "; $blockImagesQuery = $this->db->query($sql); $imagesData = []; while ($blockImagesRes = $this->db->fetch_assoc($blockImagesQuery)) { $imagesData[] = $blockImagesRes; } return $imagesData; } public function getSubblocks($block_id) { $sql = "SELECT id, title, description, icon, properties FROM constructor_subblocks WHERE block_id = $block_id"; $subQuery = $this->db->query($sql); $subData = []; while ($subRes = $this->db->fetch_assoc($subQuery)) { if (isset($subRes['properties'])) { $subRes['properties'] = json_decode($subRes['properties'], true); } $subData[] = $subRes; } return $subData; } public function getBlog($constructor_id) { $sql = "SELECT * from constructor_id = $constructor_id"; $blogQuery = $this->db->query($sql); $blogData = []; while ($blogRes = $this->db->fetch_assoc($blogQuery)) { $blogData[] = $blogRes; } return $blogData; } public function updatePhotos($block_id, $photoPaths) { foreach ($photoPaths as $photo) { $photoPath = addslashes($photo['path']); $sql = "INSERT INTO constructor_images (url) VALUES ('$photoPath')"; $this->db->query($sql); $image_id = $this->db->insert_id(); $sqlLink = "INSERT INTO constructor_imageable_type (type, model_id, image_id) VALUES ('block', $block_id, $image_id )"; $this->db->query($sqlLink); } } // public function addSubblock($params) // { // $fields = []; // $values = []; // foreach ($params as $key => $value) { // $fields[] = $key; // $values[] = '"' . addslashes($value) . '"'; // } // $fields = implode(', ', $fields); // $values = implode(', ', $values); // $sql = "INSERT INTO constructor_subblocks ($fields) // VALUES ($values)"; // $result = $this->db->query($sql); // return $result; // } }