From 55fd53ecbd45e1ef28e576edc943cf11b9326cb5 Mon Sep 17 00:00:00 2001 From: Fabio Comuni Date: Wed, 11 May 2011 17:04:41 +0200 Subject: [PATCH] More work on widgets addon --- addon/widgets/widget_friends.php | 16 ++++--- addon/widgets/widget_like.php | 21 ++++++--- addon/widgets/widgets.js | 15 ++++--- addon/widgets/widgets.php | 74 ++++++++++++++++---------------- 4 files changed, 70 insertions(+), 56 deletions(-) diff --git a/addon/widgets/widget_friends.php b/addon/widgets/widget_friends.php index d794f7d26..2286f68ca 100644 --- a/addon/widgets/widget_friends.php +++ b/addon/widgets/widget_friends.php @@ -1,28 +1,32 @@ profile = $r[0]; + $o = ""; $o .= ""; $o .= _abs_url(contact_block()); $o .= "profile['nickname']."'>". t('Connect on Friendika!') .""; -} \ No newline at end of file + return $o; +} diff --git a/addon/widgets/widget_like.php b/addon/widgets/widget_like.php index 001ec9c62..9b54212a8 100644 --- a/addon/widgets/widget_like.php +++ b/addon/widgets/widget_like.php @@ -1,13 +1,22 @@ Shows likes
Search "; +function like_widget_name() { + return "Shows likes"; +} +function like_widget_help() { + return "Search first item wich contains KEY and print like/dislike count"; } -function widget_args(){ +function like_widget_args(){ return Array("KEY"); } -function widget_content(&$a, &$o, $conf){ - $o .= " #TODO# "; -} \ No newline at end of file +function like_widget_content(&$a, $conf){ + $args = explode(",",$_GET['a']); + + if ($args[0]!=""){ + return " #TODO like/dislike count for item with " .$args[0]. " # "; + } else { + return " #TODO# "; + } +} diff --git a/addon/widgets/widgets.js b/addon/widgets/widgets.js index 7a6cdeb0a..45d36c4d7 100644 --- a/addon/widgets/widgets.js +++ b/addon/widgets/widgets.js @@ -2,10 +2,11 @@ * @author Fabio Comuni */ -var f9a_widget = { +var f9a_widget_$widget_id = { entrypoint : "$entrypoint", key : "$key", widgetid: "$widget_id", + argstr: "$args", xmlhttp : null, getXHRObj : function(){ @@ -22,6 +23,7 @@ var f9a_widget = { if (args===null) args = new Array(); args['k']=this.key; args['s']=window.location; + args['a']=this.argstr; var urlencodedargs = new Array(); for(k in args){ urlencodedargs.push( encodeURIComponent(k)+"="+encodeURIComponent(args[k]) ); } @@ -29,20 +31,21 @@ var f9a_widget = { this.xmlhttp.open("GET", url ,true); this.xmlhttp.send(); + this.xmlhttp.obj = this; this.xmlhttp.onreadystatechange=function(){ if (this.readyState==4){ if (this.status==200) { - cb(this.responseText); + cb(this.obj, this.responseText); } else { - document.getElementById(f9a_widget.widgetid).innerHTML="Error loading widget."; + document.getElementById(this.obj.widgetid).innerHTML="Error loading widget."; } } } }, - requestcb: function(responseText) { - document.getElementById(f9a_widget.widgetid).innerHTML=responseText; + requestcb: function(obj, responseText) { + document.getElementById(obj.widgetid).innerHTML=responseText; }, load : function (){ @@ -53,7 +56,7 @@ var f9a_widget = { }; (function() { - f9a_widget.load(); + f9a_widget_$widget_id.load(); })(); document.writeln("
"); diff --git a/addon/widgets/widgets.php b/addon/widgets/widgets.php index 305423cb9..6bd7a73d1 100644 --- a/addon/widgets/widgets.php +++ b/addon/widgets/widgets.php @@ -17,8 +17,8 @@ function widgets_install() { function widgets_settings_post(){ if (isset($_POST['widgets-submit'])){ - set_pconfig(local_user(), 'widgets', 'site', $_POST['widgets-site']); - set_pconfig(local_user(), 'widgets', 'key', $_POST['widgets-key']); + del_pconfig(local_user(), 'widgets', 'key'); + } } @@ -26,41 +26,37 @@ function widgets_settings(&$a,&$o) { if(! local_user()) return; - $key = get_pconfig(local_user(), 'widgets', 'key' ); - $site = get_pconfig(local_user(), 'widgets', 'site' ); - - if ($key=='') $key = mt_rand(); - - $o .=' -

Widgets

-
- - -
-
-
- - - '.$key.' -
-
+ + $key = get_pconfig(local_user(), 'widgets', 'key' ); + if ($key=='') { $key = mt_rand(); set_pconfig(local_user(), 'widgets', 'key', $key); } + + $o .='

Widgets

'; - + $o.=' +
+ '. t('Widgets key: ') .''.$key.' +
+
- -
- '; + +
'; - if ($key!='' and $site!='') { - $o.='

Widgets:

- - '; + + $o.='

Widgets:

'; + $o .= ''; + } function widgets_module() { @@ -90,7 +86,7 @@ function widgets_content(&$a) { $conf = array(); $conf['uid'] = $r[0]['uid']; foreach($r as $e) { $conf[$e['k']]=$e['v']; } - + $o = ""; $widgetfile =dirname(__file__)."/widget_".$a->argv[1].".php"; @@ -106,14 +102,14 @@ function widgets_content(&$a) { //echo "
"; var_dump($a->argv); die();
 	if ($a->argv[2]=="cb"){
-		if (!local_user()){
+		/*if (!local_user()){
 			if (!isset($_GET['s']))
 				{header('HTTP/1.0 400 Bad Request'); killme();}
 			
 			if (substr($_GET['s'],0,strlen($conf['site'])) !== $conf['site'])
 				{header('HTTP/1.0 400 Bad Request'); killme();}
-		} 
-		widget_content($a, $o, $conf);
+		} */
+		$o .= call_user_func($a->argv[1].'_widget_content',$a, $conf);
 		
 	} else {
 
@@ -122,8 +118,9 @@ function widgets_content(&$a) {
 			$o .= "";
 			$o .= "

Preview Widget

"; $o .= ''. t("Plugin Settings") .''; - $o .= "

"; - widget_help($a, $o, $conf); + + $o .= "

".call_user_func($a->argv[1].'_widget_name')."

"; + $o .= call_user_func($a->argv[1].'_widget_help'); $o .= "

"; $o .= "