// wy¶wietlanie wpisu pobranego do modyfikacji
     $query = sprintf("\r\n            SELECT\r\n                 id,\r\n                 DATE_FORMAT(date, '%%d-%%m-%%Y %%T') AS date,\r\n                 comments_id,\r\n                 author,\r\n                 author_ip,\r\n                 email,\r\n                 text\r\n            FROM \r\n                %1\$s \r\n            WHERE \r\n                id = '%2\$d'", TABLE_COMMENTS, $_GET['id']);
     $db->query($query);
     $db->next_record();
     $date = $db->f("date");
     $title = $db->f("title");
     $text = $db->f("text");
     $author = $db->f("author");
     $published = $db->f("published");
     $ft->assign(array('AUTHOR' => $author, 'DATE' => $date, 'ID' => $_GET['id'], 'TEXT' => br2nl($text)));
     $ft->define('form_commentsedit', "form_commentsedit.tpl");
     $ft->parse('ROWS', ".form_commentsedit");
     break;
 case "edit":
     // edycja wybranego wpisu
     $text = parse_markers($_POST['text'], 1);
     $author = $_POST['author'];
     //sprawdzania daty
     if (isset($_POST['now']) || !preg_match('#^([0-9][0-9])-([0-9][0-9])-([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])$#', $_POST['date'], $matches)) {
         $date = date("Y-m-d H:i:s");
     } else {
         $date = sprintf('%s-%s-%s %s', $matches[3], $matches[2], $matches[1], $matches[4]);
     }
     $query = sprintf("\r\n        UPDATE \r\n            %1\$s \r\n        SET \r\n            author\t= '%2\$s', \r\n            text\t= '%3\$s',\r\n            date    = '%4\$s'\r\n        WHERE \r\n            id = '%5\$d'", TABLE_COMMENTS, $author, $text, $date, $_GET['id']);
     $db->query($query);
     $ft->assign('CONFIRM', $i18n['edit_comments'][0]);
     $ft->parse('ROWS', ".result_note");
     break;
 case "delete":
     // usuwanie wybranego wpisu
     // potwierdzenie usuniecia komentarza
