diff options
Diffstat (limited to 'addon')
-rw-r--r-- | addon/facebook/facebook.php | 51 | ||||
-rw-r--r-- | addon/oembed/oembed.php | 28 | ||||
-rw-r--r-- | addon/oembed/settings.tpl | 7 | ||||
-rw-r--r-- | addon/piwik/admin.tpl | 4 | ||||
-rw-r--r-- | addon/piwik/piwik.php | 29 | ||||
-rw-r--r-- | addon/statusnet/statusnet.php | 73 | ||||
-rw-r--r-- | addon/twitter/twitter.php | 12 | ||||
-rw-r--r-- | addon/widgets/settings.tpl | 19 | ||||
-rw-r--r-- | addon/widgets/widgets.php | 36 |
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() { |