Тема: ХАК для плагина Adepto Fastload 0.1 или как удалить файл из новости
вид такой
изменения произвнедены в 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="<?=$xfields->settings['path_upload']; ?>/<?=$id; ?>/<?=$file; ?>"><?=$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)