1

Тема: Мод Elektra File Upload

Мод Elektra File Upload
Альтернатива Attachments mod и подобным.

Особенности:
- главный скрипт администрирования сделан как часть админки, а не как плагин. в меню администратора теперь есть пункт "Files"

- в свойства групп и в права на форумы добавлены поля про upload/download. вся настройка прав разложена на три раздела админки:
# Files - самые базовые настройки. типы файлов, предельный размер, количество вложений на одно сообщение и различные проверки для файлов
# Groups - права по-умолчанию для групп - возможность download, upload и лимит upload,
# Forums - поправки в правах для конкретного форума, если не указаны действуют права из Groups

- в профиле пользователя админ может редактировать поле "бонус" - персональная добавка на upload

- есть карта форума с темами/вложениями. из профиля можно вызвать карту файлов данного пользователя

- прямого доступа к файлам не предусматривается, только через скрипт download.php. он контролирует права и добавляет счетчик загрузок

- при наезде мышкой на вложение появляется popup-окно с некоторой статистикой. у графических файлов в этом окне появляется превьюшка. popup можно отключить в админке

- post и edit имеют панель инструментов, что-то вроде Modern BB Code но с графическими кнопками

- в архиве английский и русский (1251) языки


у меня не было времени писать readme. даю весь форум целиком. установка такая -
сначала запустить install.php как обычно,
затем install_mod.php,
потом заглянуть в админку/группы и дать права members и moderators. по-умолчанию прав ни у кого нет!
обратить внимание на новые файлы map.php, filemap.php, admin_files.php, download.php

Это превью версия
полный архив здесь: Elektra File Upload (preview) 300 K
можно по-другому - взять стандартный голый PunBB 1.2.14 с русскими файлами с punbb.org
и накатить только то, что отличается и чего не хватает: Elektra File Upload (preview) diff 116 K.
обновлено 30.03.07 06:40 MSK

update 29.03.07: архив исправлен. те, кто уже скачал, могут докачать пару измененных файлов отсюда 8 K

скриншоты (маленькие):
#1 - кусок админки - Files
#2 - кусок админки - Forums
#3 - карта вложений с popup-окном
#4 - так выглядят вложения в post.php
#5 - профиль пользователя глазами рядового пользователя или гостя
#6 - профиль пользователя глазами админа
#7 - viewtopic с popup-окном


Пробуйте. Мне важно знать ваше мнение. Ищите слабые места, высказывайте пожелания.

update 13.05.07 ВНИМАНИЕ! найдена ошибка в дистрибутиве. архив оставляю как есть, а исправление в посте #36 этой темы
update 16.05.07 в русском языковом файле fileup.php пропущена 1 строка. добавьте самостоятельно:

'Personal stats'        => 'Ститистика: ваша квота=%d+%d, всего загружено=%d, в этот форум=%d',

------------------------
Самая свежая версия на сегодня: fu_1_preview_070601.zip
обновления ищите здесь:
www.punbb-hosting.com/forums/art … .php?id=16

Сайт artoodetoo

Поделиться

2

Re: Мод Elektra File Upload

В этом архиве изменения закомментированы? Я к тому, что поскольку нет ридми, то хотя бы выдернуть изменения.

Сайт hcs

Поделиться

3

Re: Мод Elektra File Upload

комменты в тексте конечно есть, но выделить изменения будет трудно. без патчера или winmerge не разберешся smile

если хочется накатить мод на свою сборку, то вот общие советы:

- скин blue_lagon случайно прилип к архиву - он не нужен в принципе smile единственное мое в стилях - это
    style/imports/elektra.css
скопировать его к себе

