Beispiel #1
0
 static function get_likes($post)
 {
     $config = Config::current();
     $route = Route::current();
     $visitor = Visitor::current();
     $likeSetting = $config->module_like;
     if (!$visitor->group->can("like_post")) {
         return;
     }
     if ($likeSetting["showOnFront"] == false and $route->action == "index") {
         return;
     }
     $request["action"] = $route->action;
     $request["post_id"] = $post->id;
     $like = new Like($request, $visitor->id);
     $like->cookieInit();
     $hasPersonLiked = false;
     if ($like->session_hash != null) {
         $people = $like->fetchPeople();
         if (count($people) != 0) {
             foreach ($people as $person) {
                 if ($person["session_hash"] == $like->session_hash) {
                     $hasPersonLiked = true;
                     break;
                 }
             }
         }
     } else {
         $like->fetchCount();
     }
     $returnStr = "<div class='likes' id='likes_post-{$post->id}'>";
     if (!$hasPersonLiked) {
         $returnStr .= "<a class='like' href=\"javascript:likes.like({$post->id});\" title='" . ($like->total_count ? $likeSetting["likeText"][6] : "") . "' >";
         $returnStr .= "<img src=\"" . $likeSetting["likeImage"] . "\" alt='Like Post-{$post->id}' />";
         if ($likeSetting["likeWithText"]) {
             # $this->text_default[6] = "Like";
             $returnStr .= "(" . $likeSetting["likeText"][6] . ") ";
         }
         $returnStr .= "</a><span class='text'>";
         if ($like->total_count == 0) {
             # $this->text_default[3] = "Be the first to like.";
             $returnStr .= $like->getText($like->total_count, $likeSetting["likeText"][3]);
         } elseif ($like->total_count == 1) {
             # $this->text_default[4] = "1 person likes this post.";
             $returnStr = $returnStr . $like->getText($like->total_count, $likeSetting["likeText"][4]);
         } elseif ($like->total_count > 1) {
             # $this->text_default[5] = "%NUM% people like this post.";
             $returnStr .= $like->getText($like->total_count, $likeSetting["likeText"][5]);
         }
         $returnStr .= "</span>";
     } else {
         # $this->text_default[7] = "Unlike";
         if ($likeSetting["likeWithText"] and $visitor->group->can("unlike_post") and $hasPersonLiked) {
             $returnStr .= "<a class='liked' href=\"javascript:likes.unlike({$post->id});\"><img src=\"" . $likeSetting["likeImage"] . "\" alt='Like Post-{$post->id}' />(" . $likeSetting["likeText"][7] . ") </a><span class='text'>";
         } else {
             $returnStr .= "<a class='liked'><img src=\"" . $likeSetting["likeImage"] . "\" alt='Like Post-{$post->id}' /></a><span class='text'>";
         }
         if ($like->total_count == 1) {
             # $this->text_default[0] = "You like this post.";
             $returnStr .= $like->getText($like->total_count, $likeSetting["likeText"][0]);
         } elseif ($like->total_count == 2) {
             # $this->text_default[1] = "You and 1 person like this post.";
             $returnStr .= $like->getText(1, $likeSetting["likeText"][1]);
         } else {
             $like->total_count--;
             # $this->text_default[2] = "You and %NUM% people like this post.";
             $returnStr .= $like->getText($like->total_count, $likeSetting["likeText"][2]);
         }
         $returnStr .= "</span>";
     }
     $returnStr .= "</div>";
     return $post->get_likes = $returnStr;
 }