]> git.mxchange.org Git - friendica.git/commitdiff
Merge pull request #185 from fabrixxm/master
authorfabrixxm <fabrix.xm@gmail.com>
Thu, 29 Mar 2012 06:47:23 +0000 (23:47 -0700)
committerfabrixxm <fabrix.xm@gmail.com>
Thu, 29 Mar 2012 06:47:23 +0000 (23:47 -0700)
Updated private message pages

29 files changed:
boot.php
include/api.php
include/bbcode.php
include/dba.php
include/diaspora.php
include/email.php
include/html2plain.php
include/items.php
include/msgclean.php
include/poller.php
include/quoteconvert.php
include/text.php
mod/dfrn_notify.php
mod/ping.php
mod/settings.php
view/api_ratelimit_xml.tpl
view/api_user_xml.tpl
view/theme/diabook-blue/communityhome.tpl
view/theme/diabook-blue/style-network.css
view/theme/diabook-blue/style-profile.css
view/theme/diabook-blue/theme.php
view/theme/diabook/communityhome.tpl
view/theme/diabook/icons/srch_bg.gif [new file with mode: 0644]
view/theme/diabook/icons/srch_l.gif [new file with mode: 0644]
view/theme/diabook/icons/srch_r.gif [new file with mode: 0644]
view/theme/diabook/icons/srch_r_f2.gif [new file with mode: 0644]
view/theme/diabook/style-network.css
view/theme/diabook/style-profile.css
view/theme/diabook/theme.php

index e0ab98bde57c26d8600071ac7469cda7e7dcd045..b02e686bad289c4f59b68067c6c3720cb5372f00 100755 (executable)
--- a/boot.php
+++ b/boot.php
@@ -9,7 +9,7 @@ require_once('include/nav.php');
 require_once('include/cache.php');
 
 define ( 'FRIENDICA_PLATFORM',     'Friendica');
-define ( 'FRIENDICA_VERSION',      '2.3.1294' );
+define ( 'FRIENDICA_VERSION',      '2.3.1295' );
 define ( 'DFRN_PROTOCOL_VERSION',  '2.23'    );
 define ( 'DB_UPDATE_VERSION',      1133      );
 
@@ -95,8 +95,8 @@ define ( 'PAGE_BLOG',              4 );
  * Network and protocol family types 
  */
 
-define ( 'NETWORK_ZOT',              'zot!');    // Zot!
 define ( 'NETWORK_DFRN',             'dfrn');    // Friendica, Mistpark, other DFRN implementations
+define ( 'NETWORK_ZOT',              'zot!');    // Zot!
 define ( 'NETWORK_OSTATUS',          'stat');    // status.net, identi.ca, GNU-social, other OStatus implementations
 define ( 'NETWORK_FEED',             'feed');    // RSS/Atom feeds with no known "post/notify" protocol
 define ( 'NETWORK_DIASPORA',         'dspr');    // Diaspora
@@ -108,6 +108,28 @@ define ( 'NETWORK_XMPP',             'xmpp');    // XMPP
 define ( 'NETWORK_MYSPACE',          'mysp');    // MySpace
 define ( 'NETWORK_GPLUS',            'goog');    // Google+
 
+/*
+ * These numbers are used in stored permissions
+ * and existing allocations MUST NEVER BE CHANGED
+ * OR RE-ASSIGNED! You may only add to them.
+ */
+
+$netgroup_ids = array(
+       NETWORK_DFRN     => (-1),
+       NETWORK_ZOT      => (-2),
+       NETWORK_OSTATUS  => (-3),
+       NETWORK_FEED     => (-4),
+       NETWORK_DIASPORA => (-5),
+       NETWORK_MAIL     => (-6),
+       NETWORK_MAIL2    => (-7),
+       NETWORK_FACEBOOK => (-8),
+       NETWORK_LINKEDIN => (-9),
+       NETWORK_XMPP     => (-10),
+       NETWORK_MYSPACE  => (-11),
+       NETWORK_GPLUS    => (-12),
+);
+
+
 /**
  * Maximum number of "people who like (or don't like) this"  that we will list by name
  */
index 013f4b97aebf4a4b289cf4aa43f9a31890cf10e0..64772d6575a54ce2029864df781b24b4f41ee7b5 100755 (executable)
@@ -3,6 +3,7 @@
        require_once("datetime.php");
        require_once("conversation.php");
        require_once("oauth.php");
