// Read database from disk to memory
private function readdb()
{
+ // Public links are hidden and user not logged in => nothing to show
+ if ($GLOBALS['config']['HIDE_PUBLIC_LINKS'] && !isLoggedIn()) {
+ $this->links = array();
+ return;
+ }
+
// Read data
$this->links=(file_exists($GLOBALS['config']['DATASTORE']) ? unserialize(gzinflate(base64_decode(substr(file_get_contents($GLOBALS['config']['DATASTORE']),strlen(PHPPREFIX),-strlen(PHPSUFFIX))))) : array() );
// Note that gzinflate is faster than gzuncompress. See: http://www.php.net/manual/en/function.gzdeflate.php#96439
// Optionally filter the results:
$linksToDisplay=array();
if (!empty($_GET['searchterm'])) $linksToDisplay = $LINKSDB->filterFulltext($_GET['searchterm']);
- elseif (!empty($_GET['searchtags'])) $linksToDisplay = $LINKSDB->filterTags(trim($_GET['searchtags']));
+ else if (!empty($_GET['searchtags'])) $linksToDisplay = $LINKSDB->filterTags(trim($_GET['searchtags']));
else $linksToDisplay = $LINKSDB;
+
$nblinksToDisplay = 50; // Number of links to display.
if (!empty($_GET['nb'])) // In URL, you can specificy the number of links. Example: nb=200 or nb=all for all links.
{
// Optionally filter the results:
$linksToDisplay=array();
if (!empty($_GET['searchterm'])) $linksToDisplay = $LINKSDB->filterFulltext($_GET['searchterm']);
- elseif (!empty($_GET['searchtags'])) $linksToDisplay = $LINKSDB->filterTags(trim($_GET['searchtags']));
+ else if (!empty($_GET['searchtags'])) $linksToDisplay = $LINKSDB->filterTags(trim($_GET['searchtags']));
else $linksToDisplay = $LINKSDB;
+
$nblinksToDisplay = 50; // Number of links to display.
if (!empty($_GET['nb'])) // In URL, you can specificy the number of links. Example: nb=200 or nb=all for all links.
{
}
$linksToDisplay=$LINKSDB->filterDay($day);
+
// We pre-format some fields for proper output.
foreach($linksToDisplay as $key=>$link)
{
if (!empty($_GET['searchterm'])) $links = $LINKSDB->filterFulltext($_GET['searchterm']);
elseif (!empty($_GET['searchtags'])) $links = $LINKSDB->filterTags(trim($_GET['searchtags']));
else $links = $LINKSDB;
+
$body='';
$linksToDisplay=array();
$linksToDisplay[]=$link; // Add to array.
}
}
+
$PAGE = new pageBuilder;
$PAGE->assign('linkcount',count($LINKSDB));
$PAGE->assign('linksToDisplay',$linksToDisplay);
if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=tagcloud'))
{
$tags= $LINKSDB->allTags();
+
// We sort tags alphabetically, then choose a font size according to count.
// First, find max value.
$maxcount=0; foreach($tags as $key=>$value) $maxcount=max($maxcount,$value);
// We remove the annoying parameters added by FeedBurner, GoogleFeedProxy, Facebook...
- $annoyingpatterns = array('/[\?&]utm_source=[^&]*/', '/[\?&]utm_campaign=[^&]*/', '/[\?&]utm_medium=[^&]*/', '/#xtor=RSS-[^&]*/', '/[\?&]fb_[^&]*/', '/[\?&]__scoop[^&]*/', '/#tk\.rss_all\?/', '/[\?&]action_ref_map=[^&]*/', '/[\?&]action_type_map=[^&]*/', '/[\?&]action_object_map=[^&]*/');
+ $annoyingpatterns = array('/[\?&]utm_source=[^&]*/',
+ '/[\?&]utm_campaign=[^&]*/',
+ '/[\?&]utm_medium=[^&]*/',
+ '/#xtor=RSS-[^&]*/',
+ '/[\?&]fb_[^&]*/',
+ '/[\?&]__scoop[^&]*/',
+ '/#tk\.rss_all\?/',
+ '/[\?&]action_ref_map=[^&]*/',
+ '/[\?&]action_type_map=[^&]*/',
+ '/[\?&]action_object_map=[^&]*/',
+ '/[\?&]utm_content=[^&]*/',
+ '/[\?&]fb=[^&]*/',
+ '/[\?&]xtor=[^&]*/'
+ );
foreach($annoyingpatterns as $pattern)
{
$url = preg_replace($pattern, "", $url);
}
$search_type='permalink';
}
- // We chose to disable all private links and the user isn't logged in, do not return any link.
- else if ($GLOBALS['config']['HIDE_PUBLIC_LINKS'] && !isLoggedIn())
- $linksToDisplay = array();
else
$linksToDisplay = $LINKSDB; // Otherwise, display without filtering.