]> git.mxchange.org Git - friendica.git/commitdiff
atom auto-discover, fix image preloading in ajax
authorMike Macgirvin <mike@macgirvin.com>
Tue, 10 Aug 2010 23:54:36 +0000 (16:54 -0700)
committerMike Macgirvin <mike@macgirvin.com>
Tue, 10 Aug 2010 23:54:36 +0000 (16:54 -0700)
mod/photo.php
mod/profile.php
mod/update_network.php
mod/update_profile.php
view/head.tpl

index 6174b10abe9b0d84364b9330e6f82b34d9ee14f5..653ca81c27ede3eae17f6633de6232dcdd73ddd7 100644 (file)
@@ -112,9 +112,8 @@ function photo_init(&$a) {
        }
 
         header("Content-type: image/jpeg");
-       header('Expires: ' . datetime_convert('UTC','UTC', 'now + 30 minutes', 'D, d M Y H:i:s' . ' GMT'));
-       header('Expires: ' . datetime_convert('UTC','UTC', 'now + 30 minutes', 'D, d M Y H:i:s' . ' GMT'));
-       header("Cache-Control: max-age=3600, must-revalidate");
+       header('Expires: ' . datetime_convert('UTC','UTC', 'now + 3 months', 'D, d M Y H:i:s' . ' GMT'));
+//     header("Cache-Control: max-age=36000, only-if-cached");
         echo $data;
        killme();
        return; //NOTREACHED
index 6e04724beb8264977b3c6ae009283471f1b52d69..0cc236f9536861b1ebde3fafad3da6cb656fb386 100644 (file)
@@ -63,6 +63,8 @@ function profile_init(&$a) {
                $profile = $a->argv[1];         
        }
        profile_load($a,$which,$profile);
+        $a->page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . $a->get_baseurl() . '/dfrn_poll/' . $which .'" />';
+
        $a->page['htmlhead'] .= "<meta name=\"dfrn-template\" content=\"" . $a->get_baseurl() . "/profile/%s" . "\" />\r\n";
        
        $dfrn_pages = array('request', 'confirm', 'notify', 'poll');
index 18c630fdf08f9fac91ed81df75fe91d5d3e583f5..1c790ead169869401d070baa8f6b2c675f5d2ee2 100644 (file)
@@ -1,5 +1,6 @@
 <?php
 
+// See update_profile.php for documentation
 
 require_once('mod/network.php');
 
@@ -9,7 +10,14 @@ function update_network_content(&$a) {
        header("Content-type: text/html");
        echo "<!DOCTYPE html><html><body>\r\n";
        echo (($_GET['msie'] == 1) ? '<div>' : '<section>');
-       echo str_replace("\t",'       ',network_content($a,true));
+
+
+        $text = network_content($a,true);
+        $pattern = "/<img([^>]*) src=\"([^\"]*)\"/";
+        $replace = "<img\${1} dst=\"\${2}\"";
+        $text = preg_replace($pattern, $replace, $text);
+
+        echo str_replace("\t",'       ',$text);
        echo (($_GET['msie'] == 1) ? '</div>' : '</section>');
        echo "</body></html>\r\n";
        killme();
index 8ea86eb91ecc7719b4651238f831fdcd3213369b..96d8376dc02d2d57499a24d17eafb333e018db6d 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 
+// This page is fetched via ajax to update the profile page with
+// new content while you are viewing it.
 
 require_once('mod/profile.php');
 
@@ -8,7 +10,19 @@ function update_profile_content(&$a) {
        header("Content-type: text/html");
        echo "<!DOCTYPE html><html><body>\r\n";
        echo (($_GET['msie'] == 1) ? '<div>' : '<section>');
-       echo str_replace("\t",'       ',profile_content($a,true));
+
+        // Grab the page inner contents, but move any image src attributes to another attribute name.
+        // Some browsers will prefetch all the images for the page even if we don't need them.
+        // The only ones we need to fetch are those for new page additions, which we'll discover
+        // on the client side and then swap the image back.
+
+
+        $text = profile_content($a,true);
+        $pattern = "/<img([^>]*) src=\"([^\"]*)\"/";
+        $replace = "<img\${1} dst=\"\${2}\"";
+        $text = preg_replace($pattern, $replace, $text);
+
+        echo str_replace("\t",'       ',$text);
        echo (($_GET['msie'] == 1) ? '</div>' : '</section>');
        echo "</body></html>\r\n";
        killme();
index a2b55e0b53cfa867850f66a88562ef6c353de412..ec67455d071737b88223d657c8a28b5966467a84 100644 (file)
@@ -61,6 +61,9 @@
                        $('.wall-item-outside-wrapper',data).each(function() {
                                var ident = $(this).attr('id');
                                if($('#' + ident).length == 0) { 
+                                        $('img',this).each(function() {
+                                                $(this).attr('src',$(this).attr('dst'));
+                                        });
                                        $('#' + prev).after($(this));
                                }
                                else {