Fixes bugs with in hash url lookup and in groups, a=chris

Chris Pollett [2014-07-07 11:Jul:th]
Fixes bugs with in hash url lookup and in groups, a=chris
Filename
bin/queue_server.php
controllers/components/social_component.php
controllers/group_controller.php
css/search.css
views/elements/groupfeed_element.php
diff --git a/bin/queue_server.php b/bin/queue_server.php
index e60b6c089..b7f18215e 100755
--- a/bin/queue_server.php
+++ b/bin/queue_server.php
@@ -1531,10 +1531,11 @@ class QueueServer implements CrawlConstants, Join
                     $visited_urls_count);
                 foreach($seen_sites as $site) {
                     if($site[self::IS_DOC]){ // so not link
-                        $hash = $site[self::HASH_URL].
+                        $site_url = str_replace('|', "%7C", $site[self::URL]);
+                        $host = UrlParser::getHost($site_url);
+                        $hash = crawlHash($site_url, true).
                             $site[self::HASH] .
-                            "d". substr(crawlHash(
-                            UrlParser::getHost($site[self::URL])."/", true), 1);
+                            "d". substr(crawlHash($host."/",true), 1);
                     } else {
                         $hash = $site[self::HASH_URL];
                     }
diff --git a/controllers/components/social_component.php b/controllers/components/social_component.php
index 2b30c61f1..68d55a1dd 100644
--- a/controllers/components/social_component.php
+++ b/controllers/components/social_component.php
@@ -600,8 +600,9 @@ class SocialComponent extends Component implements CrawlConstants
             switch($_REQUEST['arg'])
             {
                 case "addcomment":
-                    if(!isset($_REQUEST['parent_id']) || $_REQUEST['parent_id']
-                        ||!isset($_REQUEST['group_id'])||$_REQUEST['group_id']){
+                    if(!isset($_REQUEST['parent_id']) || !$_REQUEST['parent_id']
+                        ||!isset($_REQUEST['group_id'])||
+                        !$_REQUEST['group_id']){
                         $data['SCRIPT'] .= "doMessage('<h1 class=\"red\" >".
                             tl('social_component_comment_error').
                             "</h1>');";
@@ -649,7 +650,7 @@ class SocialComponent extends Component implements CrawlConstants
                         );
                     }
                     $title = "-- ".$parent_item['TITLE'];
-                    $group_model->addGroupItem($parent_item["ID"],
+                    $id = $group_model->addGroupItem($parent_item["ID"],
                         $group_id, $user_id, $title, $description);
                     $data['SCRIPT'] .= "doMessage('<h1 class=\"red\" >".
                         tl('social_component_comment_added'). "</h1>');";
@@ -804,8 +805,11 @@ class SocialComponent extends Component implements CrawlConstants
                         $page_info["GROUP_ID"];
                 }
             }
-            $pub_clause = array('pub_date', "=", "", "ASC");
-            $sort = "ksort";
+            if(!isset($_REQUEST['f']) ||
+                !in_array($_REQUEST['f'], array("rss", "json", "serial"))) {
+                $pub_clause = array('pub_date', "=", "", "ASC");
+                $sort = "ksort";
+            }
         }
         $search_array = array(
             array("parent_id", "=", $just_thread, ""),
diff --git a/controllers/group_controller.php b/controllers/group_controller.php
index 54fbddca0..8a09fbbfb 100644
--- a/controllers/group_controller.php
+++ b/controllers/group_controller.php
@@ -164,8 +164,12 @@ class GroupController extends Controller implements CrawlConstants
         }
         $data["its"] = 0;
         $num_pages = count($data["PAGES"]);
-        $base_query = $data['PAGING_QUERY']."&amp;".CSRF_TOKEN."=".
-            $data[CSRF_TOKEN]."&amp;";
+        if(isset($data['ADMIN']) && $data['ADMIN']) {
+            $base_query = $data['PAGING_QUERY']."&amp;".CSRF_TOKEN."=".
+                $data[CSRF_TOKEN]."&amp;";
+        } else {
+            $base_query = $data['PAGING_QUERY']."&amp;";
+        }
         for($i = 0; $i < $num_pages; $i++) {
             $data["PAGES"][$i][self::URL] = BASE_URL. $base_query .
                 "just_thread=". $data["PAGES"][$i]['PARENT_ID'];
diff --git a/css/search.css b/css/search.css
index 3cfb16ef0..ca62efd59 100755
--- a/css/search.css
+++ b/css/search.css
@@ -1684,7 +1684,7 @@ div.group-result
     float: right;
     margin-left: 8px;
 }
-.micro-pagination,
+.micro-pagination
 {
     display:inline;
     margin-bottom: 8px;
diff --git a/views/elements/groupfeed_element.php b/views/elements/groupfeed_element.php
index 74bbee10b..2db22bd84 100644
--- a/views/elements/groupfeed_element.php
+++ b/views/elements/groupfeed_element.php
@@ -297,7 +297,9 @@ class GroupfeedElement extends Element implements CrawlConstants
             </div>
             <?php
             } //end foreach