$oic_y = '';
$oic_n = 'checked="checked"';
//comments_allow
$ca_y = 'checked="checked"';
$ca_n = '';
//published
$p_y = 'checked="checked"';
$p_n = '';
//date disabled
$date_disabled = '';
$date_now = '';
//podglad tresci wpisu rowniez przy bledach
if (isset($_POST['sub_preview']) || isset($_POST['sub_commit'])) {
    $text = stripslashes($_POST['text']);
    $title = trim($_POST['title']);
    $ft->assign(array('N_TITLE' => stripslashes($title), 'N_TEXT' => str_br2nl($text), 'NT_TEXT' => nl2br(parse_markers($text, 1)), 'NOTE_PREVIEW' => true));
    $current_cat_id = isset($_POST['assign2cat']) ? $_POST['assign2cat'] : array();
    if ($_POST['only_in_category'] > 0) {
        $oic_y = 'checked="checked"';
        $oic_n = '';
    }
    if ($_POST['comments_allow'] <= 0) {
        $ca_y = '';
        $ca_n = 'checked="checked"';
    }
    if ($_POST['published'] < 0) {
        $p_y = '';
        $p_n = 'checked="checked"';
    }
    if (isset($_POST['now'])) {
        $date_disabled = 'disabled="disabled"';
 $note_author = $db->f("author");
 if ($permarr['moderator'] || $permarr['writer'] && $note_author == $_SESSION['login']) {
     $text = $_POST['text'];
     $title = $_POST['title'];
     $author = $_POST['author'];
     $published = $_POST['published'];
     $comments_allow = $_POST['comments_allow'];
     $only_in_cat = $_POST['only_in_category'];
     $assign2cat = $_POST['assign2cat'];
     //sprawdzania daty
     if (isset($_POST['now']) || !preg_match('#^([0-9][0-9])-([0-9][0-9])-([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])$#', $_POST['date'], $matches)) {
         $date = date("Y-m-d H:i:s");
     } else {
         $date = sprintf('%s-%s-%s %s', $matches[3], $matches[2], $matches[1], $matches[4]);
     }
     $text = parse_markers($text, 1);
     $query = sprintf("\r\n                    UPDATE \r\n                        %1\$s \r\n                    SET \r\n                        title\t\t\t= '%2\$s', \r\n                        author\t\t\t= '%3\$s', \r\n                        text\t\t\t= '%4\$s', \r\n                        published\t\t= '%5\$s', \r\n                        comments_allow\t= '%6\$d',\r\n                        date            = '%7\$s', \r\n                        only_in_category= '%8\$s'\r\n                    WHERE \r\n                        id = '%9\$d'", TABLE_MAIN, $title, $author, $text, $published, $comments_allow, $date, $only_in_cat, $_GET['id']);
     $db->query($query);
     $query = sprintf("\r\n                    DELETE FROM \r\n                        %1\$s \r\n                    WHERE \r\n                        news_id = '%2\$d'", TABLE_ASSIGN2CAT, $_GET['id']);
     $db->query($query);
     // wprowadzamy informacje o przynaleznych kategoriach
     foreach ($assign2cat as $selected_cat) {
         $query = sprintf("\r\n                        INSERT INTO \r\n                            %1\$s \r\n                        VALUES('', '%2\$d', '%3\$d')", TABLE_ASSIGN2CAT, $_GET['id'], $selected_cat);
         $db->query($query);
     }
     // usuwamy istniej±ce zdjêcie
     if (isset($_POST['delete_image']) && $_POST['delete_image'] == 1) {
         $query = sprintf("\r\n                        UPDATE \r\n                            %1\$s \r\n                        SET \r\n                            image = '' \r\n                        WHERE \r\n                            id = '%2\$d'", TABLE_MAIN, $_GET['id']);
         $db->query($query);
     }
     // dodajemy zdjêcie do wpisu
 function news_update()
 {
     if ($this->is_error()) {
         return false;
     }
     if (count($_POST) == 0) {
         $this->error_set('CoreNews::NewsUpdate:: $_POST is empty.');
         return false;
     }
     $title = trim($_POST['title']);
     $timestamp = isset($_POST['now']) ? time() : null;
     //sprawdzamy czy ma uprawnienia do dodawania newsow
     if (!$this->permarr['writer']) {
         $this->error_set('CoreNews::NewsUpdate:: ' . $this->i18n['update_note'][2]);
     }
     //sprawdzamy czy format czasu jest prawid�owy
     if (is_null($timestamp)) {
         $regexp = '/
             ^
             ([0-9]{4}) #rok (index:1)
             -
             ([0-9]{2}) #miesiac (index:2)
             -
             ([0-9]{2}) #dzien (index:3)
             [ ]
             ([0-9]{2}) #godzina (index:4)
             :
             ([0-9]{2}) #minuta (index:5)
             :
             ([0-9]{2}) #sekunda (index:6)
             $
             /ix';
         // wlasciwy format czasu ?
         if (!preg_match($regexp, $_POST['date'], $date_match)) {
             $this->error_set('CoreNews::NewsUpdate:: ' . $this->i18n['update_note'][5]);
         } else {
             $timestamp = mktime((int) $date_match[4], (int) $date_match[5], (int) $date_match[6], (int) $date_match[2], (int) $date_match[3], (int) $date_match[1], -1);
         }
     }
     // sprawdzamy czy news został przypisany do jakichs kategorii
     if (!isset($_POST['assign2cat']) || !is_array($_POST['assign2cat']) || count($_POST['assign2cat']) == 0) {
         $this->error_set('CoreNews::NewsUpdate:: news must be assigned to at least one category.');
     }
     if ($this->is_error()) {
         return false;
     }
     // jesli nie ma bledow, to dodajemy
     // ukladamy wlasciwa tablice
     $news_data = array('id' => $_POST['id'], 'id_cat' => $_POST['assign2cat'], 'timestamp' => $timestamp, 'title' => $title, 'author' => $_POST['author'], 'text' => parse_markers($_POST['text'], 1), 'comments_allow' => (bool) $_POST['comments_allow'], 'published' => (bool) $_POST['published'], 'only_in_category' => (bool) $_POST['only_in_category']);
     //let's do it
     $news = new News();
     $news->set_from_array($news_data);
     $news->commit();
     if ($news->is_error()) {
         $this->error_set($news->error_get());
         return false;
     }
     return true;
 }
$preview = empty($_POST['preview']) ? '' : $_POST['preview'];
$post = empty($_POST['post']) ? '' : $_POST['post'];
// definicja szablonow parsujacych wyniki bledow.
$ft->define('error_reporting', 'error_reporting.tpl');
$ft->define_dynamic('error_row', 'error_reporting');
switch ($action) {
    case 'show':
        // podglad
        if (!empty($preview)) {
            $ft->assign(array('PG_TEXT' => nl2br(parse_markers(stripslashes($_POST['text']), 1)), 'PAGE_PREVIEW' => true));
        } else {
            $ft->assign(array('PAGE_PREVIEW' => false));
        }
        // submit formularza
        if (!empty($post)) {
            $query = sprintf("\r\n              UPDATE \r\n                  %1\$s \r\n              SET \r\n                  title           = '%2\$s', \r\n                  text            = '%3\$s', \r\n                  published       = '%4\$s', \r\n                  assigned_tpl    = '%5\$s' \r\n              WHERE \r\n                  id = '%6\$d'", TABLE_PAGES, $_POST['title'], parse_markers($_POST['text'], 1), $_POST['published'], $_POST['template_name'], $_GET['id']);
            $db->query($query);
            // usuwamy istniej±ce zdjêcie
            if (isset($_POST['delete_image']) && $_POST['delete_image'] == 1) {
                $query = sprintf("\r\n                  UPDATE \r\n                      %1\$s \r\n                  SET \r\n                      image = '' \r\n                  WHERE \r\n                      id = '%2\$d'", TABLE_PAGES, $_GET['id']);
                $db->query($query);
            }
            // dodajemy zdjêcie do wpisu
            if (!empty($_FILES['file']['name'])) {
                $up = new upload();
                $upload_dir = get_root() . '/photos';
                // upload pliku na serwer.
                $file = $up->upload_file($upload_dir, 'file', true, true, 0, "jpg|jpeg|gif");
                if ($file == false) {
                    echo $up->error;
                } else {
            }
            $ft->parse('ROWS', "error_reporting");
        }
    } else {
        $monit[] = $i18n['add_page'][3];
        foreach ($monit as $error) {
            $ft->assign('ERROR_MONIT', $error);
            $ft->parse('ROWS', ".error_row");
        }
        $ft->parse('ROWS', "error_reporting");
    }
} else {
    if (!empty($preview)) {
        $text = $_POST['text'];
        $title = trim($_POST['title']);
        $ft->assign(array('P_TITLE' => stripslashes($title), 'P_TEXT' => br2nl(stripslashes($text)), 'PG_TEXT' => nl2br(parse_markers(stripslashes($text), 1)), 'PAGE_PREVIEW' => true));
    } else {
        $ft->assign('PAGE_PREVIEW', false);
    }
    $query = sprintf("\r\n        SELECT \r\n            id, parent_id, title \r\n        FROM \r\n            %1\$s \r\n        WHERE \r\n            published = 'Y' \r\n        AND \r\n            parent_id = '%2\$d' \r\n        ORDER BY \r\n            id \r\n        ASC", TABLE_PAGES, 0);
    $db->query($query);
    $ft->define("form_pageadd", "form_pageadd.tpl");
    $ft->define_dynamic("page_row", "form_pageadd");
    while ($db->next_record()) {
        $page_id = $db->f("id");
        $parent_id = $db->f("parent_id");
        $title = $db->f("title");
        $ft->assign(array('P_ID' => $page_id, 'P_NAME' => $title));
        $ft->parse('PAGE_ROW', ".page_row");
        get_addpage_cat($page_id, 2);
    }