Всё, прошу критиковать
Замечания
1. Установить мод
Создание картинок по мере необходимости2. Если картинка маленькая настолько, что для неё миниатюра не будет создана, то она не будет отображаться в превью, если выставить ей чекбоксом thumbnail=1. Однако, благодаря пункту 1, значение thumbnail будет автоматически сброшено в 0 после первого просмотра отправленного сообщения. Не знаю пока как преодолеть это программно, но проблему можно было бы обойти, всегда создавая миниатюры даже для маленьких картинок. Проблема останется только в том случае, если миниатюру создать невозможно.
3. Убрать бы чекбокс для вложений, не являющихся картинками
Изменения по ходу дела:
1. Исправлено неудачное описание действий в п.14, которое может привести к лишнему закрывающему тэгу </td>
root/posting.php
1.Найти
// Do not change to SELECT *
$sql = 'SELECT attach_id, is_orphan, attach_comment, real_filename
Заменить на
// Do not change to SELECT *
$sql = 'SELECT attach_id, is_orphan, attach_comment, real_filename, thumbnail
-------------------------------------------------------------------------------------------------------------------------
root/include/functions_posting.php
function posting_gen_attachment_entry:
Добавить значение чекбокса в шаблон:
2.Найти
$template->assign_block_vars('attach_row', array(
'FILENAME' => utf8_basename($attach_row['real_filename']),
'A_FILENAME' => addslashes(utf8_basename($attach_row['real_filename'])),
'FILE_COMMENT' => $attach_row['attach_comment'],
'ATTACH_ID' => $attach_row['attach_id'],
'S_IS_ORPHAN' => $attach_row['is_orphan'],
'ASSOC_INDEX' => $count,
Добавить после
'S_THUMBNAIL' => $attach_row['thumbnail'],
function submit_post:
Обновить значение thumbnail в таблице
3.Найти
// update entry in db if attachment already stored in db and filespace
$sql = 'UPDATE ' . ATTACHMENTS_TABLE . "
SET attach_comment = '" . $db->sql_escape($attach_row['attach_comment']) . "'
WHERE attach_id = " . (int) $attach_row['attach_id'] . '
AND is_orphan = 0';
Заменить на
// update entry in db if attachment already stored in db and filespace
$attach_sql = array(
'attach_comment' => $db->sql_escape($attach_row['attach_comment']),
'thumbnail' => $attach_row['thumbnail'],
);
$sql = 'UPDATE ' . ATTACHMENTS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $attach_sql) . '
WHERE attach_id = ' . (int) $attach_row['attach_id'] . '
AND is_orphan = 0';
-------------------------------------------------------------------------------------------------------------------------
root/include/functions_content.php
Активировать чекбоксы в preview
4.Найти
$row['attach_comment'] = $attachments[$attach_ids[$row['attach_id']]]['attach_comment'];
Добавить после
$row['thumbnail'] = $attachments[$attach_ids[$row['attach_id']]]['thumbnail'];
-------------------------------------------------------------------------------------------------------------------------
root/include/message_parser.php
function get_submitted_attachment_data
5.Найти
// Regenerate already posted attachments
if (sizeof($not_orphan))
{
// Get the attachment data, based on the poster id...
$sql = 'SELECT attach_id, is_orphan, real_filename, attach_comment
Заменить на
// Regenerate already posted attachments
if (sizeof($not_orphan))
{
// Get the attachment data, based on the poster id...
$sql = 'SELECT attach_id, is_orphan, real_filename, attach_comment, thumbnail
6.Найти
// Regenerate newly uploaded attachments
if (sizeof($orphan))
{
$sql = 'SELECT attach_id, is_orphan, real_filename, attach_comment
Заменить на
// Regenerate newly uploaded attachments
if (sizeof($orphan))
{
$sql = 'SELECT attach_id, is_orphan, real_filename, attach_comment, thumbnail
function parse_attachments
7.Найти
// First of all adjust comments if changed
$actual_comment_list = utf8_normalize_nfc(request_var('comment_list', array(''), true));
foreach ($actual_comment_list as $comment_key => $comment)
{
if (!isset($this->attachment_data[$comment_key]))
{
continue;
}
if ($this->attachment_data[$comment_key]['attach_comment'] != $actual_comment_list[$comment_key])
{
$this->attachment_data[$comment_key]['attach_comment'] = $actual_comment_list[$comment_key];
}
}
Добавить после
// parse thumbnail checkboxes
$actual_thumb_list = request_var('thumb_list', array(''));
foreach ($this->attachment_data as $key => $val)
{
$this->attachment_data[$key]['thumbnail'] = 0;
}
foreach ($actual_thumb_list as $key => $val)
{
$k = (int)$actual_thumb_list[$key];
if (!isset($this->attachment_data[$k])) continue;
$this->attachment_data[$k]['thumbnail'] = 1;
}
правильный checkbox для orphaned
в блоке
else if (($add_file || $preview) && $upload_file)
8.Найти
$new_entry = array(
'attach_id' => $db->sql_nextid(),
'is_orphan' => 1,
'real_filename' => $filedata['real_filename'],
'attach_comment'=> $this->filename_data['filecomment'],
Добавить после
'thumbnail' => $filedata['thumbnail'],
Всегда удалять файл с миниатюрой
9.Найти
Заменить на
-------------------------------------------------------------------------------------------------------------------------
root/includes/functions_admin.php
Всегда удалять файл с миниатюрой
10.Найти
if ($file_ary['thumbnail'])
Заменить на
// if ($file_ary['thumbnail'])
-------------------------------------------------------------------------------------------------------------------------
root/include/acp/acp_attachments.php
Всегда удалять файл с миниатюрой
11.Найти
Заменить на
-------------------------------------------------------------------------------------------------------------------------
root/language/en/common.php
12.Найти
Вставить перед
'SHOW_THUMB' => 'show thumbnail',
-------------------------------------------------------------------------------------------------------------------------
root/language/ru/common.php
13.Найти
Вставить перед
'SHOW_THUMB' => 'показывать миниатюру',
-------------------------------------------------------------------------------------------------------------------------
Добавить чекбокс в шаблон
root/style/subsilver2/template/posting_attach_body.php
14.Найти
<!-- BEGIN attach_row -->
<tr>
<td class="row1"><b class="genmed">{L_FILENAME}</b></td>
<td class="row2"><a class="genmed" href="{attach_row.U_VIEW_ATTACHMENT}" target="_blank">{attach_row.FILENAME}</a></td>
Заменить на
<!-- BEGIN attach_row -->
<tr>
<td class="row1"><b class="genmed">{L_FILENAME}</b></td>
<td class="row2"><a class="genmed" href="{attach_row.U_VIEW_ATTACHMENT}" target="_blank">{attach_row.FILENAME}</a>
<input type="checkbox" name="thumb_list[{attach_row.ASSOC_INDEX}]" value="{attach_row.ASSOC_INDEX}" <!-- IF attach_row.S_THUMBNAIL -->checked="checked"<!-- ENDIF --> /> {L_SHOW_THUMB}</td>