]> git.mxchange.org Git - friendica.git/blobdiff - include/conversation.php
Recursive string replacement in template
[friendica.git] / include / conversation.php
index ff0a7612b13a1a08640d7535fa648b1d6cf4f7bf..82a107c07c28bac989a39ae301cab2a0ca6f9a53 100644 (file)
@@ -5,8 +5,7 @@
  */
 function localize_item(&$item){
        
-       if ($item['verb']=="http://activitystrea.ms/schema/1.0/like" ||
-               $item['verb']=="http://activitystrea.ms/schema/1.0/dislike"){
+       if ($item['verb']=== ACTIVITY_LIKE || $item['verb']=== ACTIVITY_DISLIKE){
 
                $r = q("SELECT * from `item`,`contact` WHERE 
                                `item`.`contact-id`=`contact`.`id` AND `item`.`uri`='%s';",
@@ -17,23 +16,42 @@ function localize_item(&$item){
                $author  = '[url=' . $item['author-link'] . ']' . $item['author-name'] . '[/url]';
                $objauthor =  '[url=' . $obj['author-link'] . ']' . $obj['author-name'] . '[/url]';
                
-               $post_type = (($obj['resource-id']) ? t('photo') : t('status'));                
+               switch($obj['verb']){
+                       case ACTIVITY_POST:
+                               switch ($obj['object-type']){
+                                       case ACTIVITY_OBJ_EVENT:
+                                               $post_type = t('event');
+                                               break;
+                                       default:
+                                               $post_type = t('status');
+                               }
+                               break;
+                       default:
+                               if($obj['resource-id']){
+                                       $post_type = t('photo');
+                                       $m=array();     preg_match("/\[url=([^]]*)\]/", $obj['body'], $m);
+                                       $rr['plink'] = $m[1];
+                               } else {
+                                       $post_type = t('status');
+                               }
+               }
+       
                $plink = '[url=' . $obj['plink'] . ']' . $post_type . '[/url]';
                 
                switch($item['verb']){
-                       case "http://activitystrea.ms/schema/1.0/like":
+                       case ACTIVITY_LIKE :
                                $bodyverb = t('%1$s likes %2$s\'s %3$s');
                                break;
-                       case "http://activitystrea.ms/schema/1.0/dislike":
+                       case ACTIVITY_DISLIKE:
                                $bodyverb = t('%1$s doesn\'t like %2$s\'s %3$s');
                                break;
                }
                $item['body'] = sprintf($bodyverb, $author, $objauthor, $plink);
                        
        }
-       if ($item['verb']=='http://activitystrea.ms/schema/1.0/make-friend'){
+       if ($item['verb']=== ACTIVITY_FRIEND){
 
-               if ($item['object-type']=="" || $item['object-type']!='http://activitystrea.ms/schema/1.0/person') return;
+               if ($item['object-type']=="" || $item['object-type']!== ACTIVITY_OBJ_PERSON) return;
 
                $Aname = $item['author-name'];
                $Alink = $item['author-link'];
@@ -101,6 +119,11 @@ function conversation(&$a, $items, $mode, $update) {
                $page_writeable = can_write_wall($a,$profile_owner);
        }
 
+       if($mode === 'community') {
+               $profile_owner = 0;
+               $page_writeable = false;
+       }
+
        if($update)
                $return_url = $_SESSION['return_url'];
        else
@@ -122,7 +145,7 @@ function conversation(&$a, $items, $mode, $update) {
        
        if(count($items)) {
 
-               if($mode === 'network-new' || $mode === 'search') {
+               if($mode === 'network-new' || $mode === 'search' || $mode === 'community') {
 
                        // "New Item View" on network page or search page results 
                        // - just loop through the items and format them minimally for display
@@ -137,7 +160,7 @@ function conversation(&$a, $items, $mode, $update) {
                                $owner_name  = '';
                                $sparkle     = '';
 
-                               if($mode === 'search') {
+                               if($mode === 'search' || $mode === 'community') {
                                        if(((activity_match($item['verb'],ACTIVITY_LIKE)) || (activity_match($item['verb'],ACTIVITY_DISLIKE))) 
                                                && ($item['id'] != $item['parent']))
                                                continue;
@@ -174,9 +197,14 @@ function conversation(&$a, $items, $mode, $update) {
                                $drop = '';
 
                                localize_item($item);
+                               if($mode === 'network-new')
+                                       $t = $droptpl;
+                               else
+                                       $t = $fakedrop;
 
-                               $drop = replace_macros($droptpl,array('$id' => $item['id']));
+                               $drop = replace_macros($t,array('$id' => $item['id']));
                                $lock = '<div class="wall-item-lock"></div>';
+                               $star = '';
 
                                $body = prepare_body($item,true);
                                
@@ -197,6 +225,7 @@ function conversation(&$a, $items, $mode, $update) {
                                        '$owner_url' => $owner_url,
                                        '$owner_photo' => $owner_photo,
                                        '$owner_name' => $owner_name,
+                                       '$star' => $star,
                                        '$drop' => $drop,
                                        '$conv' => '<a href="' . $a->get_baseurl() . '/display/' . $nickname . '/' . $item['id'] . '">' . t('View in context') . '</a>'
                                ));
@@ -381,8 +410,8 @@ function conversation(&$a, $items, $mode, $update) {
                        }
 
                        $edpost = (((($profile_owner == local_user()) && ($toplevelpost) && (intval($item['wall']) == 1)) || ($mode === 'notes'))
-                                       ? '<a class="editpost" href="' . $a->get_baseurl() . '/editpost/' . $item['id'] 
-                                               . '" title="' . t('Edit') . '"><img src="images/pencil.gif" /></a>'
+                                       ? '<a class="editpost icon pencil" href="' . $a->get_baseurl() . '/editpost/' . $item['id'] 
+                                               . '" title="' . t('Edit') . '"></a>'
                                        : '');
 
 
@@ -394,6 +423,8 @@ function conversation(&$a, $items, $mode, $update) {
 
             $drop = replace_macros((($dropping)? $droptpl : $fakedrop), array('$id' => $item['id'], '$select' => t('Select'), '$delete' => t('Delete')));
 
+                       $star = (($profile_owner == local_user() && $toplevelpost) ? '<a href="#" id="starred-' . $item['id'] . '" onclick="dostar(' . $item['id'] . '); return false;" class="star-item icon ' . (($item['starred']) ? 'starred' : 'unstarred') . '" title="' . t('toggle star status')  . '"></a>' : '');
+
 
                        $photo = $item['photo'];
                        $thumb = $item['thumb'];
@@ -473,6 +504,7 @@ function conversation(&$a, $items, $mode, $update) {
                                '$owner_name' => $owner_name,
                                '$plink' => get_plink($item),
                                '$edpost' => $edpost,
+                               '$star' => $star,
                                '$drop' => $drop,
                                '$vote' => $likebuttons,
                                '$like' => $like,
@@ -765,4 +797,4 @@ function status_editor($a,$x, $notes_cid = 0) {
                ));
 
        return $o;
-}
\ No newline at end of file
+}