TvoyWeb пишет:Этой прищепке предшевствовал перебор всех тем, и если в теме был хоть один аттач, то записывалось определенное значение в list.php. А дальше при аттаче в пост проверяется есть ли в list.php такая запись, если нет, то пишется. То же самое при удалении аттача.
А не проще было бы сделать так:
При обращении к файлу forums.php проверять в папке "forum".$forum_id наличие файла "attaches-".$topic_id.php? Если файл есть, значит есть аттачи... Незнаю удаляется ли этот файл при удалении поста с аттачем, но и это можно проверить...
PHP:
$tmp = 0
$allattaches = get_file($exbb['home_path'].'forum'.$forum_id.'/attaches-'.$topic_id.'.php');
$allattacheskey = array_keys($allattaches);
foreach($allattacheskey as $a =>$attaches_id){
$filename_fin = $allattaches[$attaches_id]['file'];
if ($filename_fin != "" ) {
$tmp = $tmp + 1;
}
}
if ($tmp > 0) {
......
......
......
}
А про удаление старых аттачей могу сказать следующее:
Узнавать есть ли аттачи в теме можно именно таким способом, который я описал выше..
Надо определиться какие аттачи считать старыми, т.е. их давность.
Определить популярность аттача, т.е. время которое он выложен деленное на колличество скачиваний (вот низнаю последнее скачивание регистрируется форумом или нет, но с ним было бы намного проще).
Еще нужно сделать так, чтобы в определенных темах аттачи нивкоем случае не удалялись, т.е. если выложено очень важное и редкое (а настраивать это в админке, писать номера тем или форумов ч.з. запятую...