diff --git a/addon/widgets/widget_friends.php b/addon/widgets/widget_friends.php new file mode 100644 index 0000000000..2286f68cad --- /dev/null +++ b/addon/widgets/widget_friends.php @@ -0,0 +1,32 @@ +profile = $r[0]; + + $o = ""; + $o .= ""; + $o .= _abs_url(contact_block()); + $o .= "profile['nickname']."'>". t('Connect on Friendika!') .""; + return $o; +} diff --git a/addon/widgets/widget_like.php b/addon/widgets/widget_like.php new file mode 100644 index 0000000000..9b54212a80 --- /dev/null +++ b/addon/widgets/widget_like.php @@ -0,0 +1,22 @@ +KEY and print like/dislike count"; +} + +function like_widget_args(){ + return Array("KEY"); +} + +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 new file mode 100644 index 0000000000..45d36c4d7d --- /dev/null +++ b/addon/widgets/widgets.js @@ -0,0 +1,64 @@ +/** + * @author Fabio Comuni + */ + +var f9a_widget_$widget_id = { + entrypoint : "$entrypoint", + key : "$key", + widgetid: "$widget_id", + argstr: "$args", + xmlhttp : null, + + getXHRObj : function(){ + if (window.XMLHttpRequest) { + // code for IE7+, Firefox, Chrome, Opera, Safari + this.xmlhttp = new XMLHttpRequest(); + } else { + // code for IE6, IE5 + this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } + }, + + dorequest : function(args, cb) { + 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]) ); } + + var url = this.entrypoint + "?"+ urlencodedargs.join("&"); + + 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.obj, this.responseText); + } else { + document.getElementById(this.obj.widgetid).innerHTML="Error loading widget."; + } + } + } + + }, + + requestcb: function(obj, responseText) { + document.getElementById(obj.widgetid).innerHTML=responseText; + }, + + load : function (){ + this.getXHRObj(); + this.dorequest(null, this.requestcb); + } + +}; + +(function() { + f9a_widget_$widget_id.load(); +})(); + +document.writeln("
"); +document.writeln(""); +document.writeln("
"); diff --git a/addon/widgets/widgets.php b/addon/widgets/widgets.php new file mode 100644 index 0000000000..6bd7a73d17 --- /dev/null +++ b/addon/widgets/widgets.php @@ -0,0 +1,168 @@ +Widgets'; + + + $o.=' +
+ '. t('Widgets key: ') .''.$key.' +
+
+
+ +
'; + + + $o.='

Widgets:

'; + $o .= ''; + +} + +function widgets_module() { + return; +} + +function _abs_url($s){ + $a = get_app(); + return preg_replace("|href=(['\"])([^h][^t][^t][^p])|", "href=\$1".$a->get_baseurl()."/\$2", $s); +} + + +function widgets_content(&$a) { + + if (!isset($_GET['k'])) { + if($a->argv[2]=="cb"){header('HTTP/1.0 400 Bad Request'); killme();} + return; + } + + $r = q("SELECT * FROM pconfig WHERE uid IN (SELECT uid FROM pconfig WHERE v='%s')AND cat='widgets'", + dbesc($_GET['k']) + ); + if (!count($r)){ + if($a->argv[2]=="cb"){header('HTTP/1.0 400 Bad Request'); killme();} + return; + } + $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"; + if (file_exists($widgetfile)){ + require_once($widgetfile); + } else { + if($a->argv[2]=="cb"){header('HTTP/1.0 400 Bad Request'); killme();} + return; + } + + + + + //echo "
"; var_dump($a->argv); die();
+	if ($a->argv[2]=="cb"){
+		/*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();}
+		} */
+		$o .= call_user_func($a->argv[1].'_widget_content',$a, $conf);
+		
+	} else {
+
+		
+		if (isset($_GET['p']) && local_user()==$conf['uid'] ) {
+			$o .= "";
+			$o .= "

Preview Widget

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

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

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

"; + $o .= " +

+

Copy and paste this code

+ " + + .htmlspecialchars('') + .""; + return $o; + } + + } + + echo $o; + killme(); +} + + + + +?>