I have not yet seen many directories running the OpenLD script, but if you do then here is a Mod that you can add to display the Google PR of your directory listing.

This mod has been contributed by Alex, who owns The Great Directory

Steps to install the  Google PR display mod on OpenLD:

Create a folder in “extensions” called “grank” and then put the below text into a “extension.xml” file inside the “grank” folder.

Now go into the admin section and install the extension.

<?xml version=”1.0″ encoding=”UTF-8″?>
<extension>
<id>grank</id>
<title>Google PageRank</title>
<version>0.01</version>
<author>Alex Lohrere</author>
<description>Displays Google PageRank for each link</description>
<install>
<![CDATA[
global $db, $db_type;
switch ($db_type)
{
case ‘mysql’:
case ‘mysqli’:
$sql = ‘CREATE TABLE ‘ .$db->prefix. “grank (
link_id INT(10) NOT NULL,
grank INT(10) NOT NULL,
grankupdate varchar(20) NOT NULL,
PRIMARY KEY (link_id)
) TYPE=MyISAM;”;
break;
case ‘pgsql’:
$sql = ‘CREATE TABLE ‘ .$db->prefix. “grank (
link_id INT(10) NOT NULL,
grank INT(10) NOT NULL,
grankupdate INT(10) NOT NULL,
PRIMARY KEY (link_id)
)”;
break;
case ’sqlite’:
$sql = ‘CREATE TABLE ‘ .$db->prefix. “grank (
link_id INT(10) NOT NULL,
grank INT(10) NOT NULL,
grankupdate INT(10) NOT NULL,
PRIMARY KEY (link_id)
)”;
break;
}
$db->query($sql) or error(’Unable to create table ‘.$db->prefix.’grank.’, __FILE__, __LINE__, $db->error());
]]>
</install>
<uninstall>
<![CDATA[
$db->query(”DROP TABLE ” .$db->prefix. “grank”) or error(”", __FILE__, __LINE__, $db->error());
]]>
</uninstall>
<hooks>
<hook id=”navigation_header”>
<![CDATA[
define(’GOOGLE_MAGIC’, 0xE6359A60);
function _zeroFill($a, $b){
$z = hexdec(80000000);
if ($z & $a){
$a = ($a>>1);
$a &= (~$z);
$a |= 0×40000000;
$a = ($a>>($b-1));
}else
$a = ($a>>$b);
return $a;
}
function _mix($a,$b,$c){
$a -= $b; $a -= $c; $a ^= (_zeroFill($c,13));
$b -= $c; $b -= $a; $b ^= ($a<<8);
$c -= $a; $c -= $b; $c ^= (_zeroFill($b,13));
$a -= $b; $a -= $c; $a ^= (_zeroFill($c,12));
$b -= $c; $b -= $a; $b ^= ($a<<16);
$c -= $a; $c -= $b; $c ^= (_zeroFill($b,5));
$a -= $b; $a -= $c; $a ^= (_zeroFill($c,3));
$b -= $c; $b -= $a; $b ^= ($a<<10);
$c -= $a; $c -= $b; $c ^= (_zeroFill($b,15));
return array($a,$b,$c);
}
function _GoogleCH($url, $length=null, $init=GOOGLE_MAGIC){
if(is_null($length))
$length = sizeof($url);
$a = $b = 0×9E3779B9;
$c = $init;
$k = 0;
$len = $length;
while($len >= 12){
$a += ($url[$k + 0] + ($url[$k + 1] << 8) + ($url[$k + 2] << 16) + ($url[$k + 3] << 24));
$b += ($url[$k + 4] + ($url[$k + 5] << 8) + ($url[$k + 6] << 16) + ($url[$k + 7] << 24));
$c += ($url[$k + 8] + ($url[$k + 9] << 8) + ($url[$k + 10] << 16) + ($url[$k + 11] << 24));
$_mix = _mix($a,$b,$c);
$a = $_mix[0]; $b = $_mix[1]; $c = $_mix[2];
$k += 12;
$len -= 12;
}
$c += $length;
switch($len){
case 11: $c += ($url[$k + 10] << 24);
case 10: $c += ($url[$k + 9] << 16);
case 9 : $c += ($url[$k + 8] << 8);
case 8 : $b += ($url[$k + 7] << 24);
case 7 : $b += ($url[$k + 6] << 16);
case 6 : $b += ($url[$k + 5] << 8);
case 5 : $b += ($url[$k + 4]);
case 4 : $a += ($url[$k + 3] << 24);
case 3 : $a += ($url[$k + 2] << 16);
case 2 : $a += ($url[$k + 1] << 8);
case 1 : $a += ($url[$k + 0]);
}
$_mix = _mix($a,$b,$c);
return $_mix[2];
}
function _strord($string){
for($i = 0;$i < strlen($string);$i++)
$result[$i] = ord($string{$i});
return $result;
}
function getPageRank($url){
$pagerank = 0;
$ch = “6″._GoogleCH(_strord(”info:” . $url));
$fp = fsockopen(”www.google.com”, 80, $errno, $errstr, 30);
if($fp){
$out = “GET /search?client=navclient-auto&ch=” . $ch . “&features=Rank&q=info:” . $url . ” HTTP/1.1\r\n”;
$out .= “Host: www.google.com\r\n”;
$out .= “Connection: Close\r\n\r\n”;
fwrite($fp, $out);
while (!feof($fp)){
$data = fgets($fp, 128);
$pos = strpos($data, “Rank_”);
if($pos === false){
}else
$pagerank = substr($data, $pos + 9);
}
fclose($fp);
}
return $pagerank;
}
]]>
</hook>
<hook id=”link_row_footer”>
<![CDATA[
$linkide = $links[’id’];
$prurl = openld_htmlspecialchars($links[’url’]);
$query = ‘SELECT link_id, grank, grankupdate FROM ‘ .$db->prefix. “grank WHERE link_id = $linkide”;
$result = mysql_query($query);
list($link_id,$grank,$grankupdate)= mysql_fetch_row($result);
if ($grankupdate == ‘test’) {
echo ‘ Google PageRank: ‘ .$grank;
} else {
$grank = getPageRank($prurl);
echo ‘ Google PageRank: ‘ .$grank;
$grankupdate = ‘test’;
$sql = ‘INSERT INTO ‘ .$db->prefix. “grank (link_id, grank, grankupdate) VALUES (’$linkide’, ‘$grank’, ‘$grankupdate’)”;
$result = mysql_query($sql);
}
]]>
</hook>
</hooks>
</extension>

1 Star2 Stars3 Stars4 Stars5 Stars (4 votes, average: 4.75 out of 5)
Loading ... Loading ...