+       require_once("html2plain.php");
        /* 
         * Twitter-Like API
         *  
                }
 
                $ret = Array(
+                       'id' => intval($uinfo[0]['cid']),
                        'self' => intval($uinfo[0]['self']),
                        'uid' => intval($uinfo[0]['uid']),
-                       'id' => intval($uinfo[0]['cid']),
-                       'name' => $uinfo[0]['name'],
+                       'name' => (($uinfo[0]['name']) ? $uinfo[0]['name'] : $uinfo[0]['nick']),
                        'screen_name' => (($uinfo[0]['nick']) ? $uinfo[0]['nick'] : $uinfo[0]['name']),
                        'location' => ($usr) ? $usr[0]['default-location'] : '',
                        'profile_image_url' => $uinfo[0]['micro'],
        }
 
        function api_item_get_user(&$a, $item) {
+               global $usercache;
+
                // The author is our direct contact, in a conversation with us.
                if(link_compare($item['url'],$item['author-link'])) {
                        return api_get_user($a,$item['cid']);
                
                list($nick, $name) = array_map("trim",explode("(",$item['author-name']));
                $name=str_replace(")","",$name);
-               
+
+               if ($name == '')
+                       $name = $nick;
+
+               if ($nick == '')
+                       $nick = $name;
+
+               // Generating a random ID
+               if (!array_key_exists($nick, $usercache))
+                       $usercache[$nick] = mt_rand(2000000, 2100000);
+
                $ret = array(
-                       'uid' => 0,
-                       'id' => 0,
+                       'id' => $usercache[$nick],
                        'name' => $name,
                        'screen_name' => $nick,
                        'location' => '', //$uinfo[0]['default-location'],
+                       'description' => '',
                        'profile_image_url' => $item['author-avatar'],
                        'url' => $item['author-link'],
-                       'contact_url' => 0,
                        'protected' => false,   #
+                       'followers_count' => 0,
                        'friends_count' => 0,
                        'created_at' => '',
+                       'favourites_count' => 0,
                        'utc_offset' => 0, #XXX: fix me
                        'time_zone' => '', //$uinfo[0]['timezone'],
-                       'geo_enabled' => false,
                        'statuses_count' => 0,
+                       'following' => 1,
+                       'statusnet_blocking' => false,
+                       'notifications' => false,
+                       'uid' => 0,
+                       'contact_url' => 0,
+                       'geo_enabled' => false,
                        'lang' => 'en', #XXX: fix me
-                       'description' => '',
-                       'followers_count' => 0,
-                       'favourites_count' => 0,
                        'contributors_enabled' => false,
                        'follow_request_sent' => false,
                        'profile_background_color' => 'cfe8f6',
                        'profile_background_image_url' => '',
                        'profile_background_tile' => false,
                        'profile_use_background_image' => false,
-                       'notifications' => false,
                        'verified' => true, #XXX: fix me
                        'followers' => '', #XXX: fix me
                        'status' => array()
                                $in_reply_to_screen_name = $lastwall['reply_author'];
                        }  
                        $status_info = array(
-                               'created_at' => api_date($lastwall['created']),
-                               'id' => $lastwall['contact-id'],
-                               'text' => strip_tags(bbcode($lastwall['body'])),
-                               'source' => (($lastwall['app']) ? $lastwall['app'] : 'web'),
+                               'text' => html2plain(bbcode($lastwall['body']), 0),
                                'truncated' => false,
+                               'created_at' => api_date($lastwall['created']),
                                'in_reply_to_status_id' => $in_reply_to_status_id,
+                               'source' => (($lastwall['app']) ? $lastwall['app'] : 'web'),
+                               'id' => $lastwall['contact-id'],
                                'in_reply_to_user_id' => $in_reply_to_user_id,
-                               'favorited' => false,
                                'in_reply_to_screen_name' => $in_reply_to_screen_name,
                                'geo' => '',
+                               'favorited' => false,
                                'coordinates' => $lastwall['coord'],
                                'place' => $lastwall['location'],
                                'contributors' => ''                                    
                        $user_info['status'] = array(
                                'created_at' => api_date($lastwall['created']),
                                'id' => $lastwall['contact-id'],
-                               'text' => strip_tags(bbcode($lastwall['body'])),
+                               'text' => html2plain(bbcode($lastwall['body']), 0),
                                'source' => (($lastwall['app']) ? $lastwall['app'] : 'web'),
                                'truncated' => false,
                                'in_reply_to_status_id' => $in_reply_to_status_id,
                $count = (x($_REQUEST,'count')?$_REQUEST['count']:20);
                $page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0);
                if ($page<0) $page=0;
-               $since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0);
+               $since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0);
+               $max_id = (x($_REQUEST,'max_id')?$_REQUEST['max_id']:0);
+               //$since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0);
                
                $start = $page*$count;
 
+               //$include_entities = (x($_REQUEST,'include_entities')?$_REQUEST['include_entities']:false);
+
+               if ($max_id > 0)
+                       $sql_extra = 'AND `item`.`id` <= '.intval($max_id);
+
                $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, 
                        `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
                        `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
        api_register_func('api/statuses/home_timeline','api_statuses_home_timeline', true);
        api_register_func('api/statuses/friends_timeline','api_statuses_home_timeline', true);
 
+       /**
+        * 
+        */
+       function api_statuses_show(&$a, $type){
+               if (local_user()===false) return false;
+
+               $user_info = api_get_user($a);
+
+               // params
+               $id = intval($a->argv[3]);
+
+               logger('API: api_statuses_show: '.$id);         
+
+               //$include_entities = (x($_REQUEST,'include_entities')?$_REQUEST['include_entities']:false);
+
+               $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, 
+                       `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
+                       `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
+                       `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
+                       FROM `item`, `contact`
+                       WHERE `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`deleted` = 0
+                       AND `contact`.`id` = `item`.`contact-id`
+                       AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
+                       $sql_extra
+                       AND `item`.`id`=%d",
+                       intval($id)
+               );
+
+               $ret = api_format_items($r,$user_info);
+               
+               $data = array('$status' => $ret[0]);
+               /*switch($type){
+                       case "atom":
+                       case "rss":
+                               $data = api_rss_extra($a, $data, $user_info);
+               }*/
+               return  api_apply_template("status", $type, $data);
+       }
+       api_register_func('api/statuses/show','api_statuses_show', true);
+
+       //api_register_func('api/statuses/mentions','api_statuses_mentions', true);
+       //api_register_func('api/statuses/replies','api_statuses_mentions', true);
 
 
        function api_statuses_user_timeline(&$a, $type){
                $count = (x($_REQUEST,'count')?$_REQUEST['count']:20);
                $page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0);
                if ($page<0) $page=0;
