Вы не зашли.
Необходим плагин со следующими возможностями:
На странице добавления новости дополнительная строка + кнопка. Добавляем в строку ссыль на ютуб-видео, жмём на кнопку - плагин (скрипт) тянет с ютуба превью картинку и изменяет её размер (на заданный в скрипте) и название (название статьи транслитом). Учитывая, что иногда бывают сбои во время загрузки, то после нажатия кнопки нужна текстовая инфа: превью создано/ошибка загрузки, повторите попытку.
Нужны 3 переменные, которые будут использоваться в шаблонах темы:
вывод картинки (с title и alt)
ссылка на созданную картинку (на веб-сервере сайта)
вывод самого видео с заданными размерами (размер задаётся в коде плагина)
Ну как-то так, знаю, что всё это есть в открытом доступе в инете, но не вместе, а по частям. Знаний, чтобы соединить всё во едино и создать нормальный плагин нет. Поэтому готов заказать. Интересует цена и сроки.
Не в сети
Вопросы конерктено по реализации:
1. Загрузили превью, но не добавили новость т.е. при таком подходе изображение остается не использованным?
2. Если заголовок новости не заполнен, то что выводить в этом случае?
3. Чем отличаются 1 и 2 переменные?
4. Вывод видео, это iframe от youtube что ли или как-то сливать видео и использовать свой плеер?
5. При редактировании новости нужна возможность пересоздавать превью?
Изменено infinity237 (2013-11-04 20:07:25)
Не в сети
Вопросы конерктено по реализации:
1. Загрузили превью, но не добавили новость т.е. при таком подходе изображение остается не использованным?
2. Если заголовок новости не заполнен, то что выводить в этом случае?
3. Чем отличаются 1 и 2 переменные?
4. Вывод видео, это iframe от youtube что ли или как-то сливать видео и использовать свой плеер?
5. При редактировании новости нужна возможность пересоздавать превью?
1. Сразу уточню, точно не изучил пока функционал системы и не знаю, есть ли возможности "черновиков" и "автосохранения". Если черновик или автосейв есть и новость создана, но не опубликована, но ИМГ цеплять за новостью, если же новость просто уходит в небытие, то ИМГ лучше стерать с сервера.
2. В метаданных (тайтл и альт) ничего, а имя файла оставлять дефолтным (которое было при скачивании). Такая ситуация возможна только, если видео добавлять до заполнения названия новости, думаю это человеческий фактор, которого можно избежать.
3. Первая переменная выводит html-код изображения с метаданными к нему, вторая выводит только ссылку на изображение.
4. Стандартные средства ютуба: iframe или object
5. Не помешала бы возможность ручного передобавления изображения, через медиа библиотеку или проводник + если заменил ссылку на видео и нажал на кнопку весь описанный цикл выполнился заново с затиранием (пересохранением) данных прошлого цикла. Первая и вторая функции не должны быть связаны, т.е. может захочу только имагу заменить вручную, а может и всё видео.
Не в сети
1. Сразу уточню, точно не изучил пока функционал системы и не знаю, есть ли возможности "черновиков" и "автосохранения". Если черновик или автосейв есть и новость создана, но не опубликована, но ИМГ цеплять за новостью, если же новость просто уходит в небытие, то ИМГ лучше стерать с сервера.
Архитектура CMS не предусматривает автосохранения и контроля использования изображений, поэтому реализация данного функционала невозможна без доработки CMS.
Не в сети
Архитектура CMS не предусматривает автосохранения и контроля использования изображений, поэтому реализация данного функционала невозможна без доработки CMS.
Ок, этот пункт можно опустить. Ничего не будет происходить с имг.
Так что, взяться можете?
Не в сети
Вообщем как-то так.
Не в сети
infinity237, работает , кроче одно момента: почему-то ресайза нет, как я понял из кода, за изменение размера отвечает:
function img_resize($src, $dest, $width, $height, $rgb=0xFFFFFF, $quality=100)
Но почему-то, когда я в ней прописываю нужные мне значения $width=220, $height=124, система никак не реагирует и продолжает тупо грузить ИМГ стандартного размера.
Есть идеи из-за чего такая шляпа?
Кстати, можно организовать обрезку (имеются точные и неизменяемые значения что откуда срезать) и ресайз?
Не в сети
В videothumb.class.php есть строка:
//$this->img_resize($this->config['imagesPath'] . $filename, $this->config['imagesPath'] . $filename, 100, 60);
Если её раскоментировать, то будет ресайзить, последние 2 параметра - указывают размеры.
Не в сети
В videothumb.class.php есть строка:
//$this->img_resize($this->config['imagesPath'] . $filename, $this->config['imagesPath'] . $filename, 100, 60);
Если её раскоментировать, то будет ресайзить, последние 2 параметра - указывают размеры.
спасибо )
А можете подключить обрезку? Скрин с ютуба имеет сверху и снизу чёрную зону, можно ли обрезать эти зоны, а потом уже ресайзить?
Не в сети
infinity237 пишет:В videothumb.class.php есть строка:
//$this->img_resize($this->config['imagesPath'] . $filename, $this->config['imagesPath'] . $filename, 100, 60);
Если её раскоментировать, то будет ресайзить, последние 2 параметра - указывают размеры.
спасибо )
А можете подключить обрезку? Скрин с ютуба имеет сверху и снизу чёрную зону, можно ли обрезать эти зоны, а потом уже ресайзить?
Сколько пикселей обрезать?
Не в сети
В videothumb.class.php в класс добавить:
function img_crop($file_input, $file_output, $crop = 'square', $percent = false) {
list($w_i, $h_i, $type) = getimagesize($file_input);
if (!$w_i || !$h_i) {
// echo 'Невозможно получить длину и ширину изображения';
return false;
}
$types = array('','gif','jpeg','png');
$ext = $types[$type];
if ($ext) {
$func = 'imagecreatefrom'.$ext;
$img = $func($file_input);
} else {
echo 'Некорректный формат файла';
return;
}
if ($crop == 'square') {
$min = $w_i;
if ($w_i > $h_i) $min = $h_i;
$w_o = $h_o = $min;
} else {
list($x_o, $y_o, $w_o, $h_o) = $crop;
if ($percent) {
$w_o *= $w_i / 100;
$h_o *= $h_i / 100;
$x_o *= $w_i / 100;
$y_o *= $h_i / 100;
}
if ($w_o < 0) $w_o += $w_i;
$w_o -= $x_o;
if ($h_o < 0) $h_o += $h_i;
$h_o -= $y_o;
}
$img_o = imagecreatetruecolor($w_o, $h_o);
imagecopy($img_o, $img, 0, 0, $x_o, $y_o, $w_o, $h_o);
if ($type == 2) {
imagejpeg($img_o,$file_output,100);
} else {
$func = 'image'.$ext;
$func($img_o,$file_output);
}
imagedestroy($img);
imagedestroy($img_o);
return true;
}
Перед вызовом:
$this->img_resize($this->config['imagesPath'] . $filename, $this->config['imagesPath'] . $filename, 100, 60);
Добавить:
$this->img_crop($this->config['imagesPath'] . $filename, $this->config['imagesPath'] . $filename, array(0, 45, -45, -45));
Или просто перезалить.
Изменено infinity237 (2014-02-06 23:59:36)
Не в сети
Не в сети
Перезалил.
спасибо. сработало.
но появился ещё один косяк
обрезка стоит 45, и последующее уменьшение до размеров 220 на 124, режет и уменьшает без проблем, но на выходе почему-то на получившемся мелком изображении снизу появляется белая линия размером в 1 пиксель, будто при ресайзе возникла пустота и скрипт залил её этим цветом (который указан в коде). Но дело в том, что я глянул в фотошопе, пропорции сохранены 480х270 -> 220х124 , да на самом ютубе пропорции такие же. Что не так?
И ещё вопрос, а что означает этот кусок кода:?
if ($w_o <= 0) $w_o += $w_i;
$w_o -= $x_o;
if ($h_o <= 0) $h_o += $h_i;
$h_o -= $y_o;
какие-то условия связанные с соотношением сторон?
Не в сети
Перезалил. Теперь полоса в 1 пиксель должна пропасть.
Это для определение размеров изображения после обрезания.
Не в сети
о да, теперь то что нужно.
И ещё, наверно последнее, можно сделать, чтобы изображения была 2: обрезанное и обрезанное+уменьшенное. В названии full и pre соответственно. Или лучше большие в одной папке, мелке в другой. Ну и у каждой картинки свои две переменные: html-код и url
Не в сети
Перезалил.
Был изменен формат хранения данных в БД. Раньше там хранился полный путь, теперь хранится только имя файла.
В связи с этим требуется поменять JS код в add.tpl и edit.tpl. Подробнее в readme.
Не в сети
плагин совместим с 0.9.4.RC1 + GIT 20150123?
Не в сети