1

Тема: Attachment_Mod Где скачать?

Уважаемые форумчане, может кто выложит ссылку на этот мод а то найти не могу.

Заранне большое спасибо!!

Поделиться

2

Re: Attachment_Mod Где скачать?

ня www.punres.org/desc.php?pid=77

Сайт avatar

Поделиться

3

Re: Attachment_Mod Где скачать?

Спасибо smile

Поделиться

4

Re: Attachment_Mod Где скачать?

acab1488 классный ник камрад!

Поделиться

5

Re: Attachment_Mod Где скачать?

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

Прошу помоч! С уважением, ACAB1488

Поделиться

6

Re: Attachment_Mod Где скачать?

Там же по-нерусски написано: AFTER, ADD (при помощи мозга и словаря получаем "после, добавить") REPLACE WITH (при помощи словаря, но уже без мозга: "заменить на") и т.д.

Сайт Slavik

Поделиться

7

Re: Attachment_Mod Где скачать?

Славик огромное спасибо.
Мозг включил, начал настраивать smile

Поделиться

8

Re: Attachment_Mod Где скачать?

acab1488 пишет:

Мозг включил

Это самое главное smile

Сайт Slavik

Поделиться

9 (11.01.2007 02:34 отредактировано artoodetoo)

Re: Attachment_Mod Где скачать?

есть полезное добавление для Attachment mod 2.0.1 - показ превьюшек (thumbnails) в теле сообщения, если присоединен графический файл.
Пример: [s]http //master.1wd.ru/viewtopic.php?id=1[/s] - "отладочный" сайт постоянно обновляется
сделано как первый шаг в написании своей галереи

1. в папке img создаем подпапку для превьюшек. это для того, чтобы не создавать их каждый раз на лету.
img/thumb
туда помещаем иконку для "битой картинки" с именем err_thumb.jpg. например такую http://master.1wd.ru/img/err_thumb.jpg

2. в файл include/attach/attach_func.php добавляем новую функцию:

function create_tmb($orig_fname, $thum_fname, $thumb_width=200, $thumb_height=200)
{
  $rgb = 0xFFFFFF;
  $quality = 80;
  $size = @getimagesize($orig_fname);

  if( $size === false) return false;

  $format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
  $icfunc = "imagecreatefrom" . $format;
  if (!function_exists($icfunc)) return false;

  $orig_img = $icfunc($orig_fname);
  if( ($size[0] <= $thumb_width) && ($size[1] <= $thumb_height) ) {
    // use original size
    $width  = $size['0'];
    $height = $size['1'];
  } else {
    // fit to size
    $ratio_width  = $size['0'] / $thumb_height;
    $ratio_height = $size['1'] / $thumb_width;
    if( $ratio_width<$ratio_height ) {
      $height = $thumb_height;
      $width  = $size['0'] / $ratio_height;
    } else {
      $width  = $thumb_width;
      $height = $size['1'] / $ratio_width;
    }
  }

  $thum_img = imagecreatetruecolor($width, $height);
  imagefill($thum_img, 0, 0, $rgb);
  imagecopyresampled($thum_img, $orig_img, 0, 0, 0, 0, $width, $height, $size[0], $size[1]);

  imagejpeg($thum_img, $thum_fname, $quality);
  flush();
  imagedestroy($orig_img);
  imagedestroy($thum_img);
  return true;
}

3a.  в файле viewtopic.php находим такой код:

    $result_attach = $db->query('SELECT af.id, af.filename, af.size, af.downloads FROM '.$db->prefix.'attach_2_files AS af WHERE af.post_id='.$cur_post['id']) or error('Unable to fetch if there were any attachments to the post', __FILE__, __LINE__, $db->error());

добавляем поле location

    $result_attach = $db->query('SELECT af.id, af.filename, af.size, af.downloads, af.location FROM '.$db->prefix.'attach_2_files AS af WHERE af.post_id='.$cur_post['id']) or error('Unable to fetch if there were any attachments to the post', __FILE__, __LINE__, $db->error());

3b. ниже в файле viewtopic.php находим такой код:

        if($attach_allow_download){//check if the user is allowed to download it.
            $attach_output .= $lang_attach['Attachments:'].' ';
            while(list($attachment_id, $attachment_filename, $attachment_size, $attachment_downloads)=$db->fetch_row($result_attach)){
                $attachment_extension=attach_get_extension($attachment_filename);
                $attach_output .= '<br />'."\n\t\t\t\t\t\t".attach_icon($attachment_extension).' <a href="./attachment.php?item='.$attachment_id.'">'.$attachment_filename.'</a>, '.$lang_attach['Size:'].' '.number_format($attachment_size).' '.$lang_attach['bytes'].', '.$lang_attach['Downloads:'].' '.number_format($attachment_downloads);
            }
        }

