Вход Регистрация
Файл: 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 == 0 || $post['id'] == $id) && !empty($post['img'])) {
                        
// Remove images
                        
unlink($path . $post['img']['file']);
                        
unlink($path . $post['img']['preview']);
                    }
                    if (
$id != 0 && ($post['id'] == $id)) {
                        
// Remove post
                        
unset($data[$key]);
                        break;
                    }
                }
                if (
$id != 0) {
                    
file_put_contents($file, json_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 == 0 ? '' : '/' . $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');
        }
    }

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