- я по-возможности выделял новое в отдельные файлы - их надо просто скопировать.
это
    install_mod.php
    map.php,
    filemap.php,
    admin_files.php,
    download.php,
    js/*  (кроме image_upload.js - его удалить!),
    upload/*,
    img/thumb/*,
    img/*_icon.gif,
    img/post/*,
    include/file_upload.php ,
    include/attach/*,

- файлы
    admin_groups.php,
    admin_forums.php и
    profile.php
лучше cкопировать целиком.  не могу вспомнить чтобы что-то еще могло менять эти файлы, кроме PMS. может быть проще будет накатить PMS поверх моего profile?

- файлы
    header.php,
    iclude/functions.php и
    include/common.php
менялись незначительно. вроде десяток строк всего. в винде можно сделать FC /L {файлы} и все будет понятно.

- с чем будут реальные трудности, так это с
    viewtopic.php,
    post.php и
    edit.php
придется применить какой-то патчер, чтобы выделить что менялось. менялось много!

Сайт artoodetoo

Поделиться

4

Re: Мод Elektra File Upload

Ладно сверим с оригиналом

Сайт hcs

Поделиться

5 (26.03.2007 20:52 отредактировано niikto)

Re: Мод Elektra File Upload

попробую, может разберусь, хотя куда там.. даж в аттач-моде сижу уже скоко.. sad


winMerge снова скачал

Добавлено спустя     8 минут   28 секунд:
у меня вопрос - а превьюха вылазит тока когда на файл ткнёшь?
или всё ж можно сделать чтобы превьюха вставлялась в сообщение / или в низ сообщение (имею ввиду картинку 100х100 пикселей)

Сайт niikto

Поделиться

6

Re: Мод Elektra File Upload

niikto, мод большой, но для админа он точно проще, чем Attachments
все новое в администрировании очень похоже на "родное". для программера - в чем-то проще, в чем-то сложнее.

тут палка о двух концах - когда новый функционал выносишь в отдельные файлы для include - упрощается модификация форума, но сложнее проследить где какая переменная установилась. я пытаюсь найти золотую середину smile

чтобы понять что к чему, надо сначала разобраться в механизме прав punbb.

Добавлено спустя     2 минуты   11 секунд:

niikto пишет:

у меня вопрос - а превьюха вылазит тока когда на файл ткнёшь?
или всё ж можно сделать чтобы превьюха вставлялась в сообщение / или в низ сообщение (имею ввиду картинку 100х100 пикселей)

не когда "ткнешь", а когда "наведешся" на файл. нет, в самом сообщении она не появляется, в этом отличие от PE. экономлю траффик пользователя smile
я собирался добавить новый тег для вставки превьюшек, но не успел smile будет что-то вроде ::thumb####:: - кликабельный тумбнейл

Сайт artoodetoo

Поделиться

7

Re: Мод Elektra File Upload

кстати да, имхо превьюха лучше не попапом при овере, а сразу в посте, причем чтобы это было отключабельно в профиле smile

Сайт hcs

Поделиться

8

Re: Мод Elektra File Upload

hcs пишет:

кстати да, имхо превьюха лучше не попапом при овере, а сразу в посте

ну фиг знает, на всех не угодишь. гляньте мои галереи на master.1wd.ru (это предыдущий File Upload в работе + kind)
меня смущает, что в форуме-галерее картинка присутствует два раза в одном посте - превьюха + тумбочка.

Сайт artoodetoo

Поделиться

9

Re: Мод Elektra File Upload

artoodetoo пишет:

прямого доступа к файлам не предусматривается, только через скрипт download.php. он контролирует права и добавляет счетчик загрузок

Т.е. никакой докачки или многопоточной загрузки.

Поделиться

10

Re: Мод Elektra File Upload

Dexus пишет:

Т.е. никакой докачки или многопоточной загрузки.

это все-таки форум с возможностью аттачей, а не файловый архив. на этом этапе докачка меня не занимает.
к томуже я не пока знаю как совместить права и счетчики с прямыми ссылками. если знаешь - подскажи, пожалуйста.

Сайт artoodetoo

Поделиться

11

Re: Мод Elektra File Upload

в ближних планах:
- запрет popup в профиле пользователя,
- тег, скажем ::thumb###:: или ::attach###::, в попапе хинт для этого тега. обработка на стадии preparse
- логи загрузок и вывод статистики

в даааальних планах: написание readme smile очень хлопотное дело

[size=16]братья и сестры! smile прошу потестировать мод не дожидаясь светлого будущего. только с вашей помощью я смогу довести его до товарного вида.[/size]

Сайт artoodetoo

Поделиться

12

Re: Мод Elektra File Upload

hcs пишет:

кстати да, имхо превьюха лучше не попапом при овере, а сразу в посте, причем чтобы это было отключабельно в профиле smile

всё же лучше иметь выбор!
я просто сперва не понял!

теперь ясно, Artoodetoo, позволь снова выразить восхищение твоими задумками!

я так понял - щас при наведении на ссылку на вложеный файл, толи аяксом, толи попапом вылазит тумбнайл! это супер! а я то думал надо нажимать.

А если ещё и тег появится - который позволит как в модификации Dexus'а - ВСТАВЛЯТЬ прикреплённый файл в ТЕЛО сообщения (ТОЛЬКО - ради бога - ТУМБНАЙЛОМ - ато у дексуса - если картинка 1600х1200 - она так и вставится) - то это какраз ТО ЧЕГО НЕ ХВАТАЛО!!

я очень постараюсь протестить твой нынешний мод, и понимаю что сам могу способствовать появлению его в виде правильного РИДМИ - чтобы любой уже мог установить!

Сайт niikto

Поделиться

13

Re: Мод Elektra File Upload

niikto пишет:

РИДМИ - чтобы любой уже мог установить!

жду ридми меня тоже заинтересовали ^_^

Сайт Whisper

Поделиться

14

Re: Мод Elektra File Upload

оказывается в тестовом проекте я упустил парсер ббкодов sad
обновил архивы. выкинуто несколько лишних файлов. изменились base.css и include/parser.php, полный архив похудел на 100Кб

ничего не изменилось по сути мода. парсер сделан по мотивам Modern BBCodes

Сайт artoodetoo

Поделиться

15

Re: Мод Elektra File Upload

мне показалось уместным запихнуть тег ::thumb###:: туда где делаются смайлы smile
попробуйте так:

//
// Convert a series of smilies to images
//
function do_smilies($text)
{
    global $smiley_text, $smiley_img, $pun_config;

    $text = ' '.$text.' ';

    $num_smilies = count($smiley_text);
    for ($i = 0; $i < $num_smilies; ++$i)
        $text = preg_replace("#(?<=.\W|\W.|^\W)".preg_quote($smiley_text[$i], '#')."(?=.\W|\W.|\W$)#m", '$1<img src="img/smilies/'.$smiley_img[$i].'" width="15" height="15" alt="'.substr($smiley_img[$i], 0, strrpos($smiley_img[$i], '.')).'" />$2', $text);

    // ::thumb###:: tag
    $prefix = $pun_config['file_thumb_path'];
    $suffix = '-'.$pun_config['file_preview_height'].'x'.$pun_config['file_preview_height'].'.jpg';
    $text = preg_replace('#::thumb([0-9]*)::#', '<a href="download.php?aid=$1"><img src="'.$prefix.'$1'.$suffix.'" /></a>', $text);

    return substr($text, 1, -1);
}

скриншот #8

Сайт artoodetoo

Поделиться

16

Re: Мод Elektra File Upload

забыл сказать: в базовый архив эта функция не вошла. надо открыть include/parser.php, найти и заменить функцию do_smile. если вывод смайликов запрещен на форуме, то превьюшка тоже не будет выводиться. вобщем-то логично!

в ::thumb###:: будет вставляться preview-картинка, т.е.  "среднего размера", до 250x250 по-умолчанию.
сейчас "минимальный размер" не используется в моде нигде. это задел на будущую галерею.

Про thumbnail и preview (далее превьюшки) стоит пояснить специально:

- эти превьюшки не попадают под механизм контроля прав. ссылки на них прямые. а вот скачать полный файл не имея прав не получится.

- создаются превьюшки в момент просмотра поста с аттачем. функция require_thumb() из include/file_upload.php проверяет есть ли превьшка нужного размера в кеше (img/thumb/), если нет - вызывает create_thumbnail()
если файл уже есть - ничего не делается smile если create_thumbnail по каким-то причинам обломался, вместо превьюшки останется копия файла err_thumb.gif

- когда Администратор записывает новые размеры для thumbnail и preview, старые картинки останутся в кеше, а при просмотре поста с аттачем создадутся новые и имена файлов у них будут новые. Администатор может дать команду почистить кеш картинок. тогда новые все превьюшки будут создаваться заново по мере необходимости.
отсюда следствие - после чистки кеша тег ::thumb###:: не выведет ничего, пока кто-то не просмотрит исходный пост с аттачем.

- у прикрепленных файлов есть счетчик downloads. он накручивается только при скачке файла. превьюшки на него не влияют. счетчик не будет увеличиваться, когда файл скачивается хозяином аттача.

- превьюшки создаются в только формате jpg. если исходный файл меньше чем размер превьюшки, превьюшка будет такого же размера, увеличения не будет.

- create_thumbnail умеет вписывать превьюшку в заданный размер двумя способами: по меньшей стороне с обрезанием большей или по большей стороне с оставлением "полей". за это отвечает последний параметр $do_cut.
по моему опыту на маленьких размерах лучше выглядят "с обрезанием". в остальных случаях - "с полями".
кто печатает фотки в фотолабах поймет о чем я говорю.

задавайте свои вопросы -  я объясню

Добавлено спустя     52 минуты   30 секунд:
Хинт для копирования тега ::thumb###:: в попапе:
открываем файл js/popup.js, заменяем функцию downloadPopup() на новую версию:

/**
* Display the popup for attachment
*/
function downloadPopup(e, aid) {
    gwCloseActive();
    var title=document.getElementById('pun-title');
    var body=document.getElementById('pun-body');
    var desc=document.getElementById('pun-desc');
    var funcdata=ATTACH_DATA[aid];
    var atime=funcdata[0];
    var adescr=funcdata[1];
    var acmt=funcdata[2];
    var athumb=funcdata[3];
    var can_download=funcdata[4];

    if (can_download) adescr = '<a href="'+O_BASE_URL+'/download.php?aid='+aid+'" title="click to download">'+adescr;
    if (athumb != '') adescr += '<br /><img src="'+O_BASE_URL+'/'+athumb+'" alt="" border="0"><br/>';
    if (can_download) adescr += '</a>';
    if (athumb != '') adescr += '<b>Thumb</b>: <input type="text" onclick="this.select()" value="::thumb'+aid+'::" /><br/>';


    title.innerHTML='#'+aid+': '+atime;
    desc.innerHTML=adescr;
    body.innerHTML=acmt;

    gwPopup(e, 'pun-popup');
}

