Exemplo n.º 1
5
 function display_page($p)
 {
     $page = $this->db->quick_query('SELECT * FROM %ppages WHERE page_id=%d', $p);
     if (!$page) {
         return $this->error('The page you are looking for does not exist. It may have been deleted or the URL is incorrect.', 404);
     }
     $xtpl = new XTemplate('./skins/' . $this->skin . '/page.xtpl');
     $this->title($page['page_title']);
     $this->meta_description($page['page_meta']);
     $sidebar = null;
     $content = $this->format($page['page_content'], $page['page_flags']);
     if ($page['page_flags'] & POST_HTML && $page['page_flags'] & POST_BBCODE) {
         $content = html_entity_decode($content, ENT_COMPAT, 'UTF-8');
     }
     $xtpl->assign('content', $content);
     if ($page['page_flags'] & POST_SIDEBAR) {
         $SideBar = new sidebar($this);
         $sidebar = $SideBar->build_sidebar();
         $xtpl->parse('Page.HasSidebar');
     } else {
         $xtpl->parse('Page.NoSidebar');
     }
     $xtpl->assign('sidebar', $sidebar);
     $xtpl->parse('Page');
     return $xtpl->text('Page');
 }
Exemplo n.º 2
0
include '../php/sidebar.php';
include '../php/apps.php';
?>

<!DOCTYPE html>
<html>
    <head>
        <title>Apps | Nerdtopia</title>
        <link href="../css/bootstrap.min.css" rel="stylesheet" />
        <link href="../css/materialize.min.css" rel="stylesheet" />
        <link href="../css/custom.css" rel="stylesheet" />
        <link href="http://netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.css" rel="stylesheet">
    </head>
    <body class="full-body">
        <?php 
sidebar::generateSidebar(3);
?>
        <div class="main-content">
            <h4>App Store</h4>
            <hr/>
            <div>
                <div class="col-lg-2 col-md-4 col-sm-6 col-xs-12">
                    <?php 
apps::demo_item('Work', '8bitNerd', true, 'Free', 'briefcase', '#f44336');
?>
                </div>
                <div class="col-lg-2 col-md-4 col-sm-6 col-xs-12">
                    <?php 
apps::demo_item('Music', '8bitNerd', true, 'Free', 'music', '#4caf50');
?>
                </div>
Exemplo n.º 3
0
    function view_cat($cid)
    {
        if ($this->settings['friendly_urls']) {
            $cid = str_replace('-', ' ', $cid);
            $cat = $this->db->quick_query("SELECT * FROM %pblogcats WHERE cat_name='%s'", $cid);
        } else {
            $cat = $this->db->quick_query('SELECT * FROM %pblogcats WHERE cat_id=%d', $cid);
        }
        if (!$cat) {
            return $this->error('The blog category you are looking for does not exist. It may have been deleted or the URL is incorrect.', 404);
        }
        $xtpl = new XTemplate('./skins/' . $this->skin . '/cat.xtpl');
        $this->title('Category: ' . $cat['cat_name']);
        $this->meta_description($cat['cat_description']);
        $xtpl->assign('cat_name', htmlspecialchars($cat['cat_name']));
        $xtpl->assign('cat_desc', $this->format($cat['cat_description'], POST_BBCODE));
        $Posts = null;
        $where = null;
        if ($this->user['user_level'] > USER_GUEST) {
            $where = "pc.pc_cat={$cat['cat_id']} AND post_flags & " . POST_PUBLISHED;
        } else {
            $where = "pc.pc_cat={$cat['cat_id']} AND post_flags & " . POST_PUBLISHED . " AND !(post_flags & " . POST_MEMBERSONLY . ")";
        }
        $result = $this->db->dbquery('SELECT p.post_id, p.post_subject, p.post_date, u.user_name
			   FROM %ppostcats pc
		  LEFT JOIN %pblogposts p ON p.post_id = pc.pc_post
		  LEFT JOIN %pusers u ON u.user_id=p.post_user
		      WHERE ' . $where . ' ORDER BY p.post_date DESC');
        while ($post = $this->db->assoc($result)) {
            $xtpl->assign('subject', htmlspecialchars($post['post_subject']));
            $xtpl->assign('author', htmlspecialchars($post['user_name']));
            $xtpl->assign('date', date($this->settings['blog_dateformat'], $post['post_date']));
            if ($this->settings['friendly_urls']) {
                $post_url = $this->settings['site_address'] . $this->clean_url($post['post_subject']) . "-{$post['post_id']}.html";
            } else {
                $post_url = "{$this->settings['site_address']}index.php?a=blog&amp;p={$post['post_id']}";
            }
            $xtpl->assign('post_url', $post_url);
            $xtpl->parse('Category.Post');
        }
        $SideBar = new sidebar($this);
        $xtpl->assign('sidebar', $SideBar->build_sidebar());
        $xtpl->parse('Category');
        return $xtpl->text('Category');
    }
Exemplo n.º 4
0
<?php

include '../php/sidebar.php';
include '../php/feed.php';
?>

<!DOCTYPE html>
<html>
    <head>
        <title>News Feed | Nerdtopia</title>
        <link href="../css/bootstrap.min.css" rel="stylesheet" />
        <link href="../css/materialize.min.css" rel="stylesheet" />
        <link href="../css/custom.css" rel="stylesheet" />
        <link href="http://netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.css" rel="stylesheet">
    </head>
    <body class="full-body">
        <?php 
sidebar::generateSidebar(1);
?>
        <div class="main-content">
            <h4>News Feed</h4>
            <hr/>
            <?php 
echo feed::demo_feed();
?>
        </div>
        <script src="../js/jquery-1.12.0.min.js"></script>
        <script src="../js/bootstrap.min.js"></script>
        <script src="../js/materialize.min.js"></script>
    </body>
</html>
Exemplo n.º 5
0
                        margin: 0;
                        list-style: none;
                }

                .treeview li {
                        margin: 0;
                        padding: 3px 0pt 3px 16px;
                }

                ul.dir li { padding: 2px 0 0 16px; }

                .treeview li { background: url(./jquery/images/tv-item.gif) 0 0 no-repeat; }
                .treeview .collapsable { background-image: url(./jquery/images/tv-collapsable.gif); }
                .treeview .expandable { background-image: url(./jquery/images/tv-expandable.gif); }
                .treeview .last { background-image: url(./jquery/images/tv-item-last.gif); }
                .treeview .lastCollapsable { background-image: url(./jquery/images/tv-collapsable-last.gif); }
                .treeview .lastExpandable { background-image: url(./jquery/images/tv-expandable-last.gif); }

        </style>
        </head>
        <body>

