public function index($product) { // Get the product $product = $this->products_m->get_product($product); // Check it exists if ($product) { // General information $this->data->product = $product; $this->data->category = $this->products_m->get_category($product); $this->data->folder = '/' . UPLOAD_PATH . 'products/' . $this->data->product['id'] . '/'; // Fire event Events::trigger('product_viewed', array('id' => $product['id'])); // Images $folder = $this->products_m->get_file_folder_by_slug($product['slug']); $images = Files::folder_contents($folder->id); $this->data->images = $images['data']['file']; // Add key for easy limits, main, etc. foreach ($this->data->images as $key => $image) { $this->data->images[$key]->position = $key; } // Breadcrumbs $cat_tree = $this->products_m->get_cat_path($this->data->category, true); $this->template->set_breadcrumb('Home', '/home'); foreach ($cat_tree as $key => $cat) { if ($key == 0) { $this->data->parent = $cat['id']; } $this->template->set_breadcrumb($cat['title'], '/category/' . $cat['slug']); } // Build Page $this->template->set_breadcrumb($this->data->product['title'], '/product/' . $this->data->product['slug'])->title($this->data->product['title'])->set($this->data); // Fire events Events::trigger('page_build', $this->template); // Build page $this->template->build('product'); } else { set_status_header(404); echo Modules::run('pages/_remap', '404'); } }
/** * Get all files and folders within a folder * * Grabs the parent id from the POST data. */ public function folder_contents() { $parent = $this->input->post('parent'); echo json_encode(Files::folder_contents($parent)); }
/** * Deletes a product, the images and Files folder related to it. * * @param integer $id The Product ID to delete * @return boolean TRUE or FALSE on success of failure * @access public */ public function delete_product($id) { $product = $this->get_product($id); if ($this->db->delete('firesale_products', array('id' => $id))) { // Remove files folder if ($product !== FALSE) { $folder = $this->get_file_folder_by_slug($product->slug); if ($folder != FALSE) { $images = Files::folder_contents($folder->id); $images = $images['data']['file']; foreach ($images as $image) { Files::delete_file($image->id); } Files::delete_folder($folder->id); } } return TRUE; } else { return FALSE; } }
public function create($id = NULL, $row = NULL) { // Check for post data if (substr($this->input->post('btnAction'), 0, 4) == 'save') { // Variables $input = $this->input->post(); $skip = array('btnAction'); $extra = array('return' => '/admin/firesale/products/edit/-id-', 'success_message' => lang('firesale:prod_' . ($id == NULL ? 'add' : 'edit') . '_success'), 'error_message' => lang('firesale:prod_' . ($id == NULL ? 'add' : 'edit') . '_error')); // Check button action for return location if ($this->input->post('btnAction') == 'save_exit') { $extra['return'] = '/admin/firesale/products'; } // Manually update categories // Multiple tends not to do it if ($id !== NULL) { $this->products_m->update_categories($id, $this->stream->id, $input['category']); unset($_POST['category']); } // Added to seperate if since above will be removed for 2.2 if ($id !== NULL) { $data = array_merge(array('id' => $id, 'stream' => 'firesale_products'), $input); Events::trigger('product_updated', $data); } } else { $input = FALSE; $skip = array(); $extra = array(); } // Get the stream fields $fields = $this->fields->build_form($this->stream, $id == NULL ? 'new' : 'edit', $id == NULL ? $input : $row, FALSE, FALSE, $skip, $extra); // Assign variables if ($row !== NULL) { $this->data = $row; } $this->data->id = $id; $this->data->fields = fields_to_tabs($fields, $this->tabs); $this->data->tabs = array_keys($this->data->fields); // Get current images if ($row != FALSE) { $folder = $this->products_m->get_file_folder_by_slug($row->slug); $images = Files::folder_contents($folder->id); $this->data->images = $images['data']['file']; } // Add metadata $this->template->append_js('module::jquery.filedrop.js')->append_js('module::upload.js')->append_metadata($this->load->view('fragments/wysiwyg', NULL, TRUE)); // Add page data $this->template->title(lang('firesale:title') . ' ' . lang('firesale:prod_title_' . ($id == NULL ? 'create' : 'edit')))->set($this->data)->enable_parser(true); // Fire events Events::trigger('page_build', $this->template); // Build page $this->template->build('admin/products/create'); }