заменяем на

        if($attach_allow_download){//check if the user is allowed to download it.
            $attach_output .= $lang_attach['Attachments:'];
            while(list($attachment_id, $attachment_filename, $attachment_size, $attachment_downloads, $attach_location)=$db->fetch_row($result_attach)){
                $attachment_ref = './attachment.php?item='.$attachment_id;
                $attachment_extension = attach_get_extension($attachment_filename);
                if(in_array($attachment_extension, array('jpg','jpeg','gif','png'))) {
                    $orig_file = $pun_config['attach_basefolder'].$attach_location;
                    $thmb_file = './img/thumb/'.$attachment_id.'.jpg';
                    if(!file_exists($thmb_file)) {
                        set_time_limit(30);
                        if(!create_tmb($orig_file, $thmb_file))
                            copy('./img/thumb/err_thumb.jpg', $thmb_file);
                    }
                    $attach_output .= "<br />\n\t\t\t\t\t\t<a href=\"".$attachment_ref.'"><img src="'.$thmb_file.'"></a>';
                }
                $attach_output .= "<br />\n\t\t\t\t\t\t".attach_icon($attachment_extension).' <a href="'.$attachment_ref.'">'.$attachment_filename.'</a>, '.$lang_attach['Size:'].' '.number_format($attachment_size).' '.$lang_attach['bytes'].', '.$lang_attach['Downloads:'].' '.number_format($attachment_downloads);
            }
        }

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

Сайт artoodetoo

Поделиться

10 (05.12.2006 16:43 отредактировано 2maru)

Re: Attachment_Mod Где скачать?

может допишет кто нибудь уже?

и еще очень надо - чтобы картинка (да и вообще аттач) вставлялся не внизу поста а bb-ТЕГОМ например туда куда мне надо!!!

это сложно сделать?

русскоЯзЪ

Поделиться

11

Re: Attachment_Mod Где скачать?

2maru пишет:

может допишет кто нибудь уже?
и еще очень надо - чтобы картинка (да и вообще аттач) вставлялся не внизу поста а bb-ТЕГОМ например туда куда мне надо!!!
это сложно сделать?

что именно дописать?
когда ты емайлом шлешь письмо с вложениями - у тебя есть возможность передвигать аттачи? этот мод - полный аналог почтового аттача. не надо из газонокосилки делать автомобиль - Г* получится.

Сайт artoodetoo

Поделиться

12

Re: Attachment_Mod Где скачать?

сделайте хотябы автоудаление превьюшки!!

русскоЯзЪ

Поделиться

13

Re: Attachment_Mod Где скачать?

автоудаление превьюшки:
в файле include/attach/attach_func.php ищем строку:

        $result = $db->query('DELETE FROM '.$db->prefix.'attach_2_files WHERE id = \''.$item.'\' LIMIT 1')or error('Unable to delete attachment record in database',__FILE__,__LINE__,$db->error());

сразу за ней добавляем

        $thmb_file = './img/thumb/'.$item.'.jpg';
        unlink($thmb_file);

все!

Сайт artoodetoo

Поделиться

14

Re: Attachment_Mod Где скачать?

огромное спасибо!! седня ночью поставлю мод!!!

русскоЯзЪ

Поделиться

15

Re: Attachment_Mod Где скачать?

Все сделал как ты написал, но вместо превью всегда битая картинка ... может руки кривые или нехватает чего то.

Поделиться

16 (13.12.2006 09:14 отредактировано artoodetoo)

Re: Attachment_Mod Где скачать?

Андр100 пишет:

но вместо превью всегда битая картинка

сервер случано не "русский апач"?
проверь - исходная "большая" картинка не побилась при закачке? скачай ее назад и открой. если битая - может помочь добавление такой строки в .htaccess

CharsetRecodeMultipartForms Off

Сайт artoodetoo

Поделиться

17

Re: Attachment_Mod Где скачать?

Пара вопросов по моду:
1. Как сделать, чтоб добавлять аттач чрез быстрый ответ?
2. Как сделать, чтоб размер аттача выводился в килобайтах, а не байтах?

Сайт Bik

Поделиться

18

Re: Attachment_Mod Где скачать?

Картинка большая небитая - открывается нормально.
Апач в америке на хостмонстер.ком, правда пхп и мускул там древние.
Вобщем и без превью меня устраивает ).

Поделиться

19

Re: Attachment_Mod Где скачать?

