diff options
-rw-r--r-- | addon/widgets/widget_friends.php | 16 | ||||
-rw-r--r-- | addon/widgets/widget_like.php | 21 | ||||
-rw-r--r-- | addon/widgets/widgets.js | 15 | ||||
-rw-r--r-- | addon/widgets/widgets.php | 72 |
4 files changed, 69 insertions, 55 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 @@ <?php -function widget_help(&$a, &$o, $conf) { - $o .= "Shows profile contacts"; +function friends_widget_name() { + return "Shows profile contacts"; +} +function friends_widget_help() { + return ""; } -function widget_args(){ +function friends_widget_args(){ return Array(); } -function widget_content(&$a, &$o, $conf){ +function friends_widget_content(&$a, $conf){ $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `user`.* FROM `profile` LEFT JOIN `user` ON `profile`.`uid` = `user`.`uid` WHERE `user`.`uid` = %s AND `profile`.`is-default` = 1 LIMIT 1", intval($conf['uid']) ); - if(!count($r)) return; $a->profile = $r[0]; + $o = ""; $o .= "<style> .f9k_widget .contact-block-div { display: block !important; float: left!important; width: 50px!important; height: 50px!important; margin: 2px!important;} .f9k_widget #contact-block-end { clear: left; } </style>"; $o .= _abs_url(contact_block()); $o .= "<a href='".$a->get_baseurl().'/profile/'.$a->profile['nickname']."'>". t('Connect on Friendika!') ."</a>"; -}
\ 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 @@ <?php -function widget_help(&$a, &$o, $conf) { - $o .= "<p>Shows likes<br>Search "; +function like_widget_name() { + return "Shows likes"; +} +function like_widget_help() { + return "Search first item wich contains <em>KEY</em> 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 <em>" .$args[0]. "</em> # "; + } 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("<div id='$widget_id' class='f9k_widget'>"); 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 .=' - <h3 class="settings-heading">Widgets</h3> - <div id="settings-username-wrapper"> - <label for="widgets-site" id="settings-username-label">'.t('Remote site: ').'</label> - <input type="text" value="'.$site.'" id="settings-username" name="widgets-site"> - </div> - <div id="settings-username-end"></div> + + $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"> - <label for="widgets-key" id="settings-username-label">'.t('Widgets key: ').'</label> - <input type="hidden" value="'.$key.'" id="settings-username" name="widgets-key"> - <strong>'.$key.'</strong> + '. t('Widgets key: ') .'<strong>'.$key.'</strong> </div> <div id="settings-username-end"></div> - - - <div class="settings-submit-wrapper"> - <input type="submit" value="'.t('Submit').'" class="settings-submit" name="widgets-submit"> - </div> - '; + <input type="submit" value="'.t('Generate new key').'" class="settings-submit" name="widgets-submit"> + </div>'; + - if ($key!='' and $site!='') { - $o.='<h4>Widgets:</h4> - <ul> - <li><a href="'.$a->get_baseurl().'/widgets/friends/?p=1&k='.$key.'">Friend list</a></li> - <li><a href="'.$a->get_baseurl().'/widgets/like/?p=1&k='.$key.'">Likes count</a></li> - </ul> - '; + $o.='<h4>Widgets:</h4>'; + $o .= '<ul>'; + $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>'; + } } + $o .= '</ul>'; + } 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 "<pre>"; 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 .= "<style>.f9k_widget { float: left;border:1px solid black; }</style>"; $o .= "<h1>Preview Widget</h1>"; $o .= '<a href="'.$a->get_baseurl().'/settings/addon">'. t("Plugin Settings") .'</a>'; - $o .= "<br style='clear:left'/><br/>"; - widget_help($a, $o, $conf); + + $o .= "<h4>".call_user_func($a->argv[1].'_widget_name')."</h4>"; + $o .= call_user_func($a->argv[1].'_widget_help'); $o .= "<br style='clear:left'/><br/>"; $o .= "<script>"; } else { @@ -139,11 +136,12 @@ function widgets_content(&$a) { '$key' => $conf['key'], '$widget_id' => 'f9k_'.$a->argv[1]."_".time(), '$loader' => $a->get_baseurl()."/images/rotator.gif", + '$args' => (isset($_GET['a'])?$_GET['a']:''), )); if (isset($_GET['p'])) { - $jsargs = implode("</em>,<em>", widget_args()); + $jsargs = implode("</em>,<em>", call_user_func($a->argv[1].'_widget_args')); if ($jsargs!='') $jsargs = "&a=<em>".$jsargs."</em>"; $o .= "</script> |