]> git.mxchange.org Git - friendica.git/commitdiff
Merge remote-tracking branch 'upstream/master'
authorMichael Vogel <icarus@dabo.de>
Sun, 3 Mar 2013 15:30:18 +0000 (16:30 +0100)
committerMichael Vogel <icarus@dabo.de>
Sun, 3 Mar 2013 15:30:18 +0000 (16:30 +0100)
mod/community.php
mod/display.php
mod/parse_url.php
view/theme/vier/smarty3/wall_thread.tpl
view/theme/vier/wall_thread.tpl

index 27a9e219416abc0264b23f21f845c32bf5915156..84fc15debb51110407235c133475233cf4d072f6 100644 (file)
@@ -75,7 +75,8 @@ function community_content(&$a, $update = 0) {
                WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
                AND `item`.`allow_cid` = ''  AND `item`.`allow_gid` = ''
                AND `item`.`deny_cid`  = '' AND `item`.`deny_gid`  = '' 
-               AND `item`.`private` = 0 AND `item`.`wall` = 1 AND `user`.`hidewall` = 0
+               AND `item`.`private` = 0 AND `item`.`wall` = 1 AND `item`.`id` = `item`.`parent`
+               AND `user`.`hidewall` = 0
                AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 AND `contact`.`self`
                ORDER BY `received` DESC LIMIT %d, %d ",
                intval($a->pager['start']),
index 57a329f305da6c8fd50aa0af358fc79572057294..e272674354506bec4c20c2c0af12b007ab23b03b 100644 (file)
@@ -166,6 +166,32 @@ function display_content(&$a, $update = 0) {
                        $o .= "<script> var netargs = '?f=&nick=" . $nick . "&item_id=" . $item_id . "'; </script>";
                $o .= conversation($a,$items,'display', $update);
 
+               // Preparing the meta header
+               require_once('include/bbcode.php');
+               require_once("include/html2plain.php");
+               $description = trim(html2plain(bbcode($r[0]["body"], false, false), 0, true));
+               $title = trim(html2plain(bbcode($r[0]["title"], false, false), 0, true));
+
+               if ($title == "")
+                       $title = $r[0]["author-name"];
+
+               //<meta name="keywords" content="">
+               $a->page['htmlhead'] .= '<meta name="author" content="'.$r[0]["author-name"].'" />'."\n";
+               $a->page['htmlhead'] .= '<meta name="title" content="'.$title.'" />'."\n";
+               $a->page['htmlhead'] .= '<meta name="fulltitle" content="'.$title.'" />'."\n";
+               $a->page['htmlhead'] .= '<meta name="description" content="'.$description.'" />'."\n";
+
+               $a->page['htmlhead'] .= '<meta name="DC.title" content="'.$title.'" />'."\n";
+               $a->page['htmlhead'] .= '<meta name="DC.description" content="'.$description.'" />'."\n";
+
+               $a->page['htmlhead'] .= '<meta property="og:type" content="website" />'."\n";
+               $a->page['htmlhead'] .= '<meta property="og:title" content="'.$title.'" />'."\n";
+               //<meta property="og:image" content="" />
+               $a->page['htmlhead'] .= '<meta property="og:url" content="'.$r[0]["plink"].'" />'."\n";
+               $a->page['htmlhead'] .= '<meta property="og:description" content="'.$description.'" />'."\n";
+               $a->page['htmlhead'] .= '<meta name="og:article:author" content="'.$r[0]["author-name"].'" />'."\n";
+               // article:tag
+
        }
        else {
                $r = q("SELECT `id`,`deleted` FROM `item` WHERE `id` = '%s' OR `uri` = '%s' LIMIT 1",
index a2b4c9e28a179c44b997a31602f6c0e2587e638f..c8670d4d967fc67b69f66da129a71b60398d6bc0 100644 (file)
@@ -33,7 +33,7 @@ function completeurl($url, $scheme) {
 
         $complete = $schemearr["scheme"]."://".$schemearr["host"];
 
-        if ($schemearr["port"] != "")
+        if (@$schemearr["port"] != "")
                 $complete .= ":".$schemearr["port"];
 
                if(strpos($urlarr['path'],'/') !== 0)
@@ -41,10 +41,10 @@ function completeurl($url, $scheme) {
 
         $complete .= $urlarr["path"];
 
-        if ($urlarr["query"] != "")
+        if (@$urlarr["query"] != "")
                 $complete .= "?".$urlarr["query"];
 
-        if ($urlarr["fragment"] != "")
+        if (@$urlarr["fragment"] != "")
                 $complete .= "#".$urlarr["fragment"];
 
         return($complete);
@@ -52,18 +52,29 @@ function completeurl($url, $scheme) {
 
 function parseurl_getsiteinfo($url) {
        $siteinfo = array();
-
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, 1);
        curl_setopt($ch, CURLOPT_NOBODY, 0);
        curl_setopt($ch, CURLOPT_TIMEOUT, 3);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+       //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch,CURLOPT_USERAGENT,'Opera/9.64(Windows NT 5.1; U; de) Presto/2.1.1');
 
        $header = curl_exec($ch);
+       $curl_info = @curl_getinfo($ch);
+        $http_code = $curl_info['http_code'];
        curl_close($ch);
 
+       if ((($curl_info['http_code'] == "301") OR ($curl_info['http_code'] == "302"))
+               AND (($curl_info['redirect_url'] != "") OR ($curl_info['location'] != ""))) {
+               if ($curl_info['redirect_url'] != "")
+                       $siteinfo = parseurl_getsiteinfo($curl_info['redirect_url']);
+               else
+                       $siteinfo = parseurl_getsiteinfo($curl_info['location']);
+               return($siteinfo);
+       }
+
        // Fetch the first mentioned charset. Can be in body or header
        if (preg_match('/charset=(.*?)['."'".'"\s\n]/', $header, $matches))
                $charset = trim(array_pop($matches));
@@ -97,6 +108,28 @@ function parseurl_getsiteinfo($url) {
 
        $xpath = new DomXPath($doc);
 
+       $list = $xpath->query("//meta[@content]");
+        foreach ($list as $node) {
+                $attr = array();
+                if ($node->attributes->length)
+                        foreach ($node->attributes as $attribute)
+                                $attr[$attribute->name] = $attribute->value;
+
+                if (@$attr["http-equiv"] == 'refresh') {
+                        $path = $attr["content"];
+                        $pathinfo = explode(";", $path);
+                        $content = "";
+                        foreach ($pathinfo AS $value) {
+                                if (substr(strtolower($value), 0, 4) == "url=")
+                                        $content = substr($value, 4);
+                        }
+                        if ($content != "") {
+                                $siteinfo = parseurl_getsiteinfo($content);
+                                return($siteinfo);
+                        }
+                }
+       }
+
        //$list = $xpath->query("head/title");
        $list = $xpath->query("//title");
        foreach ($list as $node)
@@ -151,7 +184,7 @@ function parseurl_getsiteinfo($url) {
                }
        }
 
-       if ($siteinfo["image"] == "") {
+       if (@$siteinfo["image"] == "") {
             $list = $xpath->query("//img[@src]");
             foreach ($list as $node) {
                 $attr = array();
@@ -190,7 +223,7 @@ function parseurl_getsiteinfo($url) {
                                                        "height"=>$photodata[1]);
        }
 
-       if ($siteinfo["text"] == "") {
+       if (@$siteinfo["text"] == "") {
                $text = "";
 
                $list = $xpath->query("//div[@class='article']");
index 5559a2065974d7881882fdc946d6a543cecb1808..adaf0b639fa6cb33bb71eab20344f84aea9e717a 100644 (file)
@@ -64,7 +64,7 @@
                        </span>
                </div>
 
-               <div class="wall-item-content">
+               <div itemprop="description" class="wall-item-content">
                        {{if $item.title}}<h2><a href="{{$item.plink.href}}" class="{{$item.sparkle}}">{{$item.title}}</a></h2>{{/if}}
                        {{$item.body}}
                </div>
index 366493a686c277eacf2a9b903f5f70c0f18a692e..7ca07d8591fa90550c54e4f5ebe4f50268d2cd8a 100644 (file)
@@ -59,7 +59,7 @@
                        </span>
                </div>
 
-               <div class="wall-item-content">
+               <div itemprop="description" class="wall-item-content">
                        {{ if $item.title }}<h2><a href="$item.plink.href" class="$item.sparkle">$item.title</a></h2>{{ endif }}
                        $item.body
                </div>