+            $data['FRAGMENT'] = "";
             if(isset($data['JUST_THREAD']) && $logged_in) {
+                $data['FRAGMENT'] = '#result-'.$page['ID'];
                 ?>
                 <div class='button-group-result'>
                 <button class="button-box" onclick='comment_form(<?php
@@ -326,25 +328,37 @@ class GroupfeedElement extends Element implements CrawlConstants
      */
     function renderScripts($data)
     {
+        if($data['LIMIT'] + $data['RESULTS_PER_PAGE'] == $data['TOTAL_ROWS']) {
+            $data['LIMIT'] += $data['RESULTS_PER_PAGE'];
+        }
         $paging_query = $data['PAGING_QUERY']."&amp;".CSRF_TOKEN."=".
             $data[CSRF_TOKEN];
         if(isset($data['ADD_PAGING_QUERY'])) {
             $paging_query .= $data['ADD_PAGING_QUERY'];
         }
-        $just_fields = array("JUST_THREAD", "JUST_USER_ID",
-            "JUST_GROUP_ID");
+        $limit_hidden = "";
+        if(isset($data['LIMIT'])) {
+            $paging_query .= "&limit=".$data['LIMIT'];
+        }
+        $num_hidden = "";
+        if(isset($data['RESULTS_PER_PAGE'])) {
+            $paging_query .= "&num=".$data['RESULTS_PER_PAGE'];
+        }
+        $just_fields = array("LIMIT" => "limit", "RESULTS_PER_PAGE" => "num",
+            "JUST_THREAD" => 'just_thread', "JUST_USER_ID" => "just_user_id",
+            "JUST_GROUP_ID" => "just_group_id");
         $hidden_form = "\n";
-        foreach($just_fields as $field) {
-            $lower_field = strtolower($field);
+        foreach($just_fields as $field => $form_field) {
             if(isset($data[$field])) {
                 $hidden_form .= "'<input type=\"hidden\" ".
-                    "name=\"$lower_field\" value=\"{$data[$field]}\" />' +\n";
+                    "name=\"$form_field\" value=\"{$data[$field]}\" />' +\n";
             }
         }
         ?>
         <script type="text/javascript"><?php
             $clear = (MOBILE) ? " clear" : "";
         ?>
+        var updateId = null;
         function comment_form(id, parent_id, group_id)
         {
             clearInterval(updateId);
@@ -353,7 +367,8 @@ class GroupfeedElement extends Element implements CrawlConstants
             if(start_elt != tmp) {
                 elt(id).innerHTML =
                     tmp +
-                    '<form action="./" >' + <?php e($hidden_form); ?>
+                    '<form action="./<?php e($data['FRAGMENT']);
+                    ?>" >' + <?php e($hidden_form); ?>
                     '<input type="hidden" name="c" value="<?php
                         e($data['CONTROLLER']) ?>" />' +
                     '<input type="hidden" name="a" value="groupFeeds" />' +
@@ -392,7 +407,8 @@ class GroupfeedElement extends Element implements CrawlConstants
             if(start_elt != tmp) {
                 elt(id).innerHTML =
                     tmp +
-                    '<form action="./" >' + <?php e($hidden_form); ?>
+                    '<form action="./<?php e($data['FRAGMENT']);
+                    ?>" >' + <?php e($hidden_form); ?>
                     '<input type="hidden" name="c" value="<?php
                         e($data['CONTROLLER']) ?>" />' +
                     '<input type="hidden" name="a" value="groupFeeds" />' +
@@ -439,7 +455,8 @@ class GroupfeedElement extends Element implements CrawlConstants
                 setDisplay('result-'+id, false);
                 elt(id).innerHTML =
                     tmp +
-                    '<form action="./" >' +
+                    '<form action="./<?php e($data['FRAGMENT']);
+                    ?>" >' + <?php e($hidden_form); ?>
                     '<input type="hidden" name="c" value="<?php
                         e($data['CONTROLLER']) ?>" />' +
                     '<input type="hidden" name="a" value="groupFeeds" />' +
@@ -474,42 +491,36 @@ class GroupfeedElement extends Element implements CrawlConstants
                 setDisplay('result-'+id, true);
             }
         }
-        </script>
-        <?php
-        if($data['LIMIT'] == 0 ) { ?>
-            <script type="text/javascript" >
-            var updateId;
-            function feedStatusUpdate()
-            {
-                var startUrl = "<?php e(html_entity_decode(
-                    $paging_query).'&arg=status'); ?>";
-                var feedTag = elt('feedstatus');
-                getPage(feedTag, startUrl);
-                elt('feedstatus').style.backgroundColor = "#EEE";
-                setTimeout("resetBackground()", 0.5*sec);
-            }
+        function feedStatusUpdate()
+        {
+            var startUrl = "<?php e(html_entity_decode(
+                $paging_query).'&arg=status'); ?>";
+            var feedTag = elt('feedstatus');
+            getPage(feedTag, startUrl);
+            elt('feedstatus').style.backgroundColor = "#EEE";
+            setTimeout("resetBackground()", 0.5*sec);
+        }

-            function clearUpdate()
-            {
-                 clearInterval(updateId );
-                 var feedTag = elt('feedstatus');
-                 feedTag.innerHTML= "<h2 class='red'><?php
-                    e(tl('groupfeed_element_no_longer_update'))?></h2>";
-            }
-            function resetBackground()
-            {
-                 elt('feedstatus').style.backgroundColor = "#FFF";
-            }
-            function doUpdate()
-            {
-                 var sec = 1000;
-                 var minute = 60*sec;
-                 updateId = setInterval("feedStatusUpdate()", 15*sec);
-                 setTimeout("clearUpdate()", 20*minute + sec);
-            }
-            </script>
-        <?php
+        function clearUpdate()
+        {
+             clearInterval(updateId);
+             var feedTag = elt('feedstatus');
+             feedTag.innerHTML= "<h2 class='red'><?php
+                e(tl('groupfeed_element_no_longer_update'))?></h2>";
+        }
+        function resetBackground()
+        {
+             elt('feedstatus').style.backgroundColor = "#FFF";
+        }
+        function doUpdate()
+        {
+             var sec = 1000;
+             var minute = 60*sec;
+             updateId = setInterval("feedStatusUpdate()", 15*sec);
+             setTimeout("clearUpdate()", 20*minute + sec);
         }
+        </script>
+        <?php
     }
 }
  ?>
ViewGit