get('plugins.ExternalThumbshot_URL'))) {
$error = 'myShaarli plugin error: '.
'Please define the "ExternalThumbshot_URL" setting in the plugin administration page.';
return array($error);
}
if ($conf->get('resource.theme') !== 'myShaarli' AND $conf->get('resource.theme') !== 'myShaarli_Columns') {
$error = 'myShaarli plugin: '.
'This plugin need modification of template. Use myShaarli theme for test.';
return array($error);
}
}
/**
* Add externalThumbshot icon to link_plugin when rendering linklist.
*
* @param mixed $data - linklist data.
*
* @return mixed - linklist data with readityourself plugin.
*/
function hook_myShaarli_render_linklist($data,$conf)
{
$thumUrl = $conf->get('plugins.ExternalThumbshot_URL');
if(!empty($conf->get('plugins.ExternalThumbshot_KEY'))){
$key = $conf->get('plugins.ExternalThumbshot_KEY');
}
if (!isset($thumUrl)) {
return $data;
}
foreach ($data['links'] as &$value) {
$thumb = computeThumbnail($conf, $value['url']);
if(empty($thumb)){
if(!empty($key)){
$hmac = '&hm='.hash_hmac('sha1', $value['url'], $key).'&url=';
} else {
$hmac = null;
}
$value['thumbnail'] = '';
} else {
$value['thumbnail'] = '';
}
}
return $data;
}
/**
* NOT WORKING
* To poor performance
* Need fix
*/
function returnFavicon($url)
{
$faviconHash = md5($url);
$path = substr($faviconHash, 0, 2).'/'.substr($faviconHash, 2, 2);
$faviconPath = 'cache/'.$path.'/'.$faviconHash.'.ico';
if (file_exists($faviconPath)) {
$content = file_get_contents($faviconPath);
return '';
}
if (file_exists('cache/'.$path.'/'.$faviconHash)) {
return;
}
require_once 'plugins/myShaarli/favicon/DataAccess.php';
require_once 'plugins/myShaarli/favicon/Favicon.php';
$favicon = new \Favicon\Favicon();
$favicon->cache(array('dir' => 'cache'));
$urlOfFavicon = $favicon->get($url);
if (!$urlOfFavicon) {
mkdir('cache/'.$path, 0777, true);
touch('cache/'.$path.'/'.$faviconHash);
return;
}
if (!is_dir('cache/'.$path.'/')) {
mkdir('cache/'.$path, 0777, true);
}
$content = file_get_contents($urlOfFavicon);
file_put_contents($faviconPath, $content);
return '';
}