Seditio Source code viewer
Root | Root
./Seditio-Developer/Seditio.178/plugins/recentitems/inc/recentitems.inc.php
<?PHP

/* ====================
Seditio - Website engine
Copyright Neocrome & Seditio Team
https://seditio.org

[BEGIN_SED]
File=plugins/recentitems/inc/recentitems.inc.php
Version=179
Updated=2022-jul-15
Type=Plugin
Author=Seditio Team
Description=
[END_SED]

==================== */

if (!defined('SED_CODE')) { die('Wrong URL.'); }

/* ================== FUNCTIONS ================== */

function sed_get_latestpages($limit, $mask)
    {
    global
$t, $L, $db_pages, $db_users, $sys, $usr, $cfg, $sed_cat, $plu_empty;

   
$pcomments = ($cfg['showcommentsonpage']) ? "" : "&comments=1";
   
   
$res = '';
   
   
$sql = sed_sql_query("SELECT p.page_id, p.page_alias, p.page_cat, p.page_title, p.page_date, p.page_ownerid, p.page_comcount, u.user_id, u.user_name, u.user_maingrp, u.user_avatar
                        FROM
$db_pages AS p LEFT JOIN $db_users AS u ON u.user_id = p.page_ownerid
                        WHERE p.page_state = 0 AND p.page_cat NOT LIKE 'system'
                        ORDER BY p.page_date DESC LIMIT
$limit");

    while (
$row = sed_sql_fetchassoc($sql))
        {
        if (
sed_auth('page', $row['page_cat'], 'R'))
            {            
           
$sys['catcode'] = $row['page_cat']; //new in v175
           
$row['page_pageurl'] = (empty($row['page_alias'])) ? sed_url("page", "id=".$row['page_id']) : sed_url("page", "al=".$row['page_alias']);
           
$row['page_pageurlcom'] = (empty($row['page_alias'])) ? sed_url("page", "id=".$row['page_id'].$pcomments) : sed_url("page", "al=".$row['page_alias'].$pcomments);
           
           
$t-> assign(array(
               
"LATEST_PAGES_ROW_URL" => $row['page_pageurl'],
               
"LATEST_PAGES_ROW_ID" => $row['page_id'],
               
"LATEST_PAGES_ROW_CAT" => $row['page_cat'],
               
"LATEST_PAGES_ROW_CATTITLE" => $sed_cat[$row['page_cat']]['title'],
               
"LATEST_PAGES_ROW_CATPATH" => sed_build_catpath($row['page_cat'], "<a href=\"%1\$s\">%2\$s</a>"),
               
"LATEST_PAGES_ROW_SHORTTITLE" => sed_cutstring($row['page_title'], 50),
               
"LATEST_PAGES_ROW_TITLE" => $row['page_title'],            
               
"LATEST_PAGES_ROW_DATE" => sed_build_date($cfg['formatyearmonthday'], $row['page_date'], $cfg['plu_mask_pages_date']),
               
"LATEST_PAGES_ROW_AUTHOR" => sed_cc($row['user_name']),
               
"LATEST_PAGES_ROW_USERURL" => sed_url("users", "m=details&id=".$row['page_ownerid']),
               
"LATEST_PAGES_ROW_USER" => sed_build_user($row['page_ownerid'], sed_cc($row['user_name']), $row['user_maingrp']),
               
"LATEST_PAGES_ROW_COMMENTS_URL" => $row['page_pageurlcom'],
               
"LATEST_PAGES_ROW_COMMENTS_COUNT" => $row['page_comcount'],                
               
"LATEST_PAGES_ROW_AVATAR" => sed_build_userimage($row['user_avatar'])
            ));
           
           
$t->parse("MAIN.LATEST_PAGES.LATEST_PAGES_ROW");

           
/* old result view use mask */
           
$res .= sprintf($mask,
               
"<a href=\"".sed_url("list", "c=".$row['page_cat'])."\">".$sed_cat[$row['page_cat']]['title']."</a>",
               
"<a href=\"".$row['page_pageurl']."\">".sed_cc(sed_cutstring(stripslashes($row['page_title']), 50))."</a>",
               
sed_build_date($cfg['formatyearmonthday'], $row['page_date'], $cfg['plu_mask_pages_date'])
            );

            }            
        }
       
   
$t->parse("MAIN.LATEST_PAGES");    

   
$res = (empty($res)) ? $plu_empty : $res;

    return(
$res);
    }

/* ------------------ */

function sed_get_latestcomments($limit, $mask)
    {
    global
$t, $L, $db_com, $sys, $db_pages, $db_users, $usr, $cfg, $sed_cat, $plu_empty, $ishtml;

   
$modal = ($cfg['enablemodal']) ? ',1' : '';

   
$res = '';
   
   
$sql = sed_sql_query("SELECT MAX(com_id) AS max_com_id, MAX(com_date) AS max_com_date FROM $db_com WHERE com_isspecial = 0 GROUP BY com_code ORDER BY max_com_date DESC LIMIT $limit");

   
$com_latest = array();

    while (
$row = sed_sql_fetchassoc($sql)) $com_latest[] = $row['max_com_id'];
 
   
$sql = sed_sql_query("SELECT c.com_id, c.com_code, c.com_text_ishtml, c.com_date, c.com_text, c.com_author, c.com_authorid, u.user_id, u.user_avatar, u.user_maingrp  
                    FROM
$db_com AS c LEFT JOIN $db_users AS u ON u.user_id = c.com_authorid
                    WHERE c.com_id IN('"
.implode("','",$com_latest)."')
                    ORDER BY c.com_date DESC"
);

  while (
$row = sed_sql_fetchassoc($sql))
    {
   
   
$com_code = $row['com_code'];
   
   
$com_text = sed_cutstring(strip_tags($row['com_text']), 100);
   
   
$j = substr($com_code, 0, 1);
   
$k = substr($com_code, 1);
   
    switch(
$j)
        {
        case
'p':
           
$sql2 = sed_sql_query("SELECT page_id, page_title, page_cat, page_alias FROM sed_pages WHERE page_id = $k LIMIT 1");
           
$row2 = sed_sql_fetchassoc($sql2);              
           
$sys['catcode'] = $row2['page_cat']; //new in v175          
           
$row2['page_pageurl'] = (empty($row2['page_alias'])) ? sed_url("page", "id=".$row2['page_id']."&comments=1", "#c".$row['com_id']) : sed_url("page", "al=".$row2['page_alias']."&comments=1", "#c".$row['com_id']);          
           
$lnk = "<a href=\"".$row2['page_pageurl']."\">".sed_cutstring(stripslashes($row2['page_title']),60)."</a>";
            break;
   
        case
'v':
           
$lnk = "<a href=\"javascript:sedjs.polls('".$k."&comments=1#c".$row['com_id']."'".$modal.")\">".$L['Poll']." #".$k."</a>";
            break;
       
        case
'g':
           
$lnk = "<a href=\"".sed_url("gallery", "id=".$k."&comments=1", "#c".$row['com_id'])."\">".$L['Gallery']." #".$k."</a>";
            break;        
        }
   
   
$com_author = sed_cc($row['com_author']);
   
$com_authorlink = ($row['com_authorid'] > 0 && $row['user_id'] > 0) ? sed_build_user($row['com_authorid'], $com_author, $row['user_maingrp']) : $com_author;

   
$t-> assign(array(
       
"LATEST_COMMENTS_ROW_ID" => $row['com_id'],
       
"LATEST_COMMENTS_ROW_AUTHOR" => $com_author,
       
"LATEST_COMMENTS_ROW_AUTHORLINK" => $com_authorlink,
       
"LATEST_COMMENTS_ROW_LNK" => $lnk,        
       
"LATEST_COMMENTS_ROW_DATE" => sed_build_date($cfg['formatyearmonthday'], $row['com_date'], $cfg['plu_mask_comments_date']),
       
"LATEST_COMMENTS_ROW_AVATAR" => sed_build_userimage($row['user_avatar']),
       
"LATEST_COMMENTS_ROW_TEXT" => $com_text
   
));
   
   
$t->parse("MAIN.LATEST_COMMENTS.LATEST_COMMENTS_ROW");
   
   
/* old result view use mask */
   
$res .= sprintf($mask,
       
$lnk, $com_authorlink, sed_build_date($cfg['formatyearmonthday'], $row['com_date'], $cfg['plu_mask_comments_date']),
       
sed_build_userimage($row['user_avatar']), $com_text);
   
    }
   
   
$t->parse("MAIN.LATEST_COMMENTS");

 
$res = (empty($res)) ? $plu_empty : $res;
  return(
$res);
  }
 
/* ------------------ */

function sed_get_latesttopics($limit, $mask)
    {
    global
$t, $L, $db_forum_topics, $db_forum_sections, $db_users, $usr, $cfg, $skin, $plu_empty, $out;

   
$res = '';
   
   
$sql0 = sed_sql_query("SELECT fs_id, fs_title, fs_parentcat, fs_lt_id, fs_lt_title, fs_lt_date, fs_lt_posterid, fs_lt_postername
        FROM
$db_forum_sections WHERE fs_parentcat = 0 ORDER BY fs_order ASC");

    while (
$fsn_sub = sed_sql_fetchassoc($sql0))
        {    
           
$forum_parentcat[$fsn_sub['fs_id']] = $fsn_sub;
        }    
   
   
$sql = sed_sql_query("SELECT t.ft_id, t.ft_sectionid, t.ft_title, t.ft_updated, t.ft_postcount, t.ft_lastposterid, t.ft_lastpostername,
        s.fs_id, s.fs_title, s.fs_category, s.fs_parentcat, s.fs_lt_id, s.fs_lt_title, s.fs_lt_date, u.user_id, u.user_avatar, u.user_maingrp
        FROM
$db_forum_sections s, $db_forum_topics t
        LEFT JOIN
$db_users AS u ON u.user_id = t.ft_lastposterid
        WHERE t.ft_sectionid=s.fs_id
        AND t.ft_movedto=0 AND t.ft_mode=0
        ORDER by t.ft_updated DESC LIMIT
$limit");

    while (
$row = sed_sql_fetchassoc($sql))
        {
        if (
sed_auth('forums', $row['fs_id'], 'R'))
            {
           
$img = ($usr['id']>0 && $row['ft_updated']>$usr['lastvisit']) ? "<a href=\"".sed_url("forums", "m=posts&q=".$row['ft_id']."&n=unread", "#unread")."\">".$out['ic_arrow_unread']."</a>" : "<a href=\"".sed_url("forums", "m=posts&q=".$row['ft_id']."&n=last", "#bottom")."\">".$out['ic_arrow_follow']."</a> ";

            if (
$row['fs_parentcat'] > 0)
                {
               
$parentcat['sectionid']  = $forum_parentcat[$row['fs_parentcat']]['fs_id'];
               
$parentcat['title']  = $forum_parentcat[$row['fs_parentcat']]['fs_title'];
                }
            else
                {
$parentcat = FALSE; }

           
/*Autogen avatar from first letter*/            
           
if (empty($row['user_avatar']) && $row['user_id']>0) {  sed_autogen_avatar($row['user_id']); }
           
           
//print_r($row);
           
           
$t-> assign(array(
               
"LATEST_TOPICS_ROW_ID" => $row['ft_id'],
               
"LATEST_TOPICS_ROW_FORUMPATH" => sed_build_forums($row['fs_id'], sed_cutstring($row['fs_title'], 30), sed_cutstring($row['fs_category'], 30), TRUE, $parentcat),
               
"LATEST_TOPICS_ROW_URL" => sed_url("forums", "m=posts&q=".$row['ft_id']."&n=last", "#bottom"),
               
"LATEST_TOPICS_ROW_SHORTTITLE" => sed_cutstring($row['ft_title'], 50),
               
"LATEST_TOPICS_ROW_TITLE" => $row['ft_title'],            
               
"LATEST_TOPICS_ROW_DATE" => sed_build_date($cfg['formatmonthdayhourmin'], $row['ft_updated'], $cfg['plu_mask_topics_date']),
               
"LATEST_TOPICS_ROW_AUTHOR" => sed_cc($row['ft_lastpostername']),
               
"LATEST_TOPICS_ROW_USERURL" => sed_url("users", "m=details&id=".$row['ft_lastposterid']),
               
"LATEST_TOPICS_ROW_USER" => sed_build_user($row['ft_lastposterid'], sed_cc($row['ft_lastpostername']), $row['user_maingrp']),
               
"LATEST_TOPICS_ROW_TOPIC_COUNT" => $row['ft_postcount']-1,                
               
"LATEST_TOPICS_ROW_AVATAR" => sed_build_userimage($row['user_avatar'])
            ));
           
           
$t->parse("MAIN.LATEST_TOPICS.LATEST_TOPICS_ROW");            
           
           
/* old result view use mask */
           
$res .= sprintf($mask,
               
$img,
               
sed_build_date($cfg['formatmonthdayhourmin'], $row['ft_updated'], $cfg['plu_mask_topics_date']),
               
sed_build_forums($row['fs_id'], sed_cutstring($row['fs_title'],25), sed_cutstring($row['fs_category'],16), TRUE, $parentcat),
               
"<a href=\"".sed_url("forums", "m=posts&q=".$row['ft_id']."&n=last", "#bottom")."\">".sed_cc(sed_cutstring(stripslashes($row['ft_title']),50))."</a>",
               
$row['ft_postcount']-1
                   
);
            }
        }
       
   
$t->parse("MAIN.LATEST_TOPICS");    

   
$res = (empty($res)) ? $plu_empty : $res;

    return(
$res);
    }

/* ------------------ */

function sed_get_latestpolls($limit, $mask)
    {
    global
$t, $L, $cfg, $db_polls, $db_polls_voters, $db_polls_options, $usr, $plu_empty;

   
$res = '';
   
   
$sql_p = sed_sql_query("SELECT poll_id, poll_text FROM $db_polls WHERE 1 AND poll_state=0  AND poll_type=0 ORDER by poll_creationdate DESC LIMIT $limit");

   
$modal = ($cfg['enablemodal']) ? ',1' : '';
   
   
$ajax = sed_import('ajax', 'G', 'BOL');
   
$a = sed_import('a','G','ALP');
   
$id = sed_import('id','G','ALP',8);
   
$vote = sed_import('vote','G','INT');
   
   
// -- AJAX Poll vote
   
if ($ajax && $cfg['ajax'] && $a == "send")
    {
        if (!empty(
$id) && !empty($vote))
            {
            if (
$usr['id'] > 0)
                {
$sql2 = sed_sql_query("SELECT pv_id FROM $db_polls_voters WHERE pv_pollid='$id' AND (pv_userid='".$usr['id']."' OR pv_userip='".$usr['ip']."') LIMIT 1"); }
                    else
                {
$sql2 = sed_sql_query("SELECT pv_id FROM $db_polls_voters WHERE pv_pollid='$id' AND pv_userip='".$usr['ip']."' LIMIT 1"); }
           
           
$alreadyvoted = (sed_sql_numrows($sql2) > 0) ? 1 : 0;
   
            if (!
$alreadyvoted)
                {
               
$sql2 = sed_sql_query("UPDATE $db_polls_options SET po_count=po_count+1
                            WHERE po_pollid='
$id' AND po_id='$vote'");
                if (
sed_sql_affectedrows() == 1)
                    {
                   
$sql2 = sed_sql_query("INSERT INTO $db_polls_voters (pv_pollid, pv_userid, pv_userip)
                            VALUES ("
.(int)$id.", ".(int)$usr['id'].", '".$usr['ip']."')");
                    }
                }
            }
    }
    else {
$ajax = false; }
   
// --

   
$res_all = "<div id=\"pollajx\">";
    while (
$row_p = sed_sql_fetchassoc($sql_p))
        {
       
$res = '';
       
$poll_id = $row_p['poll_id'];

        if (
$usr['id'] > 0)
             {
$sql2 = sed_sql_query("SELECT pv_id FROM $db_polls_voters WHERE pv_pollid='$poll_id' AND (pv_userid='".$usr['id']."' OR pv_userip='".$usr['ip']."') LIMIT 1"); }
           else
             {
$sql2 = sed_sql_query("SELECT pv_id FROM $db_polls_voters WHERE pv_pollid='$poll_id' AND pv_userip='".$usr['ip']."' LIMIT 1"); }

        if (
sed_sql_numrows($sql2) > 0)
            {
           
$alreadyvoted = 1;
           
$sql2 = sed_sql_query("SELECT SUM(po_count) FROM $db_polls_options WHERE po_pollid='$poll_id'");
           
$totalvotes = sed_sql_result($sql2, 0, "SUM(po_count)");
            }
        else
            {
           
$alreadyvoted = 0;
           
$res .= "<form name=\"pollvote_".$poll_id."\" action=\"javascript:sedjs.pollvote(document.pollvote_".$poll_id.".id.value, document.pollvote_".$poll_id.".cvote_".$poll_id.".value); window.location.reload();\" method=\"post\">"; // sed175      
           
}
   
       
$res .= "<h5>".$row_p['poll_text']."</h5>\n";
       
$res .= "<div style=\"padding:10px 0;\" id=\"pollajx_".$poll_id."\">\n";

       
$sql = sed_sql_query("SELECT po_id, po_text, po_count FROM $db_polls_options WHERE po_pollid='$poll_id' ORDER by po_id ASC");

        while (
$row = sed_sql_fetchassoc($sql))
            {
            if (
$alreadyvoted)
                {
               
$percentbar = floor(($row['po_count'] / $totalvotes) * 100);
               
$res .= "<div class=\"poll-item\">".$row['po_text']." : $percentbar%<div style=\"width:100%;\"><div class=\"bar_back\"><div class=\"bar_front\" style=\"width:".$percentbar."%;\"></div></div></div></div>\n";
                }
            else
                {
               
$res .= "<div class=\"poll-item\"><span class=\"radio-item\"><input type=\"radio\" class=\"radio\" id=\"vote_".$row['po_id']."\" name=\"vote\" value=\"".$row['po_id']."\" onClick=\"document.getElementById('cvote_".$poll_id."').value=".$row['po_id']."\" /><label for=\"vote_".$row['po_id']."\">".stripslashes($row['po_text'])."</label></span></div>\n";
                }
            }
 
        if (
$alreadyvoted)
            {        
           
$res .= "<div style=\"text-align:center;\"><a href=\"javascript:sedjs.polls('".$poll_id."'".$modal.")\">".$L['polls_viewresults']."</a> &nbsp; \n";
           
$res .= "<a href=\"javascript:sedjs.polls('viewall'".$modal.")\">".$L['polls_viewarchives']."</a></div>\n";
            }
        else
            {
           
$res .= "<input type=\"hidden\" name=\"id\" value=".$poll_id.">\n";
           
$res .= "<input type=\"hidden\" id=\"cvote_".$poll_id."\" name=\"cvote_".$poll_id."\" value=\"\">\n";
           
$res .= "<input type=\"hidden\" name=\"a\" value=\"send\">\n";
            if (
$cfg['ajax'])
                {                    
               
$onclick = "javascript:sedjs.ajax.bind({'url': '?ajax=1&a=send&id='+document.pollvote_".$poll_id.".id.value+'&vote='+document.pollvote_".$poll_id.".cvote_".$poll_id.".value, 'format':  'text', 'method':  'GET', 'update':  'pollajx', 'loading': 'pollajx', 'formid':  'pollajx_".$poll_id."'});";                    
               
$res .= "<div style=\"text-align:center; margin-top:15px;\"><input type=\"button\" onClick=\"".$onclick."\" class=\"submit btn\" value=\"".$L['Voteto']."\"></div>\n";
                }
            else
                {
               
$res .= "<div style=\"text-align:center; margin-top:15px;\"><input type=\"submit\" class=\"submit btn\" value=\"".$L['Voteto']."\"></div>\n";
                }
           
$res .= "</form>\n";
            }
           
       
$res .= "</div>";      
       
$res_all .= sprintf($mask, $res);
        }
   
   
$res_all .= "</div>";
   
   
sed_ajax_flush($res_all, $ajax);  // AJAX Output
   
   
$res_all = (empty($res_all)) ? $plu_empty : $res_all;

    return(
$res_all);
    }

?>
Presented with Sourceer