Цитата (mandriver @ 12.1.2010, 15:13)
absorber, Как решил то скажи ! Тоже интересно, делаю модуль медиа сейчас...
Решение предложил где-то полгода назад SHAKA1. За что спасибо огромное ему!
На основе его идеи я сделал изменения модуля файлы с целью использования в качестве модуля медиа каталога, а именно - отображение списка файлов сразу с картинками.
Предлагаю на ваш суд новую дополненную и исправленную 13 января в 9-38 по Московскому времени подробную инструкцию.
Открываешь файл:
modules\files\user\index.php
находишь там функцию:
FilesBeginPage - отвечает за вывод файлов на главной странице (т.е на странице files.html)
ШАГ 1. в функции находишь запрос:
Цитата
$result=$Mainclass->Db->Query('SELECT `id`, `url`, `main_cat`, `title`, `author`, `author_id`, `text`, `date`, `size`, `version`, `votes`, `total`, `comments`, `show_sokr`, `allow_comm` FROM `f_files` INNER JOIN `f_files_l` USING(`id`) WHERE `language` IN (\'\',\''.$Mainclass->lang_name.'\') AND'.$date_sql.' `status`=1 AND (`groups`=\'\''.$ug.') ORDER BY `pinned` DESC, `date` DESC, `id` DESC LIMIT '.$offset.', '.($general ? $Mainclass->vars['m_files_per_page_general'] : $Mainclass->vars['m_files_per_page']),__file__,__line__);
заменяешь его на
Цитата
$result=$Mainclass->Db->Query('SELECT `id`, `url`, `main_cat`, `title`, `author`, `author_id`, `text`, `date`, `size`, `version`, `votes`, `total`, `comments`, `allow_comm`, `images` FROM `f_files` INNER JOIN `f_files_l` USING(`id`) WHERE `language` IN (\'\',\''.$Mainclass->lang_name.'\') AND'.$date_sql.' `status`=1 AND (`groups`=\'\''.$ug.') ORDER BY `pinned` DESC, `date` DESC, `id` DESC LIMIT '.$offset.', '.($general ? $Mainclass->vars['m_files_per_page_general'] : $Mainclass->vars['m_files_per_page']),__file__,__line__);
ШАГ 2 далее после строки:
Цитата
$url=($Mainclass->vars['m_files_long_url'] ? $Mainclass->Categories_l->CategoryUrl($arr['main_cat'],'','',false) : '').$Mainclass->Url->ConstructUrl(array(array($arr['url'],'fid'=>$arr['id'])),!$Mainclass->vars['m_files_long_url']);
добавляешь:
Цитата
$ahref='<a href="'.$url.'" class="thumbimage">';
$image=$img_descr='';
if (!empty($arr['images'])) {
$images=explode('§',$arr['images']);
foreach($images as $k=>$v) {
$temp=explode('·',$v);
if (empty($temp[0])) continue;
if (empty($temp[1])) $temp[1]='';
if ($k==0) {
try {$image=$Mainclass->Functions->CreateImageThumb($temp[0],180);}
catch(EExceptionNonFatal $e){}
if (empty($image))
$image=$temp[0];
$img_descr=$temp[1];
break;
}}}
ШАГ 3 затем после:
Цитата
'moder' =>$general ? '' : DeleteEdit(array('DeleteFile'=>$arr['id']),array('EditFile'=>$arr['id'])),
вставляешь:
Цитата
'image' =>$image,
'img_descr' =>$img_descr,
'ahref' =>$ahref,
ШАГ 4 аналогично делашь с функцией:
FilesCategory - отвечает за вывод файлов в категориях,
но в ПЕРВОМ ШАГЕ находиш
Цитата
$result=$Mainclass->Db->Query('SELECT `id`, `url`, `title`, `author`, `author_id`, `text`, `date`, `size`, `version`, `votes`, `total`, `comments`, `allow_comm` FROM `f_files` INNER JOIN `f_files_l` USING(`id`) WHERE `language` IN (\'\',\''.$Mainclass->lang_name.'\') AND (`main_cat`=\''.$cat_dump['id'].'\' OR `cats` LIKE \'%,'.$cat_dump['id'].',%\') AND `status`=1 AND (`groups`=\'\''.$ug.') ORDER BY `pinned` DESC, `date` DESC, `id` DESC LIMIT '.$offset.', '.$Mainclass->vars['m_files_per_page'],__file__,__line__);
заменяешь его на
Цитата
$result=$Mainclass->Db->Query('SELECT `id`, `url`, `main_cat`, `title`, `author`, `author_id`, `text`, `date`, `size`, `version`, `votes`, `total`, `comments`, `allow_comm`, `images` FROM `f_files` INNER JOIN `f_files_l` USING(`id`) WHERE `language` IN (\'\',\''.$Mainclass->lang_name.'\') AND (`main_cat`=\''.$cat_dump['id'].'\' OR `cats` LIKE \'%,'.$cat_dump['id'].',%\') AND `status`=1 AND (`groups`=\'\''.$ug.') ORDER BY `pinned` DESC, `date` DESC, `id` DESC LIMIT '.$offset.', '.($general ? $Mainclass->vars['m_files_per_page_general'] : $Mainclass->vars['m_files_per_page']),__file__,__line__);
Остальное как для функции
FilesBeginPage
ШАГ 5 после этого удаляешь файл
modules\files\Template\Base-files.html
ШАГ 6 вместо него создаешь файл
Base-files.php со следующим содержанием:
Цитата
<div class="base">
<div class="heading"><div class="binner">
<h3><?php echo$title?></h3>
<div class="moreinfo">
<span class="arg"><?php echo$category?></span>
<span class="arg"><?php echo$date?></span>
<span class="arg"><?php echo$size?></span>
<span class="arg"><?php echo$version?></span>
<div class="clr"></div>
</div>
<div class="clr"></div>
</div></div>
<div class="maincont"><div class="binner">
<?php if ($image):?><?php echo$ahref?><img src="<?php echo$theme?>/images/spacer.png" style="background-image: url(<?php echo$image?>);" alt="<?php echo$img_descr?>"/><span><?php echo$Mainclass->lang['files']['detail']?></span></a><?php endif?>
<?php echo$content?>
<?php if ($moder):?><div align="right"><?php echo$moder?></div><?php endif?>
<div class="clr"></div>
</div></div>
<div class="morelink"><div class="binner">
<div class="ratebase"><?php echo$rating?></div>
<span class="argmore"><?php echo$more?></span>
<div class="clr"></div>
</div></div>
</div>
ШАГ 7 для редактирования размера размера меленького изображения открываешь файл engine.css в папке /temolates/твой шаблон/style/, находиш в этом файле параметр a.thumbimage img { - в нем параметр width: отвечатет за ширину изображения в пикселях, параметр height: за высату в пикселях. Я себе поставил width: 160px; height: 240px;
Все прекрасно работает на RC5...
Пример смотрите тут:
http://gtfun.ru/files.html
Буду очень рад если узнаю, что кому-то помог.