-               $since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0);
+               $since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0);
+               //$since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0);
                
                $start = $page*$count;
 
                foreach($r as $item) {
                        localize_item($item);
                        $status_user = (($item['cid']==$user_info['id'])?$user_info: api_item_get_user($a,$item));
+
+                       if ($item['parent']!=$item['id']) {
+                               $r = q("select id from item where parent=%s and id<%s order by id desc limit 1", 
+                                       intval($item['parent']), intval($item['id']));
+                               if ($r)
+                                       $in_reply_to_status_id = $r[0]['id'];
+                               else
+                                       $in_reply_to_status_id = $item['parent'];
+
+                               $r = q("select `item`.`contact-id`, `contact`.nick, `item`.`author-name` from item, contact 
+                                       where `contact`.`id` = `item`.`contact-id` and `item`.id=%d", intval($in_reply_to_status_id));
+
+                               $in_reply_to_screen_name = $r[0]['author-name'];
+                               $in_reply_to_user_id = $r[0]['contact-id'];
+
+                       } else {
+                               $in_reply_to_screen_name = '';
+                               $in_reply_to_user_id = 0;
+                               $in_reply_to_status_id = 0;
+                       }
+
                        $status = array(
+                               'text'          => trim($item['title']." \n".html2plain(bbcode($item['body']), 0)),
+                               'truncated' => False,
                                'created_at'=> api_date($item['created']),
-                               'published' => api_date($item['created']),
-                               'updated'   => api_date($item['edited']),
-                               'id'            => intval($item['id']),
-                               'message_id' => $item['uri'],
-                               'text'          => strip_tags(bbcode($item['body'])),
-                               'statusnet_html'                => bbcode($item['body']),
+                               'in_reply_to_status_id' => $in_reply_to_status_id,
                                'source'    => (($item['app']) ? $item['app'] : 'web'),
-                               'url'           => ($item['plink']!=''?$item['plink']:$item['author-link']),
-                               'truncated' => False,
-                               'in_reply_to_status_id' => ($item['parent']!=$item['id']? intval($item['parent']):''),
-                               'in_reply_to_user_id' => '',
-                               'favorited' => $item['starred'] ? true : false,
-                               'in_reply_to_screen_name' => '',
+                               'id'            => intval($item['id']),
+                               'in_reply_to_user_id' => $in_reply_to_user_id,
+                               'in_reply_to_screen_name' => $in_reply_to_screen_name,
                                'geo' => '',
-                               'coordinates' => $item['coord'],
-                               'place' => $item['location'],
-                               'contributors' => '',
-                               'annotations'  => '',
-                               'entities'  => '',
+                               'favorited' => $item['starred'] ? true : false,
                                'user' =>  $status_user ,
-                               'objecttype' => (($item['object-type']) ? $item['object-type'] : ACTIVITY_OBJ_NOTE),
-                               'verb' => (($item['verb']) ? $item['verb'] : ACTIVITY_POST),
-                               'self' => $a->get_baseurl()."/api/statuses/show/".$item['id'].".".$type,
-                               'edit' => $a->get_baseurl()."/api/statuses/show/".$item['id'].".".$type,                                
+                               'statusnet_html'                => bbcode($item['body']),
+                               'statusnet_conversation_id'     => 0,
                        );
+
+                       // Seesmic doesn't like the following content
+                       if ($_SERVER['HTTP_USER_AGENT'] != 'Seesmic') {
+                               $status2 = array(
+                                       'updated'   => api_date($item['edited']),
+                                       'published' => api_date($item['created']),
+                                       'message_id' => $item['uri'],
+                                       'url'           => ($item['plink']!=''?$item['plink']:$item['author-link']),
+                                       'coordinates' => $item['coord'],
+                                       'place' => $item['location'],
+                                       'contributors' => '',
+                                       'annotations'  => '',
+                                       'entities'  => '',
+                                       'objecttype' => (($item['object-type']) ? $item['object-type'] : ACTIVITY_OBJ_NOTE),
+                                       'verb' => (($item['verb']) ? $item['verb'] : ACTIVITY_POST),
+                                       'self' => $a->get_baseurl()."/api/statuses/show/".$item['id'].".".$type,
+                                       'edit' => $a->get_baseurl()."/api/statuses/show/".$item['id'].".".$type,
+                               );
+
+                               $status = array_merge($status, $status2);
+                       }
+
                        $ret[]=$status;
                };
                return $ret;
        function api_account_rate_limit_status(&$a,$type) {
 
                $hash = array(
+                         'reset_time_in_seconds' => strtotime('now + 1 hour'),
                          'remaining_hits' => (string) 150,
                          'hourly_limit' => (string) 150,
                          'reset_time' => datetime_convert('UTC','UTC','now + 1 hour',ATOM_TIME),
-                         'reset_time_in_seconds' => strtotime('now + 1 hour')
                );
+               if ($type == "xml")
+                       $hash['resettime_in_seconds'] = $hash['reset_time_in_seconds'];
 
                return api_apply_template('ratelimit', $type, array('$hash' => $hash));
 
        }
        api_register_func('api/account/rate_limit_status','api_account_rate_limit_status',true);
 
+       function api_help_test(&$a,$type) {
+
+               if ($type == 'xml')
+                       $ok = "true";
+               else
+                       $ok = "ok";
+
+               return api_apply_template('test', $type, array('$ok' => $ok));
+
+       }
+       api_register_func('api/help/test','api_help_test',true);
+
        /**
         *  https://dev.twitter.com/docs/api/1/get/statuses/friends 
         *  This function is deprecated by Twitter
                                        'recipient_screen_name'=> $recipient['screen_name'],
                                        'recipient'=> $recipient,
                                        
-                                       'text'=> $item['title']."\n".strip_tags(bbcode($item['body'])) ,
+                                       'text'=> $item['title']."\n".html2plain(bbcode($item['body']), 0) ,
                                        
                        );
                
                                'recipient_screen_name'=> $recipient['screen_name'],
                                'recipient'=> $recipient,
                                
-                               'text'=> $item['title']."\n".strip_tags(bbcode($item['body'])) ,
+                               'text'=> $item['title']."\n".html2plain(bbcode($item['body']), 0) ,
                                
                        );
                        
        api_register_func('api/oauth/request_token', 'api_oauth_request_token', false);
        api_register_func('api/oauth/access_token', 'api_oauth_access_token', false);
 
-
+/*
+Not implemented by now:
+statuses/public_timeline
+statuses/mentions
+statuses/replies
+statuses/retweets_of_me
+statuses/destroy
+statuses/retweet
+friendships/create
+friendships/destroy
+friendships/exists
+friendships/show
+account/update_location
+account/update_profile_background_image
+account/update_profile_image
+favorites
+favorites/create
+favorites/destroy
+blocks/create
+blocks/destroy
+oauth/authorize
+
+Not implemented in status.net:
+statuses/retweeted_to_me
+statuses/retweeted_by_me
+direct_messages/destroy
+account/end_session
+account/update_delivery_device
+notifications/follow
+notifications/leave
+blocks/exists
+blocks/blocking
+*/
index d69cb263f8ecad945c95652f9e320a67fb243537..9befbd0f7963a390a2c76776e3989d3aa803b12f 100644 (file)
@@ -189,8 +189,29 @@ function bbcode($Text,$preserve_nl = false) {
        // Check for [code] text
        $Text = preg_replace("/\[code\](.*?)\[\/code\]/ism","$CodeLayout", $Text);
 
+       // Declare the format for [spoiler] layout
+       $SpoilerLayout = '<blockquote class="spoiler">$1</blockquote>';
+
+       // Check for [spoiler] text
+       // handle nested quotes
+       $endlessloop = 0;
+       while ((strpos($Text, "[/spoiler]") !== false) and (strpos($Text, "[spoiler]") !== false) and (++$endlessloop < 20))
+               $Text = preg_replace("/\[spoiler\](.*?)\[\/spoiler\]/ism","$SpoilerLayout", $Text);
+
+       // Check for [spoiler=Author] text
+
+       $t_wrote = t('$1 wrote:');
+
+       // handle nested quotes
+       $endlessloop = 0;
+       while ((strpos($Text, "[/spoiler]")!== false)  and (strpos($Text, "[spoiler=") !== false) and (++$endlessloop < 20))
+               $Text = preg_replace("/\[spoiler=[\"\']*(.*?)[\"\']*\](.*?)\[\/spoiler\]/ism",
+                                    "<br /><strong class=".'"spoiler"'.">" . $t_wrote . "</strong><blockquote class=".'"spoiler"'.">$2</blockquote>",
+                                    $Text);
+
        // Declare the format for [quote] layout
        $QuoteLayout = '<blockquote>$1</blockquote>';
+
        // Check for [quote] text
        // handle nested quotes
        $endlessloop = 0;
@@ -205,7 +226,7 @@ function bbcode($Text,$preserve_nl = false) {
        $endlessloop = 0;
        while ((strpos($Text, "[/quote]")!== false)  and (strpos($Text, "[quote=") !== false) and (++$endlessloop < 20))
                $Text = preg_replace("/\[quote=[\"\']*(.*?)[\"\']*\](.*?)\[\/quote\]/ism",
-                                    "<blockquote><strong>" . $t_wrote . "</strong> $2</blockquote>",
+                                    "<br /><strong class=".'"author"'.">" . $t_wrote . "</strong><blockquote class=".'"author"'.">$2</blockquote>",
                                     $Text);
 
        // [img=widthxheight]image source[/img]
index 5beea7a3acad8a642a9df15549c729ddcabe7ff1..138e82b58bf1e7431c965d78a7fc1224f78215a6 100755 (executable)
@@ -207,7 +207,10 @@ function q($sql) {
        unset($args[0]);
 
        if($db && $db->connected) {
-               $ret = $db->q(vsprintf($sql,$args));
+               $stmt = vsprintf($sql,$args);
+               if($stmt === false)
+                       logger('dba: vsprintf error: ' . print_r(debug_bracktrace(),true));
+               $ret = $db->q($stmt);
                return $ret;
        }
 
index 84d28a7ecf2fceb8db6dc5ac47fa52b5befff771..104ccadf2ec51a378d3627264bd21184eafd0489 100755 (executable)
@@ -688,9 +688,9 @@ function diaspora_post($importer,$xml) {
 
                                // don't link tags that are already embedded in links
 
-                               if(preg_match('/\[(.*?)' . preg_quote($tag) . '(.*?)\]/',$body))
+                               if(preg_match('/\[(.*?)' . preg_quote($tag,'/') . '(.*?)\]/',$body))
                                        continue;
-                               if(preg_match('/\[(.*?)\]\((.*?)' . preg_quote($tag) . '(.*?)\)/',$body))
+                               if(preg_match('/\[(.*?)\]\((.*?)' . preg_quote($tag,'/') . '(.*?)\)/',$body))
                                        continue;
 
                                $basetag = str_replace('_',' ',substr($tag,1));
@@ -853,9 +853,9 @@ function diaspora_reshare($importer,$xml) {
 
                                // don't link tags that are already embedded in links
 
-                               if(preg_match('/\[(.*?)' . preg_quote($tag) . '(.*?)\]/',$body))
+                               if(preg_match('/\[(.*?)' . preg_quote($tag,'/') . '(.*?)\]/',$body))
                                        continue;
-                               if(preg_match('/\[(.*?)\]\((.*?)' . preg_quote($tag) . '(.*?)\)/',$body))
+                               if(preg_match('/\[(.*?)\]\((.*?)' . preg_quote($tag,'/') . '(.*?)\)/',$body))
                                        continue;
 
 
@@ -1094,9 +1094,9 @@ function diaspora_comment($importer,$xml,$msg) {
 
                                // don't link tags that are already embedded in links
 
-                               if(preg_match('/\[(.*?)' . preg_quote($tag) . '(.*?)\]/',$body))
+                               if(preg_match('/\[(.*?)' . preg_quote($tag,'/') . '(.*?)\]/',$body))
                                        continue;
-                               if(preg_match('/\[(.*?)\]\((.*?)' . preg_quote($tag) . '(.*?)\)/',$body))
+                               if(preg_match('/\[(.*?)\]\((.*?)' . preg_quote($tag,'/') . '(.*?)\)/',$body))
                                        continue;
 
 
index 8ea8145fb65acc9a58443a8139f3217ce3ee036a..b43ae0dc1c200614a94e4beef83a04b543f65b99 100755 (executable)
@@ -74,7 +74,7 @@ function email_msg_headers($mbox,$uid) {
 }
 
 
-function email_get_msg($mbox,$uid) {
+function email_get_msg($mbox,$uid, $reply) {
        $ret = array();
 
        $struc = (($mbox && $uid) ? @imap_fetchstructure($mbox,$uid,FT_UID) : null);
@@ -114,7 +114,7 @@ function email_get_msg($mbox,$uid) {
        $ret['body'] = removegpg($ret['body']);
        $msg = removesig($ret['body']);
        $ret['body'] = $msg['body'];
-       $ret['body'] = convertquote($ret['body'], false);
+       $ret['body'] = convertquote($ret['body'], $reply);
 
        if (trim($html) != '')
                $ret['body'] = removelinebreak($ret['body']);
@@ -250,7 +250,7 @@ function email_header_encode($in_str, $charset) {
 
         // remove trailing spacer and
         // add start and end delimiters
-        $spacer = preg_quote($spacer);
+        $spacer = preg_quote($spacer,'/');
         $out_str = preg_replace("/" . $spacer . "$/", "", $out_str);
         $out_str = $start . $out_str . $end;
     }
index 2a4cf663913720caeac1bd041c3b6b99f993c3ab..fe0e3326e81a8ae35bcbc0791931e9dcc738e92a 100644 (file)
@@ -1,9 +1,15 @@
 <?php
 require_once "html2bbcode.php";
 
-function breaklines($line, $level)
+function breaklines($line, $level, $wraplength = 75)
 {
-       $wraplen = 75-$level;
+
+       if ($wraplength == 0)
+               $wraplength = 2000000;
+
+       //      return($line);
+
+       $wraplen = $wraplength-$level;
 
        $newlines = array();
 
@@ -37,7 +43,7 @@ function breaklines($line, $level)
        return(implode($newlines, "\n"));
 }
 
-function quotelevel($message)
+function quotelevel($message, $wraplength = 75)
 {
        $lines = explode("\n", $message);
 
@@ -65,12 +71,31 @@ function quotelevel($message)
                }
 
                if (!$startquote or ($line != ''))
-                       $newlines[] = breaklines($line, $currlevel);
+                       $newlines[] = breaklines($line, $currlevel, $wraplength);
        }
        return(implode($newlines, "\n"));
 }
 
-function html2plain($html)
+function collecturls($message) {
+       $pattern = '/<a.*?href="(.*?)".*?>(.*?)<\/a>/is';
+       preg_match_all($pattern, $message, $result, PREG_SET_ORDER);
+
+       $urls = array();
+       foreach ($result as $treffer) {
+               // A list of some links that should be ignored
+               $list = array("/user/", "/tag/", "/profile/", "/search?search=", "mailto:", "/u/", "/node/",
+                               "//facebook.com/profile.php?id=", "//plus.google.com/");
+               foreach ($list as $listitem)
+                       if (strpos($treffer[1], $listitem) !== false)
+                               $ignore = true;
+
+               if (!$ignore)
+                       $urls[$treffer[1]] = $treffer[1];
+       }
+       return($urls);
+}
+
+function html2plain($html, $wraplength = 75, $compact = false)
 {
        global $lang;
 
@@ -93,22 +118,16 @@ function html2plain($html)
        $message = str_replace(array("\n<", ">\n", "\r", "\n", "\xC3\x82\xC2\xA0"), array("<", ">", "<br>", " ", ""), $message);
        $message = preg_replace('= [\s]*=i', " ", $message);
 
-       // nach <a href="...">...</a> suchen, die ... miteinander vergleichen und bei Gleichheit durch ein einzelnes ... ersetzen.
-       $pattern = '/<a.*?href="(.*?)".*?>(.*?)<\/a>/is';
-       preg_match_all($pattern, $message, $result, PREG_SET_ORDER);
+       // Collecting all links
+       $urls = collecturls($message);
 
-       foreach ($result as $treffer) {
-               if ($treffer[1] == $treffer[2]) {
-                       $search = '<a href="'.$treffer[1].'" target="_blank">'.$treffer[1].'</a>';
-                       $message = str_replace($search, $treffer[1], $message);
-               }
-       }
        @$doc->loadHTML($message);
 
        node2bbcode($doc, 'html', array(), '', '');
        node2bbcode($doc, 'body', array(), '', '');
 
        // MyBB-Auszeichnungen
+       /*
        node2bbcode($doc, 'span', array('style'=>'text-decoration: underline;'), '_', '_');
        node2bbcode($doc, 'span', array('style'=>'font-style: italic;'), '/', '/');
        node2bbcode($doc, 'span', array('style'=>'font-weight: bold;'), '*', '*');
@@ -117,8 +136,12 @@ function html2plain($html)
        node2bbcode($doc, 'b', array(), '*', '*');
        node2bbcode($doc, 'i', array(), '/', '/');
        node2bbcode($doc, 'u', array(), '_', '_');
+       */
 
-       node2bbcode($doc, 'blockquote', array(), '[quote]', "[/quote]\n");
+       if ($compact)
+               node2bbcode($doc, 'blockquote', array(), "»", "«");
+       else
+               node2bbcode($doc, 'blockquote', array(), '[quote]', "[/quote]\n");
 
        node2bbcode($doc, 'br', array(), "\n", '');
 
@@ -143,16 +166,25 @@ function html2plain($html)
        node2bbcode($doc, 'h5', array(), "\n\n*", "*\n");
        node2bbcode($doc, 'h6', array(), "\n\n*", "*\n");
 
-       node2bbcode($doc, 'a', array('href'=>'/(.+)/'), ' $1', '', true);
-       node2bbcode($doc, 'img', array('alt'=>'/(.+)/'), '$1', '');
-       node2bbcode($doc, 'img', array('title'=>'/(.+)/'), '$1', '');
-       node2bbcode($doc, 'img', array(), '', '');
-       node2bbcode($doc, 'img', array('src'=>'/(.+)/'), '[img]$1', '[/img]');
+       // Problem: there is no reliable way to detect if it is a link to a tag or profile
+       //node2bbcode($doc, 'a', array('href'=>'/(.+)/'), ' $1 ', '', true);
+       node2bbcode($doc, 'a', array('href'=>'/(.+)/', 'rel'=>'oembed'), ' $1 ', '', true);
+       //node2bbcode($doc, 'img', array('alt'=>'/(.+)/'), '$1', '');
+       //node2bbcode($doc, 'img', array('title'=>'/(.+)/'), '$1', '');
+       //node2bbcode($doc, 'img', array(), '', '');
+       if (!$compact)
+               node2bbcode($doc, 'img', array('src'=>'/(.+)/'), '[img]$1', '[/img]');
+       else
+               node2bbcode($doc, 'img', array('src'=>'/(.+)/'), '', '');
+
+       node2bbcode($doc, 'iframe', array('src'=>'/(.+)/'), ' $1 ', '', true);
 
        $message = $doc->saveHTML();
 
-       $message = str_replace("[img]", "", $message);
-       $message = str_replace("[/img]", "", $message);
+       if (!$compact) {
+               $message = str_replace("[img]", "", $message);
+               $message = str_replace("[/img]", "", $message);
+       }
 
        // was ersetze ich da?
        // Irgendein stoerrisches UTF-Zeug
@@ -168,12 +200,20 @@ function html2plain($html)
 
        $message = html_entity_decode($message, ENT_QUOTES, 'UTF-8');
 
+       if (!$compact) {
+               $counter = 1;
+               foreach ($urls as $id=>$url)
+                       if (strpos($message, $url) == false)
+                               $message .= "\n".$url." ";
+                               //$message .= "\n[".($counter++)."] ".$url;
+       }
+
        do {
                $oldmessage = $message;
                $message = str_replace("\n\n\n", "\n\n", $message);
        } while ($oldmessage != $message);
 
-       $message = quotelevel(trim($message));
+       $message = quotelevel(trim($message), $wraplength);
 
        return(trim($message));
 }
index 2eecadad108530e0b01b6c000f8b58dd3dbda914..9f7eb84d96398e07caf413febdd79555af52ae95 100755 (executable)
@@ -1090,12 +1090,23 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) {
        $postvars     = array();
        $sent_dfrn_id = hex2bin((string) $res->dfrn_id);
        $challenge    = hex2bin((string) $res->challenge);
+       $perm         = (($res->perm) ? $res->perm : null);
        $dfrn_version = (float) (($res->dfrn_version) ? $res->dfrn_version : 2.0);
        $rino_allowed = ((intval($res->rino) === 1) ? 1 : 0);
        $page         = (($owner['page-flags'] == PAGE_COMMUNITY) ? 1 : 0);
 
        $final_dfrn_id = '';
 
+       if($perm) {
+               if((($perm == 'rw') && (! intval($contact['writable']))) 
+               || (($perm == 'r') && (intval($contact['writable'])))) {
+                       q("update contact set writable = %d where id = %d limit 1",
+                               intval(($perm == 'rw') ? 1 : 0),
+                               intval($contact['id'])
+                       );
+                       $contact['writable'] = (string) 1 - intval($contact['writable']);                       
+               }
+       }
 
        if(($contact['duplex'] && strlen($contact['pubkey'])) 
                || ($owner['page-flags'] == PAGE_COMMUNITY && strlen($contact['pubkey']))
index 284ad1ce4b232e9066251481c7d4b9018e5bff5e..eabb47788a9b622775c4a1f26a1ab7d400b81922 100644 (file)
@@ -13,7 +13,7 @@ function savereplace($pattern, $replace, $text)
 
 function unifyattributionline($message)
 {
-       $quotestr = array('quote', 'collapsed');
+       $quotestr = array('quote', 'spoiler');
        foreach ($quotestr as $quote) {
 
                $message = savereplace('/----- Original Message -----\s.*?From: "([^<"].*?)" <(.*?)>\s.*?To: (.*?)\s*?Cc: (.*?)\s*?Sent: (.*?)\s.*?Subject: ([^\n].*)\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
index 8262c1d605242b0cd7122fb3eec94d5e06e6c181..90a97867c204e5abae28479262c8729e5320b242 100755 (executable)
@@ -504,7 +504,12 @@ function poller_run($argv, $argc){
                                                        //$datarray['title'] = notags(trim($meta->subject));
                                                        $datarray['created'] = datetime_convert('UTC','UTC',$meta->date);
 
-                                                       $r = email_get_msg($mbox,$msg_uid);
+                                                       // Is it  reply?
+                                                       $reply = ((substr(strtolower($datarray['title']), 0, 3) == "re:") or
+                                                               (substr(strtolower($datarray['title']), 0, 3) == "re-") or
+                                                               (raw_refs != ""));
+
+                                                       $r = email_get_msg($mbox,$msg_uid, $reply);
                                                        if(! $r) {
                                                                logger("Mail: can't fetch msg ".$msg_uid);
                                                                continue;
index 3aee93234fdc1b4ee0e1cd7f96ee595abb9f7ec5..2a6d28370a3910cbb4a34fc470526fb48a20eb16 100644 (file)
@@ -124,7 +124,7 @@ function removetofu($message)
        }
 
        if ($quotestart != 0) {
-               $message = trim(substr($message, 0, $quotestart))."\n[collapsed]\n".substr($message, $quotestart+7, -8).'[/collapsed]';
+               $message = trim(substr($message, 0, $quotestart))."\n[spoiler]".substr($message, $quotestart+7, -8).'[/spoiler]';
        }
 
        return($message);
index 5aaf047291a68d6f5aa9dd2598c1bf486f95e472..6d557ed84e8c62706cca664776d0e71337137055 100644 (file)
@@ -940,6 +940,36 @@ function prepare_body($item,$attach = false) {
                        $s .= '<div class="filesavetags"><span>' . t('Filed under:') . ' </span>' . $x . '</div>'; 
        }
 
+       // Look for spoiler
+       $spoilersearch = '<blockquote class="spoiler">';
+
+       // Remove line breaks before the spoiler
+       while ((strpos($s, "\n".$spoilersearch) !== false))
+               $s = str_replace("\n".$spoilersearch, $spoilersearch, $s);
+       while ((strpos($s, "<br />".$spoilersearch) !== false))
+               $s = str_replace("<br />".$spoilersearch, $spoilersearch, $s);
+
+       while ((strpos($s, $spoilersearch) !== false)) {
+
+               $pos = strpos($s, $spoilersearch);
+               $rnd = random_string(8);
+               $spoilerreplace = '<br /> <span id="spoiler-wrap-'.$rnd.'" style="white-space:nowrap;" class="fakelink" onclick="openClose(\'spoiler-'.$rnd.'\');">'.sprintf(t('Click to open/close')).'</span>'.
+                                       '<blockquote class="spoiler" id="spoiler-'.$rnd.'" style="display: none;">';
+               $s = substr($s, 0, $pos).$spoilerreplace.substr($s, $pos+strlen($spoilersearch));
+       }
+
+       // Look for quote with author
+       $authorsearch = '<blockquote class="author">';
+
+       while ((strpos($s, $authorsearch) !== false)) {
+
+               $pos = strpos($s, $authorsearch);
+               $rnd = random_string(8);
+               $authorreplace = '<br /> <span id="author-wrap-'.$rnd.'" style="white-space:nowrap;" class="fakelink" onclick="openClose(\'author-'.$rnd.'\');">'.sprintf(t('Click to open/close')).'</span>'.
+                                       '<blockquote class="author" id="author-'.$rnd.'" style="display: block;">';
+               $s = substr($s, 0, $pos).$authorreplace.substr($s, $pos+strlen($authorsearch));
+       }
+
        $prep_arr = array('item' => $item, 'html' => $s);
        call_hooks('prepare_body_final', $prep_arr);
 
index 71860ac3b13e50d8eccdba825248758df4a6f2bc..8e4ce067190a556f09a0b9efad40760bdb161dbd 100755 (executable)
@@ -158,6 +158,7 @@ function dfrn_notify_post(&$a) {
                );
        }
                        
+
        logger('dfrn_notify: received notify from ' . $importer['name'] . ' for ' . $importer['username']);
        logger('dfrn_notify: data: ' . $data, LOGGER_DATA);
 
@@ -174,6 +175,13 @@ function dfrn_notify_post(&$a) {
 
        }
 
+
+       // If we are setup as a soapbox we aren't accepting input from this person
+
+       if($importer['page-flags'] == PAGE_SOAPBOX)
+               xml_status(0);
+
+
        if(strlen($key)) {
                $rawkey = hex2bin(trim($key));
                logger('rino: md5 raw key: ' . md5($rawkey));
@@ -261,7 +269,7 @@ function dfrn_notify_content(&$a) {
                                break; // NOTREACHED
                }
 
-               $r = q("SELECT `contact`.*, `user`.`nickname` FROM `contact` LEFT JOIN `user` ON `user`.`uid` = `contact`.`uid` 
+               $r = q("SELECT `contact`.*, `user`.`nickname`, `user`.`page-flags` FROM `contact` LEFT JOIN `user` ON `user`.`uid` = `contact`.`uid` 
                                WHERE `contact`.`blocked` = 0 AND `contact`.`pending` = 0 AND `user`.`nickname` = '%s' 
                                AND `user`.`account_expired` = 0 $sql_extra LIMIT 1",
                                dbesc($a->argv[1])
@@ -299,6 +307,12 @@ function dfrn_notify_content(&$a) {
                if(! $rino_enable)
                        $rino = 0;
 
+               if((($r[0]['rel']) && ($r[0]['rel'] != CONTACT_IS_SHARING)) || ($r[0]['page-flags'] == PAGE_COMMUNITY)) {
+                       $perm = 'rw';
+               }
+               else {
+                       $perm = 'r';
+               }
 
                header("Content-type: text/xml");
 
@@ -306,7 +320,8 @@ function dfrn_notify_content(&$a) {
                        . '<dfrn_notify>' . "\r\n"
                        . "\t" . '<status>' . $status . '</status>' . "\r\n"
                        . "\t" . '<dfrn_version>' . DFRN_PROTOCOL_VERSION . '</dfrn_version>' . "\r\n"
-                       . "\t" . '<rino>' . $rino . '</rino>' . "\r\n" 
+                       . "\t" . '<rino>' . $rino . '</rino>' . "\r\n"
+                       . "\t" . '<perm>' . $perm . '</perm>' . "\r\n" 
                        . "\t" . '<dfrn_id>' . $encrypted_id . '</dfrn_id>' . "\r\n" 
                        . "\t" . '<challenge>' . $challenge . '</challenge>' . "\r\n"
                        . '</dfrn_notify>' . "\r\n" ;
index 1562254b1731c19f6732e8edf3b43201575f6472..e911aaf1f470765ad815588de28d0cd2d872d544 100644 (file)
@@ -22,6 +22,7 @@ function ping_init(&$a) {
                                and seen = 0 order by date desc limit 0, 50",
                                intval(local_user())
                        );
+                       $sysnotify = $t[0]['total'];
                }
                else {
                        $z1 = q("select * from notify where uid = %d
@@ -35,6 +36,7 @@ function ping_init(&$a) {
                                intval(50 - intval($t[0]['total']))
                        );
                        $z = array_merge($z1,$z2);
+                       $sysnotify = 0; // we will update this in a moment
                }
 
 
@@ -147,13 +149,12 @@ function ping_init(&$a) {
                $tot = $mail+$intro+$register+count($comments)+count($likes)+count($dislikes)+count($friends)+count($posts)+count($tags);
 
                require_once('include/bbcode.php');
-               $sysnotify = 0;
 
                if($firehose) {
                        echo '  <notif count="'.$tot.'">';
                }
                else {
-                       if(count($z)) {
+                       if(count($z) && (! $sysnotify)) {
                                foreach($z as $zz) {
                                        if($zz['seen'] == 0)
                                                $sysnotify ++;
index 99bf8842d25ac37654906580bb674b68345e9612..db7330fb59ac51e1077a9970d41bfe15fd98e850 100755 (executable)
@@ -618,7 +618,7 @@ function settings_content(&$a) {
                        '$mail_disabled' => (($mail_disabled) ? t('Email access is disabled on this site.') : ''),
                        '$mail_server'  => array('mail_server',  t('IMAP server name:'), $mail_server, ''),
                        '$mail_port'    => array('mail_port',    t('IMAP port:'), $mail_port, ''),
-                       '$mail_ssl'             => array('mail_ssl',     t('Security:'), strtoupper($mail_ssl), '', array( ''=>t('None'), 'TLS'=>'TLS', 'SSL'=>'SSL')),
+                       '$mail_ssl'             => array('mail_ssl',     t('Security:'), strtoupper($mail_ssl), '', array( 'notls'=>t('None'), 'TLS'=>'TLS', 'SSL'=>'SSL')),
                        '$mail_user'    => array('mail_user',    t('Email login name:'), $mail_user, ''),
                        '$mail_pass'    => array('mail_pass',    t('Email password:'), '', ''),
                        '$mail_replyto' => array('mail_replyto', t('Reply-to address:'), '', 'Optional'),
index 42439f8b5f9a3e58d0c82f2e5bd4fa7205923aa9..36ec1993df454bcea5da5e87577b5ff421160226 100755 (executable)
@@ -1,5 +1,6 @@
 <hash>
              <remaining-hits type="integer">$hash.remaining_hits</remaining-hits>
              <hourly-limit type="integer">$hash.hourly_limit</hourly-limit>
              <reset-time type="datetime">$hash.reset_time</reset-time>
-</hash>
\ No newline at end of file
+ <remaining-hits type="integer">$hash.remaining_hits</remaining-hits>
+ <hourly-limit type="integer">$hash.hourly_limit</hourly-limit>
+ <reset-time type="datetime">$hash.reset_time</reset-time>
+ <reset_time_in_seconds type="integer">$hash.resettime_in_seconds</reset_time_in_seconds>
+</hash>
index 78cc1f53062440fddb29920453a56b6174898cac..f1e122f3e8a096c5dfc1ef4901e995f2cc5fe454 100755 (executable)
@@ -43,4 +43,4 @@
     <place>$user.status.place</place>
     <contributors>$user.status.contributors</contributors>
   {{ endif }}</status>
-</user>
\ No newline at end of file
+</user>
index 1e3da21993c9f2e4e4449e0f291493174d323686..fa8197dd4584f8513b02ef5f72565f6a60724fb1 100755 (executable)
@@ -6,7 +6,7 @@
 
 <div id="close_helpers">
 {{ if $lastusers_title }}
-<h3 style="margin-top:0px;">Help or @NewHere ?<a id="close_helpers_icon"  onClick="close_helpers()" class="icon close_box"></a></h3>
+<h3 style="margin-top:0px;">Help or @NewHere ?<a id="close_helpers_icon"  onClick="close_helpers()" class="icon close_box" title="close"></a></h3>
 <a href="https://helpers.pyxis.uberspace.de/profile/helpers" style="margin-left: 10px; " title="Friendica Support" target="blank">Friendica Support</a><br>
 <a href="https://letstalk.pyxis.uberspace.de/profile/letstalk" style="margin-left: 10px; " title="Let's talk" target="blank">Let's talk</a><br>
 <a href="http://newzot.hydra.uberspace.de/profile/newzot" title="Local Friendica" style="margin-left: 10px; " target="blank">Local Friendica</a>
@@ -16,7 +16,7 @@
 
 <div id="close_services">
 {{ if $lastusers_title }}
-<h3>Connectable Services<a id="close_services_icon" onClick="close_services()" class="icon close_box"></a></h3>
+<h3>Connectable Services<a id="close_services_icon" onClick="close_services()" class="icon close_box" title="close"></a></h3>
 <div id="right_service_icons" style="margin-left: 11px; margin-top: 5px;">
 <a href="$url/facebook"><img alt="Facebook" src="view/theme/diabook-blue/icons/facebook.png" title="Facebook"></a>
 <a href="$url/settings/connectors"><img alt="StatusNet" src="view/theme/diabook-blue/icons/StatusNet.png?" title="StatusNet"></a>
@@ -32,7 +32,7 @@
 
 <div id="close_friends">
 {{ if $nv }}
-<h3>Find Friends<a id="close_friends_icon" onClick="close_friends()"  class="icon close_box"></a></h3>
+<h3>Find Friends<a id="close_friends_icon" onClick="close_friends()"  class="icon close_box" title="close"></a></h3>
 <a class="$nv.directory.2" href="$nv.directory.0" style="margin-left: 10px; " title="$nv.directory.3" >$nv.directory.1</a><br>
 <a class="$nv.match.2" href="$nv.match.0" style="margin-left: 10px; " title="$nv.match.3" >$nv.match.1</a><br>
 <a class="$nv.suggest.2" href="$nv.suggest.0" style="margin-left: 10px; " title="$nv.suggest.3" >$nv.suggest.1</a>
 
 <div id="close_postit">
 {{ if $lastusers_title }}
-<h3>PostIt to Friendica<a id="close_postit_icon" onClick="close_postit()" class="icon close_box"></a></h3>
+<h3>PostIt to Friendica<a id="close_postit_icon" onClick="close_postit()" class="icon close_box" title="close"></a></h3>
 <div style="padding-left: 8px;"><span ><a href="$fostitJS" title="PostIt">Post to Friendica</a> from anywhere by bookmarking the Link.</span></div>
 {{ endif }}
 </div>
 
 <div id="close_lastusers">
 {{ if $lastusers_title }}
-<h3>$lastusers_title<a id="close_lastusers_icon" onClick="close_lastusers()" class="icon close_box"></a></h3>
+<h3>$lastusers_title<a id="close_lastusers_icon" onClick="close_lastusers()" class="icon close_box" title="close"></a></h3>
 <div id='lastusers-wrapper' class='items-wrapper'>
 {{ for $lastusers_items as $i }}
        $i
@@ -70,7 +70,7 @@
 
 <div id="close_lastphotos">
 {{ if $photos_title }}
-<h3>$photos_title<a id="close_photos_icon" onClick="close_lastphotos()"  class="icon close_box"></a></h3>
+<h3>$photos_title<a id="close_photos_icon" onClick="close_lastphotos()"  class="icon close_box" title="close"></a></h3>
 <div id='ra-photos-wrapper' class='items-wrapper'>
 {{ for $photos_items as $i }}
        $i
@@ -81,7 +81,7 @@
 
 <div id="close_lastlikes">
 {{ if $like_title }}
-<h3>$like_title<a id="close_lastlikes_icon" onClick="close_lastlikes()" class="icon close_box"></a></h3>
+<h3>$like_title<a id="close_lastlikes_icon" onClick="close_lastlikes()" class="icon close_box" title="close"></a></h3>
 <ul id='likes'>
 {{ for $like_items as $i }}
        <li id='ra-photos-wrapper'>$i</li>
index ebf4da695a5baadd8269b320370871767ba7e8e9..fc4e4c60ce5fd0088f42c57efa0804a84ce2e753 100644 (file)
@@ -1197,6 +1197,18 @@ right_aside .icon {width: 10px; height: 10px;}
                background-image: url("../../../view/theme/diabook-blue/icons/close_box.png");
                float: right;
                cursor: pointer;
+               opacity: 0.1;
+               }
+.close_box:hover       { 
+               background-image: url("../../../view/theme/diabook-blue/icons/close_box.png");
+               float: right;
+               cursor: pointer;
+               opacity: 1;
+-webkit-transition: all 0.2s ease-in-out;
+-moz-transition: all 0.2s ease-in-out;
+-o-transition: all 0.2s ease-in-out;
+-ms-transition: all 0.2s ease-in-out;
+transition: all 0.2s ease-in-out;
                }
                
 /* wall item */
@@ -1279,7 +1291,7 @@ right_aside .icon {width: 10px; height: 10px;}
 }
 
 .wall-item-container .wall-item-content img {
-  max-width: 400px;
+  max-width: 400px; 
 }
 .wall-item-container .wall-item-links, .wall-item-container .wall-item-actions {
   display: table-cell;
index db172dcdaadaede03ad0feeecd591508bbaeb360..b3a578680a6a552f62548e7bf64f27bfc4fd54d6 100644 (file)
@@ -1196,6 +1196,18 @@ right_aside .icon {width: 10px; height: 10px;}
                background-image: url("../../../view/theme/diabook-blue/icons/close_box.png");
                float: right;
                cursor: pointer;
+               opacity: 0.1;
+               }
+.close_box:hover       { 
+               background-image: url("../../../view/theme/diabook-blue/icons/close_box.png");
+               float: right;
+               cursor: pointer;
+               opacity: 1;
+-webkit-transition: all 0.2s ease-in-out;
+-moz-transition: all 0.2s ease-in-out;
+-o-transition: all 0.2s ease-in-out;
+-ms-transition: all 0.2s ease-in-out;
+transition: all 0.2s ease-in-out;
                }
 /* wall item */
 .tread-wrapper {
index 3e35144de617bce51c993bf7ef83ff25ee03f28a..de3042dbf691c78bbc1de7cf8f3e5d6a5a8f9de3 100755 (executable)
@@ -150,7 +150,7 @@ function diabook_blue_community_info(){
        if(local_user()) {
    $page = '<div id="page-sidebar-right_aside" class="widget">
                        <div class="title tool">
-                       <h3>'.t("Community Pages").'<a id="close_pages_icon"  onClick="close_pages()" class="icon close_box"></a></h3></div>
+                       <h3>'.t("Community Pages").'<a id="close_pages_icon"  onClick="close_pages()" class="icon close_box" title="close"></a></h3></div>
                        <div id="sidebar-page-list"><ul>';
 
        $pagelist = array();
@@ -212,7 +212,7 @@ if ($a->argv[0] === "network" && local_user()){
                $ps['usermenu']['events'] = Array('events/', t('Events'), "", t('Your events'));
                $ps['usermenu']['notes'] = Array('notes/', t('Personal notes'), "", t('Your personal photos'));
                $ps['usermenu']['community'] = Array('community/', t('Community'), "", "");
-               $ps['usermenu']['pgroups'] = Array('http://dir.friendika.com/directory/forum', t('Public Groups'), "", "");
+               $ps['usermenu']['pgroups'] = Array('http://dir.friendika.com/directory/forum', t('Community Pages'), "", "");
 
                $tpl = get_markup_template('profile_side.tpl');
 
@@ -237,7 +237,7 @@ if ($a->argv[0] === "network" && local_user()){
 
 
 //right_aside at profile pages
-if ($a->argv[0] === "profile"){
+if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname']){
        if($ccCookie != "8") {
        // COMMUNITY
        diabook_blue_community_info();
index a14705ed76035a9caf748e882963bf421c310ca2..3e840abc4809892d8037274fc67f02aff862a109 100755 (executable)
 {{ endif }}
 </div>
 
-<div id="close_friends">
+<div id="close_friends" style="margin-bottom:53px;">
 {{ if $nv }}
 <h3>Find Friends<a id="close_friends_icon" onClick="close_friends()"  class="icon close_box" title="close"></a></h3>
 <a class="$nv.directory.2" href="$nv.directory.0" style="margin-left: 10px; " title="$nv.directory.3" >$nv.directory.1</a><br>
 <a class="$nv.match.2" href="$nv.match.0" style="margin-left: 10px; " title="$nv.match.3" >$nv.match.1</a><br>
-<a class="$nv.suggest.2" href="$nv.suggest.0" style="margin-left: 10px; " title="$nv.suggest.3" >$nv.suggest.1</a>
-<a class="$nv.invite.2" href="$nv.invite.0" style="margin-left: 10px; " title="$nav.invite.3" >$nv.invite.1</a>                        
+<a class="$nv.suggest.2" href="$nv.suggest.0" style="margin-left: 10px; " title="$nv.suggest.3" >$nv.suggest.1</a><br>
+<a class="$nv.invite.2" href="$nv.invite.0" style="margin-left: 10px; " title="$nav.invite.3" >$nv.invite.1</a>
+$nv.search
 {{ endif }}
 </div>
 
diff --git a/view/theme/diabook/icons/srch_bg.gif b/view/theme/diabook/icons/srch_bg.gif
new file mode 100644 (file)
index 0000000..6a523ba
Binary files /dev/null and b/view/theme/diabook/icons/srch_bg.gif differ
diff --git a/view/theme/diabook/icons/srch_l.gif b/view/theme/diabook/icons/srch_l.gif
new file mode 100644 (file)
index 0000000..6d95bf3
Binary files /dev/null and b/view/theme/diabook/icons/srch_l.gif differ
diff --git a/view/theme/diabook/icons/srch_r.gif b/view/theme/diabook/icons/srch_r.gif
new file mode 100644 (file)
index 0000000..89833a3
Binary files /dev/null and b/view/theme/diabook/icons/srch_r.gif differ
diff --git a/view/theme/diabook/icons/srch_r_f2.gif b/view/theme/diabook/icons/srch_r_f2.gif
new file mode 100644 (file)
index 0000000..6df457b
Binary files /dev/null and b/view/theme/diabook/icons/srch_r_f2.gif differ
index 3882e37bd2534f8480e1f5f9dd37b42e7cca18cd..74ab3c233a1388c51635b83b1919f7a4cbc321b6 100644 (file)
@@ -1095,6 +1095,32 @@ aside #side-peoplefind-url {
   background: url("../../../view/theme/diabook/icons/selected.png") no-repeat left center;
 }
 /* widget: search */
+span.sbox_l  {
+       background: white url('../../../view/theme/diabook/icons/srch_l.gif') no-repeat top left;
+       float: left;
+       width: 19px; height: 19px;
+       margin-left: 10px;
+       margin-top: 5px;
+       
+}
+
+span.sbox_r  {
+       background: white url('../../../view/theme/diabook/icons/srch_r.gif') no-repeat top left;
+       float: left;
+       width: 19px; height: 19px;
+       margin-top: 5px;
+}
+
+span.sbox input {
+       background: white url('../../../view/theme/diabook/icons/srch_bg.gif') repeat-x top left;
+       float: left;
+       margin-top: 5px;
+       border: 0;
+       height: 13px; width: 100px;
+       padding: 3px;
+       font: 11px/13px arial;
+       color: #000;
+}
 #add-search-popup {
   width: 200px;
   top: 18px;
@@ -1725,12 +1751,13 @@ transition: all 0.2s ease-in-out;
     margin-left: 5px;
 }
 /*input[type="submit"] {
-       border: 0px;
-    background-color: @ButtonBackgroundColor;
-    color: @ButtonColor;
-    padding: 0px 10px;
-       .rounded(5px);
-    height: 18px;
+    background-color: #33ACFF;
+    background-image: -moz-linear-gradient(center top , #66C1FF 0%, #0097FF 100%);
+    border: 1px solid #777777;
+    color: white;
+    border-radius: 3px 3px 3px 3px;
+    box-shadow: 0 1px 1px #CFCFCF;
+    margin-left: 5px;
 }*/
 /** acl **/
 #photo-edit-perms-select, #photos-upload-permissions-wrapper, #profile-jot-acl-wrapper {
index 249596f9fd48f2015ab98b752fc98d0c1f6a07ee..9bd67da8dcd59fee353c475c9b189ce69016bf06 100644 (file)
@@ -1090,6 +1090,32 @@ aside #side-peoplefind-url {
   background: url("../../../view/theme/diabook/icons/selected.png") no-repeat left center;
 }
 /* widget: search */
+span.sbox_l  {
+       background: white url('../../../view/theme/diabook/icons/srch_l.gif') no-repeat top left;
+       float: left;
+       width: 19px; height: 19px;
+       margin-left: 10px;
+       margin-top: 5px;
+       
+}
+
+span.sbox_r  {
+       background: white url('../../../view/theme/diabook/icons/srch_r.gif') no-repeat top left;
+       float: left;
+       width: 19px; height: 19px;
+       margin-top: 5px;
+}
+
+span.sbox input {
+       background: white url('../../../view/theme/diabook/icons/srch_bg.gif') repeat-x top left;
+       float: left;
+       margin-top: 5px;
+       border: 0;
+       height: 13px; width: 100px;
+       padding: 3px;
+       font: 11px/13px arial;
+       color: #000;
+}
 #add-search-popup {
   width: 200px;
   top: 18px;
index a3f0ca0d4b85a3f6ffed6e7b72b1d76d29034369..5d6173918533800daa44ed30e5dc881d79185366 100755 (executable)
@@ -147,6 +147,13 @@ function diabook_community_info(){
        $nv['suggest'] = Array('suggest', t('Friend Suggestions'), "", "");
        $nv['invite'] = Array('invite', t('Invite Friends'), "", "");
        
+       $nv['search'] = '<form name="simple_bar" method="get" action="http://dir.friendika.com/directory">
+                                               <span class="sbox_l"></span>
+                                               <span class="sbox">
+                                               <input type="text" name="search" size="13" maxlength="50">
+                                               </span>
+                                               <span class="sbox_r" id="srch_clear"></span>';
+       
        $aside['$nv'] = $nv;
        };
    
@@ -243,17 +250,18 @@ if ($a->argv[0] === "network" && local_user()){
 
 
 //right_aside at profile pages
-if ($a->argv[0] === "profile"){
+if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname']){
        if($ccCookie != "8") {
        // COMMUNITY
        diabook_community_info();
        
        // CUSTOM CSS
        $cssFile = $a->get_baseurl($ssl_state)."/view/theme/diabook/style-profile.css";
+       
+       
        }
 }
 
-
 // custom css
 if (!is_null($cssFile)) $a->page['htmlhead'] .= sprintf('<link rel="stylesheet" type="text/css" href="%s" />', $cssFile);