Using the new "choose" parameter to navigate/preview/choose
authorstronk7 <stronk7>
Mon, 2 Jul 2007 16:57:50 +0000 (16:57 +0000)
committerstronk7 <stronk7>
Mon, 2 Jul 2007 16:57:50 +0000 (16:57 +0000)
IMS-CP resource packages. MDL-10036

Merged from MOODLE_18_STABLE

mod/resource/type/ims/finder.php
mod/resource/type/ims/preview.php

index 554864a65347ffb3ce1b00096ce11f7476c89ee9..c7ba6fc631fac5c94339cb79fb6cd6488e6dffa9 100644 (file)
@@ -10,6 +10,7 @@
 
 /// Directory to browse, inside repository. Starts on ''.    
     $directory = optional_param ('directory', '', PARAM_PATH);
+    $choose  = optional_param('choose', 'id_reference_value', PARAM_FILE);
     
 /// Get the language strings needed
     $strdeployall = get_string('deployall','resource');
 
 /// Prints the toolbar. 
     echo '<div id="ims_toolbar" style="padding:10px;">';
-    ims_print_crumbtrail($directory);
+    ims_print_crumbtrail($directory, $choose);
     
 /// If admin, add extra buttons - redeploy & help.
     if (has_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM, SITEID))) {
-        echo " | (<a href=\"repository_deploy.php?file=$directory&all=force\">$strdeployall</a>) ";
+        echo " | (<a href=\"repository_deploy.php?file=$directory&amp;all=force\">$strdeployall</a>) ";
         helpbutton("deploy", get_string("deployall", "resource"), "resource", true);
     }
     echo '</div>';
         
         foreach ($items as $item) {
             if ($item->type == 'deployed') {
-                echo "<li><img src=\"images/ims.gif\" alt=\"IMS CP Package\" /> $item->name (<a href=\"javascript:
-                        opener.document.forms['form'].reference.value = '#$item->path'; 
-                        opener.document.forms['form'].name.value = '$item->name'; 
-                        window.close();
-                    \">$strchoose</a>) (<a href=\"preview.php?directory=$item->path\">$strpreview</a>)</li>\n";
+                ?>
+                <script type="text/javascript">
+                //<![CDATA[
+                function set_value(txt) {
+                    opener.document.getElementById('<?php echo $choose ?>').value = txt;
+                    window.close();
+                }
+                //]]>
+                </script>
+                <?php
+                echo "<li><img src=\"images/ims.gif\" alt=\"IMS CP Package\" /> $item->name" .
+                     "(<a onclick=\"return set_value('#$item->path')\" href=\"#\">$strchoose</a>) " .
+                     "(<a href=\"preview.php?directory=$item->path&amp;choose=$choose\">$strpreview</a>)</li>\n";
             }
             else if ($item->type == 'not deployed') {
             /// Only displays non-deployed IMS CP's if admin user.
@@ -87,7 +96,7 @@
                 }
             }
             else if ($item->type == 'directory') {
-                echo "<li><img src=\"images/dir.gif\" alt=\"IMS CP Package\" /> <a href=\"?directory=$item->path\">$item->name</a></li>\n";
+                echo "<li><img src=\"images/dir.gif\" alt=\"IMS CP Package\" /> <a href=\"?directory=$item->path&amp;choose=$choose\">$item->name</a></li>\n";
             }
         }
     }
     exit;
     
 /// Generates the crumbtrial from $directory. Just splits up on '/'.
-    function ims_print_crumbtrail($directory) {
+    function ims_print_crumbtrail($directory, $choose='') {
         $strrepository = get_string('repository','resource');
         
         $arr = explode('/', $directory);
             return;
         }
         else {
-            $output = "<a href=\"?directory=\">$strrepository</a> &#187; ";
+            $output = "<a href=\"?directory=&amp;choose=$choose\">$strrepository</a> &#187; ";
         }
         $itemdir = '';
         foreach ($arr as $item) {
             if ($item == '') continue;
             $itemdir .= '/'.$item;
-            $output .= "<a href=\"?directory=$itemdir\">$item</a> &#187; ";
+            $output .= "<a href=\"?directory=$itemdir&amp;choose=$choose\">$item</a> &#187; ";
         }
         $output .= $last;
         echo $output;
index e07610e904b3a4a325014cf6a271166338faa6a3..5611c4c63ac131c0ab49607d31dad836fe1f41b4 100644 (file)
@@ -9,6 +9,7 @@
     require_once('repository_config.php');
     
     $directory = required_param ('directory', PARAM_PATH);
+    $choose = optional_param ('choose', 'id_reference_value', PARAM_FILE);
     $page = optional_param ('page', 0, PARAM_INT);
 
 /// Calculate the path of the IMS CP to be displayed
@@ -57,7 +58,9 @@
 /// content - this produces everything else
 
 /// adds side navigation bar if needed. must also adjust width of iframe to accomodate 
-    echo "<div id=\"ims-menudiv\">";  preview_buttons($directory, $items['title']); echo preview_ims_generate_toc($items, $directory, 0, $page); echo "</div>";
+    echo "<div id=\"ims-menudiv\">";  
+    preview_buttons($directory, $items['title'], $choose); 
+    echo preview_ims_generate_toc($items, $directory, 0, $page); echo "</div>";
     
     $fullurl = "$CFG->repositorywebroot/$directory/".$items[$page]->href;
 /// prints iframe filled with $fullurl ;width:".$iframewidth." missing also height=\"420px\"
         return $contents;
     }
     
-    function preview_buttons($directory, $name) {
+    function preview_buttons($directory, $name, $choose='') {
         $strchoose = get_string('choose','resource');
         $strback = get_string('back','resource');
         
         $arr = explode('/', $directory);
         array_pop($arr);
         $directory = implode('/', $arr);
-        echo "<div id=\"ims_preview_buttons\" style=\"padding:10px;\">
-              (<a href='finder.php?directory=$directory'>$strback</a>) 
-              (<a href=\"javascript:
-                        opener.document.forms['form'].reference.value = '#$path'; 
-                        opener.document.forms['form'].name.value = '$name'; 
-                        window.close();
-              \">$strchoose</a>)</div>";
+        ?>
+        <script type="text/javascript">
+        //<![CDATA[
+        function set_value(txt) {
+            opener.document.getElementById('<?php echo $choose ?>').value = txt;
+            window.close();
+        }
+        //]]>
+        </script>
+        <?php
+        echo "<div id=\"ims_preview_buttons\" style=\"padding:10px;\">".
+             "(<a href=\"finder.php?directory=$directory&amp;choose=$choose\">$strback</a>) ".
+             "(<a onclick=\"return set_value('#$path')\" href=\"#\">$strchoose</a>)</div>";
     }
     
 ?>