Example #1
0
        if (!$comment['c']) {
            $comment['c'] = $bkp;
        }
    }
    $com[] = entry_make($comment, 'comment', $template, 'comm');
    $_comment_iterator++;
}
// remove temporary
unset($_comment_iterator);
if (getoption('reverse_comments')) {
    ksort($com);
}
// Comment per page is set
if ($com_by_page = getoption('comments_per_page')) {
    $com = array_slice($com, $start_from, $com_by_page, TRUE);
    $cpn = cn_get_template('comments_prev_next', $template);
    // Make prev link
    if ($start_from) {
        $st = $start_from - $com_by_page;
        if ($st < 0) {
            $st = 0;
        }
        if (getoption('rw_engine')) {
            $hrefA = '<a href="' . cn_rewrite('comments', $id, $st) . '">\\1</a>';
        } else {
            $hrefA = '<a href="' . cn_url_modify('start_from=' . $st) . '">\\1</a>';
        }
    } else {
        $hrefA = '\\1';
    }
    // Make next link
Example #2
0
cn_set_GET('source,number,start_from,reverse,static,sortby,dir,per_page,archive,category,nocategory,ucat,template=Default,page_alias,only_active,user_by');
// Show news list
echo join('', $echo);
// Get config
$_enable_pagination = getoption('disable_pagination') ? FALSE : TRUE;
// Enable ignore rewrite for pagination
$_ignore_rewrite = isset($ignore_rewrite) && $ignore_rewrite ? true : false;
$ignore_rewrite = false;
// No pagination, if showed rows less than number
if ($_cn <= $number || !$number) {
    $_enable_pagination = FALSE;
}
// in case of pagination
if ($_enable_pagination) {
    $PSTF = array('category' => '');
    $out = cn_get_template('prev_next', $template);
    // <!--- PREV
    $_prev_num = $start_from - $number;
    // Back to previous page
    if ($_prev_num >= 0) {
        if (getoption('rw_engine') && !$_ignore_rewrite) {
            if ($tag) {
                $url = cn_rewrite('tag', $tag, $_prev_num, $PSTF);
            } else {
                $url = cn_rewrite('list', $_prev_num, $archive, $PSTF);
            }
        } else {
            $url = cn_url_modify("start_from={$_prev_num}");
        }
        $PREV = '<a class="cn-previous-news" href="' . $url . '">\\1</a>';
    } elseif ($start_from && $_prev_num > 0) {
Example #3
0
    $date_from = ctime() - 3600 * 24 * 365 * 3;
}
if ($_tm && $_td && $_ty) {
    $date_to = mktime(0, 0, 0, intval($_tm), intval($_td), intval($_ty));
} else {
    $date_to = ctime() + 3600 * 24 * 365 * 3;
}
$search_st = intval($search_st);
$number = intval($number);
if (!$template) {
    $template = "Default";
}
if (!$number) {
    $number = 25;
}
$form = cn_get_template('search', $template);
$form = str_replace('{php_self}', PHP_SELF, $form);
// Basic Input Box
$form = str_replace('{search_basic}', '<input type="hidden" name="template" value="' . cn_htmlspecialchars(REQ('template')) . '" /><input type="hidden" name="dosearch" value="yes" /><input class="cn_search_basic" type="text" name="search" value="' . cn_htmlspecialchars($search) . '" />', $form);
$form = str_replace('{author}', '<input class="cn_author" type="text" name="user" value="' . cn_htmlspecialchars($user) . '" />', $form);
$form = str_replace('{in_archives}', '<input class="cn_in_archives" type="checkbox" name="archives" value="Y" ' . ($archives ? 'checked' : '') . ' />', $form);
// Make submit button
$form = preg_replace('/\\[submit\\](.*?)\\[\\/submit\\]/', '<input class="cn_submit" type="submit" value="\\1" />', $form);
// Hidden fields placeholder [hid=name] --> input:hidden
if (preg_match_all('/\\[hid=(.*?)\\]/i', $form, $c, PREG_SET_ORDER)) {
    foreach ($c as $v) {
        $form = str_replace($v[0], '<input type="hidden" name="' . $v[1] . '" value="' . REQ($v[1]) . '" />', $form);
    }
}
// Date selection
list($_df, $_mf, $_yf) = make_postponed_date($date_from);
Example #4
0
function cn_modify_tagline($e)
{
    global $template, $PHP_SELF;
    $tag_extrn = strtolower(trim(REQ('tag')));
    $echo = array();
    $x = isset($e['tg']) ? spsep($e['tg']) : array();
    $ix = 1;
    $tc = count($x);
    foreach ($x as $tag) {
        $tag = trim($tag);
        $esrc = cn_get_template('tagline', $template);
        // tag selected?
        if ($tag_extrn === strtolower($tag)) {
            $esrc = preg_replace('/\\{tag\\:selected\\|(.*?)\\}/i', '\\1', $esrc);
        } else {
            $esrc = preg_replace('/\\{tag\\:selected\\|(.*?)\\}/i', '', $esrc);
        }
        // get url tag
        if (preg_match_all('/\\{url(.*?)\\}/i', $esrc, $c, PREG_SET_ORDER)) {
            foreach ($c as $v) {
                $disable_rw = FALSE;
                $_phpself = $PHP_SELF;
                // save php-self
                $_get = $_GET;
                // Additional parameters
                $group = $v[1] ? cn_params(substr($v[1], 1)) : '';
                // manual php-self setting
                if (isset($group['php_self'])) {
                    $PHP_SELF = $group['php_self'];
                    unset($group['php_self']);
                }
                // Manual rewrite disable
                if (!empty($group[':disable_rw'])) {
                    $disable_rw = TRUE;
                    unset($group[':disable_rw']);
                }
                // Tagline - remove ID
                unset($_GET['id']);
                $url = cn_url_modify("tag={$tag}", array('group' => $group));
                if (getoption('rw_engine') && !$disable_rw) {
                    $url = cn_rewrite('tag', $tag, 0, $group);
                }
                $esrc = str_replace($v[0], $url, $esrc);
                $PHP_SELF = $_phpself;
                // store php-self
                $_GET = $_get;
                // store GET
            }
        }
        if ($ix === $tc) {
            $esrc = preg_replace('/\\{comma\\|.*?\\}/is', '', $esrc);
        } else {
            $esrc = preg_replace('/\\{comma\\|(.*?)\\}/is', '\\1', $esrc);
        }
        $echo[] = str_replace('{tag}', cn_htmlspecialchars($tag), $esrc);
        $ix++;
    }
    return join('', $echo);
}
Example #5
0
function dashboard_personal()
{
    $member = member_get();
    // Additional fields for user
    $personal_more = array('site' => array('name' => 'Personal site', 'type' => 'text'), 'about' => array('name' => 'About me', 'type' => 'textarea'));
    if (request_type('POST')) {
        cn_dsi_check();
        $clause = '';
        $any_changes = FALSE;
        list($editpassword, $confirmpassword, $editnickname, $edithidemail, $more) = GET('editpassword, confirmpassword, editnickname, edithidemail, more', 'POST');
        $avatar_file = isset($_FILES['avatar_file']) ? $_FILES['avatar_file'] : null;
        if (!isset($member['nick']) && !empty($editnickname) || isset($member['nick']) && $member['nick'] !== $editnickname) {
            $any_changes = TRUE;
        }
        if (!isset($member['e-hide']) && !empty($edithidemail) || isset($member['e-hide']) && $member['e-hide'] !== $edithidemail) {
            $any_changes = TRUE;
        }
        if ($editpassword) {
            if ($editpassword === $confirmpassword) {
                $any_changes = TRUE;
                db_user_update($member['name'], "pass="******"Check your email.";
                cn_send_mail($member['email'], i18n("Password was changed"), $notification);
            } else {
                cn_throw_message('Password and confirm do not match', 'e');
            }
        }
        // Update additional fields for personal data
        $o_more = base64_encode(serialize($member['more']));
        $n_more = base64_encode(serialize($more));
        if ($o_more !== $n_more) {
            $any_changes = TRUE;
            db_user_update($member['name'], "more=" . $n_more);
        }
        // Set an avatar
        if (!empty($avatar_file) && $avatar_file['error'] == 0) {
            $uploads_dir = getoption('uploads_dir');
            if ($uploads_dir) {
                $file_name = 'avatar_' . $member['name'] . '_' . $avatar_file['name'];
                if (isset($member['avatar']) && $member['avatar'] != $file_name) {
                    // remove old avatar
                    unlink($uploads_dir . $member['avatar']);
                }
                move_uploaded_file($avatar_file['tmp_name'], $uploads_dir . $file_name);
                db_user_update($member['name'], "avatar=" . $file_name);
                $any_changes = TRUE;
            }
        }
        // Has changes?
        if ($any_changes) {
            db_user_update($member['name'], "nick={$editnickname}", "e-hide={$edithidemail}");
            // Update & Get member from DB
            mcache_set('#member', NULL);
            $member = member_get();
            cn_throw_message("User info updated! {$clause}");
        } else {
            cn_throw_message("No changes", 'w');
        }
    }
    $grp = getoption('#grp');
    $acl_desc = $grp[$member['acl']]['N'];
    // Get info from personal data
    foreach ($personal_more as $name => $pdata) {
        if (isset($member['more'][$name])) {
            $personal_more[$name]['value'] = $member['more'][$name];
        }
    }
    cn_assign('member, acl_write_news, acl_desc, personal_more', $member, test('Can'), $acl_desc, $personal_more);
    echoheader('-@dashboard/style.css', "Personal options");
    echo exec_tpl('dashboard/personal');
    echofooter();
}
Example #6
0
function add_news_invoke()
{
    $FlatDB = new FlatDB();
    // loadall
    list($article_type, $preview) = GET('postpone_draft, preview', 'GETPOST');
    list($from_date_hour, $from_date_minutes, $from_date_seconds, $from_date_month, $from_date_day, $from_date_year) = GET('from_date_hour, from_date_minutes, from_date_seconds, from_date_month, from_date_day, from_date_year', 'GETPOST');
    list($title, $page, $category, $short_story, $full_story, $if_use_html, $vConcat, $vTags, $faddm) = GET('title, page, category, short_story, full_story, if_use_html, concat, tags, faddm', 'GETPOST');
    $categories = cn_get_categories(false);
    list($morefields) = cn_get_more_fields($faddm);
    $is_active_html = test('Csr');
    // Prepare data to add new item
    if (request_type('POST')) {
        cn_dsi_check();
        if (!preg_match("~^[0-9]{1,}\$~", $from_date_hour) or !preg_match("~^[0-9]{1,}\$~", $from_date_minutes) or !preg_match("~^[0-9]{1,}\$~", $from_date_seconds)) {
            cn_throw_message("You want to add article, but the hour format is invalid.", 'e');
        }
        // create publish time
        $c_time = mktime($from_date_hour, $from_date_minutes, $from_date_seconds, $from_date_month, $from_date_day, $from_date_year);
        // flat category to array
        if ($category == '') {
            $category = array();
        } elseif (!is_array($category)) {
            $category = array($category);
        }
        // article is draft?
        if ($article_type == 'draft') {
            $draft = 1;
        } else {
            $draft = 0;
        }
        $if_use_html = $if_use_html ? TRUE : (getoption('use_wysiwyg') ? TRUE : FALSE);
        // draft, if Behavior Draft is set
        if (test('Bd')) {
            $draft = 1;
        }
        // sanitize page name
        $page = preg_replace('/[^a-z0-9_\\.]/i', '-', $page);
        if (empty($page) && getoption('auto_news_alias')) {
            $page = strtolower(preg_replace('/[^a-z0-9_\\.]/i', '-', cn_transliterate($title)));
        }
        // basic news
        $member = member_get();
        $entry = array();
        $entry['id'] = $c_time;
        $entry['t'] = cn_htmlclear($title);
        $entry['u'] = $member['name'];
        $entry['c'] = news_make_category($category);
        $entry['s'] = cn_htmlclear($short_story);
        $entry['f'] = cn_htmlclear($full_story);
        $entry['ht'] = $if_use_html;
        $entry['st'] = $draft ? 'd' : '';
        $entry['co'] = array();
        // 0 comments
        $entry['cc'] = $vConcat ? TRUE : FALSE;
        $entry['tg'] = strip_tags($vTags);
        $entry['pg'] = $page;
        // Check page alias for exists
        if ($page && bt_get_id($page, 'pg_ts') && !$preview) {
            cn_throw_message('Page alias already exists', 'e');
        } else {
            // Get latest id for news
            $latest_id = intval(bt_get_id('latest_id', 'conf'));
            $latest_id++;
            bt_set_id($latest_id, $c_time, 'nid_ts');
            bt_set_id($c_time, $latest_id, 'nts_id');
            bt_set_id('latest_id', $latest_id, 'conf');
            // apply more field
            list($entry, $disallow_message) = cn_more_fields_apply($entry, $faddm);
            // has message from function
            if ($disallow_message) {
                cn_throw_message($disallow_message, 'e');
            }
        }
        // ----
        if (!$preview) {
            if (!getoption('disable_title') && empty($title)) {
                cn_throw_message('The title cannot be blank', 'e');
            }
            if (getoption('news_title_max_long') && strlen($title) > getoption('news_title_max_long')) {
                cn_throw_message('The title cannon be greater then ' . getoption('news_title_max_long') . ' charecters', 'e');
            }
            if (!getoption('disable_short') && empty($short_story)) {
                cn_throw_message('The story cannot be blank', 'e');
            }
            // no errors in a[rticle] area
            if (cn_get_message('e', 'c') == 0) {
                // Add page alias
                bt_set_id($page, $c_time, 'pg_ts');
                bt_set_id($c_time, $page, 'ts_pg');
                $sc = $draft ? 'draft' : '';
                $es = db_news_load(db_get_nloc($entry['id']));
                // make unique id
                while (isset($es[$c_time])) {
                    $c_time++;
                }
                // override ts
                $entry['id'] = $c_time;
                // add default group permission
                $member = member_get();
                // add to database
                $es[$c_time] = $entry;
                // do save item
                db_save_news($es, db_get_nloc($c_time));
                // add news to index
                db_index_add($c_time, $entry['c'], $member['id'], $sc);
                // ------------------------
                $FlatDB->cn_update_date($c_time, 0);
                $FlatDB->cn_source_update($c_time, $draft ? 'D' : '');
                $FlatDB->cn_add_categories($entry['c'], $c_time);
                $FlatDB->cn_add_tags($entry['tg'], $c_time);
                $FlatDB->cn_user_sync($entry['u'], $c_time);
                // ------------------------
                // increase user count written news
                $cnt = intval($member['cnt']) + 1;
                db_user_update($member['name'], "cnt={$cnt}");
                // do update meta-index
                db_index_update_overall($sc);
                // Notify for unapproved
                if (getoption('notify_unapproved') && test('Bd')) {
                    cn_send_mail(getoption('notify_email'), i18n('CuteNews unapproved article was added'), "CuteNews - Unapproved article was added CuUnArWaAd", cn_replace_text(cn_get_template('notify_unapproved', 'mail'), '%username%, %article_title%', $member['name'], $title));
                }
                $FlatDB->cache_clean();
                // view in editor
                cn_relocation(PHP_SELF . '?mod=editnews&action=editnews&id=' . $c_time . '&m=added');
            }
        } else {
            //correct preview links
            $preview_html = preg_replace('/href="(.*?)"/', 'href="#"', entry_make($entry, 'active'));
            $preview_html_full = preg_replace('/href="(.*?)"/', 'href="#"', entry_make($entry, 'full'));
            cn_assign('preview_html, preview_html_full, gstamp', $preview_html, $preview_html_full, $c_time);
        }
    }
    if (empty($category)) {
        $category = array();
    }
    // -----------------------------------------------------------------------------------------------------------------
    cn_assign('categories, vCategory, vTitle, vShort, vFull, is_active_html, vUseHtml, vConcat, vTags, morefields,vPage', $categories, $category, $title, $short_story, $full_story, $is_active_html, $if_use_html, $vConcat, $vTags, $morefields, $page);
    // ---
    echoheader("addedit@addedit/main.css", i18n("Add News"));
    echo exec_tpl('addedit/main');
    echofooter();
}