From c74d9ae657917ecddc3dbc18801bf7edbc3fde2e Mon Sep 17 00:00:00 2001
From: "florian.azizian" <florian.azizian@maarch.org>
Date: Mon, 13 Mar 2017 16:10:46 +0100
Subject: [PATCH] FEAT #5291 add service for display/hide version tab for main
 document

---
 .../indexing_searching/details.php            | 86 ++++++++++---------
 modules/content_management/xml/services.xml   | 17 ++++
 2 files changed, 61 insertions(+), 42 deletions(-)
 mode change 100644 => 100755 modules/content_management/xml/services.xml

diff --git a/apps/maarch_entreprise/indexing_searching/details.php b/apps/maarch_entreprise/indexing_searching/details.php
index 1c787d3db5a..c8757780cbf 100644
--- a/apps/maarch_entreprise/indexing_searching/details.php
+++ b/apps/maarch_entreprise/indexing_searching/details.php
@@ -1350,50 +1350,52 @@ if ((!empty($_SESSION['error']) && ! ($_SESSION['indexation'] ))  )
 
                 }
                 
-                //VERSIONS TAB
-                $version = '';
-                $versionTable = $security->retrieve_version_table_from_coll_id(
-                    $coll_id
-                );
-                $selectVersions = "SELECT res_id FROM "
-                    . $versionTable . " WHERE res_id_master = ? and status <> 'DEL' order by res_id desc";
-
-                $stmt = $db->query($selectVersions, array($s_id));
-                $nb_versions_for_title = $stmt->rowCount();
-                $lineLastVersion = $stmt->fetchObject();
-                $lastVersion = $lineLastVersion->res_id;
-                if ($lastVersion <> '') {
-                    $objectId = $lastVersion;
-                    $objectTable = $versionTable;
-                } else {
-                    $objectTable = $security->retrieve_table_from_coll(
+                if ($core->test_service('view_version_letterbox', 'apps', false)) {
+                    //VERSIONS TAB
+                    $version = '';
+                    $versionTable = $security->retrieve_version_table_from_coll_id(
                         $coll_id
                     );
-                    $objectId = $s_id;
-                    $_SESSION['cm']['objectId4List'] = $s_id;
-                }
-                if ($nb_versions_for_title == 0) {
-                    $extend_title_for_versions = '0';
-                    $class="nbResZero";
-                    $style = 'display:none;font-size: 10px;';
-                    $style2 = 'color:#9AA7AB;font-size:2em;padding-left: 15px;padding-right: 15px;';
-                } else {
-                    $extend_title_for_versions = $nb_versions_for_title;
-                    $class="nbRes";
-                    $style = 'font-size: 10px;';
-                    $style2 = 'font-size:2em;padding-left: 15px;padding-right: 15px;';
-                }
-                $_SESSION['cm']['resMaster'] = '';
-                
-                $pathScriptTab = $_SESSION['config']['businessappurl']
-                    . 'index.php?display=true&page=show_versions_tab&collId=' . $coll_id . '&resId='.$s_id.'&objectTable='.$objectTable;
-                $version .= '<dt  class="fa fa-code-fork" style="'.$style2.'" title="'. _VERSIONS .'" onclick="loadSpecificTab(\'versions_iframe\',\''.$pathScriptTab.'\');return false;">';
-                $version .= ' <sup><span id="nbVersions" class="'.$class.'" style="'.$style.'">' . $extend_title_for_versions . '</span></sup>';
-                $version .= '</dt>';
-                $version .= '<dd>';
-                $version .= '<iframe src="" name="versions_iframe" width="100%" align="left" scrolling="yes" frameborder="0" id="versions_iframe" style="height:100%;"></iframe>';
-                $version .= '</dd>';
-                echo $version;    
+                    $selectVersions = "SELECT res_id FROM "
+                        . $versionTable . " WHERE res_id_master = ? and status <> 'DEL' order by res_id desc";
+
+                    $stmt = $db->query($selectVersions, array($s_id));
+                    $nb_versions_for_title = $stmt->rowCount();
+                    $lineLastVersion = $stmt->fetchObject();
+                    $lastVersion = $lineLastVersion->res_id;
+                    if ($lastVersion <> '') {
+                        $objectId = $lastVersion;
+                        $objectTable = $versionTable;
+                    } else {
+                        $objectTable = $security->retrieve_table_from_coll(
+                            $coll_id
+                        );
+                        $objectId = $s_id;
+                        $_SESSION['cm']['objectId4List'] = $s_id;
+                    }
+                    if ($nb_versions_for_title == 0) {
+                        $extend_title_for_versions = '0';
+                        $class="nbResZero";
+                        $style = 'display:none;font-size: 10px;';
+                        $style2 = 'color:#9AA7AB;font-size:2em;padding-left: 15px;padding-right: 15px;';
+                    } else {
+                        $extend_title_for_versions = $nb_versions_for_title;
+                        $class="nbRes";
+                        $style = 'font-size: 10px;';
+                        $style2 = 'font-size:2em;padding-left: 15px;padding-right: 15px;';
+                    }
+                    $_SESSION['cm']['resMaster'] = '';
+                    
+                    $pathScriptTab = $_SESSION['config']['businessappurl']
+                        . 'index.php?display=true&page=show_versions_tab&collId=' . $coll_id . '&resId='.$s_id.'&objectTable='.$objectTable;
+                    $version .= '<dt  class="fa fa-code-fork" style="'.$style2.'" title="'. _VERSIONS .'" onclick="loadSpecificTab(\'versions_iframe\',\''.$pathScriptTab.'\');return false;">';
+                    $version .= ' <sup><span id="nbVersions" class="'.$class.'" style="'.$style.'">' . $extend_title_for_versions . '</span></sup>';
+                    $version .= '</dt>';
+                    $version .= '<dd>';
+                    $version .= '<iframe src="" name="versions_iframe" width="100%" align="left" scrolling="yes" frameborder="0" id="versions_iframe" style="height:100%;"></iframe>';
+                    $version .= '</dd>';
+                    echo $version;
+                } 
     
                 //LINKS TAB
                 $Links = '';
diff --git a/modules/content_management/xml/services.xml b/modules/content_management/xml/services.xml
old mode 100644
new mode 100755
index edcc1460149..9b6f9255104
--- a/modules/content_management/xml/services.xml
+++ b/modules/content_management/xml/services.xml
@@ -17,4 +17,21 @@
             <nature>include</nature>
         </WHEREAMIUSED>
     </SERVICE>
+    <SERVICE>
+        <id>view_version_letterbox</id>
+        <name>_VIEW_VERSIONS</name>
+        <comment>_VIEW_VERSIONS</comment>
+        <servicepage>none.php</servicepage>
+        <servicetype>use</servicetype>
+        <system_service>false</system_service>
+        <enabled>true</enabled>
+        <WHEREAMIUSED>
+            <page>details.php</page>
+            <nature>include</nature>
+        </WHEREAMIUSED>
+        <WHEREAMIUSED>
+            <page>process.php</page>
+            <nature>include</nature>
+        </WHEREAMIUSED>
+    </SERVICE>
 </root>
-- 
GitLab