Seditio Source code viewer
Root | Root
./Seditio-Developer/Seditio.178/plugins/similarpages/similarpages.page.tags.php
<?PHP

/* ====================
Seditio - Website engine
Copyright Neocrome
http://www.neocrome.net

[BEGIN_SED]
File=plugins/similarpages/similarpages.page.tags.php
Version=170
Updated=2012-feb-26
Type=Plugin
Author=Amro
Description=The plugin displays a list of similar pages
[END_SED]

[BEGIN_SED_EXTPLUGIN]
Code=similarpages
Part=main
File=similarpages.page.tags
Hooks=page.tags
Tags=page.tpl {PLUGIN_SIMILAR_PAGES}
Minlevel=0
Order=10
[END_SED_EXTPLUGIN]

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

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

$cfg['plu_mask_similar_pages'] = "%3\$s"." : "."%1\$s"." ".$cfg['separator']." "."%2\$s"."<br />";
// %1\$s = Link to the category
// %2\$s = Link to the page
// %3\$s = Date

$sim_relevance = $cfg['plugin']['similarpages']['sim_relevance'];
$sim_maxcount = $cfg['plugin']['similarpages']['sim_maxcount'];
$sim_category = $cfg['plugin']['similarpages']['sim_category'];

$plu_empty = $L['None']."<br />";

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

function sed_get_similarpages($sim_relevance, $sim_maxcount, $sim_category, $mask)
    {
    global
$L, $t, $pag, $db_pages, $db_users, $usr, $cfg, $sed_cat, $plu_empty;

   
$sql_cat = "";
   
$res = "";
   
    if (!empty(
$sim_category))
        {
       
$sim_category = explode(',', $sim_category);
        foreach(
$sim_category as $k => $i)
            {
           
$i = rtrim(trim($i));  
           
$mtch = $sed_cat[$i]['path'].".";
           
$mtchlen = strlen($mtch);
           
$catsub = array();
           
$catsub[] = $i;
            @
reset($sed_cat);
            foreach (
$sed_cat as $j => $x) { if (substr($x['path'],0,$mtchlen)==$mtch) { $catsub[] = $j; } }
            }
       
$sql_cat = "AND page_cat IN ('".implode("','", $catsub)."')";  
        }  
 
   
$pcomments = ($cfg['showcommentsonpage']) ? "" : "&comments=1";
   
   
$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_count,
                        p.page_comcount, p.page_thumb, 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' "
.$sql_cat." AND p.page_id != ".$pag['page_id']." AND MATCH (p.page_title)
                        AGAINST ('"
.sed_sql_prep($pag['page_title'])."') > $sim_relevance
                        ORDER BY p.page_date DESC LIMIT
$sim_maxcount");

    if (
sed_sql_numrows($sql) > 0)
        {    
       
$jj = 0;
        while (
$row = sed_sql_fetchassoc($sql))
            {    
           
            if (
sed_auth('page', $row['page_cat'], 'R'))
                {
               
$jj++;
               
$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(
                   
"SIMILARPAGES_ROW_URL" => $row['page_pageurl'],
                   
"SIMILARPAGES_ROW_ID" => $row['page_id'],
                   
"SIMILARPAGES_ROW_CAT" => $row['page_cat'],
                   
"SIMILARPAGES_ROW_CATTITLE" => $sed_cat[$row['page_cat']]['title'],
                   
"SIMILARPAGES_ROW_CATPATH" => sed_build_catpath($row['page_cat'], "<a href=\"%1\$s\">%2\$s</a>"),
                   
"SIMILARPAGES_ROW_SHORTTITLE" => sed_cutstring($row['page_title'], 50),
                   
"SIMILARPAGES_ROW_TITLE" => $row['page_title'],            
                   
"SIMILARPAGES_ROW_DATE" => sed_build_date($cfg['formatyearmonthday'], $row['page_date'], $cfg['plu_mask_pages_date']),
                   
"SIMILARPAGES_ROW_AUTHOR" => sed_cc($row['user_name']),
                   
"SIMILARPAGES_ROW_OWNER" => sed_build_user($row['page_ownerid'], sed_cc($row['user_name']), $row['user_maingrp']),
                   
"SIMILARPAGES_ROW_OWNER_AVATAR" => sed_build_userimage($row['user_avatar']),                
                   
"SIMILARPAGES_ROW_USERURL" => sed_url("users", "m=details&id=".$row['page_ownerid']),
                   
"SIMILARPAGES_ROW_USER" => sed_build_user($row['page_ownerid'], sed_cc($row['user_name']), $row['user_maingrp']),
                   
"SIMILARPAGES_ROW_COUNT" => $row['page_count'],
                   
"SIMILARPAGES_ROW_COMMENTS_URL" => $row['page_pageurlcom'],
                   
"SIMILARPAGES_ROW_COMMENTS_COUNT" => $row['page_comcount']
                ));
               
               
// ------- thumb
               
               
if (!empty($row['page_thumb']))
                    {    
                   
$page_thumbs_array = rtrim($row['page_thumb']);
                    if (
$page_thumbs_array[mb_strlen($page_thumbs_array) - 1] == ';')
                        {
                       
$page_thumbs_array = mb_substr($page_thumbs_array, 0, -1);        
                        }        
                   
$page_thumbs_array = explode(";", $page_thumbs_array);
                    if (
count($page_thumbs_array) > 0)
                        {
                       
$t->assign("SIMILARPAGES_ROW_THUMB", $page_thumbs_array[0]);  
                       
$t->parse("MAIN.SIMILARPAGES.SIMILARPAGES_ROW.SIMILARPAGES_ROW_THUMB");    
                        }        
                    }
                else
                    {
                   
$t->assign("SIMILARPAGES_ROW_THUMB", sed_cc($row['page_thumb']));
                    }    

               
// -------
               
               
$t->parse("MAIN.SIMILARPAGES.SIMILARPAGES_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']), 36))."</a>",
                   
date($cfg['formatyearmonthday'], $row['page_date'] + $usr['timezone'] * 3600)
                    );
                }
            }
           
        if (
$jj > 0) $t->parse("MAIN.SIMILARPAGES");
        }

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

    return(
$res);
    }

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

if ($sim_maxcount > 0 && !$cfg['disable_page'])
    {
   
$t-> assign(array(
       
"PLUGIN_SIMILAR_PAGES" => sed_get_similarpages($sim_relevance, $sim_maxcount, $sim_category, $cfg['plu_mask_similar_pages'])
    ));
    }
Presented with Sourceer