скриншоты:
#9 - подсказка для копирования в буфер,
#10 - результат вставки. то что в теге [ code] парсером не парсится smile

Сайт artoodetoo

Поделиться

17

Re: Мод Elektra File Upload

мод проверен в работе на хостинге со включенным safe mode под PHP 5.
artoodetoo.9999mb.com/

выскакивало предупреждение о передаче параметра по ссылке. файл include/attach/post_popup.php
eregi('^image/(.*)$', $attachment['mime'], &$regs) — убрал символ & предупреждение исчезло.


возникло желание сделать псевдо-прямые ссылки на приаттаченный файл, т.е. вида _http://somesite.com/download/filename.ext
нетрудно сделать поиск в таблице attachments по имени файла, но непонятно что делать, если имя файла неуникально! 
может быть не все файлы отдавать таким образом, а только специально отмеченные администратором?

жду ваших идей.

Сайт artoodetoo

Поделиться

18

Re: Мод Elektra File Upload

Зачем это надо? Желание, имхо, нерациональное. Идея такая - отказаться от желания и переключиться на что-то более полезное smile

Сайт hcs

Поделиться

19

Re: Мод Elektra File Upload

hcs, речь не мальчика но мужа! smile действительно, ну его нафиг!

Сайт artoodetoo

Поделиться

