Тема: ХАК для плагина Adepto Fastload 0.1 или как удалить файл из новости

вид такой
http://zavkat.com/stra/111.gif

изменения произвнедены в 2 файлах


1. файл плагина именнно  plugins/adepto-fastload.php


первый кусок, добавляет отображение кнопки удалить

       
$wxleg1=0;
        $del_path=strstr($xfields->settings['path_upload'], "data");
        echo "<table>";
        
        while ($file = readdir($handle)){
            
            if ($file != '.' and $file != '..'){
?>

<tr><td><a href="javascript:insertext('<a href=&quot;<?=$xfields->settings['path_upload']; ?>/<?=$id; ?>/<?=$file; ?>&quot;><?=$file; ?></a> (<?=formatsize(filesize($attach_directory.'/'.$id.'/'.$file)); ?>)', '', '<?=$location; ?>')"><?=$file; ?></a></td><td><input name=kat_del[<?=$wxleg1; ?>] type=checkbox value=<?=$del_path; ?>/<?=$id; ?>/<?=$file; ?> >удалить</td></tr>

<? $wxleg1++;

            }
        }
        unset($wxleg1);

        echo '</table></div>';
    }

Второй кусок, позволяет добавлять файлы к уже созданой директории (у меня наотрез отказывалось)

add_action('new-save-entry', 'adepto_save');
add_action('edit-save-entry', 'adepto_save');

function adepto_save(){
global $id;

    include_once includes_directory.'/zipbackup.inc.php';

    $xfields = new PluginSettings('Adepto_Fastload');

    $attach_directory = cute_parse_url($xfields->settings['path_upload']);
    $attach_directory = $attach_directory['abs'];

    if ($_FILES['file']['name'][0]!==null) //проверяет или есть файлы для поста
{
   
        if (!is_dir($attach_directory.'/'.$id)) //проверяет или есть директория
{
            
            mkdir($attach_directory.'/'.$id, 0777);
        }
        

        for ($i = 0; $i < count($_FILES['file']['name']); $i++){
            $filename = $attach_directory.'/'.$id.'/'.$_FILES['file']['name'][$i];
            $ext = preg_quote(end($ext = explode('.', $filename)), '/');

            if (!$_FILES['file']['error'][$i]){
                move_uploaded_file($_FILES['file']['tmp_name'][$i], $filename);

                if ($_POST['pack'] and $_FILES['file']['type'][$i] != 'application/x-zip-compressed'){
                    $zipfile = new zipfile();
                    $zipfile->add_file(file_read($filename), $_FILES['file']['name'][$i]);
                    file_write(preg_replace('/.'.$ext.'$/i', '.zip', $filename), $zipfile->file());
                    unset($zipfile);
                }

                if ($_POST['unpack'] and $_FILES['file']['type'][$i] == 'application/x-zip-compressed'){
                }
            }
        }
    }
}

Третий кусок, реализует удаление самих файлов из новости

add_action('del-files-entry', 'kat_del');
function kat_del(){
    if (isset($_POST['kat_del'])){
    $kat_del=$_POST['kat_del'];
    foreach ($kat_del as $del_now) {
        @unlink($del_now);
    }    
    }
}

2. файл редактирования новости тобиш модуль inc/mod/editnews.mdu


дописать всего одну строку
№строки 490

if (!$title){
        $title = substr($short_story, 0, 10).'...';
    }

    run_actions('del-files-entry'); //именно эту строку
    run_actions('edit-save-entry');

Оба файла можно скачать тут в архиве

Вопросы на мыло или аську 160172

Отредактировано KATapcuc (29 Mar 2008 13:48:03)

2

Re: ХАК для плагина Adepto Fastload 0.1 или как удалить файл из новости

Зеркало: http://strawberry.goodgirl.ru/files/mods/Adepto Fastload mod 0.1.zip

Признанный мастер чинпоко, а-ай ^_^

Re: ХАК для плагина Adepto Fastload 0.1 или как удалить файл из новости

А как вынести блок удаления файлов в правую колонку.. там где находится сама функция добавления файлов...?
А то получается что одинаковая вещь над полем короткой и длинной новостей.

4

Re: ХАК для плагина Adepto Fastload 0.1 или как удалить файл из новости

astralik, в данном случае никак, т.к. списки файлов нужны в двух вариантах для вставки их в соответствующие поля. А это модификация вывода файлов.

Признанный мастер чинпоко, а-ай ^_^

Re: ХАК для плагина Adepto Fastload 0.1 или как удалить файл из новости

чет не удалаются sad

Strawberry 1.1.1

Re: ХАК для плагина Adepto Fastload 0.1 или как удалить файл из новости

Killa, Проверь пути до файлов, указывает ли

value=<?=$del_path; ?>/<?=$id; ?>/<?=$file; ?>

на действительное расположение закачанного файла в твоём случае? (данный код работает если папка для файлов располагается по дефолту)
Если нет то поправить.