public static function createPage($data) { $db = JO_Db::getDefaultAdapter(); $db->insert('pages', array('date_added' => new JO_Db_Expr('NOW()'), 'date_modified' => new JO_Db_Expr('NOW()'), 'parent_id' => (int) (isset($data['parent_id']) ? $data['parent_id'] : 0), 'status' => (int) $data['status'], 'in_footer' => (int) $data['in_footer'], 'title' => $data['title'], 'description' => $data['description'], 'meta_title' => $data['meta_title'], 'meta_description' => $data['meta_description'], 'meta_keywords' => $data['meta_keywords'])); $page_id = $db->lastInsertId(); if (isset($data['keyword']) && $data['keyword']) { self::generatePage($page_id, $data['keyword']); } else { self::generatePage($page_id); } $temporary_images = JO_Session::get('temporary_images'); if ($temporary_images && is_array($temporary_images)) { $page_info = self::getPage($page_id); if ($page_info) { $gallery_path = '/gallery/' . date("Y/m/", strtotime($page_info['date_added'])); $upload_folder = realpath(BASE_PATH . '/uploads'); $upload_folder .= $gallery_path; foreach ($temporary_images as $image) { $image_name = basename($image['image']); if (!file_exists($upload_folder) || !is_dir($upload_folder)) { mkdir($upload_folder, 0777, true); } if (copy(BASE_PATH . '/uploads/' . $image['image'], $upload_folder . $image_name)) { $image_id = Model_Gallery::createImage(array('gallery_id' => $page_id, 'controller' => 'pages', 'image' => $gallery_path . $image_name)); if ($image_id && isset($image['title'])) { Model_Gallery::updateImageInfo($image_id, $image['title']); } } $mi = new Helper_Images(); $mi->deleteImages($image['image']); } } JO_Session::clear('temporary_images'); } return $page_id; }
public function uploadImagesAction() { if (!WM_Users::allow('create', $this->getRequest()->getController())) { $this->forward('error', 'noPermission'); } $gallery_id = (int) $this->getRequest()->getRequest('id'); $page_info = Model_Pages::getPage($gallery_id); $image = $this->getRequest()->getFile('Filedata'); if (!$image && $this->view->error) { $this->view->error = $this->translate('Invalid file'); } if ($page_info) { $gallery_path = '/gallery/' . date("Y/m/", strtotime($page_info['date_added'])); } else { $gallery_path = '/temp/gallery/'; } $upload_folder = realpath(BASE_PATH . '/uploads'); $upload_folder .= $gallery_path; $upload = new JO_Upload(); $upload->setFile($image)->setExtension(array('.jpg', '.jpeg', '.png', '.gif'))->setUploadDir($upload_folder); $new_name = md5(time() . serialize($image)); if ($upload->upload($new_name)) { $info = $upload->getFileInfo(); if ($info) { $file_path = $gallery_path . $info['name']; $data = array('gallery_id' => $gallery_id, 'image' => $file_path, 'controller' => 'pages'); if ($page_info) { $insert_id = Model_Gallery::createImage($data); if ($insert_id) { $model_images = new Helper_Images(); $this->view->id = $insert_id; $this->view->thumb = $model_images->resize($file_path, 100, 100); $this->view->image = $this->getRequest()->getBaseUrl() . 'uploads' . $file_path; } else { $this->view->error = $this->translate('There was an error record. Try Again '); @unlink($upload_folder . $info['name']); } } else { $temporary_images = JO_Session::get('temporary_images'); if (!is_array($temporary_images)) { $temporary_images = array(); } $temporary_images[] = $data; JO_Session::set('temporary_images', $temporary_images); $model_images = new Helper_Images(); $this->view->id = count($temporary_images) - 1; $model_images = new Helper_Images(); $this->view->thumb = $model_images->resize($file_path, 100, 100); $this->view->image = $this->getRequest()->getBaseUrl() . 'uploads' . $file_path; } } else { $this->view->error = $this->translate('An unknown error'); } } else { $this->view->error = $upload->getError(); } $response = $this->getResponse(); $response->addHeader('Cache-Control: no-cache, must-revalidate'); $response->addHeader('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); $response->addHeader('Content-type: application/json'); echo $this->renderScript('json'); }