<?php
// File: $Id: wl-util.php,v 1.5 2001/12/09 15:53:36 gregorrothfuss Exp $ $Name: $
// ----------------------------------------------------------------------
// POST-NUKE Content Management System
// Copyright (C) 2001 by the Post-Nuke Development Team.
// http://www.postnuke.com/
// ----------------------------------------------------------------------
// Based on:
// PHP-NUKE Web Portal System - http://phpnuke.org/
// Thatware - http://thatware.org/
// ----------------------------------------------------------------------
// LICENSE
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License (GPL)
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// To read the license please visit http://www.gnu.org/copyleft/gpl.html
// ----------------------------------------------------------------------
// Original Author of file: Francisco Burzi
// Purpose of file: function lib, routines used by many other functions
// ----------------------------------------------------------------------
// 11-30-2001:ahumphr - created file as part of modularistation
/**
* @usedby nothing
*/
function SearchForm() {
global $ModName;
global $modurl;
echo "<form action=\"${modurl}&req=search&query=$query\" method=\"post\">"
."<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">"
."<tr><td><font class=\"pn-normal\"><input type=\"text\" size=\"25\" name=\"query\"> <input type=\"submit\" value=\""._SEARCH."\"></td></tr>"
."</table>"
."</form>";
}
/**
* @usedby nothing
*/
function linkinfomenu($lid, $ttitle) {
global $ModName;
global $modurl;
echo "<br><font class=\"pn-normal\">[ ";
if (authorised(0, 'Web links::Category', '::', ACCESS_COMMENT)) {
echo "<a class=\"pn-normal\" href=\"${modurl}&req=viewlinkcomments&lid=$lid&ttitle=$ttitle\">"._LINKCOMMENTS."</a> | ";
}
if (authorised(0, 'Web links::Category', '::', ACCESS_READ)) {
echo "<a class=\"pn-normal\" href=\"${modurl}&req=viewlinkdetails&lid=$lid&ttitle=$ttitle\">"._ADDITIONALDET."</a>"
." | <a class=\"pn-normal\" href=\"${modurl}&req=viewlinkeditorial&lid=$lid&ttitle=$ttitle\">"._EDITORREVIEW."</a> | ";
}
echo "<a class=\"pn-normal\" href=\"${modurl}&req=modifylinkrequest&lid=$lid\">"._MODIFY."</a>"
." | <a class=\"pn-normal\" href=\"${modurl}&req=brokenlink&lid=$lid\">"._REPORTBROKEN."</a> ]</font>";
}
/**
* @usedby mostpopular, search, toprated, viewlink
*/
function detecteditorial($lid, $ttitle) {
global $pntable, $dbconn, $ModName;
global $modurl;
$column = &$pntable['links_editorials_column'];
$result = $dbconn->Execute("SELECT count(*) FROM $pntable[links_editorials] WHERE $column[linkid]=$lid");
list($recordexist) = $result->fields;
if ($recordexist != 0) {
echo " | <a class=\"pn-normal\" href=\"${modurl}&req=viewlinkeditorial&lid=$lid&ttitle=$ttitle\">"._EDITORIAL."</a>";
}
}
/**
* @usedby mostpopular, search, toprated, viewlink
*/
function popgraphic($hits) {
global $ModName;
include(WHERE_IS_PERSO."config.php");
if ($hits>=$popular) {
echo " <img src=\"modules/$ModName/images/pop.gif\" alt=\""._POPULAR."\">";
}
}
/**
* @usedby search, viewlink
*/
function convertorderbyin($orderby)
{
global $pntable;
$column = &$pntable['links_links_column'];
if ($orderby == "titleA") $orderby = "$column[title] ASC";
if ($orderby == "dateA") $orderby = "$column[date] ASC";
if ($orderby == "hitsA") $orderby = "$column[hits] ASC";
if ($orderby == "ratingA") $orderby = "$column[linkratingsummary] ASC";
if ($orderby == "titleD") $orderby = "$column[title] DESC";
if ($orderby == "dateD") $orderby = "$column[date] DESC";
if ($orderby == "hitsD") $orderby = "$column[hits] DESC";
if ($orderby == "ratingD") $orderby = "$column[linkratingsummary] DESC";
return $orderby;
}
/**
*
* @usedby search, viewlink
*/
function convertorderbytrans($orderby)
{
global $pntable;
//FTO Remove warning
$orderbyTrans="";
$column = &$pntable['links_links_column'];
if ($orderby == "$column[hits] ASC") $orderbyTrans = ""._POPULARITY1."";
if ($orderby == "$column[hits] DESC") $orderbyTrans = ""._POPULARITY2."";
if ($orderby == "$column[title] ASC") $orderbyTrans = ""._TITLEAZ."";
if ($orderby == "$column[title] DESC") $orderbyTrans = ""._TITLEZA."";
if ($orderby == "$column[date] ASC") $orderbyTrans = ""._DATE1."";
if ($orderby == "$column[date] DESC") $orderbyTrans = ""._DATE2."";
if ($orderby == "$column[linkratingsummary] ASC") $orderbyTrans = ""._RATING1."";
if ($orderby == "$column[linkratingsummary] DESC") $orderbyTrans = ""._RATING2."";
return $orderbyTrans;
}
/**
* @usedby viewlink, search,
*/
function convertorderbyout($orderby)
{
global $pntable;
$column = &$pntable['links_links_column'];
if ($orderby == "$column[title] ASC") $orderby = "titleA";
if ($orderby == "$column[date] ASC") $orderby = "dateA";
if ($orderby == "$column[hits] ASC") $orderby = "hitsA";
if ($orderby == "$column[linkratingsummary] ASC") $orderby = "ratingA";
if ($orderby == "$column[title] DESC") $orderby = "titleD";
if ($orderby == "$column[date] DESC") $orderby = "dateD";
if ($orderby == "$column[hits] DESC") $orderby = "hitsD";
if ($orderby == "$column[linkratingsummary] DESC") $orderby = "ratingD";
return $orderby;
}
/**
* @usedby index, mostpopular, serach, toprated, viewlink
*/
function visit($lid)
{
global $pntable, $dbconn;
csrfcheck();
$column = &$pntable['links_links_column'];
$dbconn->Execute("UPDATE $pntable[links_links] SET $column[hits]=$column[hits]+1 WHERE $column[lid]=$lid");
$result = $dbconn->Execute("SELECT $column[url] FROM $pntable[links_links] WHERE $column[lid]=$lid");
list($url) = $result->fields;
Header('Location: '.$url);
}
/**
* @usedby index, search, viewlink
*/
function CountSubLinks($cid)
{
global $pntable, $dbconn;
$ct=0;
$column = &$pntable['links_links_column'];
$result=$dbconn->Execute("SELECT COUNT(*) FROM $pntable[links_links] WHERE $column[cat_id]=$cid");
list($ct) = $result->fields;
// Now get all child nodes
$column = &$pntable['links_categories_column'];
$result=$dbconn->Execute("SELECT $column[cat_id] FROM $pntable[links_categories] WHERE $column[parent_id]=$cid");
// FTO Check EOF and databse error
if (!$result) {
PN_DBMsgError($dbconn, __FILE__, __LINE__, "An error ocurred");
die();
}
while(!$result->EOF) {
list($sid)=$result->fields;
$result->MoveNext();
$ct+=CountSubLinks($sid);
}
return $ct;
}
/* Link Graphics */
/**
* categorynewlinkgraphic
* @usedby index, viewlink
*/
function categorynewlinkgraphic($cat) {
global $pntable, $dbconn, $ModName, $locale;
$column = &$pntable['links_links_column'];
$query = buildSimpleQuery ('links_links', array ('date'), "$column[cat_id]=$cat", "$column[date] DESC", 1);
$newresult = $dbconn->Execute($query);
//FTO Check EOF and DB Error
if (!$newresult) {
PN_DBMsgError($dbconn, __FILE__, __LINE__, "An error ocurred");
die();
}
$time="";
if (!$newresult->EOF) list($time)=$newresult->fields;
echo " ";
setlocale (LC_TIME, $locale);
ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})", $time, $datetime);
$datetime = strftime(""._LINKSDATESTRING."", mktime($datetime[4],$datetime[5],$datetime[6],$datetime[2],$datetime[3],$datetime[1]));
$datetime = ucfirst($datetime);
$startdate = time();
$count = 0;
while ($count <= 7)
{
$daysold = date("d-M-Y", $startdate);
if ("$daysold" == "$datetime") {
if ($count<=1) {
echo "<img src=\"modules/$ModName/images/newred.gif\" alt=\""._CATNEWTODAY."\">";
}
if ($count<=3 && $count>1) {
echo "<img src=\"modules/$ModName/images/newgreen.gif\" alt=\""._CATLAST3DAYS."\">";
}
if ($count<=7 && $count>3) {
echo "<img src=\"modules/$ModName/images/newblue.gif\" alt=\""._CATTHISWEEK."\">";
}
}
$count++;
$startdate = (time()-(86400 * $count));
}
}
/**
* newlinkgraphic
* @usedby mostpopular, search
*/
function newlinkgraphic($datetime, $time) {
global $ModName, $locale;
echo " ";
setlocale (LC_TIME, $locale);
ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})", $time, $datetime);
$datetime = ml_ftime(""._LINKSDATESTRING."", mktime($datetime[4],$datetime[5],$datetime[6],$datetime[2],$datetime[3],$datetime[1]));
$datetime = ucfirst($datetime);
$startdate = time();
$count = 0;
while ($count <= 7)
{
$daysold = date("d-M-Y", $startdate);
if ("$daysold" == "$datetime") {
if ($count<=1) {
echo "<img src=\"modules/$ModName/images/newred.gif\" alt=\""._NEWTODAY."\">";
}
if ($count<=3 && $count>1) {
echo "<img src=\"modules/$ModName/images/newgreen.gif\" alt=\""._NEWLAST3DAYS."\">";
}
if ($count<=7 && $count>3) {
echo "<img src=\"modules/$ModName/images/newblue.gif\" alt=\""._NEWTHISWEEK."\">";
}
}
$count++;
$startdate = (time()-(86400 * $count));
}
}
/**
* subcategorynewlinkgraphic
*
* Post-Nuke mod -- Create a the new function for generating the 'new' graphics for
* sub-categoires, based on the post-nuke categorynewlinkgraphic($cid)
* @usedby index, viewlink
*/
function subcategorynewlinkgraphic($sid) {
global $pntable, $dbconn, $ModName, $locale;
$column = &$pntable['links_links_column'];
$query = buildSimpleQuery ('links_links', array ('date'), "$column[cat_id]=$sid", "$column[date] DESC", 1);
$newresult = $dbconn->Execute($query);
list($time)=$newresult->fields;
echo " ";
setlocale (LC_TIME, $locale);
ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})", $time, $datetime);
$datetime = strftime(""._LINKSDATESTRING."", mktime($datetime[4],$datetime[5],$datetime[6],$datetime[2],$datetime[3],$datetime[1]));
$datetime = ucfirst($datetime);
$startdate = time();
$count = 0;
while ($count <= 7) {
$daysold = date("d-M-Y", $startdate);
if ("$daysold" == "$datetime") {
if ($count<=1) {
echo "<img src=\"modules/$ModName/images/newred.gif\" alt=\""._CATNEWTODAY."\">";
}
if ($count<=3 && $count>1) {
echo "<img src=\"modules/$ModName/images/newgreen.gif\" alt=\""._CATLAST3DAYS."\">";
}
if ($count<=7 && $count>3) {
echo "<img src=\"modules/$ModName/images/newblue.gif\" alt=\""._CATTHISWEEK."\">";
}
}
$count++;
$startdate = (time()-(86400 * $count));
}
}
/**
* CatList
* Recursivly creates option tags for each sub category of $scat, selects category $sel
* @usedby search, popular, addlink
*/
function CatList($scat, $sel) {
global $pntable, $dbconn;
$s="";
$column = &$pntable['links_categories_column'];
$result=$dbconn->Execute("SELECT $column[cat_id] FROM $pntable[links_categories] WHERE $column[parent_id]=$scat");
// FTO Check EOF and databse error
if (!$result) {
PN_DBMsgError($dbconn, __FILE__, __LINE__, "An error ocurred");
die();
}
while(!$result->EOF) {
list($cid)=$result->fields;
$result->MoveNext();
if ($sel==$cid) {
$selstr=" selected";
} else {
$selstr='';
}
$s.="<option value=\"$cid\"$selstr>".CatPath($cid,0,0,0)."</option>";
$s.=CatList($cid, $sel);
}
return $s;
}
/**
* Catpath
* Creates the full path for a category title
* New function by toph, 20/8/2001
* @usedby search, popular, addlink
*/
function CatPath($cid, $start, $links, $linkmyself) {
global $pntable, $dbconn, $ModName;
global $modurl;
$column = &$pntable['links_categories_column'];
$result=$dbconn->Execute("SELECT $column[parent_id], $column[title] FROM $pntable[links_categories] WHERE $column[cat_id]=$cid");
list($pid, $title)=$result->fields;
if ($linkmyself) {
$cpath = "<a href=\"${modurl}&req=viewlink&cid=$cid\">$title</a>";
} else {
$cpath = $title;
}
while ($pid!=0) {
$column = &$pntable['links_categories_column'];
$result=$dbconn->Execute("SELECT $column[cat_id], $column[parent_id], $column[title] FROM $pntable[links_categories] WHERE $column[cat_id]=$pid");
list($cid, $pid, $title)=$result->fields;
if ($links) {
$cpath = "<a href=\"${modurl}&req=viewlink&cid=$cid\">".$title.'</a> / '.$cpath;
} else {
$cpath = $title.' / '.$cpath;
}
}
if ($start) {
$cpath="<a href=\"${modurl}\">"._START."</a> / ".$cpath;
}
return $cpath;
}
/**
* @usedby mostpopular, search, toprated, viewlink
*/
function LinksBottomMenu($lid, $transfertitle, $totalvotes, $totalcomments){
global $ModName;
global $modurl;
if (authorised(0, 'Web links::Category', '::', ACCESS_COMMENT)) {
echo "</font><br><font class=\"pn-normal\"><a class=\"pn-normal\" href=\"${modurl}&req=ratelink&lid=$lid&ttitle=$transfertitle\">"._RATESITE."</a>";
}
echo " | <a class=\"pn-normal\" href=\"${modurl}&req=brokenlink&lid=$lid\">"._REPORTBROKEN."</a>";
if (authorised(0, 'Web links::Category', '::', ACCESS_READ)) {
if ($totalvotes != 0) {
echo " | <a class=\"pn-normal\" href=\"${modurl}&req=viewlinkdetails&lid=$lid&ttitle=$transfertitle\">"._DETAILS."</a>";
}
}
if (authorised(0, 'Web links::Category', '::', ACCESS_COMMENT)) {
if ($totalcomments != 0) {
echo " | <a class=\"pn-normal\" href=\"${modurl}&req=viewlinkcomments&lid=$lid&ttitle=$transfertitle\">"._COMMENTS." ($totalcomments)</a></font>";
}
}
}
function web_links_rateMakeStar($score, $max_score)
{
// this code is take from harpia project http://sourceforge.net/projects/harpia
global $ModName;
$score /= 2; $max_score /=2; // 5 stars. comment for 10 stars
$basedir="modules/$ModName/images/" ; // for $basedir/image/xxx.gif
$rateImgFull = $basedir.'rate_full.gif';
$rateImgHalf = $basedir.'rate_half.gif';
$rateImgNone = $basedir.'rate_none.gif';
// Break up score
if (strpos($score,".")==0){
$full_stars=$score;
}else{
$full_stars=substr($score,0,strpos($score,"."));
}
// *** Is there half star
if (substr($score,strpos($score,".")+1)==0){
$half_stars=0;
}else{
$half_stars=1;
}
// *** Build Star Line
$blank_stars=$max_score-($full_stars+$half_stars);
$star_line="";
for ($i=1;$i<=$max_score;$i++){
if ($i<=$full_stars){
$star_line.="<img src='".$rateImgFull."' border='0'>";
}elseif ($i<=($half_stars+$full_stars)){
$star_line.="<img src='".$rateImgHalf."' border='0'>";
}elseif ($i<=$max_score){
$star_line.="<img src='".$rateImgNone."' border='0'>";
}
}
return $star_line;
}
/**
* @usedby rating
*/
function linkfooter($lid,$ttitle) {
global $ModName, $modurl;
echo "<font class=\"pn-normal\">[ <a class=\"pn-normal\" href=\"${modurl}&req=visit&lid=$lid\" target=\"_blank\">"._VISITTHISSITE."</a> | <a class=\"pn-normal\" href=\"${modurl}&req=ratelink&lid=$lid&ttitle=$ttitle\">"._RATETHISSITE."</a> ]</font><br><br>";
linkfooterchild($lid);
}
/**
* @usedby rating
*/
function linkfooterchild($lid) {
global $ModName, $modurl;
include(WHERE_IS_PERSO."config.php");
if ($useoutsidevoting = 1) {
echo "<br><font class=\"pn-normal\">"._ISTHISYOURSITE." <a class=\"pn-normal\" href=\"${modurl}&req=outsidelinksetup&lid=$lid\">"._ALLOWTORATE."</a></font>";
}
}
?>