Actually, this should work with any CMS supporting PHP code blocks: Drupal, Joomla, WordPress (with a plug-in), phpBB, etc. Has been tested working with Drupal 6, Joomla 1.5.
You’ll want to replace YOUR-YOURLS-DOMAIN-HERE
below with the actual YOURLS domain, and API-SIGNATURE-HERE
with the API key found at your YOURLSDOMAIN/admin/tools.php.
<?php if ( isset($_REQUEST['url']) ) { $url = $_REQUEST['url']; $keyword = isset( $_REQUEST['keyword'] ) ? $_REQUEST['keyword'] : '' ; if ($keyword) { $keyword = '&keyword='.$keyword; } $return = file_get_contents('YOUR-YOURLS-DOMAIN-HERE/yourls-api.php?signature=API-SIGNATURE-HERE&action=shorturl&format=simple&url='.urlencode($url).$keyword); echo <<<RESULT <h2>URL has been shortened</h2> <p>Original URL: <code><a href="$url">$url</a></code></p> <p>Short URL: <code><a href="$return">$return</a></code></p> RESULT; } else { echo <<<HTML <h2>Enter a new URL to shorten</h2> <form method="post" action=""> <p><label>URL: <input type="text" name="url" value="http://" size="50" /></label></p> <p><label>Optional custom keyword: <input type="text" name="keyword" size="5" /></label></p> <p><input type="submit" value="Shorten" /></p> </form> HTML; } ?>
The idea was based off this post, which I could never get to work for me. It always had a PHP error, and it depended on having Drupal and Yourls installed on the same site. The above code will work even if the installation is remote (on a different server). It only requires that you’re able to get an API key.
Feedback is welcome.