]> git.mxchange.org Git - friendica.git/blobdiff - mod/message.php
doc/Bugs-and-Issues.md
[friendica.git] / mod / message.php
old mode 100644 (file)
new mode 100755 (executable)
index cc94730..4b494e9
@@ -27,6 +27,10 @@ function message_post(&$a) {
                        break;
                case -3:
                        notice( t('Message could not be sent.') . EOL );
+                       break;
+               case -4:
+                       notice( t('Message collection failure.') . EOL );
+                       break;
                default:
                        info( t('Message sent.') . EOL );
        }
@@ -46,12 +50,31 @@ function message_content(&$a) {
        $myprofile = $a->get_baseurl() . '/profile/' . $a->user['nickname'];
 
 
+       $tabs = array(
+               array(
+                       'label' => t('Inbox'),
+                       'url'=> $a->get_baseurl() . '/message',
+                       'sel'=> (($a->argc == 1) ? 'active' : ''),
+               ),
+               array(
+                       'label' => t('Outbox'),
+                       'url' => $a->get_baseurl() . '/message/sent',
+                       'sel'=> (($a->argv[1] == 'sent') ? 'active' : ''),
+               ),
+               array(
+                       'label' => t('New Message'),
+                       'url' => $a->get_baseurl() . '/message/new',
+                       'sel'=> (($a->argv[1] == 'new') ? 'active' : ''),
+               ),
+       );
+       $tpl = get_markup_template('common_tabs.tpl');
+       $tab_content = replace_macros($tpl, array('$tabs'=>$tabs));
+
+
        $tpl = get_markup_template('mail_head.tpl');
        $header = replace_macros($tpl, array(
                '$messages' => t('Messages'),
-               '$inbox' => t('Inbox'),
-               '$outbox' => t('Outbox'),
-               '$new' => t('New Message')
+               '$tab_content' => $tab_content
        ));
 
 
@@ -70,16 +93,30 @@ function message_content(&$a) {
                        goaway($a->get_baseurl() . '/message' );
                }
                else {
-                       $r = q("SELECT `parent-uri` FROM `mail` WHERE `id` = %d AND `uid` = %d LIMIT 1",
+                       $r = q("SELECT `parent-uri`,`convid` FROM `mail` WHERE `id` = %d AND `uid` = %d LIMIT 1",
                                intval($a->argv[2]),
                                intval(local_user())
                        );
                        if(count($r)) {
                                $parent = $r[0]['parent-uri'];
+                               $convid = $r[0]['convid'];
+
                                $r = q("DELETE FROM `mail` WHERE `parent-uri` = '%s' AND `uid` = %d ",
                                        dbesc($parent),
                                        intval(local_user())
                                );
+
+                               // remove diaspora conversation pointer
+                               // Actually if we do this, we can never receive another reply to that conversation,
+                               // as we will never again have the info we need to re-create it. 
+                               // We'll just have to orphan it. 
+
+                               //if($convid) {
+                               //      q("delete from conv where id = %d limit 1",
+                               //              intval($convid)
+                               //      );
+                               //}
+
                                if($r)
                                        info( t('Conversation removed.') . EOL );
                        } 
@@ -90,6 +127,8 @@ function message_content(&$a) {
 
        if(($a->argc > 1) && ($a->argv[1] === 'new')) {
                
+               $o .= $header;
+               
                $tpl = get_markup_template('msg-header.tpl');
 
                $a->page['htmlhead'] .= replace_macros($tpl, array(
@@ -114,7 +153,6 @@ function message_content(&$a) {
                        '$upload' => t('Upload photo'),
                        '$insert' => t('Insert web link'),
                        '$wait' => t('Please wait')
-
                ));
 
                return $o;
@@ -156,13 +194,13 @@ function message_content(&$a) {
                        $o .= replace_macros($tpl, array(
                                '$id' => $rr['id'],
                                '$from_name' =>$rr['from-name'],
-                               '$from_url' => $a->get_baseurl() . '/redir/' . $rr['contact-id'],
+                               '$from_url' => (($rr['network'] === NETWORK_DFRN) ? $a->get_baseurl() . '/redir/' . $rr['contact-id'] : $rr['url']),
                                '$sparkle' => ' sparkle',
                                '$from_photo' => $rr['thumb'],
-                               '$subject' => (($rr['mailseen']) ? $rr['title'] : '<strong>' . $rr['title'] . '</strong>'),
+                               '$subject' => template_escape((($rr['mailseen']) ? $rr['title'] : '<strong>' . $rr['title'] . '</strong>')),
                                '$delete' => t('Delete conversation'),
-                               '$body' => $rr['body'],
-                               '$to_name' => $rr['name'],
+                               '$body' => template_escape($rr['body']),
+                               '$to_name' => template_escape($rr['name']),
                                '$date' => datetime_convert('UTC',date_default_timezone_get(),$rr['mailcreated'], t('D, d M Y - g:i A'))
                        ));
                }
@@ -182,11 +220,19 @@ function message_content(&$a) {
                );
                if(count($r)) { 
                        $contact_id = $r[0]['contact-id'];
+                       $convid = $r[0]['convid'];
+
+                       $sql_extra = sprintf(" and `mail`.`parent-uri` = '%s' ", dbesc($r[0]['parent-uri']));
+                       if($convid)
+                               $sql_extra = sprintf(" and ( `mail`.`parent-uri` = '%s' OR `mail`.`convid` = '%d' ) ",
+                                       dbesc($r[0]['parent-uri']),
+                                       intval($convid)
+                               );  
+
                        $messages = q("SELECT `mail`.*, `contact`.`name`, `contact`.`url`, `contact`.`thumb` 
                                FROM `mail` LEFT JOIN `contact` ON `mail`.`contact-id` = `contact`.`id` 
-                               WHERE `mail`.`uid` = %d AND `mail`.`parent-uri` = '%s' ORDER BY `mail`.`created` ASC",
-                               intval(local_user()),
-                               dbesc($r[0]['parent-uri'])
+                               WHERE `mail`.`uid` = %d $sql_extra ORDER BY `mail`.`created` ASC",
+                               intval(local_user())
                        );
                }
                if(! count($messages)) {
@@ -221,14 +267,14 @@ function message_content(&$a) {
                        }
                        $o .= replace_macros($tpl, array(
                                '$id' => $message['id'],
-                               '$from_name' =>$message['from-name'],
+                               '$from_name' => template_escape($message['from-name']),
                                '$from_url' => $from_url,
                                '$sparkle' => $sparkle,
                                '$from_photo' => $message['from-photo'],
-                               '$subject' => $message['title'],
-                               '$body' => smilies(bbcode($message['body'])),
+                               '$subject' => template_escape($message['title']),
+                               '$body' => template_escape(smilies(bbcode($message['body']))),
                                '$delete' => t('Delete message'),
-                               '$to_name' => $message['name'],
+                               '$to_name' => template_escape($message['name']),
                                '$date' => datetime_convert('UTC',date_default_timezone_get(),$message['created'],'D, d M Y - g:i A')
                        ));
                                
@@ -240,7 +286,7 @@ function message_content(&$a) {
                        '$header' => t('Send Reply'),
                        '$to' => t('To:'),
                        '$subject' => t('Subject:'),
-                       '$subjtxt' => $message['title'],
+                       '$subjtxt' => template_escape($message['title']),
                        '$readonly' => ' readonly="readonly" style="background: #BBBBBB;" ',
                        '$yourmessage' => t('Your message:'),
                        '$select' => $select,
@@ -248,7 +294,6 @@ function message_content(&$a) {
                        '$upload' => t('Upload photo'),
                        '$insert' => t('Insert web link'),
                        '$wait' => t('Please wait')
-
                ));
 
                return $o;