title
Description
Body
Мод Elektra File Upload
Альтернатива Attachments mod и подобным.
то есть мод позволяет вкладывать файлы в сообщения, примерно как это происходит в электронной почте
Особенности и отличия от известных аналогов:
- главный скрипт администрирования сделан как часть админки, а не как плагин. в меню администратора теперь есть пункт "Files"
- в свойства групп и в права на форумы добавлены поля про upload/download. вся настройка прав разложена на три раздела админки:
# Files - самые базовые настройки. типы файлов, предельный размер, количество вложений на одно сообщение и различные проверки для файлов
# Groups - права по-умолчанию для групп - возможность download, upload и лимит upload,
# Forums - поправки в правах для конкретного форума, если не указаны действуют права из Groups
- в профиле пользователя админ может редактировать поле "бонус" - персональная добавка на upload
- есть карта форума с темами/вложениями. из профиля можно вызвать карту файлов данного пользователя
- прямого доступа к файлам не предусматривается, только через скрипт download.php. он контролирует права и добавляет счетчик загрузок
- при наезде мышкой на вложение появляется popup-окно с некоторой статистикой. у графических файлов в этом окне появляется превьюшка. popup можно отключить в админке
update: сейчас есть три режима показа вложения
- "None" просто имя файла,
- "Popup" имя файла с выскакивающим окном с иконкой и описанием и
- "Inplace" - информация о файле и иконка постоянно видны в сообщении
- 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) 400 K
скриншоты (маленькие):
#1 - кусок админки - Files
#2 - кусок админки - Forums
#3 - карта вложений с popup-окном
#4 - так выглядят вложения в post.php
#5 - профиль пользователя глазами рядового пользователя или гостя
#6 - профиль пользователя глазами админа
#7 - viewtopic с popup-окном
Пробуйте. Мне важно знать ваше мнение. Ищите слабые места, высказывайте пожелания.
------------------------
Самая свежая версия на сегодня: fu_1_preview_070601.zip
Неактивен
комменты в тексте конечно есть, но выделить изменения будет трудно. без патчера или winmerge не разберешся ![]()
если хочется накатить мод на свою сборку, то вот общие советы:
- скин blue_lagon случайно прилип к архиву - он не нужен в принципе
единственное мое в стилях - это
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
придется применить какой-то патчер, чтобы выделить что менялось. менялось много!
Неактивен
Скажи пожалуйста r2d2, ведь проще всего внедрить новый файл аплоад в твою сборку 0.0.5
или скорее лучше в чистую? (склоняюсь ко второму варианту - тогда я сразу же могу взять на себя аккуратное составление ридми
Неактивен
это ты сам для себя решай. если тебе нужны прочие особенности PE, то лучше подождать PE 0.1.0 чтобы не тратить силы зря, а если интересует только аплоад + галерея -- ставь на чистый форум
Неактивен
ну почему же зря? - тоже хочу участвовать и помогать чем могу
поставлю на "чистый" - чистый у меня - это сборка 21 от hcs с вырезаными мердж-пост и антиспам-модом. ![]()
У меня же есть какраз проект - который так и останется форумом (а не порталом) - он основан на сборке hcs - с моими доработками - туда и внедрю...
Неактивен
промежуточная версия 1.0.1.
исправлена пара багов. платформа сменилась на 1.2.15, кое-что сделано для кросс-браузерной совместмости.
теперь вывод аттачей в посте настраивается как 1 из 3:
- только имя файла
- попап-окно с превьюшкой
- инфа с "ноготками" прямо в тексте рядом с именем файла
,
,
известные проблемы: попап неправильно позиционируется под Firefox
http://punbb-pe.org.ru/download/fileup/ … 070521.zip (320k полный форум)
Неактивен
известные проблемы: попап неправильно позиционируется под Firefox
разобрался! оказывается в Firefox, при <!DOCTYPE ... Strict не работает такая конструкция
layer.style.left=x;
layer.style.top=y;вместо нее надо использовать
layer.style.left=x+'px';
layer.style.top=y+'px';этот кусочек надо заменить в js/popup.js
остались баги под firefox с bbcode и смайлами. придется еще повоевать. напридумывают разных версий javascript, а народ мучается!
Неактивен
не надо лопатить. потомучто скоро будет более полная версия. еще есть пара нерешенных проблем с кросс-браузерностью и не представлены галерейные расширения.
ты просто поставь ЭТО отдельно на локалку, если есть время. посмотри правильно ли учтены твои пожелания. может чего подскажешь и поправишь. пока только так без интеграции куда-либо
README подойдет на 98%, а 2% придется дописывать... пока рано это делать
Неактивен
ARTOODETOO посмотри пожалуйста эту тему: http://omsk.be/1/viewtopic.php?id=6
я там сфотографировал и тебе с разъяснениями показал что не так.
Это точно не в моих ошибках в разметке дело. твой (первый) 1.2.14+FU_Preview - тоже не работает для смартфона!!!
Неактивен
хорошо. ридми пока не буду трогать. архив скачаю, поставлю в omsk.be/3
![]()
ОЧЕНЬ ВАЖНО для меня, что ответишь по смартфонному вопросу, а я пока протестирую с него новую fu_1_preview_070521.zip
Неактивен
так. поставил.
сразу вылез нотис:
Notice: Undefined index: g_file_download in /home/ru55ru/public_html/omsk/3/viewtopic.php on line 128
тут: http://omsk.be/3/viewtopic.php?id=1
вот строка:
$can_download = ($cur_topic['file_download'] == '' && $pun_user['g_file_download'] == '1') || $cur_topic['file_download'] == '1' || $is_admmod;
профиль тоже не работает ![]()
:
An error was encountered
File: /home/ru55ru/public_html/omsk/3/profile.php
Line: 898
PunBB reported: Unable to fetch user info
Database reported: Unknown column 'u.num_files' in 'field list' (Errno: 1054)
и еще - двиг УЖЕ 1.2.15, а install_mod.php - для 1.2.14 - поэтому приходится исправлять и перезаливать
дальше - снова иду в admin_forums.php -
An error was encountered
File: /home/ru55ru/public_html/omsk/3/admin_forums.php
Line: 333
PunBB reported: Unable to fetch group forum permission list
Database reported: Unknown column 'g.g_file_upload' in 'field list' (Errno: 1054)
далее: иду в admin_groups.php
там, где разрешить скачку да-нет:
Download files Notice: Undefined index: g_file_download in /home/ru55ru/public_html/omsk/3/admin_groups.php on line 167
tabindex="22" /> Yes Notice: Undefined index: g_file_download in /home/ru55ru/public_html/omsk/3/admin_groups.php on line 167
tabindex="24" /> No
Allow users in this group to download files from attachments.
разрешить закачку да-нет:
Upload files Notice: Undefined index: g_file_upload in /home/ru55ru/public_html/omsk/3/admin_groups.php on line 174
tabindex="23" /> Yes Notice: Undefined index: g_file_upload in /home/ru55ru/public_html/omsk/3/admin_groups.php on line 174
tabindex="26" /> No
Allow users in this group to attach files in posts.
в поле Uload files limit:
<br /><b>Notice</b>: Undefined index: g_file_limit in <b>/home/ru55ru/public_html/omsk/3/admin_groups.php</b> on line <b>181</b><br />
замечу - что устновить install_mod.php я не забыл
Отредактированно niikto (22.05.2007 08:11:27)
Неактивен
а выглядит так, какбудто install_mod не запускался!!!
оказывается я при отладке оставил закомментированными пару строк ![]()
вот исправленная версия. пару огрехов еще поправил, типа номера версий...
install_mod.php
<?php
/*
********************************************************************************
**
** Copyright (C) 2007 artoodetoo <master@1wd.ru>
**
** This file is part of Elektra File Upload.
**
********************************************************************************
*/
// Some info about your mod.
$mod_title = 'Elektra File Upload';
$mod_version = '1.0.1';
$release_date = '2007-05-21';
$author = 'artoodetoo';
$author_email = 'master@1wd.ru';
// One or more versions of PunBB that this mod works on. The version names must match exactly!
$punbb_versions = array('1.2.14','1.2.15');
// Set this to false if you haven't implemented the restore function (see below)
$mod_restore = true;
// extra option items
$attach_config = array(
'file_allowed_ext' => 'gif,png,jpg,jpeg,zip,rar',
'file_image_ext' => 'gif,jpg,jpeg',
'file_max_width' => '1600',
'file_max_height' => '1200',
'file_max_post_files' => '5',
'file_max_size' => '200000',
'file_first_only' => '1',
'file_popup_info' => '1',
'file_preview_height' => '250',
'file_preview_width' => '250',
'file_thumb_width' => '100',
'file_thumb_height' => '100',
'file_thumb_path' => 'img/thumb/',
'file_upload_path' => 'uploads/' );
// This following function will be called when the user presses the "Install" button.
function install()
{
global $db, $db_type, $pun_config, $attach_config;
$db->query("ALTER TABLE `".$db->prefix."users` ".
"ADD `num_files` INT(10) UNSIGNED NOT NULL default '0', ".
"ADD `file_bonus` INT(10) UNSIGNED NOT NULL default '0'") or
error('Unable to add fields into table '.$db->prefix.'users. Please check your settings and try again.', __FILE__, __LINE__, $db->error());
$db->query("ALTER TABLE `".$db->prefix."groups` ".
"ADD `g_file_download` TINYINT(1) NOT NULL DEFAULT 0, ".
"ADD `g_file_upload` TINYINT(1) NOT NULL DEFAULT 0, ".
"ADD `g_file_limit` INT(10) NOT NULL default '0'") or
error('Unable to add fields into table '.$db->prefix.'groups. Please check your settings and try again.', __FILE__, __LINE__, $db->error());
$db->query("ALTER TABLE `".$db->prefix."forum_perms` ".
"ADD `file_upload` TINYINT(1) NOT NULL DEFAULT 0, ".
"ADD `file_download` TINYINT(1) NOT NULL DEFAULT 0, ".
"ADD `file_limit` INT(10) NOT NULL default '0'") or
error('Unable to add fields into table '.$db->prefix.'forum_perms. Please check your settings and try again.', __FILE__, __LINE__, $db->error());
$db->query("CREATE TABLE `".$db->prefix."attachments` (".
"`id` INT(10) unsigned NOT NULL auto_increment, ".
"`poster_id` INT(10) unsigned NOT NULL default 0, ".
"`topic_id` INT(10) unsigned NOT NULL default 0, ".
"`post_id` INT(10) unsigned NOT NULL default 0, ".
"`uploaded` INT(10) UNSIGNED NOT NULL DEFAULT 0, ".
"`filename` VARCHAR(255) NOT NULL default 'error.file', ".
"`mime` VARCHAR(64) NOT NULL default '', ".
"`location` TEXT NOT NULL, ".
"`size` INT(10) unsigned NOT NULL default 0, ".
"`image_dim` VARCHAR(64) NOT NULL default '', ".
"`downloads` INT(10) unsigned NOT NULL default 0, ".
"PRIMARY KEY (`id`))") or
error('Unable to create table '.$db->prefix.'attachments. Please check your settings and try again.', __FILE__, __LINE__, $db->error());
foreach($attach_config AS $key => $value)
{
$db->query("INSERT INTO `".$db->prefix."config` (`conf_name`, `conf_value`) VALUES ('$key', '".$db->escape($value)."')") or error('Unable to insert "'.$key.'" to config table', __FILE__, __LINE__, $db->error());
}
$d = dir(PUN_ROOT.'cache');
while (($entry = $d->read()) !== false)
{
if (substr($entry, strlen($entry)-4) == '.php')
@unlink(PUN_ROOT.'cache/'.$entry);
}
$db->close();
}
// This following function will be called when the user presses the "Restore" button (only if $mod_uninstall is true (see above))
function restore()
{
global $db, $db_type, $pun_config, $attach_config;
$db->query("ALTER TABLE `".$db->prefix."users` ".
"DROP `num_files`, ".
"DROP `file_bonus`") or
error('Unable to drop fields from table '.$db->prefix.'users. Please check your settings and try again.', __FILE__, __LINE__, $db->error());
$db->query("ALTER TABLE `".$db->prefix."groups` ".
"DROP `g_file_download`, ".
"DROP `g_file_upload`, ".
"DROP `g_file_limit`") or
error('Unable to drop fields from table '.$db->prefix.'groups. Please check your settings and try again.', __FILE__, __LINE__, $db->error());
$db->query("ALTER TABLE `".$db->prefix."forum_perms` ".
"DROP `file_download`, ".
"DROP `file_upload`, ".
"DROP `file_limit`") or
error('Unable to drop fields from table '.$db->prefix.'forum_perms. Please check your settings and try again.', __FILE__, __LINE__, $db->error());
$db->query("DROP TABLE `".$db->prefix."attachments` ") or
error('Unable to drop table '.$db->prefix.'attachments. Please check your settings and try again.', __FILE__, __LINE__, $db->error());
foreach($attach_config AS $key => $value)
{
$db->query("DELETE FROM ".$db->prefix."config WHERE `conf_name`='".$db->escape($key)."'") or error('Unable to delete row "'.$key.'" from config table', __FILE__, __LINE__, $db->error());
}
$d = dir(PUN_ROOT.'cache');
while (($entry = $d->read()) !== false)
{
if (substr($entry, strlen($entry)-4) == '.php')
@unlink(PUN_ROOT.'cache/'.$entry);
}
$db->close();
}
/***********************************************************************/
// DO NOT EDIT ANYTHING BELOW THIS LINE!
// Circumvent maintenance mode
define('PUN_TURN_OFF_MAINT', 1);
define('PUN_ROOT', './');
require PUN_ROOT.'include/common.php';
// We want the complete error message if the script fails
if (!defined('PUN_DEBUG'))
define('PUN_DEBUG', 1);
// Make sure we are running a PunBB version that this mod works with
if(!in_array($pun_config['o_cur_version'], $punbb_versions))
exit('You are running a version of PunBB ('.$pun_config['o_cur_version'].') that this mod does not support. This mod supports PunBB versions: '.implode(', ', $punbb_versions));
$style = (isset($cur_user)) ? $cur_user['style'] : $pun_config['o_default_style'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title><?php echo $mod_title ?> installation</title>
<link rel="stylesheet" type="text/css" href="style/<?php echo $pun_config['o_default_style'].'.css' ?>" />
</head>
<body>
<div id="punwrap">
<div id="puninstall" class="pun" style="margin: 10% 20% auto 20%">
<?php
if (isset($_POST['form_sent']))
{
if (isset($_POST['install']))
{
// Run the install function (defined above)
install();
?>
<div class="block">
<h2><span>Installation successful</span></h2>
<div class="box">
<div class="inbox">
<p>Your database has been successfully prepared for <?php echo pun_htmlspecialchars($mod_title) ?>. See readme.txt for further instructions.</p>
</div>
</div>
</div>
<?php
}
else
{
// Run the restore function (defined above)
restore();
?>
<div class="block">
<h2><span>Restore successful</span></h2>
<div class="box">
<div class="inbox">
<p>Your database has been successfully restored.</p>
</div>
</div>
</div>
<?php
}
}
else
{
?>
<div class="blockform">
<h2><span>Mod installation</span></h2>
<div class="box">
<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>?foo=bar">
<div><input type="hidden" name="form_sent" value="1" /></div>
<div class="inform">
<p>This script will update your database to work with the following modification:</p>
<p><strong>Mod title:</strong> <?php echo pun_htmlspecialchars($mod_title).' '.$mod_version ?></p>
<p><strong>Author:</strong> <?php echo pun_htmlspecialchars($author) ?> (<a href="mailto:<?php echo pun_htmlspecialchars($author_email) ?>"><?php echo pun_htmlspecialchars($author_email) ?></a>)</p>
<p><strong>Disclaimer:</strong> Mods are not officially supported by PunBB. Mods generally can't be uninstalled without running SQL queries manually against the database. Make backups of all data you deem necessary before installing.</p>
<?php if ($mod_restore): ?> <p>If you've previously installed this mod and would like to uninstall it, you can click the restore button below to restore the database.</p>
<?php endif; ?> </div>
<p><input type="submit" name="install" value="Install" /><?php if ($mod_restore): ?><input type="submit" name="restore" value="Restore" /><?php endif; ?></p>
</form>
</div>
</div>
<?php
}
?>
</div>
</div>
</body>
</html>Неактивен
вот установлено с предлагаемого архива + install_mod с предыдущего поста
_http://master/1wd/ru/fileup101/
Неактивен
сходил. посмотрел!
понравилось. тока 2 замечания"
1) со смартфона картинки видятся отлично - просто супер, но - там ведь нету поля ::thumb№:: - значение которого можно скопировать и вставить в тексте сообщения (кстате - убедительнейшая просьба - всё же оставить это поле формой, а не просто текстом! (или хотябы кнопкой) - иначе на смарте выделить с взять в "карман" этот тег нельзя будет - там текст не выделяется, если он не в форме ввода.
2) ТАК И НЕ ДОБАВЛЯЕТСЯ поле аттача со смартфона
(
это ооочень-ооочень плохо!
прошу тебя, artoodetoo - сделать с аттачами как в 005! (ну или мне отдельно объясни как это зделать - я оставлю modernBBcode - потому что не хочу картинки только текст.
очень нравится кстате что она спрашивает url и что быдет ссылкой - хотел бы это перенести в modern-bb-code)
Неактивен
ок. я переделаю поле ввода файла. соображения такие: если JS отключен, пользователь не должен лишаться возможности загрузить файл, разве что меньше удобства будет. поэтому 1 файловое поле будет доступно сразу. если надо еще - рядом будет ссылка "больше файлов" - по клику будет добавлять еще N полей. а кнопку "вложения" я уберу.
добывание ::thumb:: я сделаю дополнительной маленькой ссылкой с якорьком. будет выскакивать JS alert с нужным кодом.
от графических кпопок откажусь - будут простенькие как в Easy BBcode. кому надо красиво - сам доделает на свой вкус.
галерея "ноготков" пока не готова.... вызревают мысли по поводу >1 размера превьюшек. как на fotki.yandex.ru
100 - 300 - 500 - 800 - оригинальный размер. предпочтения по размеру сохранять в куки. чтобы даже гость смотрел с комфортом ![]()
Неактивен
предлогаю тебе сделать:
1) поле ввода как в PE (как в пред.посте написал) + ссылка ещё фалы и убрать кн.вложения
2) обязательно ::thumb::
только я вот что не понял - "будет выскакивать JS alert с нужным кодом" - алерт ведь - тоже просто текст (следовательно нельзя выделить его на смартфоне. Там можно выделять чтото ТОЛЬКО В МОМЕНТ РЕДАКТИРОВАНИЯ - тоесть только в поле для ввода)
3) И САМОЕ ГЛАВНОЕ: раз галеререя ещё не готова - доведи, пожалуйста файловую часть до результата, и выложи в релиз, ПОТОМУ ЧТО мне уже очень-очень надо этот мод. А галерейные части потом внедрю. Тоесть я хочу сказать - что уже готово - оформить, а что не готово, но не влияет - потом добавлять - отдельно тестировать буду. т.е. файлаплоад нужен очень-очень, а галерею можно и подождать (просто фото-раздел буду позже развивать у себя). Но только файлаплоад хочется такой, чтобы потом не пострадали вложения и не потерялись!
Кстате ты всётаки смотрел как он с мерджпостом?
hsc уже выпустил 85-ю ревизию сборки своей, сижу щас -сравниваю что да как. но там не сильно изменений много - восновном исправления багов 53-й сборки.
с нетерпением жду след.релиза!
Неактивен
p.s.: посмотрел яндексы - идея у тебя очень мне понравилась (только бы не сказалось это на нагрузке на сервер.. да и за место оченно боязно..
а может можно выбирать будет в админке:
2 картинка (ноготок+оригинал)
3 картинки (ноготок, превью,оригинал)
4 картинки (ноготок+превью мал.+превью больша+оригинал)
5 картинок (ноготок+превью мал.+превью среднее+превью больша+оригинал)
?
или не бояться что так много тумбов?
Неактивен
превьюхи конечно будут занимать место. если хостинг небольшой видимо одним размером придется обойтись, а если дорогой и крупный... вобщем это забота админа решать сколько заводить и следить за переполнением.
Неактивен
дада- главное чтобы легко можно было настроить - скока превьюх!!!
Неактивен
можно, в конце концов, пойти на компромис: в кеше хранить только ноготки, а большие превьюхи строить "на лету" без сохранения в файл. превьюхи выводятся не более одной на страницу, а ноготков может быть десяток. поэтому если хостинг не позволяет закешировать много картинок, можно экономить место за счет процессорных ресурсов ![]()
что думаешь?
Неактивен
загрузил новый архив fu_1_preview_070527.zip
изменения:
- исправлена бага в post.php и edit.php (неправильно считалось количество уже закачанных файлов в форум)
- множественные переделки внешнего вида. например кнопка "Прикрепить" теперь отсутствует. чтобы получить код thumb надо кликнуть по ноготку. скачка файла - клик на имени файла.
- файлы в include/attach/ причесаны по-новому.
- кажется все накладки с кросс-браузерностью побеждены
- в архив вошел хак admin_forums как я его описывал в "Идеях"
версия по-прежнему промежуточная, потому что ничего по-сути не добавилось. зато я подобрал бОльшую часть хвостов и могу двигаться дальше.
попробовать можно по адресу _http://master.1wd.ru/fileup101/
ближайшие todo:
- вместо графических кнопок pure css menu
- несколько размеров превью
- опция генерации превью на лету без создания файла
- галерея ноготков
- удаление вложений и поправка счетчиков при удалении поста.
Неактивен
из вышенаписанного не понял - как он ведёт себя с мерджпост???
потому что если харашо - я то я уже поставлю его на fouroom.ru
ответь пожалуйста (т.е. я так понял что это уже не будет меняться, тока добавляться чтото будет)
Неактивен
о, черт! про мерджпост я забыл
дай мне еще денек....
p.s. поставил Merge Posts 1.0.3 с PunRes на последнюю версию E.F.U. Полет нормальный!
тонкий момент вот здесь - в post.php искать строку $low_prio. UPDATE должен происходить так:
if ($merged)
$db->query('UPDATE '.$low_prio.$db->prefix.'users SET '.$add_files.'last_post='.$now.' WHERE id='.$pun_user['id']) or error('Unable to update user', __FILE__, __LINE__, $db->error());
else
$db->query('UPDATE '.$low_prio.$db->prefix.'users SET '.$add_files.'num_posts=num_posts+1, last_post='.$now.' WHERE id='.$pun_user['id']) or error('Unable to update user', __FILE__, __LINE__, $db->error());то есть счетчик загруженных файлов поправляется в любом случае, а счетчик постов только если склейки не было.
вот fu_1_preview_070527_with_mp.zip архив с установленным модом. протестировать как обычно на _http://master.1wd.ru/fileup101/
последующие версии E.F.U. НЕ БУДУТ ВКЛЮЧАТЬ В СЕБЯ MERGE POSTS ! кому надо - сами будут ставить. потенциально опасное место я указал.
Неактивен
ок. буду пробовать. если что закосячит - ещё спрошу
Неактивен