<p><a href="./">Back to Online-Bookmarks</a></p>

<?php 
logged_in_only();
$sidebar = new sidebar();
echo '<ul id="browser" class="dir">' . "\n";
$sidebar->make_tree(0);
echo "</ul>\n";
require_once ABSOLUTE_PATH . "footer.php";
Exemplo n.º 6
0
    function view_post($p)
    {
        $post = $this->db->quick_query('SELECT p.*, u.* FROM %pblogposts p
			LEFT JOIN %pusers u ON u.user_id=p.post_user WHERE post_id=%d', $p);
        if (isset($this->get['title'])) {
            if ($this->clean_url($post['post_subject']) != $this->get['title']) {
                $post = null;
            }
        }
        if (!$post || $post['post_flags'] & POST_MEMBERSONLY && $this->user['user_level'] == USER_GUEST) {
            return $this->error('The blog entry you are looking for is not available. It may have been deleted, is restricted from viewing, or the URL is incorrect.', 404);
        }
        if (!($post['post_flags'] & POST_PUBLISHED)) {
            if ($this->user['user_level'] < USER_CONTRIBUTOR) {
                return $this->error('The blog entry you are looking for is not available. It may have been deleted, is restricted from viewing, or the URL is incorrect.', 404);
            }
        }
        $this->title($post['post_subject']);
        $this->meta_description($post['post_summary']);
        if (isset($this->post['submit']) || isset($this->post['preview'])) {
            if ($this->closed_content($post, COMMENT_BLOG)) {
                return $this->error('Sorry, this blog entry is closed for commenting.', 403);
            }
            if ($post['post_flags'] & POST_MEMBERSONLY && $this->user['user_level'] < USER_MEMBER) {
                return $this->error('Sorry, comments are only available to registered users for this post.', 403);
            }
            if ($post['post_flags'] & POST_RESTRICTED_COMMENTS && $this->user['user_level'] < USER_MEMBER) {
                return $this->error('Sorry, comments are only available to registered users for this post.', 403);
            }
            $result = $this->comments->post_comment(COMMENT_BLOG, $post['post_subject'], $p);
            if (is_string($result)) {
                return $result;
            }
            if (isset($this->post['request_uri'])) {
                header('Location: ' . $this->post['request_uri']);
            }
            if ($this->settings['friendly_urls']) {
                $link = $this->settings['site_address'] . $this->clean_url($post['post_subject']) . "-{$p}.html&c={$result}#comment-{$result}";
            } else {
                $link = "{$this->settings['site_address']}index.php?a=blog&p={$p}&c={$result}#comment-{$result}";
            }
            header('Location: ' . $link);
        }
        if (isset($this->get['num'])) {
            $num = intval($this->get['num']);
        } else {
            $num = $this->settings['blog_commentsperpage'];
        }
        if ($num > $this->settings['blog_commentsperpage']) {
            $num = $this->settings['blog_commentsperpage'];
        }
        $min = isset($this->get['min']) ? intval($this->get['min']) : 0;
        if (isset($this->get['c'])) {
            $cmt = intval($this->get['c']);
            // We need to find what page the requested comment is on
            $coms = $this->db->quick_query("SELECT COUNT(comment_id) count FROM %pblogcomments WHERE comment_post=%d AND comment_id < %d AND comment_type=%d", $p, $cmt, COMMENT_BLOG);
            if ($coms) {
                $count = $coms['count'] + 1;
            } else {
                $count = 0;
            }
            $min = 0;
            // Start at the first page regardless
            while ($count > $min + $num) {
                $min += $num;
            }
        }
        $xtpl = new XTemplate('./skins/' . $this->skin . '/blog_viewpost.xtpl');
        $older = null;
        $newer = null;
        if ($this->user['user_level'] >= USER_CONTRIBUTOR) {
            $next_post = $this->db->quick_query('SELECT post_id, post_subject FROM %pblogposts
				WHERE post_date > %d
				ORDER BY post_date ASC LIMIT 1', $post['post_date']);
        } elseif ($this->user['user_level'] > USER_GUEST) {
            $next_post = $this->db->quick_query('SELECT post_id, post_subject FROM %pblogposts
				WHERE post_date > %d AND (post_flags & %d)
				ORDER BY post_date ASC LIMIT 1', $post['post_date'], POST_PUBLISHED);
        } else {
            $next_post = $this->db->quick_query('SELECT post_id, post_subject FROM %pblogposts
				WHERE post_date > %d AND (post_flags & %d) AND !(post_flags & %d)
				ORDER BY post_date ASC LIMIT 1', $post['post_date'], POST_PUBLISHED, POST_MEMBERSONLY);
        }
        if ($next_post) {
            if ($this->settings['friendly_urls']) {
                $new_sub_link = $this->settings['site_address'] . $this->clean_url($next_post['post_subject']) . "-{$next_post['post_id']}.html";
            } else {
                $new_sub_link = "{$this->settings['site_address']}index.php?a=blog&amp;p={$next_post['post_id']}";
            }
            $new_sub = htmlspecialchars($next_post['post_subject']);
            $newer = "<a href=\"{$new_sub_link}\">{$new_sub}</a> &raquo;";
        }
        if ($this->user['user_level'] >= USER_CONTRIBUTOR) {
            $prev_post = $this->db->quick_query('SELECT post_id, post_subject FROM %pblogposts
				WHERE post_date < %d
				ORDER BY post_date DESC LIMIT 1', $post['post_date']);
        } elseif ($this->user['user_level'] > USER_GUEST) {
            $prev_post = $this->db->quick_query('SELECT post_id, post_subject FROM %pblogposts
				WHERE post_date < %d AND (post_flags & %d)
				ORDER BY post_date DESC LIMIT 1', $post['post_date'], POST_PUBLISHED);
        } else {
            $prev_post = $this->db->quick_query('SELECT post_id, post_subject FROM %pblogposts
				WHERE post_date < %d AND (post_flags & %d) AND !(post_flags & %d)
				ORDER BY post_date DESC LIMIT 1', $post['post_date'], POST_PUBLISHED, POST_MEMBERSONLY);
        }
        if ($prev_post) {
            if ($this->settings['friendly_urls']) {
                $new_sub_link = $this->settings['site_address'] . $this->clean_url($prev_post['post_subject']) . "-{$prev_post['post_id']}.html";
            } else {
                $new_sub_link = "{$this->settings['site_address']}index.php?a=blog&amp;p={$prev_post['post_id']}";
            }
            $new_sub = htmlspecialchars($prev_post['post_subject']);
            $older = "&laquo; <a href=\"{$new_sub_link}\">{$new_sub}</a>";
        }
        if ($older || $newer) {
            $xtpl->assign('older', $older);
            $xtpl->assign('newer', $newer);
            $xtpl->parse('BlogPost.NavLinks');
        }
        $SideBar = new sidebar($this);
        $xtpl->assign('sidebar', $SideBar->build_sidebar($post['post_date']));
        $xtpl->assign('date', date($this->settings['blog_dateformat'], $post['post_date']));
        $subject = htmlspecialchars($post['post_subject']);
        $xtpl->assign('subject', $subject);
        $xtpl->assign('unpublished', !($post['post_flags'] & POST_PUBLISHED) ? ' <span style="color:yellow"> [UNPUBLISHED ENTRY]</span>' : null);
        if (!empty($post['post_image'])) {
            $xtpl->assign('image', $this->postimages_dir . $post['post_image']);
            $xtpl->parse('BlogPost.Image');
        }
        $text = str_replace("[more]", "", $post['post_text']);
        $text = $this->format($text, $post['post_flags']);
        if ($post['post_flags'] & POST_HTML && $post['post_flags'] & POST_BBCODE) {
            $text = html_entity_decode($text, ENT_COMPAT, 'UTF-8');
        }
        if ($this->settings['blog_signature_on'] && !empty($post['user_signature'])) {
            $params = POST_BBCODE | POST_EMOTICONS;
            $sig = $this->format($post['user_signature'], $params);
            $text .= '<br /><span class="signature">.........................<br />' . $sig . '</span>';
        }
        $xtpl->assign('text', $text);
        $xtpl->assign('post_author', htmlspecialchars($post['user_name']));
        $xtpl->assign('icon', $this->display_icon($post['user_icon']));
        if ($this->settings['friendly_urls']) {
            $post_link = $this->settings['site_address'] . $this->clean_url($post['post_subject']) . "-{$post['post_id']}.html";
        } else {
            $post_link = "{$this->settings['site_address']}index.php?a=blog&amp;p={$post['post_id']}";
        }
        $post_url = urlencode($post_link);
        $xtpl->assign('post_url', $post_url);
        $data = base64_encode($post['post_subject']) . ';' . base64_encode($post_link);
        $this->generate_social_links($xtpl, $data);
        $cat_array = $this->get_cat_list($post['post_id']);
        $xtpl->assign('cat_text', $this->generate_category_links($cat_array));
        $xtpl->assign('count', $post['post_comment_count']);
        $closed = $this->closed_content($post, COMMENT_BLOG);
        $xtpl->assign('closed', $closed ? ' [Closed]' : null);
        if (!($post['post_flags'] & POST_MEMBERSONLY) || $post['post_flags'] & POST_MEMBERSONLY && $this->user['user_level'] >= USER_MEMBER) {
            if ($post['post_comment_count'] > 0) {
                $xtpl->assign('comments', $this->comments->list_comments(COMMENT_BLOG, $p, $post['post_subject'], $post['post_user'], $post['post_comment_count'], $min, $num, $post_link));
                $xtpl->parse('BlogPost.Comments');
            }
            if ($this->user['user_level'] >= USER_MEMBER) {
                $author = htmlspecialchars($this->user['user_name']);
            } else {
                $author = isset($this->cookie[$this->settings['cookie_prefix'] . 'comment_author']) ? htmlspecialchars($this->cookie[$this->settings['cookie_prefix'] . 'comment_author']) : 'Anonymous';
            }
            if ($this->settings['friendly_urls']) {
                $action_link = $this->settings['site_address'] . $this->clean_url($post['post_subject']) . "-{$post['post_id']}.html#newcomment";
            } else {
                $action_link = "{$this->settings['site_address']}index.php?a=blog&p={$post['post_id']}#newcomment";
            }
            $xtpl->assign('comment_form', $this->comments->generate_comment_form($author, $subject, $action_link, $closed));
        }
        $mod_controls = null;
        if ($this->user['user_level'] == USER_CONTRIBUTOR && $post['post_user'] == $this->user['user_id']) {
            $mod_controls = '<div class="mod_controls">[ <a href="index.php?a=blog&amp;s=edit&amp;p=' . $post['post_id'] . '">Edit</a> ] | [ <a href="index.php?a=blog&amp;s=del&amp;p=' . $post['post_id'] . '">Delete</a> ]</div>';
        } else {
            if ($this->user['user_level'] == USER_ADMIN) {
                $mod_controls = '<div class="mod_controls">[ <a href="index.php?a=blog&amp;s=edit&amp;p=' . $post['post_id'] . '">Edit</a> ] | [ <a href="index.php?a=blog&amp;s=del&amp;p=' . $post['post_id'] . '">Delete</a> ]</div>';
            }
        }
        $xtpl->assign('mod_controls', $mod_controls);
        $xtpl->parse('BlogPost');
        return $xtpl->text('BlogPost');
    }
Exemplo n.º 7
0
include '../php/sidebar.php';
?>

<!DOCTYPE html>
<html>
    <head>
        <title>Profile | Nerdtopia</title>
        <link href="../css/bootstrap.min.css" rel="stylesheet" />
        <link href="../css/materialize.min.css" rel="stylesheet" />
        <link href="../css/custom.css" rel="stylesheet" />
        <link href="http://netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.css" rel="stylesheet">
    </head>
    <body class="full-body">
        <?php 
sidebar::generateSidebar(4);
?>
        <div class="main-content">
            <h4>Profile <a href="#" style="margin-left: 15px;"><i class='fa fa-pencil'></i></a></h4>
            <hr/><br/>
            <div>
                <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
                    <div class="card-panel white">
                        <img class="round-image" src="../img/batman.jpg" height="170px" style="float:left; margin-right: 50px;"/>
                        <div style="margin-bottom: 25px;">
                            <h4>Bruce Wayne</h4>
                            <h6 style="margin-top: -10px; color:#888"><i>it not who i am underneath but what do that defines me</i></h6>
                        </div>
                        <h6>
                            <i class='fa fa-star'></i>
                            <b>75364</b> reputation
Exemplo n.º 8
0
<?php

include '../php/sidebar.php';
?>

<!DOCTYPE html>
<html>
    <head>
        <title>Messages | Nerdtopia</title>
        <link href="../css/bootstrap.min.css" rel="stylesheet" />
        <link href="../css/materialize.min.css" rel="stylesheet" />
        <link href="../css/custom.css" rel="stylesheet" />
        <link href="http://netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.css" rel="stylesheet">
    </head>
    <body class="full-body">
        <?php 
sidebar::generateSidebar(2);
?>
        <div class="main-content">
            <h4>Messages</h4>
            <hr/>
        </div>
        <script src="../js/jquery-1.12.0.min.js"></script>
        <script src="../js/bootstrap.min.js"></script>
        <script src="../js/materialize.min.js"></script>
    </body>
</html>
Exemplo n.º 9
0
include '../php/sidebar.php';
?>

<!DOCTYPE html>
<html>
    <head>
        <title>Home | Nerdtopia</title>
        <link href="../css/bootstrap.min.css" rel="stylesheet" />
        <link href="../css/materialize.min.css" rel="stylesheet" />
        <link href="../css/custom.css" rel="stylesheet" />
        <link href="http://netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.css" rel="stylesheet">
    </head>
    <body class="full-body">
        <?php 
sidebar::generateSidebar(0);
?>
        <div class="main-content">
            <h4>Welcome to Nerdtopia</h4>
            <hr/>
            <h6 style="font-size: 130%; margin-right: 30%;">
               <i style="color: #aaa">Please note that this is still a demo. You can not use the system at the moment!</i><br/><br/><br/>
                First of all, I would like to thank you for your interest in this project! You are AWESOME!<br/><br/>
                This project was started to create a new place for nerds and geeks to hang out. This project is developed
                for people that love comics, games, movies, music, series, science and technology. Here you will find people
                with similar interests. This is a place where you can learn how to program. You will learn more about
                technology and science. We discuss the latest comics, movies and all your favorite tv shows. Nobody here
                will judge you. This is the perfect place if you want to talk about your favorite operating system all day!
                This is a social network for the geeks and nerds!<br/><br/>
                Since this is not my full time job, this project will take some time to complete. That is why I decided to
                make it Open Source! I am also not a web developer, so the current website might be buggy. I am also planning
Exemplo n.º 10
0
 function forgot_password()
 {
     if (!isset($this->post['submit'])) {
         $xtpl = new XTemplate('./skins/' . $this->skin . '/register.xtpl');
         $SideBar = new sidebar($this);
         $xtpl->assign('sidebar', $SideBar->build_sidebar());
         $xtpl->assign('token', $this->generate_token());
         $xtpl->assign('action_url', "{$this->settings['site_address']}index.php?a=register&amp;s=forgotpassword");
         $xtpl->parse('LostPassword');
         return $xtpl->text('LostPassword');
     } else {
         if (!$this->is_valid_token()) {
             return $this->message('Lost Password Recovery', 'Session security token has expired. Please return to the homepage and try again.');
         }
         $target = $this->db->quick_query("SELECT user_id, user_name, user_password, user_joined, user_email\n\t\t\t\tFROM %pusers WHERE user_name='%s' AND user_id != %d LIMIT 1", $this->post['user_name'], USER_GUEST);
         if (!isset($target['user_id'])) {
             return $this->message('Lost Password Recovery', 'No such user exists at this site.');
         }
         $headers = "From: {$this->settings['site_name']} <{$this->settings['email_sys']}>\r\n" . "X-Mailer: PHP/" . phpversion();
         $subject = 'Lost Password Recovery';
         $message = "{$target['user_name']}:\n\n";
         $message .= "Someone has requested a password recovery for your account at {$this->settings['site_name']}.\n";
         $message .= "If you do not want to recover a lost password, please ignore or delete this email.\n\n";
         $message .= "Go to the below URL to continue with the password recovery:\n";
         $message .= "{$this->settings['site_address']}index.php?a=register&s=resetpassword&e=" . md5($target['user_email'] . $target['user_name'] . $target['user_password'] . $target['user_joined']) . "\n\n";
         $message .= "Requested from IP: {$this->ip}";
         mail($target['user_email'], '[' . $this->settings['site_name'] . '] ' . str_replace('\\n', '\\n', $subject), $message, $headers);
         return $this->message('Lost Password Recovery', "Lost password recovery request for user {$this->post['user_name']} has been emailed to the registered address with instructions.");
     }
 }
Exemplo n.º 11
0
 function execute()
 {
     if ($this->user['user_level'] == USER_GUEST) {
         return $this->error('Access Denied: You do not have permission to perform that action.', 403);
     }
     $errors = array();
     $email = $this->user['user_email'];
     $sig = $this->user['user_signature'];
     $url = $this->user['user_url'];
     $stylesheet = $this->user['user_stylesheet'];
     $gravatar = null;
     if ($this->is_email($this->user['user_icon'])) {
         $gravatar = $this->user['user_icon'];
     }
     if (isset($this->post['user_email'])) {
         $email = $this->post['user_email'];
     }
     if (isset($this->post['user_sig'])) {
         $sig = $this->post['user_sig'];
     }
     if (isset($this->post['user_url'])) {
         $url = $this->post['user_url'];
     }
     if (isset($this->post['user_stylesheet'])) {
         $stylesheet = $this->post['user_stylesheet'];
     }
     if (isset($this->post['submit'])) {
         if (isset($this->post['user_email']) && !empty($this->post['user_email'])) {
             if (!$this->is_email($this->post['user_email'])) {
                 array_push($errors, 'You did not enter a valid email address.');
             }
         }
         if (isset($this->post['user_gravatar']) && !empty($this->post['user_gravatar'])) {
             if (!$this->is_email($this->post['user_gravatar'])) {
                 array_push($errors, 'You did not specify a valid Gravatar email address.');
             }
         }
         if (isset($this->post['user_password']) && isset($this->post['user_pass_confirm'])) {
             if ($this->post['user_password'] != $this->post['user_pass_confirm']) {
                 array_push($errors, 'Entered passwords do not match.');
             }
         }
         if (!$this->is_valid_token()) {
             array_push($errors, 'The security validation token used to verify you are making this change is either invalid or expired. Please try again.');
         }
     }
     $icon = null;
     $old_icon = $this->user['user_icon'];
     if (!isset($this->post['user_gravatar']) || empty($this->post['user_gravatar'])) {
         if (isset($this->files['user_icon']) && $this->files['user_icon']['error'] == UPLOAD_ERR_OK) {
             $fname = $this->files['user_icon']['tmp_name'];
             $system = explode('.', $this->files['user_icon']['name']);
             $ext = strtolower(end($system));
             if (!preg_match('/jpg|jpeg|png|gif/', $ext)) {
                 array_push($errors, 'Invalid icon file type ' . $ext . '. Valid file types are jpg, png and gif.');
             } else {
                 $icon = $this->user['user_name'] . '.' . $ext;
                 $new_fname = $this->icon_dir . $this->user['user_name'] . '.' . $ext;
                 if (!move_uploaded_file($fname, $new_fname)) {
                     array_push($errors, 'Post icon failed to upload!');
                 } else {
                     $this->createthumb($new_fname, $new_fname, $ext, $this->settings['blog_icon_width'], $this->settings['blog_icon_height']);
                     if ($old_icon != 'Anonymous.png') {
                         @unlink($this->icon_dir . $old_icon);
                     }
                 }
             }
         } else {
             $icon = $old_icon;
         }
     } else {
         if ($this->is_email($this->post['user_gravatar'])) {
             $icon = $this->post['user_gravatar'];
             if ($old_icon != 'Anonymous.png') {
                 @unlink($this->icon_dir . $old_icon);
             }
         } else {
             $icon = $old_icon;
         }
     }
     if ($this->settings['friendly_urls']) {
         $action_link = $this->settings['site_address'] . 'profile';
     } else {
         $action_link = "{$this->settings['site_address']}index.php?a=profile";
     }
     if (!isset($this->post['submit']) || count($errors) != 0) {
         $xtpl = new XTemplate('./skins/' . $this->skin . '/profile.xtpl');
         if (count($errors) > 0) {
             $xtpl->assign('errors', implode($errors, "<br />\n"));
             $xtpl->parse('Profile.Errors');
         }
         $xtpl->assign('token', $this->generate_token());
         $xtpl->assign('action_link', $action_link);
         $xtpl->assign('name', htmlspecialchars($this->user['user_name']));
         $xtpl->assign('email', htmlspecialchars($email));
         $xtpl->assign('sig', htmlspecialchars($sig));
         $xtpl->assign('url', htmlspecialchars($url));
         $xtpl->assign('icon', $this->display_icon($icon));
         $xtpl->assign('gravatar', htmlspecialchars($gravatar));
         $xtpl->assign('skin', $this->select_input('user_skin', $this->skin, $this->get_skins()));
         $params = POST_BBCODE | POST_EMOTICONS;
         $xtpl->assign('sigdisplay', $this->format($sig, $params));
         $xtpl->assign('date', date($this->settings['blog_dateformat'], $this->user['user_joined']));
         $level = $this->user['user_level'];
         $comments = $this->db->quick_query('SELECT COUNT(comment_id) count FROM %pblogcomments');
         $posts = $this->db->quick_query('SELECT COUNT(comment_id) count FROM %pblogcomments WHERE comment_user=%d', $this->user['user_id']);
         $xtpl->assign('count', intval($posts['count']));
         if ($comments['count'] > 0) {
             $xtpl->assign('percent', floor($posts['count'] / $comments['count'] * 100));
         } else {
             $xtpl->assign('percent', 0);
         }
         if ($level == USER_CONTRIBUTOR || $level == USER_ADMIN) {
             $blogposts = $this->db->quick_query('SELECT COUNT(post_id) count FROM %pblogposts');
             $blogpostcount = $this->db->quick_query('SELECT COUNT(post_id) count FROM %pblogposts WHERE post_user=%d', $this->user['user_id']);
             $xtpl->assign('blogcount', intval($blogpostcount['count']));
             if ($blogposts['count'] > 0) {
                 $xtpl->assign('blogpercent', floor($blogpostcount['count'] / $blogposts['count'] * 100));
             } else {
                 $xtpl->assign('blogpercent', 0);
             }
             $xtpl->parse('Profile.Contributor');
         }
         $xtpl->assign('width', $this->settings['blog_icon_width']);
         $xtpl->assign('height', $this->settings['blog_icon_height']);
         if ($this->user['user_level'] > USER_MEMBER) {
             $xtpl->assign('stylesheet', htmlspecialchars($stylesheet));
             $xtpl->parse('Profile.Stylesheet');
         }
         $SideBar = new sidebar($this);
         $xtpl->assign('sidebar', $SideBar->build_sidebar());
         $xtpl->parse('Profile');
         return $xtpl->text('Profile');
     }
     $skins = $this->get_skins();
     if (in_array($this->post['user_skin'], $this->skins)) {
         setcookie($this->settings['cookie_prefix'] . 'skin', $this->post['user_skin'], $this->time + $this->settings['cookie_logintime'], $this->settings['cookie_path'], $this->settings['cookie_domain'], $this->settings['cookie_secure'], true);
         $this->skin = $this->post['user_skin'];
     }
     $url = (!stristr($url, '://') ? 'http://' : null) . $url;
     if ($url == 'http://') {
         $url = '';
     }
     $stylesheet = '';
     if (isset($this->post['user_stylesheet']) && $this->user['user_level'] > USER_MEMBER) {
         $stylesheet = $this->post['user_stylesheet'];
     }
     $pass = null;
     if (!empty($this->post['user_password']) && !empty($this->post['user_pass_confirm'])) {
         $newpass = $this->db->escape(hash('sha256', $this->post['user_password']));
         $pass = "******";
         $action_link = '/';
     }
     $this->db->dbquery("UPDATE %pusers SET user_email='%s', user_url='%s', user_stylesheet='%s', user_icon='%s', user_signature='%s'{$pass} WHERE user_id=%d", $email, $url, $stylesheet, $icon, $sig, $this->user['user_id']);
     return $this->message('Edit Your Profile', 'Your profile has been updated.', 'Continue', $action_link);
 }
Exemplo n.º 12
0
include '../php/sidebar.php';
include '../php/settings.php';
?>

<!DOCTYPE html>
<html>
    <head>
        <title>Settings | Nerdtopia</title>
        <link href="../css/bootstrap.min.css" rel="stylesheet" />
        <link href="../css/materialize.min.css" rel="stylesheet" />
        <link href="../css/custom.css" rel="stylesheet" />
        <link href="http://netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.css" rel="stylesheet">
    </head>
    <body class="full-body">
        <?php 
sidebar::generateSidebar(5);
?>
        <div class="main-content">
            <h4>Settings</h4>
            <hr/>
            <div>
                <div class="col-lg-3 col-md-2"></div>
                <div class="col-lg-6 col-md-8">
                    <div class='card-panel white' style="padding-left: 25%; padding-right: 25%;">
                        <h5>Notifications</h5>
                        <hr/>
                        <?php 
settings::settings_item_switch('Allow desktop notifications');
?>
                        <h5 style="margin-top: 40px;">Email Notifications</h5>
                        <hr/>
Exemplo n.º 13
0
    function execute()
    {
        if (!isset($this->post['search_word']) || empty($this->post['search_word'])) {
            return $this->message('Search', 'You must enter something to search for. I can\'t read your mind.');
        }
        if (strlen($this->post['search_word']) < 3) {
            return $this->message('Search', 'You cannot search on a word smaller than 3 letters.');
        }
        $search_query = $this->build_word_query($this->post['search_word']);
        if ($this->user['user_level'] >= USER_CONTRIBUTOR) {
            $result = $this->db->dbquery('SELECT p.post_id, p.post_subject, p.post_summary, p.post_date, p.post_user, u.user_name FROM %pblogposts p
				LEFT JOIN %pusers u ON u.user_id=p.post_user
				WHERE ' . $search_query . ' ORDER BY p.post_date DESC');
        } elseif ($this->user['user_level'] > USER_GUEST) {
            $result = $this->db->dbquery('SELECT p.post_id, p.post_subject, p.post_summary, p.post_date, p.post_user, u.user_name FROM %pblogposts p
				LEFT JOIN %pusers u ON u.user_id=p.post_user
				WHERE ' . $search_query . ' AND (post_flags & %d) ORDER BY p.post_date DESC', POST_PUBLISHED);
        } else {
            $result = $this->db->dbquery('SELECT p.post_id, p.post_subject, p.post_summary, p.post_date, p.post_user, u.user_name FROM %pblogposts p
				LEFT JOIN %pusers u ON u.user_id=p.post_user
				WHERE ' . $search_query . ' AND (post_flags & %d) AND !(post_flags & %d) ORDER BY p.post_date DESC', POST_PUBLISHED, POST_MEMBERSONLY);
        }
        if (!$result) {
            return $this->message('Search', "No results matching: {$this->post['search_word']}");
        }
        $content = null;
        $count = 0;
        $xtpl = new XTemplate('./skins/' . $this->skin . '/search.xtpl');
        while ($item = $this->db->assoc($result)) {
            if ($this->settings['friendly_urls']) {
                $item_link = $this->clean_url($item['post_subject']) . "-{$item['post_id']}.html";
            } else {
                $item_link = "index.php?a=blog&amp;p={$item['post_id']}";
            }
            $xtpl->assign('item_link', $item_link);
            $xtpl->assign('date', date($this->settings['blog_dateformat'], $item['post_date']));
            $count++;
            $xtpl->assign('subject', htmlspecialchars($item['post_subject']));
            $xtpl->assign('summary', htmlspecialchars($item['post_summary']));
            $xtpl->assign('user_name', htmlspecialchars($item['user_name']));
            $xtpl->parse('Search.Result');
        }
        if ($count == 0) {
            $xtpl->assign('content', "No results matching: {$this->post['search_word']}");
        }
        $xtpl->assign('search_word', htmlspecialchars($this->post['search_word']));
        $xtpl->assign('count', $count);
        $xtpl->assign('posts', $count > 1 ? 'blog entries' : 'blog entry');
        $SideBar = new sidebar($this);
        $xtpl->assign('sidebar', $SideBar->build_sidebar());
        $xtpl->parse('Search');
        return $xtpl->text('Search');
    }