/**
 * Return the URL of the directory a plugin
 */
function yourls_plugin_url($file)
{
    $url = YOURLS_PLUGINURL . '/' . yourls_plugin_basename($file);
    if (yourls_is_ssl() or yourls_needs_ssl()) {
        $url = str_replace('http://', 'https://', $url);
    }
    return yourls_apply_filter('plugin_url', $url, $file);
}
Example #2
0
function ozh_toolbar_do($args)
{
    global $ozh_toolbar;
    // Does this redirection need a toolbar?
    if (!$ozh_toolbar['do']) {
        return;
    }
    // Do we have a cookie stating the user doesn't want a toolbar?
    if (isset($_COOKIE['yourls_no_toolbar']) && $_COOKIE['yourls_no_toolbar'] == 1) {
        return;
    }
    // Get URL and page title
    $url = $args[0];
    $pagetitle = yourls_get_keyword_title($ozh_toolbar['keyword']);
    // Update title if it hasn't been stored yet
    if ($pagetitle == '') {
        $pagetitle = yourls_get_remote_title($url);
        yourls_edit_link_title($ozh_toolbar['keyword'], $pagetitle);
    }
    $_pagetitle = htmlentities(yourls_get_remote_title($url));
    $www = YOURLS_SITE;
    $ver = YOURLS_VERSION;
    $md5 = md5($url);
    $sql = yourls_get_num_queries();
    // When was the link created (in days)
    $diff = abs(time() - strtotime(yourls_get_keyword_timestamp($ozh_toolbar['keyword'])));
    $days = floor($diff / (60 * 60 * 24));
    if ($days == 0) {
        $created = 'today';
    } else {
        $created = $days . ' ' . yourls_plural('day', $days) . ' ago';
    }
    // How many hits on the page
    $hits = 1 + yourls_get_keyword_clicks($ozh_toolbar['keyword']);
    $hits = $hits . ' ' . yourls_plural('view', $hits);
    // Plugin URL (no URL is hardcoded)
    $pluginurl = YOURLS_PLUGINURL . '/' . yourls_plugin_basename(dirname(__FILE__));
    // All set. Draw the toolbar itself.
    echo <<<PAGE
<html>
<head>
\t<title>{$pagetitle} &mdash; YOURLS</title>
\t<link rel="icon" type="image/gif" href="{$www}/images/favicon.gif" />
\t<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
\t<meta http-equiv="X-UA-Compatible" content="chrome=1" />
\t<meta name="generator" content="YOURLS v{$ver}" />
\t<meta name="ROBOTS" content="NOINDEX, FOLLOW" />
\t<link rel="stylesheet" href="{$pluginurl}/css/toolbar.css" type="text/css" media="all" />
</head>
<body>
<div id="yourls-bar">
\t<div id="yourls-about">
\t\tShort link powered by <a href="http://yourls.org/">YOURLS</a> and created {$created}. {$hits}.
\t\t<!-- {$sql} queries -->
\t</div>
\t
\t<div id="yourls-delicious">
\t<img src="http://static.delicious.com/img/delicious.small.gif" height="10" width="10" alt="Delicious" />
\t<a id="yourls-delicious-link" title="Bookmark on delicious" href="http://delicious.com/save" onclick="window.open('http://delicious.com/save?v=5&noui&jump=close&url='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title), 'delicious','toolbar=no,width=550,height=550'); return false;"> Bookmark on Delicious</a>
\t</div>

\t<script type="text/javascript" id="topsy_global_settings">
\tvar topsy_theme = "light-blue";
\tvar topsy_nick = " ";
\tvar topsy_style = "small";
\tvar topsy_order = "count,retweet,badge";
\t</script>
\t<div id="yourls-topsy" class="topsy_widget_data">
\t\t<!--{
\t\t        "url": "{$www}/{$ozh_toolbar['keyword']}",
\t\t        "title": "{$_pagetitle}",
\t\t}-->
\t</div>
\t
\t<div id="yourls-selfclose">
\t\t<a id="yourls-once" href="{$url}" title="Close this toolbar">close</a>
\t\t<a id="yourls-always" href="{$url}" title="Never show me this toolbar again">close</a>
\t\t
\t</div>
</div>

<iframe id="yourls-frame" frameborder="0" noresize="noresize" src="{$url}" name="yourlsFrame"></iframe>
<script type="text/javascript" src="{$pluginurl}/js/toolbar.js"></script>
<script type="text/javascript" src="http://cdn.topsy.com/topsy.js?init=topsyWidgetCreator"></script>
<script type="text/javascript" src="http://feeds.delicious.com/v2/json/urlinfo/{$md5}?callback=yourls_get_books"></script>
</body>
</html>
PAGE;
    // Don't forget to die, to interrupt the flow of normal events (ie redirecting to long URL)
    die;
}