public function uploadItemResources($aResources,$itemId) { if($aResources != '') { $itemResourceManager = ItemResource::newInstance(); $folder = osc_uploads_path().(floor($itemId/100))."/"; $numImagesItems = osc_max_images_per_item(); $numImages = $itemResourceManager->countResources($itemId); foreach ($aResources['error'] as $key => $error) { if($numImagesItems==0 || ($numImagesItems>0 && $numImages<$numImagesItems)) { if ($error == UPLOAD_ERR_OK) { $tmpName = $aResources['tmp_name'][$key]; $imgres = ImageResizer::fromFile($tmpName); $extension = osc_apply_filter('upload_image_extension', $imgres->getExt()); $mime = osc_apply_filter('upload_image_mime', $imgres->getMime()); // Create normal size $normal_path = $path = $tmpName."_normal"; $size = explode('x', osc_normal_dimensions()); $img = ImageResizer::fromFile($tmpName)->autoRotate()->resizeTo($size[0], $size[1]); if( osc_is_watermark_text() ) { $img->doWatermarkText(osc_watermark_text(), osc_watermark_text_color()); } else if ( osc_is_watermark_image() ){ $img->doWatermarkImage(); } $img->saveToFile($path, $extension); // Create preview $path = $tmpName."_preview"; $size = explode('x', osc_preview_dimensions()); ImageResizer::fromFile($normal_path)->resizeTo($size[0], $size[1])->saveToFile($path, $extension); // Create thumbnail $path = $tmpName."_thumbnail"; $size = explode('x', osc_thumbnail_dimensions()); ImageResizer::fromFile($normal_path)->resizeTo($size[0], $size[1])->saveToFile($path, $extension); $numImages++; $itemResourceManager->insert(array( 'fk_i_item_id' => $itemId )); $resourceId = $itemResourceManager->dao->insertedId(); if(!is_dir($folder)) { if (!@mkdir($folder, 0755, true)) { return 3; // PATH CAN NOT BE CREATED } } osc_copy($tmpName.'_normal', $folder.$resourceId.'.'.$extension); osc_copy($tmpName.'_preview', $folder.$resourceId.'_preview.'.$extension); osc_copy($tmpName.'_thumbnail', $folder.$resourceId.'_thumbnail.'.$extension); if( osc_keep_original_image() ) { $path = $folder.$resourceId.'_original.'.$extension; osc_copy($tmpName, $path); } @unlink($tmpName."_normal"); @unlink($tmpName."_preview"); @unlink($tmpName."_thumbnail"); @unlink($tmpName); $s_path = str_replace(osc_base_path(), '', $folder); $itemResourceManager->update( array( 's_path' => $s_path ,'s_name' => osc_genRandomPassword() ,'s_extension' => $extension ,'s_content_type' => $mime ) ,array( 'pk_i_id' => $resourceId ,'fk_i_item_id' => $itemId ) ); osc_run_hook('uploaded_file', ItemResource::newInstance()->findByPrimaryKey($resourceId)); } } } unset($itemResourceManager); } return 0; // NO PROBLEMS }
public function uploadItemResources($aResources, $itemId) { if ($aResources != '') { $wat = new Watermark(); $itemResourceManager = ItemResource::newInstance(); $numImagesItems = osc_max_images_per_item(); $numImages = $itemResourceManager->countResources($itemId); foreach ($aResources['error'] as $key => $error) { if ($numImagesItems == 0 || $numImagesItems > 0 && $numImages < $numImagesItems) { if ($error == UPLOAD_ERR_OK) { $numImages++; $tmpName = $aResources['tmp_name'][$key]; $itemResourceManager->insert(array('fk_i_item_id' => $itemId)); $resourceId = $itemResourceManager->dao->insertedId(); // Create normal size $normal_path = $path = osc_content_path() . 'uploads/' . $resourceId . '.jpg'; $size = explode('x', osc_normal_dimensions()); ImageResizer::fromFile($tmpName)->resizeTo($size[0], $size[1])->saveToFile($path); if (osc_is_watermark_text()) { $wat->doWatermarkText($path, osc_watermark_text_color(), osc_watermark_text(), 'image/jpeg'); } elseif (osc_is_watermark_image()) { $wat->doWatermarkImage($path, 'image/jpeg'); } // Create preview $path = osc_content_path() . 'uploads/' . $resourceId . '_preview.jpg'; $size = explode('x', osc_preview_dimensions()); ImageResizer::fromFile($normal_path)->resizeTo($size[0], $size[1])->saveToFile($path); // Create thumbnail $path = osc_content_path() . 'uploads/' . $resourceId . '_thumbnail.jpg'; $size = explode('x', osc_thumbnail_dimensions()); ImageResizer::fromFile($normal_path)->resizeTo($size[0], $size[1])->saveToFile($path); if (osc_keep_original_image()) { $path = osc_content_path() . 'uploads/' . $resourceId . '_original.jpg'; move_uploaded_file($tmpName, $path); } $s_path = 'oc-content/uploads/'; $resourceType = 'image/jpeg'; $itemResourceManager->update(array('s_path' => $s_path, 's_name' => osc_genRandomPassword(), 's_extension' => 'jpg', 's_content_type' => $resourceType), array('pk_i_id' => $resourceId, 'fk_i_item_id' => $itemId)); osc_run_hook('uploaded_file', ItemResource::newInstance()->findByPrimaryKey($resourceId)); } } } unset($itemResourceManager); } }
</p> <p> <label for="normal"><?php _e('Normal dimensions'); ?> </label><br /> <input type="text" name="dimNormal" id="normal" value="<?php echo osc_normal_dimensions(); ?> " /> </p> <p> <input id="keep_original_image" type="checkbox" name="keep_original_image" value="1" <?php echo osc_keep_original_image() ? 'checked' : ''; ?> /><label for="keep_original_image"><?php _e('Keep original image'); ?> </label> <br /> <?php _e('Keeping original image files requires extra storage. This option ensures that the original quality of the file is un-altered. Be careful when using this option.'); ?> </p> </fieldset> <fieldset> <legend><?php _e('Watermark settings'); ?>
function doModel() { switch ($this->action) { case 'import': // calling import view $this->doView('tools/import.php'); break; case 'import_post': // calling $sql = Params::getFiles('sql'); //dev.conquer: if the file es too big, we can have problems with the upload or with memory $content_file = file_get_contents($sql['tmp_name']); $conn = getConnection(); if ($conn->osc_dbImportSQL($content_file)) { osc_add_flash_message(_m('Import complete'), 'admin'); } else { osc_add_flash_message(_m('There was a problem importing data to the database'), 'admin'); } $this->redirectTo(osc_admin_base_url(true) . '?page=tools&action=import'); break; case 'images': // calling images view $this->doView('tools/images.php'); break; case 'images_post': $preferences = Preference::newInstance()->toArray(); $path = osc_content_path() . 'uploads/'; $dir = opendir($path); while ($file = readdir($dir)) { if (preg_match('|([0-9]+)_thumbnail\\.png|i', $file, $matches)) { $orig_file = str_replace('_thumbnail.', '_original.', $file); $tmpName = osc_content_path() . 'uploads/' . $orig_file; if (!file_exists($orig_file)) { copy(str_replace('_original.', '.', $tmpName), $tmpName); } // Create thumbnail $thumbnailPath = osc_content_path() . 'uploads/' . $file; $size = explode('x', osc_thumbnail_dimensions()); ImageResizer::fromFile($tmpName)->resizeTo($size[0], $size[1])->saveToFile($thumbnailPath); // Create preview $thumbnailPath = osc_content_path() . 'uploads/' . str_replace('_thumbnail.', '_preview.', $file); $size = explode('x', osc_preview_dimensions()); ImageResizer::fromFile($tmpName)->resizeTo($size[0], $size[1])->saveToFile($thumbnailPath); // Create normal size $thumbnailPath = osc_content_path() . 'uploads/' . str_replace('_thumbnail.', '.', $file); $size = explode('x', osc_normal_dimensions()); ImageResizer::fromFile($tmpName)->resizeTo($size[0], $size[1])->saveToFile($thumbnailPath); if (!osc_keep_original_image()) { @unlink($tmpName); } } } closedir($dir); osc_add_flash_message(_m('Re-generation complete'), 'admin'); $this->redirectTo(osc_admin_base_url(true) . '?page=tools&action=images'); break; case 'upgrade': $this->doView('tools/upgrade.php'); break; case 'backup': $this->doView('tools/backup.php'); break; case 'backup-sql': //databasse dump... if (Params::getParam('bck_dir') != '') { $path = trim(Params::getParam('bck_dir')); if (substr($path, -1, 1) != "/") { $path .= '/'; } } else { $path = osc_base_path(); } $filename = 'OSClass_mysqlbackup.' . date('YmdHis') . '.sql'; switch (osc_dbdump($path, $filename)) { case -1: $msg = _m('Path is empty'); break; case -2: $msg = _m('Could not connect with the database') . '. Error: ' . mysql_error(); break; case -3: $msg = _m('Could not select the database') . '. Error: ' . mysql_error(); break; case -4: $msg = _m('There are no tables to back up'); break; case -5: $msg = _m('The folder is not writable'); break; default: $msg = _m('Backup has been done properly'); break; } osc_add_flash_message($msg, 'admin'); $this->redirectTo(osc_admin_base_url(true) . '?page=tools&action=backup'); break; case 'backup-zip': //zip of the code just to back it up if (Params::getParam('bck_dir') != '') { $archive_name = trim(Params::getParam('bck_dir')); if (substr(trim($archive_name), -1, 1) != "/") { $archive_name .= '/'; } $archive_name = Params::getParam('bck_dir') . '/OSClass_backup.' . date('YmdHis') . '.zip'; } else { $archive_name = osc_base_path() . "OSClass_backup." . date('YmdHis') . ".zip"; } $archive_folder = osc_base_path(); if (osc_zip_folder($archive_folder, $archive_name)) { $msg = _m('Archiving successful!'); } else { $msg = _m('Error, the zip file was not created at the specified directory'); } osc_add_flash_message($msg, 'admin'); $this->redirectTo(osc_admin_base_url(true) . '?page=tools&action=backup'); break; case 'backup_post': $this->doView('tools/backup.php'); break; default: } }
public function uploadItemResources($aResources, $itemId) { if ($aResources != '') { $itemResourceManager = ItemResource::newInstance(); foreach ($aResources['error'] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmpName = $aResources['tmp_name'][$key]; $itemResourceManager->insert(array('fk_i_item_id' => $itemId)); $resourceId = $itemResourceManager->getConnection()->get_last_id(); // Create thumbnail $path = osc_content_path() . 'uploads/' . $resourceId . '_thumbnail.png'; $size = explode('x', osc_thumbnail_dimensions()); ImageResizer::fromFile($tmpName)->resizeTo($size[0], $size[1])->saveToFile($path); // Create normal size $path = osc_content_path() . 'uploads/' . $resourceId . '.png'; $size = explode('x', osc_normal_dimensions()); ImageResizer::fromFile($tmpName)->resizeTo($size[0], $size[1])->saveToFile($path); if (osc_keep_original_image()) { $path = osc_content_path() . 'uploads/' . $resourceId . '_original.png'; move_uploaded_file($tmpName, $path); } $s_path = 'oc-content/uploads/'; $resourceType = 'image/png'; $itemResourceManager->update(array('s_path' => $s_path, 's_name' => osc_genRandomPassword(), 's_extension' => 'png', 's_content_type' => $resourceType), array('pk_i_id' => $resourceId, 'fk_i_item_id' => $itemId)); } } unset($itemResourceManager); } }
public function uploadItemResources($aResources, $itemId) { if ($aResources != '') { $wat = new Watermark(); $itemResourceManager = ItemResource::newInstance(); $numImagesItems = osc_max_images_per_item(); $numImages = $itemResourceManager->countResources($itemId); foreach ($aResources['error'] as $key => $error) { if ($numImagesItems == 0 || $numImagesItems > 0 && $numImages < $numImagesItems) { if ($error == UPLOAD_ERR_OK) { $freedisk = 4 * osc_max_size_kb() * 1024; if (function_exists('disk_free_space')) { $freedisk = @disk_free_space(osc_content_path() . 'uploads/'); } if ($freedisk != false) { $tmpName = $aResources['tmp_name'][$key]; $total_size = 0; // Create normal size $normal_path = $path = $tmpName . "_normal"; $size = explode('x', osc_normal_dimensions()); ImageResizer::fromFile($tmpName)->resizeTo($size[0], $size[1])->saveToFile($path); if (osc_is_watermark_text()) { $wat->doWatermarkText($path, osc_watermark_text_color(), osc_watermark_text(), 'image/jpeg'); } elseif (osc_is_watermark_image()) { $wat->doWatermarkImage($path, 'image/jpeg'); } $sizeTmp = filesize($path); $total_size += $sizeTmp !== false ? $sizeTmp : osc_max_size_kb() * 1024; // Create preview $path = $tmpName . "_preview"; $size = explode('x', osc_preview_dimensions()); ImageResizer::fromFile($normal_path)->resizeTo($size[0], $size[1])->saveToFile($path); $sizeTmp = filesize($path); $total_size += $sizeTmp !== false ? $sizeTmp : osc_max_size_kb() * 1024; // Create thumbnail $path = $tmpName . "_thumbnail"; $size = explode('x', osc_thumbnail_dimensions()); ImageResizer::fromFile($normal_path)->resizeTo($size[0], $size[1])->saveToFile($path); $sizeTmp = filesize($path); $total_size += $sizeTmp !== false ? $sizeTmp : osc_max_size_kb() * 1024; if (osc_keep_original_image()) { $sizeTmp = filesize($tmpName); $total_size += $sizeTmp !== false ? $sizeTmp : osc_max_size_kb() * 1024; } if ($total_size <= $freedisk) { $numImages++; $itemResourceManager->insert(array('fk_i_item_id' => $itemId)); $resourceId = $itemResourceManager->dao->insertedId(); osc_copy($tmpName . '_normal', osc_content_path() . 'uploads/' . $resourceId . '.jpg'); osc_copy($tmpName . '_preview', osc_content_path() . 'uploads/' . $resourceId . '_preview.jpg'); osc_copy($tmpName . '_thumbnail', osc_content_path() . 'uploads/' . $resourceId . '_thumbnail.jpg'); if (osc_keep_original_image()) { $path = osc_content_path() . 'uploads/' . $resourceId . '_original.jpg'; move_uploaded_file($tmpName, $path); } $s_path = 'oc-content/uploads/'; $resourceType = 'image/jpeg'; $itemResourceManager->update(array('s_path' => $s_path, 's_name' => osc_genRandomPassword(), 's_extension' => 'jpg', 's_content_type' => $resourceType), array('pk_i_id' => $resourceId, 'fk_i_item_id' => $itemId)); osc_run_hook('uploaded_file', ItemResource::newInstance()->findByPrimaryKey($resourceId)); } else { return 2; // IMAGES ARE BIGGER THAN SPACE } } else { return 1; // NO SPACE LEFT } } } } unset($itemResourceManager); } return 0; // NO PROBLEMS }