Witam serdecznie,
Mam pytanko. Mam moduł ładowania zdjęć do folderu.
Dodając aktualności na stronie, stworzyłem skrypt który ładuje plik na serwer do kazdej aktualności.
Sciezka ładowania pliku:
http://domena.pl/_upload/news/2015/08/02/zdjecie.jpgChcialbym teraz aby wyswietlał mi to zdjecie obok tego skryptu:
<div class="box gray">
<div class="box-header">
<?php echo __
('Aktualności') ?></div>
<div class="content">
<?php foreach ($news as $n): ?>
<div>
<a href="
<?php echo Route
::url('site_news/frontend/news/show', array('id' => $n->news_id, 'title' => url
::title($n->news_title))) ?>">
<?php echo $n->news_title ?></a> (
<?php echo date::my($n->news_date_added, 'news') ?>)
</div>
<?php endforeach; ?>
</div>
</div>
Nie wiem jak to wpleść z racji tego, iż zdjecie dodaje po folderach.
katalog/rok/miesiac/dzien/zdjecie
Czy moglby mi ktos pomoc? Z góry dziękuję
Dokładam plik img.php dla rozpoznania
<?php defined('SYSPATH') or
die('No direct script access.'); /**
* @author AkoSoft Team <biuro@akosoft.pl>
* @link <a href="http://www.akosoft.pl" target="_blank">http://www.akosoft.pl</a>
* @copyright Copyright (c) 2012, AkoSoft
*
* @package AkoAd
* @version 3.0.0
*/
class img {
public static function process
($place, $types, $img_id, $img_date, $uploaded_file_path) {
$config = Kohana::$config->load('img.types');
{
if ($types == 'all')
{
}
else
{
}
}
{
$types[] = 'original';
}
$dir = DOCROOT
. Upload
::$default_directory . DIRECTORY_SEPARATOR
. $place . date('/Y/m/d/', $img_date);
{
if ( ! mkdir($dir, 0777
, true)) {
throw new Exception("Directory $dir cannot be create!");
}
}
$uploaded['image_width'] = $image_size[0];
$uploaded['image_height'] = $image_size[1];
foreach ($types as $type)
{
if ( ! isset($config[$type])) throw new Exception('[img::process] Check configuration!');
$image = Image::factory($uploaded_file_path);
// wymiary
$width = $config[$type]['width'];
$height = $config[$type]['height'];
if ( ! empty($config[$type]['watermark'])) {
self::_do_watermark($image);
}
if ($config[$type]['resize'] && ($uploaded['image_width'] > $width || $uploaded['image_height'] > $height) )
{
// jesli ma byc obciety zmniejsz wg krotszego boku
if ($config[$type]['crop'])
{
$image->resize($width, $height, ($uploaded['image_width'] > $uploaded['image_height'] ? Image::HEIGHT : Image::WIDTH));
}
// zmniejsz po dluzszym boku tylko te zdjecia ktore maja wiekszy wymiar
elseif ($width == $height)
{
// dluzsza szerokosc
if ($uploaded['image_width'] > $uploaded['image_height'])
{
if ($uploaded['image_width'] > $width)
{
$image->resize($width, $height, Image::WIDTH);
}
}
// dluzsza wysokosc
elseif ($uploaded['image_width'] < $uploaded['image_height'])
{
if ($uploaded['image_height'] > $height)
{
$image->resize($width, $height, Image::HEIGHT);
}
}
// rowne dlugosci bokow
else
{
$image->resize($width, $height, Image::AUTO);
}
}
// ustaw wg rozmiaru z konfiguracji
else
{
$image->resize($width, $height, Image::AUTO);
}
}
// przytnij
if ($config[$type]['crop'])
{
$image->crop($width, $height);
}
if ( ! empty($config[$type]['extension'])) {
$extension = $config[$type]['extension'];
}
else
{
$extension = 'jpg';
}
//set background color for image types not supporting transparency
if($extension != 'png')
{
$image->background('#fff');
}
// zapisz
$file_name = $img_date.'_'.$img_id.'_'.$config[$type]['flag'] . '.' . $extension;
if (isset($config[$type]['quality'])) {
$image->save($dir.$file_name, $config[$type]['quality']);
}
else
{
$image->save($dir.$file_name);
}
}
return TRUE;
}
protected
static function _do_watermark
(Image
& $image) {
if (!Kohana::$config->load('global.site.watermark.enabled')
|| ! file_exists(DOCROOT
. '_upload' . DIRECTORY_SEPARATOR
. 'watermark.png') )
{
return;
}
$opacity = Kohana::$config->load('global.site.watermark.opacity');
$placement = Kohana::$config->load('global.site.watermark.placement');
$watermark = Image::factory(DOCROOT . '_upload' . DIRECTORY_SEPARATOR . 'watermark.png');
$watermark->resize($image->width/4, $image->height/4);
if ($placement == 'top_left')
{
$image->watermark($watermark, FALSE, FALSE, $opacity);
}
elseif ($placement == 'top_right')
{
$image->watermark($watermark, $image->width - $watermark->width - 5, FALSE, $opacity);
}
elseif ($placement == 'bottom_left')
{
$image->watermark($watermark, FALSE, TRUE, $opacity);
}
elseif ($placement == 'bottom_right')
{
$image->watermark($watermark, $image->width - $watermark->width - 5, TRUE, $opacity);
}
elseif ($placement == 'top_center')
{
$image->watermark($watermark, floor( ( $image->width - $watermark->width ) / 2
), FALSE, $opacity); }
elseif ($placement == 'bottom_center')
{
$image->watermark($watermark, floor( ( $image->width - $watermark->width ) / 2
), TRUE, $opacity); }
}
public static function path_uri
($place, $type, $img_id, $img_date) {
$config = Kohana::$config->load('img.types');
$url = Upload
::$default_directory . '/' . $place . '/' . date('Y/m/d', $img_date) . '/' . $img_date . '_' . $img_id . '_' . $config[$type]['flag'] . '.' . ( ! empty($config[$type]['extension']) ?
$config[$type]['extension'] : 'jpg'); return $url;
}
public static function path
($place, $type, $img_id, $img_date) {
$base_url = url::base(TRUE, FALSE);
$url = $base_url . self::path_uri($place, $type, $img_id, $img_date);
return $url;
}
public static function image_exists
($place, $type, $img_id, $img_date) {
$config = Kohana::$config->load('img.types');
return file_exists(DOCROOT
. Upload
::$default_directory . '/' . $place . '/' . date('Y/m/d', $img_date) . '/' . $img_date . '_' . $img_id . '_' . $config[$type]['flag'] . '.' . ( ! empty($config[$type]['extension']) ?
$config[$type]['extension'] : 'jpg')); }
public static function delete
($place, $image_id, $image_date) {
$types = Kohana::$config->load('img.types');
foreach ($types as $type => $config)
{
$path = self::disk_path($place, $image_id, $image_date, $type);
}
}
public static function disk_path
($place, $image_id, $image_date, $type) {
$config = Kohana::$config->load('img.types.' . $type);
{
throw new Exception("Bad type $type!");
}
$path = DOCROOT
. Upload
::$default_directory . '/' . $place . '/' . date('Y/m/d', $image_date) . '/' . $image_date . '_' . $image_id . '_' . $config['flag'] . '.' . ( ! empty($config['extension']) ?
$config['extension'] : 'jpg'); return $path;
}
{
$use_imagick = FALSE;
try
{
$use_imagick = !Image_GD::is_bundled() && Image_Imagick::check();
}
catch(Exception $ex)
{
Kohana::$log->add(Log::WARNING, $ex->getMessage())
->write();
}
if($use_imagick)
{
Image::$default_driver = 'imagick';
}
else
{
Image::$default_driver = 'GD';
}
}
public static function check_watermark
() {
try {
return Image_GD::is_bundled() || Image_Imagick::check();
}
catch(Exception $ex)
{
Kohana::$log->add(Log::WARNING, 'Cannot use image watermark feature!')
->add(Log::WARNING, $ex->getMessage())
->write();
return FALSE;
}
}
}
?>
Ten post edytował Tomek1111 2.08.2015, 12:58:58