Вход Регистрация
Файл: wboard/source/system/controller/remove.php
Строк: 52
<?php

/**
 * Wboard
 * Remove post or thread
 * @author Screamer
 * @copyright 2013
 */

class Module_Remove extends Module
{

    
/**
     * Remove thread or post
     * @param (string) $board Name of board
     * @param (int) $thread ID of thread
     * @param (int) $id ID of post
     * @return (void)
     */
    
public function index($board ''$thread ''$id '')
    {
        if (
$this->is_root) {
            
$board htmlspecialchars($board);
            
$thread intval($thread);
            
$id intval($id);
            
$path $this->path 'files' DIRECTORY_SEPARATOR 'boards' DIRECTORY_SEPARATOR $board DIRECTORY_SEPARATOR;
            
$file $path 'res' DIRECTORY_SEPARATOR $thread '.json';
            if (
is_file($file)) {
                
$data json_decode(file_get_contents($file), TRUE);
                foreach (
$data as $key => $post) {
                    if ((
$id == || $post['id'] == $id) && !empty($post['img'])) {
                        
// Remove images
                        
unlink($path $post['img']['file']);
                        
unlink($path $post['img']['preview']);
                    }
                    if (
$id != && ($post['id'] == $id)) {
                        
// Remove post
                        
unset($data[$key]);
                        break;
                    }
                }
                if (
$id != 0) {
                    
file_put_contents($filejson_encode($data));
                    
// Remove post
                    
$this->model->remove_bump($board$thread, (strtotime($post['time']) - 3600 3)); // TODO: set timeshift from settings
                
} else {
                    
// Remove thread
                    
unlink($file);
                    
$this->model->remove_thread($board$thread);
                }
            }
            
$this->redirect($board . ($id == '' '/' $thread));
        }
        
$this->redirect('w_action/err'); // Acces denied
    
}

    
/**
     * Remove board
     * @param (string) $name Name of board
     * @return (void)
     */
    
public function board($name '')
    {
        
$board $this->model->get_board($name);
        if (
is_array($board) && $this->is_root) {
            
$name htmlspecialchars($name);
            if (!empty(
$_POST)) {
                if (isset(
$_POST['ok'])) {
                    
// Remove files
                    
$this->helper->delete_directory($this->path 'files' DIRECTORY_SEPARATOR 'boards' DIRECTORY_SEPARATOR $board['name']);
                    
// Remove board from database
                    
$this->model->remove_board($board['name']);
                    
// Redirect to mainpage
                    
$this->redirect();
                } else {
                    
// Cancel; Redirect to board
                    
$this->redirect($name);
                }
            }
            
// Confirm message
            
$this->tpl->title $this->lng->remove_board ' - /' $name '/';
            
$this->tpl->set_output($this->tpl->load('_form_confirm', array('message' => $this->lng->remove_board_confirm)));
        } else {
            
// Board is not exists or access denied
            
$this->redirect('w_action/err');
        }
    }

}
Онлайн: 4
Реклама