20

Re: Мод Elektra File Upload

хм.. вспоминая проблемы с аттач-модом и мерж-постом - а этот мод как себя вкупе с мерж-постом ведет?

Добавлено спустя     34 минуты   41 секунду:
еще 1 замечание:

когда я ставлю ограничение 1600х1200 - и хочу разместить фоту 1200ъ1600 - я обламываюсь очень. приходится ставить 1600х1600 ограничение. но мне бы хотелось чтобы проверялось что одна из сторон 1200 и другая 1600.

Сайт niikto

Поделиться

21

Re: Мод Elektra File Upload

мердж-пост не испытывал, не знаю.  если у поста меняется post_id - надо следом корректировать attachments.post_id, иначе аттач "осиротеет".

про 1600x1200 <-> 1200x1600 : мне эта идея не нравится. я хочу ограничивать конкретно столько-то по горизонтали, столько-то по-вертикали, так что делай под себя самостоятельно, пожалуйста.

Сайт artoodetoo

Поделиться

22

Re: Мод Elektra File Upload

при склейке новое сообщение добавляется к предыдущему. Если там есть какието манипуляции с аттачами, то лучше проверить поведение. При плохом раскладе можно принудительно несклеивать

Сайт hcs

Поделиться

23

Re: Мод Elektra File Upload

вобщем так, мердж-поста под рукой не имею и не знаю буду ли специально испытывать.

File Upload отработает склейку правильно ЕСЛИ при склейке сообщений переменная $new_pid указывает на нужный (старый) пост.
наверняка так оно и есть, потому что в post.php без этой переменной вообще все похерится.

Сайт artoodetoo

Поделиться

24 (26.04.2007 02:12 отредактировано niikto)

Re: Мод Elektra File Upload

ладно. тогда фиг с ним с аттач модом - займусь встраиванием файл-аплоада в сборку hcs (там мержпост уже стоит)- постараюсь вечером выслать архив с переводом hcs - я его уже закончил - но надо на собрание собираться.

Добавлено спустя     1 минуту   59 секунд:
ещё 1 вопрос всетаки мучает - в аттач моде есть шняга - поменять папку аттачей - тогда новые аттачи ложатся в новую папку, а старые не теряются, тут так можно сделать?
или уже сделано?
ато если все файлы напихивать в 1 папку, то когда их станет сильно много в папке - будет тупить

Сайт niikto

Поделиться

25

Re: Мод Elektra File Upload

В скором времени возможно будет переезд на американский хостинг, поддерживающий subversion, тогда будет проще решать вопросы модернизации сборки.

Сайт hcs

Поделиться