считаю просто необходимыми взаимно моды аттач и аякс превью (потому что иначе просто жмешь превью - и сбрасываются выбранные аттачи sad

а еще - ктонибудь сделайте как здесь: 194.187.207.250/forum/topic.php?id=5

чтобы аттачи можно было вставлять тегами в сообщение?

Добавлено Mon Dec 25 20:03:51 2006 :
и еще файл с именем "_бедра_да2474.jpg"

получился во вложении: "_бедра_РґР°2474.jpg"
видимо тоже надо мультибайтные функции менять!

(кодировка utf8, колейт utf8_unicode_ci)

где взять их список всех ??

Добавлено Mon Dec 25 20:06:54 2006 :
и еще:

откуда взялась идея комментарии к статье обязательно второй страницей?

это же неправильно!
если статья - 4 абзаца, и к ней 5 комментариев - это очень немного. а большинство и будут такими (форум это короткое общение).

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

русскоЯзЪ

Поделиться

20

Re: Attachment_Mod Где скачать?

2maru, ты кажется не тот топик пишеш. народ не поймет. про статьи - это в суперкатегории.

Сайт artoodetoo

Поделиться

21

Re: Attachment_Mod Где скачать?

А правда что Attachment Mod для каждого поста делает запрос к бд? У меня так. Мне кажется что можно выбирать вместе с постами

Добавлено Tue Dec 26 15:05:38 2006 :
Хотя нет, с постами тут не прокатит. Может стоит сделать поле has_attach в табличке posts, чтоб сразу все был ясно? Да и рулесы выбираются для каждого поста, но в зависимости от форума.В общем я совсем разочаровался в моде sad

Сайт Slavik

Поделиться

22 (26.12.2006 03:35 отредактировано Dexus)

Re: Attachment_Mod Где скачать?

Slavik, да. Для каждого поста свой запрос к БД. Я для себя это дело оптимизировал - делаю доп.запросы по аттачам если аттач есть. А наличие или отсутствие аттача сделал доп. колонкой в таблице собщений.
Можно конечно еще больше схитрить - для каждого сообщения иметь некий attach_msg, который апдейтить при добавлении аттачей, и выводить его ВСЕГДА вместе с самим сообщением. Таким образом омжно избежать лишние запросы на каждом собщении с аттачем. Но выборку из рулезов делать один фиг придется один раз.

Но вообще у меня таких вот "возможных вариантов оптимизаций" столько уже в голове навозникало, что хватит на свой совершенно иной форум smile

Поделиться

23

Re: Attachment_Mod Где скачать?

Короче решил добавить поле has_attach в табличку posts, которое либо 0 либо 1. А рулесы выбирать только при необходимости (буду проверять isset переменная с рулесами и тогда делать или не делать запрос на права). Еще можешь поделиться вариантами оптимизации, может вместе чего-нибдуь сваяем smile

Сайт Slavik

Поделиться

24 (26.12.2006 11:09 отредактировано Dexus)

Re: Attachment_Mod Где скачать?

Slavik,
Как я уже написал выше можно добавить еще одно текстовое поле в которое впихивать список аттачей (сериализированный). Что-то вроде кеша списка аттачей. В результате за один селект можно будет вытащить и само сообщение и список аттачей. Размер поля думаю не очень большой можно сделать. И в этом случае has_attach не будет нужен впринципе. Разумеется, сам список аттачей в своей таблице тоже должен храниться.
Рулесы само собой селектить ДО списка сообщений. Один доп селект, даже если ни одного аттача на текущей странице нет - не сильно усугубит ситуацию.
А вообще, все эти рулесы можно впихнуть как и основные переменные punbb в кеш. В массивчик какой-нибудь. Но с этим кеширование рулезов придется сильно помудрить.

Гляньте еще вот этот скриптик: 194.187.207.250/forum/attach_rulwiz.php.txt
В свое время запарился править рулесы дефолтовой аттач-админкой. Для себя сделал кросс-табовую версию с активным использованием джаваскрипта (копирования отдельных правил, целых столбцов и колонок).

Поделиться

25

Re: Attachment_Mod Где скачать?

Правила в Attachment mod прямо скажем замороченные! Я недолго думая добавил два столбца в forum_perms. Плюч пару опций в config - дефолтовые значения. Теперь права на аттачи задаются полностью аналогично остальным правам. Для большинства случаев оно себя оправдывает.

Сложности возникают, если надо в один форум грузить только jpeg до 200кб, а в другой только zip до 1Мб. Думаю сделать механизм перекрытия глобальных опциями конкретного форума, если они заданы. Пока все на стадии обдумывания.

Сайт artoodetoo

Поделиться