aboutsummaryrefslogtreecommitdiffstats
path: root/addon
diff options
context:
space:
mode:
Diffstat (limited to 'addon')
-rw-r--r--addon/facebook/facebook.php51
-rw-r--r--addon/oembed/oembed.php28
-rw-r--r--addon/oembed/settings.tpl7
-rw-r--r--addon/piwik/admin.tpl4
-rw-r--r--addon/piwik/piwik.php29
-rw-r--r--addon/statusnet/statusnet.php73
-rw-r--r--addon/twitter/twitter.php12
-rw-r--r--addon/widgets/settings.tpl19
-rw-r--r--addon/widgets/widgets.php36
9 files changed, 162 insertions, 97 deletions
diff --git a/addon/facebook/facebook.php b/addon/facebook/facebook.php
index 15dffa594..c54d5b5f0 100644
--- a/addon/facebook/facebook.php
+++ b/addon/facebook/facebook.php
@@ -43,6 +43,25 @@
define('FACEBOOK_MAXPOSTLEN', 420);
+
+function facebook_install() {
+ register_hook('post_local_end', 'addon/facebook/facebook.php', 'facebook_post_hook');
+ register_hook('jot_networks', 'addon/facebook/facebook.php', 'facebook_jot_nets');
+ register_hook('plugin_settings', 'addon/facebook/facebook.php', 'facebook_plugin_settings');
+ register_hook('cron', 'addon/facebook/facebook.php', 'facebook_cron');
+ register_hook('queue_predeliver', 'addon/facebook/facebook.php', 'fb_queue_hook');
+}
+
+
+function facebook_uninstall() {
+ unregister_hook('post_local_end', 'addon/facebook/facebook.php', 'facebook_post_hook');
+ unregister_hook('jot_networks', 'addon/facebook/facebook.php', 'facebook_jot_nets');
+ unregister_hook('plugin_settings', 'addon/facebook/facebook.php', 'facebook_plugin_settings');
+ unregister_hook('cron', 'addon/facebook/facebook.php', 'facebook_cron');
+ unregister_hook('queue_predeliver', 'addon/facebook/facebook.php', 'fb_queue_hook');
+}
+
+
/* declare the facebook_module function so that /facebook url requests will land here */
function facebook_module() {}
@@ -339,22 +358,6 @@ function facebook_content(&$a) {
return $o;
}
-function facebook_install() {
- register_hook('post_local_end', 'addon/facebook/facebook.php', 'facebook_post_hook');
- register_hook('jot_networks', 'addon/facebook/facebook.php', 'facebook_jot_nets');
- register_hook('plugin_settings', 'addon/facebook/facebook.php', 'facebook_plugin_settings');
- register_hook('cron', 'addon/facebook/facebook.php', 'facebook_cron');
- register_hook('queue_predeliver', 'addon/facebook/facebook.php', 'fb_queue_hook');
-}
-
-
-function facebook_uninstall() {
- unregister_hook('post_local_end', 'addon/facebook/facebook.php', 'facebook_post_hook');
- unregister_hook('jot_networks', 'addon/facebook/facebook.php', 'facebook_jot_nets');
- unregister_hook('plugin_settings', 'addon/facebook/facebook.php', 'facebook_plugin_settings');
- unregister_hook('cron', 'addon/facebook/facebook.php', 'facebook_cron');
- unregister_hook('queue_predeliver', 'addon/facebook/facebook.php', 'fb_queue_hook');
-}
function facebook_cron($a,$b) {
@@ -373,9 +376,12 @@ function facebook_cron($a,$b) {
logger('facebook_cron');
- set_config('facebook','last_poll', time());
- $r = q("SELECT * FROM `pconfig` WHERE `cat` = 'facebook' AND `k` = 'post' AND `v` = '1' ");
+ // Find the FB users on this site and randomize in case one of them
+ // uses an obscene amount of memory. It may kill this queue run
+ // but hopefully we'll get a few others through on each run.
+
+ $r = q("SELECT * FROM `pconfig` WHERE `cat` = 'facebook' AND `k` = 'post' AND `v` = '1' ORDER BY RAND() ");
if(count($r)) {
foreach($r as $rr) {
// check for new friends once a day
@@ -389,6 +395,9 @@ function facebook_cron($a,$b) {
fb_consume_all($rr['uid']);
}
}
+
+ set_config('facebook','last_poll', time());
+
}
@@ -431,6 +440,10 @@ function facebook_post_hook(&$a,&$b) {
if((local_user()) && (local_user() == $b['uid'])) {
+ // Facebook is not considered a private network
+ if($b['prvnets'] && $b['private'])
+ return;
+
if($b['parent']) {
$r = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($b['parent']),
@@ -817,7 +830,7 @@ function fb_consume_stream($uid,$j,$wall = false) {
$datarray['owner-avatar'] = $self[0]['thumb'];
}
if(isset($entry->application) && isset($entry->application->name) && strlen($entry->application->name))
- $datarray['app'] = $entry->application->name;
+ $datarray['app'] = strip_tags($entry->application->name);
else
$datarray['app'] = 'facebook';
$datarray['author-name'] = $from->name;
diff --git a/addon/oembed/oembed.php b/addon/oembed/oembed.php
index 7e677fd6f..880e4992f 100644
--- a/addon/oembed/oembed.php
+++ b/addon/oembed/oembed.php
@@ -25,9 +25,9 @@ function oembed_uninstall() {
function oembed_settings_post($a,$b){
if(! local_user())
return;
- if (isset($_POST['oembed-submit'])){
- set_pconfig(local_user(), 'oembed', 'use_for_youtube', (isset($_POST['oembed_use_for_youtube'])? intval($_POST['oembed_use_for_youtube']):0));
- notice( t('OEmbed settings updated') . EOL);
+ if (x($_POST,'oembed-submit')){
+ set_pconfig(local_user(), 'oembed', 'use_for_youtube', (x($_POST,'oembed_use_for_youtube')? intval($_POST['oembed_use_for_youtube']):0));
+ info( t('OEmbed settings updated') . EOL);
}
}
@@ -36,21 +36,13 @@ function oembed_settings(&$a,&$o) {
return;
$uofy = intval(get_pconfig(local_user(), 'oembed', 'use_for_youtube' ));
- $o.='
- <div class="settings-block">
- <h3 class="settings-heading">OEmbed</h3>
- <div id="settings-username-wrapper">
- <label for="oembed_use_for_youtube">'
- .t('Use OEmbed for YouTube videos: ')
- .'</label><input type="checkbox" id="oembed_use_for_youtube" name="oembed_use_for_youtube" value="1"'
- . ($uofy==1?'checked="true"':'')
- .' />
- </div>
- <div id="settings-username-end"></div>
- <div class="settings-submit-wrapper">
- <input type="submit" value="'.t('Submit').'" class="settings-submit" name="oembed-submit" />
- </div>
- </div>';
+ $t = file_get_contents( dirname(__file__). "/settings.tpl" );
+ $o .= replace_macros($t, array(
+ '$submit' => t('Submit'),
+ '$title' => "OEmbed",
+ '$useoembed' => array('oembed_use_for_youtube', t('Use OEmbed for YouTube videos'), $uofy, ""),
+ ));
+
}
diff --git a/addon/oembed/settings.tpl b/addon/oembed/settings.tpl
new file mode 100644
index 000000000..5a65ef8e5
--- /dev/null
+++ b/addon/oembed/settings.tpl
@@ -0,0 +1,7 @@
+<div class="settings-block">
+ <h3 class="settings-heading">$title</h3>
+ {{ inc field_checkbox.tpl with $field=$useoembed }}{{ endinc }}
+ <div class="settings-submit-wrapper">
+ <input type="submit" value="$submit" class="settings-submit" name="oembed-submit" />
+ </div>
+</div>
diff --git a/addon/piwik/admin.tpl b/addon/piwik/admin.tpl
new file mode 100644
index 000000000..0edd06210
--- /dev/null
+++ b/addon/piwik/admin.tpl
@@ -0,0 +1,4 @@
+{{ inc field_input.tpl with $field=$baseurl }}{{ endinc }}
+{{ inc field_input.tpl with $field=$siteid }}{{ endinc }}
+{{ inc field_checkbox.tpl with $field=$optout }}{{ endinc }}
+<div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
diff --git a/addon/piwik/piwik.php b/addon/piwik/piwik.php
index 032f84f4b..3cc136d29 100644
--- a/addon/piwik/piwik.php
+++ b/addon/piwik/piwik.php
@@ -18,10 +18,10 @@
* Add the following two lines to your .htconfig.php file:
*
* $a->config['piwik']['baseurl'] = 'www.example.com/piwik/';
- * $a->config['piwik']['sideid'] = '1';
+ * $a->config['piwik']['siteid'] = '1';
* $a->config['piwik']['optout'] = true; // set to false to disable
*
- * Change the sideid to the ID that the Piwik tracker for your Friendika
+ * Change the siteid to the ID that the Piwik tracker for your Friendika
* installation has. Alter the baseurl to fit your needs, don't care
* about http/https but beware to put the trailing / at the end of your
* setting.
@@ -54,13 +54,13 @@ function piwik_analytics($a,&$b) {
* Get the configuration variables from the .htconfig file.
*/
$baseurl = get_config('piwik','baseurl');
- $sideod = get_config('piwik','sideid');
+ $siteid = get_config('piwik','siteid');
$optout = get_config('piwik','optout');
/*
- * Add the Piwik code for the side.
+ * Add the Piwik code for the site.
*/
- $b .= "<div id='piwik-code-block'> <!-- Piwik -->\r\n <script type=\"text/javascript\">\r\n var pkBaseURL = ((\"https:\" == document.location.protocol) ? \"https://".$baseurl."\" : \"http://".$baseurl."\");\r\n document.write(unescape(\"%3Cscript src='\" + pkBaseURL + \"piwik.js' type='text/javascript'%3E%3C/script%3E\"));\r\n </script>\r\n<script type=\"text/javascript\">\r\n try {\r\n var piwikTracker = Piwik.getTracker(pkBaseURL + \"piwik.php\", 8);\r\n piwikTracker.trackPageView();\r\n piwikTracker.enableLinkTracking();\r\n }\r\n catch( err ) {}\r\n </script>\r\n<noscript><p><img src=\"http://".$baseurl."/piwik.php?idsite=8\" style=\"border:0\" alt=\"\" /></p></noscript>\r\n <!-- End Piwik Tracking Tag --> </div>";
+ $b .= "<div id='piwik-code-block'> <!-- Piwik -->\r\n <script type=\"text/javascript\">\r\n var pkBaseURL = ((\"https:\" == document.location.protocol) ? \"https://".$baseurl."\" : \"http://".$baseurl."\");\r\n document.write(unescape(\"%3Cscript src='\" + pkBaseURL + \"piwik.js' type='text/javascript'%3E%3C/script%3E\"));\r\n </script>\r\n<script type=\"text/javascript\">\r\n try {\r\n var piwikTracker = Piwik.getTracker(pkBaseURL + \"piwik.php\", ".$siteid.");\r\n piwikTracker.trackPageView();\r\n piwikTracker.enableLinkTracking();\r\n }\r\n catch( err ) {}\r\n </script>\r\n<noscript><p><img src=\"http://".$baseurl."/piwik.php?idsite=".$siteid."\" style=\"border:0\" alt=\"\" /></p></noscript>\r\n <!-- End Piwik Tracking Tag --> </div>";
/*
* If the optout variable is set to true then display the notice
* otherwise just include the above code into the page.
@@ -70,4 +70,21 @@ function piwik_analytics($a,&$b) {
}
}
-
+function piwik_plugin_admin (&$a, &$o) {
+ $t = file_get_contents( dirname(__file__)."/admin.tpl");
+ $o = replace_macros( $t, array(
+ '$submit' => t('Submit'),
+ '$baseurl' => array('baseurl', t('Piwik Base URL'), get_config('piwik','baseurl' ), ''),
+ '$siteid' => array('siteid', t('Site ID'), get_config('piwik','siteid' ), ''),
+ '$optout' => array('optout', t('Show opt-out cookie link?'), get_config('piwik','optout' ), ''),
+ ));
+}
+function piwik_plugin_admin_post (&$a) {
+ $url = ((x($_POST, 'baseurl')) ? notags(trim($_POST['baseurl'])) : '');
+ $id = ((x($_POST, 'siteid')) ? trim($_POST['siteid']) : '');
+ $optout = ((x($_POST, 'optout')) ? trim($_POST['optout']) : '');
+ set_config('piwik', 'baseurl', $url);
+ set_config('piwik', 'siteid', $id);
+ set_config('piwik', 'optout', $optout);
+ info( t('Settings updated.'). EOL);
+}
diff --git a/addon/statusnet/statusnet.php b/addon/statusnet/statusnet.php
index 85024631c..9357b0ebd 100644
--- a/addon/statusnet/statusnet.php
+++ b/addon/statusnet/statusnet.php
@@ -89,6 +89,9 @@ function statusnet_jot_nets(&$a,&$b) {
function statusnet_settings_post ($a,$post) {
if(! local_user())
return;
+ // don't check statusnet settings if statusnet submit button is not clicked
+ if (!x($_POST,'statusnet-submit')) return;
+
if (isset($_POST['statusnet-disconnect'])) {
/***
* if the statusnet-disconnect checkbox is set, clear the statusnet configuration
@@ -152,28 +155,28 @@ function statusnet_settings_post ($a,$post) {
goaway($a->get_baseurl().'/settings/addon');
} else {
if (isset($_POST['statusnet-pin'])) {
- // if the user supplied us with a PIN from Twitter, let the magic of OAuth happen
- logger('got a StatusNet security code');
+ // if the user supplied us with a PIN from Twitter, let the magic of OAuth happen
+ logger('got a StatusNet security code');
$api = get_pconfig(local_user(), 'statusnet', 'baseapi');
- $ckey = get_pconfig(local_user(), 'statusnet', 'consumerkey' );
- $csecret = get_pconfig(local_user(), 'statusnet', 'consumersecret' );
- // the token and secret for which the PIN was generated were hidden in the settings
- // form as token and token2, we need a new connection to Twitter using these token
- // and secret to request a Access Token with the PIN
- $connection = new StatusNetOAuth($api, $ckey, $csecret, $_POST['statusnet-token'], $_POST['statusnet-token2']);
- $token = $connection->getAccessToken( $_POST['statusnet-pin'] );
- // ok, now that we have the Access Token, save them in the user config
- set_pconfig(local_user(),'statusnet', 'oauthtoken', $token['oauth_token']);
- set_pconfig(local_user(),'statusnet', 'oauthsecret', $token['oauth_token_secret']);
+ $ckey = get_pconfig(local_user(), 'statusnet', 'consumerkey' );
+ $csecret = get_pconfig(local_user(), 'statusnet', 'consumersecret' );
+ // the token and secret for which the PIN was generated were hidden in the settings
+ // form as token and token2, we need a new connection to Twitter using these token
+ // and secret to request a Access Token with the PIN
+ $connection = new StatusNetOAuth($api, $ckey, $csecret, $_POST['statusnet-token'], $_POST['statusnet-token2']);
+ $token = $connection->getAccessToken( $_POST['statusnet-pin'] );
+ // ok, now that we have the Access Token, save them in the user config
+ set_pconfig(local_user(),'statusnet', 'oauthtoken', $token['oauth_token']);
+ set_pconfig(local_user(),'statusnet', 'oauthsecret', $token['oauth_token_secret']);
set_pconfig(local_user(),'statusnet', 'post', 1);
// reload the Addon Settings page, if we don't do it see Bug #42
goaway($a->get_baseurl().'/settings/addon');
- } else {
- // if no PIN is supplied in the POST variables, the user has changed the setting
- // to post a tweet for every new __public__ posting to the wall
- set_pconfig(local_user(),'statusnet','post',intval($_POST['statusnet-enable']));
- set_pconfig(local_user(),'statusnet','post_by_default',intval($_POST['statusnet-default']));
- info( t('StatusNet settings updated.') . EOL);
+ } else {
+ // if no PIN is supplied in the POST variables, the user has changed the setting
+ // to post a tweet for every new __public__ posting to the wall
+ set_pconfig(local_user(),'statusnet','post',intval($_POST['statusnet-enable']));
+ set_pconfig(local_user(),'statusnet','post_by_default',intval($_POST['statusnet-default']));
+ info( t('StatusNet settings updated.') . EOL);
}}}}
}
function statusnet_settings(&$a,&$s) {
@@ -217,7 +220,7 @@ function statusnet_settings(&$a,&$s) {
$s .= '<input type="radio" name="statusnet-preconf-apiurl" value="'. $asn['apiurl'] .'">'. $asn['sitename'] .'<br />';
}
$s .= '<p></p><div class="clear"></div></div>';
- $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="submit" class="settings-submit" value="' . t('Submit') . '" /></div>';
+ $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="statusnet-submit" class="settings-submit" value="' . t('Submit') . '" /></div>';
}
$s .= '<h4>' . t('Provide your own OAuth Credentials') . '</h4>';
$s .= '<p>'. t('No consumer key pair for StatusNet found. Register your Friendika Account as an desktop client on your StatusNet account, copy the consumer key pair here and enter the API base root.<br />Before you register your own OAuth key pair ask the administrator if there is already a key pair for this Friendika installation at your favorited StatusNet installation.') .'</p>';
@@ -231,7 +234,7 @@ function statusnet_settings(&$a,&$s) {
$s .= '<label id="statusnet-baseapi-label" for="statusnet-baseapi">'. t("Base API Path \x28remember the trailing /\x29") .'</label>';
$s .= '<input id="statusnet-baseapi" type="text" name="statusnet-baseapi" size="35" /><br />';
$s .= '<p></p><div class="clear"></div></div>';
- $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="submit" class="settings-submit" value="' . t('Submit') . '" /></div>';
+ $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="statusnet-submit" class="settings-submit" value="' . t('Submit') . '" /></div>';
} else {
/***
* ok we have a consumer key pair now look into the OAuth stuff
@@ -256,15 +259,15 @@ function statusnet_settings(&$a,&$s) {
$s .= '<input id="statusnet-pin" type="text" name="statusnet-pin" />';
$s .= '<input id="statusnet-token" type="hidden" name="statusnet-token" value="'.$token.'" />';
$s .= '<input id="statusnet-token2" type="hidden" name="statusnet-token2" value="'.$request_token['oauth_token_secret'].'" />';
- $s .= '</div><div class="clear"></div>';
- $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="submit" class="settings-submit" value="' . t('Submit') . '" /></div>';
- $s .= '<h4>'.t('Cancel Connection Process').'</h4>';
- $s .= '<div id="statusnet-cancel-wrapper">';
- $s .= '<p>'.t('Current StatusNet API is').': '.$api.'</p>';
- $s .= '<label id="statusnet-cancel-label" for="statusnet-cancel">'. t('Cancel StatusNet Connection') . '</label>';
- $s .= '<input id="statusnet-cancel" type="checkbox" name="statusnet-disconnect" value="1" />';
- $s .= '</div><div class="clear"></div>';
- $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="submit" class="settings-submit" value="' . t('Submit') . '" /></div>';
+ $s .= '</div><div class="clear"></div>';
+ $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="submit" class="settings-submit" value="' . t('Submit') . '" /></div>';
+ $s .= '<h4>'.t('Cancel Connection Process').'</h4>';
+ $s .= '<div id="statusnet-cancel-wrapper">';
+ $s .= '<p>'.t('Current StatusNet API is').': '.$api.'</p>';
+ $s .= '<label id="statusnet-cancel-label" for="statusnet-cancel">'. t('Cancel StatusNet Connection') . '</label>';
+ $s .= '<input id="statusnet-cancel" type="checkbox" name="statusnet-disconnect" value="1" />';
+ $s .= '</div><div class="clear"></div>';
+ $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="statusnet-submit" class="settings-submit" value="' . t('Submit') . '" /></div>';
} else {
/***
* we have an OAuth key / secret pair for the user
@@ -286,7 +289,7 @@ function statusnet_settings(&$a,&$s) {
$s .= '<label id="statusnet-disconnect-label" for="statusnet-disconnect">'. t('Clear OAuth configuration') .'</label>';
$s .= '<input id="statusnet-disconnect" type="checkbox" name="statusnet-disconnect" value="1" />';
$s .= '</div><div class="clear"></div>';
- $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="submit" class="settings-submit" value="' . t('Submit') . '" /></div>';
+ $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="statusnet-submit" class="settings-submit" value="' . t('Submit') . '" /></div>';
}
}
$s .= '</div><div class="clear"></div></div>';
@@ -303,10 +306,14 @@ function statusnet_post_hook(&$a,&$b) {
if((local_user()) && (local_user() == $b['uid']) && (! $b['private']) && (!$b['parent']) ) {
- load_pconfig(local_user(), 'statusnet');
+ // Status.Net is not considered a private network
+ if($b['prvnets'])
+ return;
+
+ load_pconfig(local_user(), 'statusnet');
- $api = get_pconfig(local_user(), 'statusnet', 'baseapi');
- $ckey = get_pconfig(local_user(), 'statusnet', 'consumerkey' );
+ $api = get_pconfig(local_user(), 'statusnet', 'baseapi');
+ $ckey = get_pconfig(local_user(), 'statusnet', 'consumerkey' );
$csecret = get_pconfig(local_user(), 'statusnet', 'consumersecret' );
$otoken = get_pconfig(local_user(), 'statusnet', 'oauthtoken' );
$osecret = get_pconfig(local_user(), 'statusnet', 'oauthsecret' );
diff --git a/addon/twitter/twitter.php b/addon/twitter/twitter.php
index aeb9cc937..183c71126 100644
--- a/addon/twitter/twitter.php
+++ b/addon/twitter/twitter.php
@@ -76,6 +76,9 @@ function twitter_jot_nets(&$a,&$b) {
function twitter_settings_post ($a,$post) {
if(! local_user())
return;
+ // don't check twitter settings if twitter submit button is not clicked
+ if (!x($_POST,'twitter-submit')) return;
+
if (isset($_POST['twitter-disconnect'])) {
/***
* if the twitter-disconnect checkbox is set, clear the OAuth key/secret pair
@@ -159,7 +162,7 @@ function twitter_settings(&$a,&$s) {
$s .= '<input id="twitter-token" type="hidden" name="twitter-token" value="'.$token.'" />';
$s .= '<input id="twitter-token2" type="hidden" name="twitter-token2" value="'.$request_token['oauth_token_secret'].'" />';
$s .= '</div><div class="clear"></div>';
- $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="submit" class="settings-submit" value="' . t('Submit') . '" /></div>';
+ $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="twitter-submit" class="settings-submit" value="' . t('Submit') . '" /></div>';
} else {
/***
* we have an OAuth key / secret pair for the user
@@ -178,7 +181,7 @@ function twitter_settings(&$a,&$s) {
$s .= '<label id="twitter-disconnect-label" for="twitter-disconnect">'. t('Clear OAuth configuration') .'</label>';
$s .= '<input id="twitter-disconnect" type="checkbox" name="twitter-disconnect" value="1" />';
$s .= '</div><div class="clear"></div>';
- $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="submit" class="settings-submit" value="' . t('Submit') . '" /></div>';
+ $s .= '<div class="settings-submit-wrapper" ><input type="submit" name="twitter-submit" class="settings-submit" value="' . t('Submit') . '" /></div>';
}
}
$s .= '</div><div class="clear"></div></div>';
@@ -195,6 +198,11 @@ function twitter_post_hook(&$a,&$b) {
if((local_user()) && (local_user() == $b['uid']) && (! $b['private']) && (! $b['parent']) ) {
+ // Twitter is not considered a private network
+ if($b['prvnets'])
+ return;
+
+
load_pconfig(local_user(), 'twitter');
$ckey = get_config('twitter', 'consumerkey' );
diff --git a/addon/widgets/settings.tpl b/addon/widgets/settings.tpl
new file mode 100644
index 000000000..9d0f21d29
--- /dev/null
+++ b/addon/widgets/settings.tpl
@@ -0,0 +1,19 @@
+<div class="settings-block">
+ <h3 class="settings-heading">$title</h3>
+ <div class='field noedit'>
+ <label>$label</label>
+ <tt>$key</tt>
+ </div>
+
+ <div class="settings-submit-wrapper">
+ <input type="submit" value="$submit" class="settings-submit" name="widgets-submit" />
+ </div>
+
+ <h4>$widgets_h</h4>
+ <ul>
+ {{ for $widgets as $w }}
+ <li><a href="$baseurl/widgets/$w.0/?k=$key&p=1">$w.1</a></li>
+ {{ endfor }}
+ </ul>
+
+</div>
diff --git a/addon/widgets/widgets.php b/addon/widgets/widgets.php
index f5f868222..13c4f93bb 100644
--- a/addon/widgets/widgets.php
+++ b/addon/widgets/widgets.php
@@ -33,34 +33,32 @@ function widgets_settings(&$a,&$o) {
$key = get_pconfig(local_user(), 'widgets', 'key' );
if ($key=='') { $key = mt_rand(); set_pconfig(local_user(), 'widgets', 'key', $key); }
-
- $o .='<h3 class="settings-heading">Widgets</h3>';
-
-
- $o.='
- <div id="settings-username-wrapper">
- '. t('Widgets key: ') .'<strong>'.$key.'</strong>
- </div>
- <div id="settings-username-end"></div>
- <div class="settings-submit-wrapper">
- <input type="submit" value="'.t('Generate new key').'" class="settings-submit" name="widgets-submit">
- </div>';
-
-
- $o.='<h4>Widgets:</h4>';
- $o .= '<ul>';
+
+ $widgets = array();
$d = dir(dirname(__file__));
while(false !== ($f = $d->read())) {
if(substr($f,0,7)=="widget_") {
preg_match("|widget_([^.]+).php|", $f, $m);
$w=$m[1];
require_once($f);
- $o.='<li><a href="'.$a->get_baseurl().'/widgets/'.$w.'/?k='.$key.'&p=1">'. call_user_func($w."_widget_name") .'</a></li>';
+ $widgets[] = array($w, call_user_func($w."_widget_name"));
+
}
}
- $o .= '</ul>';
-
+
+
+ $t = file_get_contents( dirname(__file__). "/settings.tpl" );
+ $o .= replace_macros($t, array(
+ '$submit' => t('Generate new key'),
+ '$baseurl' => $a->get_baseurl(),
+ '$title' => "Widgets",
+ '$label' => t('Widgets key'),
+ '$key' => $key,
+ '$widgets_h' => t('Widgets available'),
+ '$widgets' => $widgets,
+ ));
+
}
function widgets_module() {