]> git.mjollnir.org Git - s9y.git/commitdiff
Smartify "You chose..." page. Might not fully work yet.
authorgarvinhicking <garvinhicking>
Thu, 13 Apr 2006 18:25:55 +0000 (18:25 +0000)
committergarvinhicking <garvinhicking>
Thu, 13 Apr 2006 18:25:55 +0000 (18:25 +0000)
include/functions_images.inc.php
include/functions_smarty.inc.php
serendipity_admin_image_selector.php
templates/default/admin/media_choose.tpl [new file with mode: 0644]

index 2419195f83c5b76e6d4bb7b49ced133a55044e50..e5a62dbb40a35f7f831a5b087fa4a39fe8f0f43b 100644 (file)
@@ -1157,9 +1157,10 @@ function serendipity_calculate_aspect_size($width, $height, $newwidth) {
  * @param   string  The URL to use for pagination
  * @param   boolean Show the "upload media item" feature?
  * @param   boolean Restrict viewing images to a specific directory
- * @return null
+ * @param   boolean  If TRUE, will echo Smarty output.
+ * @return  string   Smarty block name
  */
-function serendipity_displayImageList($page = 0, $lineBreak = NULL, $manage = false, $url = NULL, $show_upload = false, $limit_path = NULL) {
+function serendipity_displayImageList($page = 0, $lineBreak = NULL, $manage = false, $url = NULL, $show_upload = false, $limit_path = NULL, $smarty_display = true) {
     global $serendipity;
     static $debug = false;
 
@@ -1352,14 +1353,15 @@ function serendipity_displayImageList($page = 0, $lineBreak = NULL, $manage = fa
         'linkNext'      => $linkNext,
         'linkPrevious'  => $linkPrevious
     );
-    serendipity_showMedia(
+    return serendipity_showMedia(
         $serendipity['imageList'],
         $paths,
         $url,
         $manage,
         $lineBreak,
         true,
-        $smarty_vars
+        $smarty_vars,
+        $smarty_display
     );
 } // End serendipity_displayImageList()
 
@@ -1950,7 +1952,7 @@ function serendipity_showPropertyForm(&$new_media, $keywordsPerBlock = 3, $is_ed
         'keywords'          => $keywords,
         'dprops'            => $dprops
     );
-    serendipity_showMedia(
+    return serendipity_showMedia(
         $show,
         $mirror,
         $url,
@@ -1958,8 +1960,6 @@ function serendipity_showPropertyForm(&$new_media, $keywordsPerBlock = 3, $is_ed
         1,
         false,
         $smarty_vars);
-
-    return true;
 }
 
 /**
@@ -2111,14 +2111,29 @@ function serendipity_prepareMedia(&$file, $url = '') {
         $full_perm = serendipity_checkPermission('adminImagesMaintainOthers');
     }
 
-       $sThumbSource = serendipity_getThumbNailPath($file['path'], $file['name'], $file['extension'], $file['thumbnail_name']);
-       $img          = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $sThumbSource;
-       if (!isset($file['imgsrc'])) {
-       $file['imgsrc'] = $serendipity['uploadHTTPPath'] . $file['path'] . $file['name'] . (!empty($file['thumbnail_name']) ? '.' . $file['thumbnail_name'] : '') . '.' . $file['extension'];
-       }
-       $file['dim']       = @getimagesize($img, $file['header']);
+       $sThumbSource           = serendipity_getThumbNailPath($file['path'], $file['name'], $file['extension'], $file['thumbnail_name']);
+       $file['full_thumb']     = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $sThumbSource;
+       $file['full_thumbHTTP'] = $serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $sThumbSource;
+
+    if ($file['hotlink']) {
+        $file['full_file']  = $file['path'];
+       $file['show_thumb'] = $file['path'];
+       if (!isset($file['imgsrc'])) {
+               $file['imgsrc'] = $file['show_thumb'];
+       }
+    } else {
+        $file['full_file']  = $serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $file['path'] . $file['name'] . '.'. $file['extension'];
+       $file['show_thumb'] = $file['full_thumbHTTP'];
+       if (!isset($file['imgsrc'])) {
+               $file['imgsrc'] = $serendipity['uploadHTTPPath'] . $file['path'] . $file['name'] . (!empty($file['thumbnail_name']) ? '.' . $file['thumbnail_name'] : '') . '.' . $file['extension'];
+       }
+    }
+
+    $file['links'] = array('imagelinkurl' => $file['full_file']);
+
+       $file['dim']       = @getimagesize($file['full_thumb'], $file['header']);
     $file['is_image']  = serendipity_isImage($file);
-    $file['full_file'] = $serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $file['path'] . $file['name'] . '.'. $file['extension'];
+
     $file['realfile']  = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $file['name'] . '.'. $file['extension'];
 
     if ($full_perm || $serendipity['authorid'] == $file['authorid'] || $file['authorid'] == '0') {
@@ -2128,13 +2143,17 @@ function serendipity_prepareMedia(&$file, $url = '') {
     }
 
     /* If it is an image, and the thumbnail exists */
-    if ($file['is_image'] && file_exists($img)) {
+    if ($file['is_image'] && file_exists($file['full_thumb'])) {
+        $file['thumbWidth']  = $file['dim'][0];
+        $file['thumbHeight'] = $file['dim'][1];
         $file['preview'] .= '<img src="' . $serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $sThumbSource . '" border="0" title="' . $file['path'] . $file['name'] . '" alt="'. $file['name'] . '" />';
         if ($url) {
             $file['preview'] = '<a href="'. $url .'&amp;serendipity[image]='. $file['id'] .'">'. $file['preview'] .'</a>';
         }
     } elseif ($file['is_image'] && $file['hotlink']) {
         $sizes = serendipity_calculate_aspect_size($file['dimensions_width'], $file['dimensions_height'], $serendipity['thumbSize']);
+        $file['thumbWidth']  = $sizes[0];
+        $file['thumbHeight'] = $sizes[1];
         $file['preview'] .= '<img src="' . $file['path'] . '" width="' . $sizes[0] . '" height="' . $sizes[1] . '" border="0" title="' . $file['path'] . '" alt="'. $file['name'] . '" />';
         if ($url) {
             $file['preview'] = '<a href="'. $url .'&amp;serendipity[image]='. $file['id'] .'">'. $file['preview'] .'</a>';
@@ -2171,10 +2190,11 @@ function serendipity_prepareMedia(&$file, $url = '') {
  * @param  int      how many media items to display per row
  * @param  boolean  Enclose within a table cell?
  * @param  array    Additional Smarty variables
- * @return boolean
+ * @param  boolean  If TRUE, will echo Smarty output.
+ * @return string   Smarty block name
  *
  */
-function serendipity_showMedia(&$file, &$paths, $url = '', $manage = false, $lineBreak = 3, $enclose = true, $smarty_vars = array()) {
+function serendipity_showMedia(&$file, &$paths, $url = '', $manage = false, $lineBreak = 3, $enclose = true, $smarty_vars = array(), $smarty_display = true) {
     global $serendipity;
 
     $form_hidden = '';
@@ -2219,13 +2239,19 @@ function serendipity_showMedia(&$file, &$paths, $url = '', $manage = false, $lin
 
     if ($enclose) {
         serendipity_smarty_fetch('MEDIA_ITEMS', 'admin/media_items.tpl');
-        $serendipity['smarty']->display(serendipity_getTemplateFile('admin/media_pane.tpl', 'serendipityPath'));
+        $block = 'admin/media_pane.tpl';
+        if ($smarty_display) {
+            $serendipity['smarty']->display(serendipity_getTemplateFile('admin/media_pane.tpl', 'serendipityPath'));
+        }
     } else {
         serendipity_smarty_fetch('MEDIA_ITEMS', 'admin/media_items.tpl');
-        $serendipity['smarty']->display(serendipity_getTemplateFile('admin/media_properties.tpl', 'serendipityPath'));
+        $block = 'admin/media_properties.tpl';
+        if ($smarty_display) {
+            $serendipity['smarty']->display(serendipity_getTemplateFile('admin/media_properties.tpl', 'serendipityPath'));
+        }
     }
 
-    return true;
+    return $block;
 }
 
 /**
index 0dcada4ca53f14bc4de4bcb8dc1ed5d27682c012..a62938a00d34471a188c0f7ba4d6bde4a339348e 100644 (file)
@@ -84,6 +84,31 @@ function serendipity_emptyPrefix($string, $prefix = ': ') {
     return (!empty($string) ? $prefix . htmlspecialchars($string) : '');
 }
 
+/**
+ * Smarty Modifier: Return a remembered variable
+ *
+ * @access public
+ * @param   string  The variable name
+ * @param   string  The wanted value
+ * @param   boolean Force default?
+ * @param   string  Returned attribute
+ * @return  string  The return string
+ */
+function serendipity_ifRemember($name, $value, $isDefault = false, $att = 'checked') {
+    global $serendipity;
+
+    if (!is_array($serendipity['COOKIE']) && !$isDefault) {
+        return false;
+    }
+
+    if ((!is_array($serendipity['COOKIE']) && $isDefault) ||
+        (!isset($serendipity['COOKIE']['serendipity_' . $name]) && $isDefault) ||
+        (isset($serendipity['COOKIE']['serendipity_' . $name]) && $serendipity['COOKIE']['serendipity_' . $name] == $value)) {
+
+        return " $att=\"$att\" ";
+    }
+}
+
 /**
  * Smarty Function: Fetch and print a single or multiple entries
  *
@@ -597,6 +622,7 @@ function serendipity_smarty_init($vars = array()) {
         $serendipity['smarty']->register_modifier('emptyPrefix', 'serendipity_emptyPrefix');
         $serendipity['smarty']->register_modifier('formatTime', 'serendipity_smarty_formatTime');
         $serendipity['smarty']->register_modifier('serendipity_utf8_encode', 'serendipity_utf8_encode');
+        $serendipity['smarty']->register_modifier('ifRemember', 'serendipity_ifRemember');
 
         $serendipity['smarty']->register_function('serendipity_printSidebar', 'serendipity_smarty_printSidebar');
         $serendipity['smarty']->register_function('serendipity_hookPlugin', 'serendipity_smarty_hookPlugin');
index 1b16cd190dab06b894ec226e57357c08228bded5..41d7512656879c9b8a5e6ee7b0f5c1a0ea11891d 100644 (file)
@@ -26,78 +26,14 @@ if (empty($serendipity['GET']['step']) && isset($serendipity['GET']['adminAction
     $serendipity['GET']['step'] = $serendipity['GET']['adminAction'];
 }
 
-function ifRemember($name, $value, $isDefault = false, $att = 'checked') {
-    global $serendipity;
-
-    if (!is_array($serendipity['COOKIE']) && !$isDefault) {
-        return false;
-    }
-
-    if ((!is_array($serendipity['COOKIE']) && $isDefault) ||
-        (!isset($serendipity['COOKIE']['serendipity_' . $name]) && $isDefault) ||
-        (isset($serendipity['COOKIE']['serendipity_' . $name]) && $serendipity['COOKIE']['serendipity_' . $name] == $value)) {
-
-        return " $att=\"$att\" ";
-    }
-}
-?>
-<html>
-    <head>
-        <title><?php echo SELECT_FILE; ?></title>
-        <meta http-equiv="Content-Type" content="text/html; charset=<?php echo LANG_CHARSET; ?>" />
-        <link rel="stylesheet" type="text/css" href="<?php echo serendipity_rewriteURL('serendipity_admin.css'); ?>" />
-        <link rel="stylesheet" type="text/css" href="<?php echo serendipity_getTemplateFile('treeview/tree.css'); ?>" />
-        <script type="text/javascript" src="bundled-libs/YahooUI/treeview/YAHOO.js"></script>
-        <script type="text/javascript" src="bundled-libs/YahooUI/treeview/treeview.js" ></script>
-    </head>
-
-    <script type="text/javascript">
-        function addLoadEvent(func) {
-          var oldonload = window.onload;
-          if (typeof window.onload != 'function') {
-            window.onload = func;
-          } else {
-            window.onload = function() {
-              oldonload();
-              func();
-            }
-          }
-        }
-
-        function SetCookie(name, value) {
-            var today  = new Date();
-            var expire = new Date();
-            expire.setTime(today.getTime() + (60*60*24*30));
-            document.cookie = 'serendipity[' + name + ']='+escape(value) + ';expires=' + expire.toGMTString();
-        }
-
-        function rememberOptions() {
-            el = document.getElementById('imageForm');
-            for (i = 0; i < el.elements.length; i++) {
-                elname = new String(el.elements[i].name);
-                elname = elname.replace(/\[/g, '_');
-                elname = elname.replace(/\]/g, '');
-
-                if (el.elements[i].type == 'radio') {
-                    if (el.elements[i].checked) {
-                        SetCookie(elname, el.elements[i].value);
-                    }
-                } else if (typeof(el.elements[i].options) == 'object') {
-                    SetCookie(elname, el.elements[i].options[el.elements[i].selectedIndex].value);
-                }
-            }
-        }
-    </script>
-<?php
+serendipity_smarty_init();
 if (empty($serendipity['GET']['step']) && $serendipity['GET']['page'] < 1) {
-    $GET_STRING = serendipity_build_query($_GET);
-?>
-<frameset id="media_frame" cols="20%,*">
-    <frame id="media_frame_tree" frameborder="0" name="tree" scrolling="auto" src="<?php echo $serendipity['serendipityHTTPPath']; ?>serendipity_admin_image_selector.php?<?php echo $GET_STRING; ?>&amp;serendipity[step]=tree" />
-    <frame id="media_frame_main" frameborder="0" name="media" src="<?php echo $serendipity['serendipityHTTPPath']; ?>serendipity_admin_image_selector.php?<?php echo $GET_STRING; ?>&amp;serendipity[step]=default" />
-</frameset>
-</html>
-<?php
+    $media = array(
+        'GET_STRING' => serendipity_build_query($_GET),
+        'frameset'   => true
+    );
+    $serendipity['smarty']->assign('media', $media);
+    $serendipity['smarty']->display(serendipity_getTemplateFile('admin/media_choose.tpl', 'serendipityPath'));
     return;
 }
 
@@ -105,23 +41,15 @@ $body_id = 'serendipityAdminBodyImageSelector';
 if ($serendipity['GET']['step'] === 'tree') {
     $body_id = 'serendipityAdminBodyImageSelectorTree';
 }
-?>
-<body id="<?php echo $body_id; ?>">
-
-<div class="serendipityAdminContent">
 
-<?php
-if (!empty($serendipity['GET']['only_path'])) {
-?>
-<script type="text/javascript">
-    if (parent.frames && parent.frames['tree']) {
-        parent.frames['tree'].document.getElementById('newdirlink').href =
-            parent.frames['tree'].basenewdirurl +
-            "<?php echo htmlspecialchars($serendipity['GET']['only_path']); ?>"
-    }
-</script>
-<?php
-}
+$media = array(
+    'body_id'   => $body_id,
+    'only_path' => $serendipity['GET']['only_path'],
+    'css'       => serendipity_rewriteURL('serendipity_admin.css'),
+    'css_tree'  => serendipity_getTemplateFile('treeview/tree.css'),
+    'token_url' => serendipity_setFormToken('url'),
+    'imgID'     => (int)$serendipity['GET']['image']
+);
 
 switch ($serendipity['GET']['step']) {
     case '1':
@@ -147,11 +75,19 @@ switch ($serendipity['GET']['step']) {
 
             switch ($serendipity['GET']['adminAction']) {
                 case 'addSelect':
+                    $media['case'] = 'external';
+                    ob_start();
                     include S9Y_INCLUDE_PATH . 'include/admin/images.inc.php';
+                    $media['external'] = ob_get_contents();
+                    ob_end_clean();
                     break 2;
 
                 case 'add':
+                    $media['case'] = 'external';
+                    ob_start();
                     include S9Y_INCLUDE_PATH . 'include/admin/images.inc.php';
+                    $media['external'] = ob_get_contents();
+                    ob_end_clean();
                     if (isset($created_thumbnail) && isset($image_id)) {
                         $serendipity['GET']['image'] = (int)$image_id; // $image_id is passed from images.inc.php
                         break;
@@ -160,183 +96,43 @@ switch ($serendipity['GET']['step']) {
                     }
             }
         }
+        $media['case'] = 'choose';
 
         $file           = serendipity_fetchImageFromDatabase($serendipity['GET']['image']);
+        $media['file'] = &$file;
         if (!is_array($file)) {
-            echo PERM_DENIED;
+            $media['perm_denied'] = true;
             break;
         }
-        $sThumbNail     = serendipity_getThumbNailPath($file['path'], $file['name'], $file['extension'], $file['thumbnail_name']);
-        $file['imgsrc'] = $serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $sThumbNail;
-
-        if ($file['hotlink']) {
-            $imgName    = $file['path'];
-        } else {
-            $imgName    = $serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $file['path'] . $file['name'] .'.'. $file['extension'];
-        }
 
-        $thumbbasename  = $sThumbNail;
+        serendipity_prepareMedia($file);
 
-        if ($file['hotlink']) {
-            $thumbName  = $file['path'];
-        } else {
-            $thumbName  = $serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $thumbbasename;
-        }
-        $thumbsize     = @getimagesize($serendipity['serendipityPath'] . $serendipity['uploadPath'] . $thumbbasename);
-        $is_image      = serendipity_isImage($file, true);
-?>
-<script type="text/javascript" language="JavaScript" src="<?php echo $serendipity['serendipityHTTPPath']; ?>serendipity_define.js.php"></script>
-<script type="text/javascript" language="Javascript" src="<?php echo $serendipity['serendipityHTTPPath']; ?>serendipity_editor.js"></script>
-
-<div>
-<?php
-        if (!file_exists($file['imgsrc']) && $is_image) {
-
-            $dimWidth  = $file['dimensions_width'];
-            $dimHeight = $file['dimensions_height'];
-
-            if ($file['hotlink']) {
-                $thumbDim    = @serendipity_calculate_aspect_size($dimWidth, $dimHeight, $serendipity['thumbSize']);
-                $thumbWidth  = $thumbDim[0];
-                $thumbHeight = $thumbDim[1];
-                $imgsrc      = $file['path'];
-            } else {
-                $thumbWidth  = $thumbsize[0];
-                $thumbHeight = $thumbsize[1];
-                $imgsrc      = $file['imgsrc'];
-            }
+        if ($file['is_image']) {
             $file['finishJSFunction'] = 'serendipity_imageSelector_done(\'' . htmlspecialchars($serendipity['GET']['textarea']) . '\')';
-            serendipity_plugin_api::hook_event('frontend_image_selector', $file);
-?>
-    <img align="right" src="<?php echo $imgsrc; ?>">
-    <h1><?php printf(YOU_CHOSE, $file['name']); ?></h1>
-    <p>
-        <form action="#" method="GET" id="imageForm" name="serendipity[selForm]" onsubmit="serendipity_imageSelector_done()">
-            <div>
-                <?php serendipity_plugin_api::hook_event('frontend_image_selector_hiddenfields', $file); ?>
-                <input type="hidden" name="imgThumbWidth"  value="<?php echo $thumbWidth; ?>" />
-                <input type="hidden" name="imgThumbHeight" value="<?php echo $thumbHeight; ?>" />
-                <input type="hidden" name="imgWidth"  value="<?php echo $dimWidth; ?>" />
-                <input type="hidden" name="imgHeight" value="<?php echo $dimHeight; ?>" />
-                <input type="hidden" name="imgID" value="<?php echo (int)$serendipity['GET']['image']; ?>" />
-                <input type="hidden" name="imgName"   value="<?php echo $imgName; ?>" />
-                <input type="hidden" name="thumbName" value="<?php echo $thumbName; ?>" />
-                <input type="hidden" name="hotlink" value="<?php echo $file['hotlink']; ?>" />
-                <?php if (!empty($serendipity['GET']['htmltarget'])) { ?>
-                <input type="hidden" name="serendipity[htmltarget]" value="<?php echo htmlspecialchars($serendipity['GET']['htmltarget']); ?>" />
-                <?php } ?>
-                <?php if (!empty($serendipity['GET']['filename_only'])) { ?>
-                <input type="hidden" name="serendipity[filename_only]" value="<?php echo htmlspecialchars($serendipity['GET']['filename_only']); ?>" />
-                <?php } ?>
 
-<?php
             if (!empty($serendipity['GET']['filename_only']) && $serendipity['GET']['filename_only'] !== 'true') {
-?>
-    <script type="text/javascript">
-        <?php serendipity_plugin_api::hook_event('frontend_image_add_filenameonly', $serendipity); ?>
-        <?php echo 'serendipity_imageSelector_done(\'' . htmlspecialchars($serendipity['GET']['textarea']) . '\')'; ?>
-    </script>
-<?php
-            } else {
-?>
-                <b><?php echo IMAGE_SIZE; ?>:</b>
-                <br />
-                <input id="radio_link_no" type="radio" name="serendipity[linkThumbnail]" value="no" <?php echo ifRemember('linkThumbnail', 'no', true); ?> /><label for="radio_link_no"><?php echo I_WANT_THUMB; ?></label><br />
-                <input id="radio_link_yes" type="radio" name="serendipity[linkThumbnail]" value="yes" <?php echo ifRemember('linkThumbnail', 'yes'); ?> /><label for="radio_link_yes"><?php echo I_WANT_BIG_IMAGE; ?></label><br />
-                <?php serendipity_plugin_api::hook_event('frontend_image_selector_imagesize', $file); ?>
-                <br />
-
-                <?php if (empty($serendipity['GET']['filename_only'])) { ?>
-                <b><?php echo IMAGE_ALIGNMENT; ?>:</b>
-                <br />
-                <input type="radio" name="serendipity[align]" <?php echo ifRemember('align', ''); ?>      value="" />                       <img src="<?php echo serendipity_getTemplateFile('img/img_align_top.png') ?>"   vspace="5" /><br />
-                <input type="radio" name="serendipity[align]" <?php echo ifRemember('align', 'left', true); ?>  value="left" /> <img src="<?php echo serendipity_getTemplateFile('img/img_align_left.png') ?>"  vspace="5" /><br />
-                <input type="radio" name="serendipity[align]" <?php echo ifRemember('align', 'right'); ?> value="right" />                  <img src="<?php echo serendipity_getTemplateFile('img/img_align_right.png') ?>" vspace="5" /><br />
-                <?php serendipity_plugin_api::hook_event('frontend_image_selector_imagealign', $file); ?>
-                <br />
-
-                <b><?php echo IMAGE_AS_A_LINK; ?>:</b>
-                <br />
-                <input id="radio_islink_yes" type="radio" name="serendipity[isLink]" value="yes" <?php echo ifRemember('isLink', 'yes', true); ?> /><label for="radio_islink_yes"> <?php echo I_WANT_NO_LINK; ?></label><br />
-                <input id="radio_islink_no"  type="radio" name="serendipity[isLink]" value="no" <?php  echo ifRemember('isLink', 'no'); ?> /><label for="radio_islink_no"> <?php echo I_WANT_IT_TO_LINK; ?></label>
-                <?php if ($file['hotlink']) { ?>
-                <input type="text"  name="serendipity[url]" size="30" value="<?php echo $file['path']; ?>" /><br />
-                <?php } else {
-                    $aArray = array('imagelinkurl' => $serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $file['path'] . $file['name'] .'.'. $file['extension']);
-                    serendipity_plugin_api::hook_event('frontend_image_selector_link_url', $aArray);
-                ?>
-                <input type="text"  name="serendipity[url]" size="30" value="<?php echo $aArray['imagelinkurl']?>" /><br />
-                <?php } ?>
-                <?php serendipity_plugin_api::hook_event('frontend_image_selector_imagelink', $file); ?>
-                <br />
-
-                <b><?php echo COMMENT; ?>:</b>
-                <br />
-                <textarea id="serendipity_imagecomment" name="serendipity[imagecomment]" rows="5" cols="40"></textarea>
-                <?php serendipity_plugin_api::hook_event('frontend_image_selector_imagecomment', $file); ?>
-                <br />
-                <?php } ?>
-
-                <?php serendipity_plugin_api::hook_event('frontend_image_selector_more', $file); ?>
-
-                <input type="button" value="<?php echo BACK; ?>" onclick="history.go(-1);" />
-                <input type="button" value="<?php echo DONE; ?>" onclick="rememberOptions(); <?php echo $file['finishJSFunction']; ?>" />
-                <?php serendipity_plugin_api::hook_event('frontend_image_selector_submit', $file); ?>
-<?php
+                $file['fast_select'] = true;
             }
-?>
-            </div>
-        </form>
-    </p>
-<?php
-    } else {
-        // What to do if file is no image.
-        // For the future, maybe allow the user to add title/link description and target window
-
-        if (!empty($serendipity['GET']['filename_only'])) {
-?>
-    <script type="text/javascript">
-        <?php serendipity_plugin_api::hook_event('frontend_image_add_filenameonly', $serendipity); ?>
-        parent.self.opener.serendipity_imageSelector_addToElement('<?php echo htmlspecialchars($imgName); ?>', '<?php echo htmlspecialchars($serendipity['GET']['htmltarget']); ?>');
-        parent.self.close();
-    </script>
-<?php
-        } else {
-?>
-    <script type="text/javascript">
-    block = '<a href="<?php echo htmlspecialchars($imgName); ?>" title="<?php echo htmlspecialchars($file['name'] . '.' . $file['extension']); ?>" target="_blank"><?php echo htmlspecialchars($file['name'] . '.' . $file['extension']); ?></a>';
-    <?php serendipity_plugin_api::hook_event('frontend_image_add_unknown', $serendipity); ?>
-    if (parent.self.opener.editorref) {
-        parent.self.opener.editorref.surroundHTML(block, '');
-    } else {
-        parent.self.opener.serendipity_imageSelector_addToBody(block, '<?php echo $serendipity['GET']['textarea']; ?>');
-    }
-    parent.self.close();
-    </script>
-<?php
         }
-    }
-    break;
+        break;
 
     case 'directoryDoCreate':
         $is_created = true;
     case 'directoryCreate':
         $serendipity['GET']['adminAction'] = $serendipity['GET']['step'];
+        $media['case'] = 'external';
+        ob_start();
         include S9Y_INCLUDE_PATH . 'include/admin/images.inc.php';
-
         if ($is_created) {
-?>
-<script type="text/javascript">
-if (parent.frames['tree']) {
-    parent.frames['tree'].location.href = parent.frames['tree'].location.href;
-    parent.frames['media'].location.href = '<?php echo $serendipity['serendipityHTTPPath']; ?>serendipity_admin_image_selector.php?serendipity[step]=default&serendipity[only_path]=<?php echo $new_dir; ?>';
-}
-</script>
-<?php
+            $media['is_created'] = $is_created;
+            $media['new_dir']    = $new_dir;
         }
+        $media['external'] = ob_get_contents();
+        ob_end_clean();
         break;
 
     case 'tree':
+        $media['case'] = 'tree';
        $aExclude = array("CVS" => true, ".svn" => true);
        serendipity_plugin_api::hook_event('backend_media_path_exclude_directories', $aExclude);
        $paths        = array();
@@ -359,74 +155,7 @@ if (parent.frames['tree']) {
                unset($aResultSet[$sKey]);
        }
         serendipity_directoryACL($paths, 'read');
-?>
-    <script type="text/javascript">
-    var toggle_state = 'expand';
-    function treeToggleAll() {
-        if (toggle_state == 'expand') {
-            toggle_state = 'collapse';
-            tree.expandAll();
-        } else {
-            toggle_state = 'expand';
-            tree.collapseAll();
-            coreNode.expand();
-        }
-    }
-    </script>
-
-    <div id="content">
-        <form name="mainForm" action="javscript:;">
-            <div class="newsItem">
-                <div id="expandcontractdiv">
-                    <a href="javascript:treeToggleAll()"><?php echo TOGGLE_ALL; ?></a>
-                </div>
-                <div id="treeDiv1"></div>
-            </div>
-        </form>
-    </div>
-
-    <div id="footerContainer">
-        <div id="footer">
-            <p><a id="newdirlink" target="media" class="serendipityPrettyButton" href="<?php echo $serendipity['serendipityHTTPPath']; ?>serendipity_admin_image_selector.php?serendipity[step]=directoryCreate"><?php echo WORD_NEW; ?></a></p>
-        </div>
-    </div>
-
-    <script type="text/javascript">
-       var tree;
-       var nodes = new Array();
-       var nodeIndex;
-       var coreNode = '';
-       var last_path = '';
-       var baseurl       = '<?php echo $serendipity['serendipityHTTPPath']; ?>serendipity_admin_image_selector.php?serendipity[step]=default&serendipity[only_path]=';
-    var basenewdirurl =  '<?php echo $serendipity['serendipityHTTPPath']; ?>serendipity_admin_image_selector.php?serendipity[step]=directoryCreate&serendipity[only_path]=';
-
-       function treeInit() {
-               tree = new YAHOO.widget.TreeView("treeDiv1");
-               tree.onExpand = function(node) {
-                   document.getElementById('newdirlink').href = basenewdirurl + node.data.relpath;
-               };
-
-        coreNode = new YAHOO.widget.TextNode("<?php echo MEDIA; ?>", tree.getRoot(), false);
-               coreNode.href = baseurl;
-               coreNode.target = 'media';
-        coreNode.expanded = true;
-<?php
-        foreach($paths AS $id => $item) {
-            echo '      var mydir = { id: "' . $id . '", label: "' . $item['name'] . '", target : "media", href: baseurl + "' . $item['relpath'] . '", relpath: "' . $item['relpath'] . '" };' . "\n";
-            if ($item['depth'] == 1) {
-                echo '      var tmpNode = new YAHOO.widget.TextNode(mydir, coreNode, false);' . "\n";
-            } else {
-                echo '      var tmpNode = new YAHOO.widget.TextNode(mydir, last_node_' . ($item['depth'] - 1) . ', false);' . "\n";
-            }
-            echo '      var last_node_' . $item['depth'] . ' = tmpNode;' . "\n";
-        }
-?>
-               tree.draw();
-       }
-
-    addLoadEvent(treeInit);
-    </script>
-<?php
+        $media['paths'] =& $paths;
         break;
 
     case 'default':
@@ -434,10 +163,15 @@ if (parent.frames['tree']) {
         if (!empty($serendipity['GET']['adminAction']) && $serendipity['GET']['adminModule'] == 'images' && $serendipity['GET']['adminAction'] != 'default') {
             // Might need to set $serendipity['adminFile_redirect'] here.
             $serendipity['adminFile']          = 'serendipity_admin_image_selector.php';
+            ob_start();
             include S9Y_INCLUDE_PATH . 'include/admin/images.inc.php';
+            $media['external'] = ob_get_contents();
+            $media['case'] = 'external';
+            ob_end_clean();
             break;
         }
 
+        $media['case'] = 'default';
         $add_url = '';
         if (!empty($serendipity['GET']['htmltarget'])) {
             $add_url .= '&amp;serendipity[htmltarget]=' . htmlspecialchars($serendipity['GET']['htmltarget']);
@@ -446,40 +180,28 @@ if (parent.frames['tree']) {
         if (!empty($serendipity['GET']['filename_only'])) {
             $add_url .= '&amp;serendipity[filename_only]=' . htmlspecialchars($serendipity['GET']['filename_only']);
         }
-?>
-
-<script type="text/javascript" language="javascript">
-<!--
-    function rename(id, fname) {
-        if(newname = prompt('<?php echo ENTER_NEW_NAME; ?>' + fname, fname)) {
-            newloc = '?<?php echo serendipity_setFormToken('url'); ?>&serendipity[adminModule]=images&serendipity[adminAction]=rename&serendipity[fid]='+ escape(id) + '&serendipity[newname]='+ escape(newname);
-            location.href=newloc;
-        }
-    }
-//-->
-</script>
 
-    <h1><?php echo SELECT_FILE; ?></h1>
-    <h2><?php echo CLICK_FILE_TO_INSERT; ?></h2>
-    <br />
-
-    <?php
         if (!isset($serendipity['thumbPerPage2'])) {
             $serendipity['thumbPerPage2'] = 3;
         }
 
-        serendipity_displayImageList(
+        ob_start();
+        $block = serendipity_displayImageList(
           isset($serendipity['GET']['page'])   ? $serendipity['GET']['page']   : 1,
           $serendipity['thumbPerPage2'],
           ($serendipity['showMediaToolbar'] ? true : false),
           '?serendipity[step]=1' . $add_url . '&amp;serendipity[textarea]='. $serendipity['GET']['textarea'],
-          true
+          true,
+          null,
+          false
         );
+        $media['external'] = ob_get_contents();
+        ob_end_clean();
+        serendipity_smarty_fetch('MEDIA_LIST', $block);
 }
-?>
-</div>
-</body>
-</html>
 
-<?php
-/* vim: set sts=4 ts=4 expandtab : */
+$media = array_merge($serendipity['GET'], $media);
+$serendipity['smarty']->assign('media', $media);
+$serendipity['smarty']->display(serendipity_getTemplateFile('admin/media_choose.tpl', 'serendipityPath'));
+
+/* vim: set sts=4 ts=4 expandtab : */
\ No newline at end of file
diff --git a/templates/default/admin/media_choose.tpl b/templates/default/admin/media_choose.tpl
new file mode 100644 (file)
index 0000000..4553ffa
--- /dev/null
@@ -0,0 +1,276 @@
+<html>
+    <head>
+        <title>{$CONST.SERENDIPITY_ADMIN_SUITE}: {$CONST.SELECT_FILE}</title>
+        <meta http-equiv="Content-Type" content="text/html; charset={$CONST.LANG_CHARSET}" />
+        <link rel="stylesheet" type="text/css" href="{$media.css}" />
+        <link rel="stylesheet" type="text/css" href="{$media.css_tree}" />
+        <script type="text/javascript" src="bundled-libs/YahooUI/treeview/YAHOO.js"></script>
+        <script type="text/javascript" src="bundled-libs/YahooUI/treeview/treeview.js" ></script>
+    </head>
+
+    <script type="text/javascript">
+        function addLoadEvent(func) {ldelim}
+          var oldonload = window.onload;
+          if (typeof window.onload != 'function') {ldelim}
+            window.onload = func;
+          {rdelim} else {ldelim}
+            window.onload = function() {ldelim}
+              oldonload();
+              func();
+            {rdelim}
+          {rdelim}
+        {rdelim}
+
+        function SetCookie(name, value) {ldelim}
+            var today  = new Date();
+            var expire = new Date();
+            expire.setTime(today.getTime() + (60*60*24*30));
+            document.cookie = 'serendipity[' + name + ']='+escape(value) + ';expires=' + expire.toGMTString();
+        {rdelim}
+
+        function rememberOptions() {ldelim}
+            el = document.getElementById('imageForm');
+            for (i = 0; i < el.elements.length; i++) {ldelim}
+                elname = new String(el.elements[i].name);
+                elname = elname.replace(/\[/g, '_');
+                elname = elname.replace(/\]/g, '');
+
+                if (el.elements[i].type == 'radio') {ldelim}
+                    if (el.elements[i].checked) {ldelim}
+                        SetCookie(elname, el.elements[i].value);
+                    {rdelim}
+                {rdelim} else if (typeof(el.elements[i].options) == 'object') {ldelim}
+                    SetCookie(elname, el.elements[i].options[el.elements[i].selectedIndex].value);
+                {rdelim}
+            {rdelim}
+        {rdelim}
+
+{if $media.only_path}
+        if (parent.frames && parent.frames['tree']) {ldelim}
+            parent.frames['tree'].document.getElementById('newdirlink').href =
+                parent.frames['tree'].basenewdirurl +
+                "{$media.only_path|@escape}"
+        {rdelim}
+{/if}
+
+{if $media.case == 'default'}
+        function rename(id, fname) {ldelim}
+            if (newname = prompt('{$CONST.ENTER_NEW_NAME}' + fname, fname)) {ldelim}
+                newloc = '?{$media.token_url}&serendipity[adminModule]=images&serendipity[adminAction]=rename&serendipity[fid]='+ escape(id) + '&serendipity[newname]='+ escape(newname);
+                location.href=newloc;
+            }
+        {rdelim}
+{/if}
+
+{if $media.case == 'tree'}
+    var toggle_state = 'expand';
+    function treeToggleAll() {ldelim}
+        if (toggle_state == 'expand') {ldelim}
+            toggle_state = 'collapse';
+            tree.expandAll();
+        {rdelim} else {ldelim}
+            toggle_state = 'expand';
+            tree.collapseAll();
+            coreNode.expand();
+        {rdelim}
+    {rdelim}
+{/if}
+    </script>
+
+{if $media.frameset}
+    <frameset id="media_frame" cols="20%,*">
+        <frame id="media_frame_tree" frameborder="0" name="tree" scrolling="auto" src="{$serendipityHTTPPath}serendipity_admin_image_selector.php?{$media.GET_STRING}&amp;serendipity[step]=tree" />
+        <frame id="media_frame_main" frameborder="0" name="media" src="{$serendipityHTTPPath}serendipity_admin_image_selector.php?{$media.GET_STRING}&amp;serendipity[step]=default" />
+    </frameset>
+    </html>
+{else}
+<body id="{$media.body_id}">
+
+<div class="serendipityAdminContent">
+{if $media.case == 'external'}
+
+    <!-- EXTERNAL MEDIA START -->
+    {if $media.is_created}
+    <script type="text/javascript">
+    if (parent.frames['tree']) {ldelim}
+        parent.frames['tree'].location.href  = parent.frames['tree'].location.href;
+        parent.frames['media'].location.href = '{$serendipityHTTPPath}serendipity_admin_image_selector.php?serendipity[step]=default&serendipity[only_path]={$media.new_dir}';
+    {rdelim}
+    </script>
+    {/if}
+    {$media.external}
+    <!-- EXTERNAL MEDIA END -->
+
+{elseif $media.case == 'default'}
+
+    <!-- MEDIA MANAGER START -->
+    <h1>{$CONST.SELECT_FILE}</h1>
+    <h2>{$CONST.CLICK_FILE_TO_INSERT}</h2>
+    <br />
+    {$media.external}
+    {$MEDIA_LIST}
+    <!-- MEDIA MANAGER END -->
+
+{elseif $media.case == 'choose'}
+
+    {if $perm_denied}
+        {$CONST.PERM_DENIED}
+    {else}
+
+    <!-- MEDIA SELECTION START -->
+    {$media.external}
+    <script type="text/javascript" language="JavaScript" src="{$serendipityHTTPPath}serendipity_define.js.php"></script>
+    <script type="text/javascript" language="Javascript" src="{$serendipityHTTPPath}serendipity_editor.js"></script>
+    <div>
+    {if $media.file.is_image}
+        {serendipity_hookPlugin hook="frontend_image_selector" eventData=$media.file hookAll=true}
+        <img align="right" src="{$media.file.imgsrc}" />
+        <h1>{$CONST.YOU_CHOSE|@sprintf:$media.file.name}</h1>
+        <p>
+            <form action="#" method="GET" id="imageForm" name="serendipity[selForm]" onsubmit="serendipity_imageSelector_done()">
+                <div>
+                    {serendipity_hookPlugin hookAll=true hook='frontend_image_selector_hiddenfields' eventData=$media.file}
+                    <input type="hidden" name="imgThumbWidth"  value="{$media.file.thumbWidth}" />
+                    <input type="hidden" name="imgThumbHeight" value="{$media.file.thumbHeight}" />
+                    <input type="hidden" name="imgWidth"  value="{$media.file.dimensions_width}" />
+                    <input type="hidden" name="imgHeight" value="{$media.file.dimensions_height}" />
+                    <input type="hidden" name="imgID" value="{$media.imgID}" />
+                    <input type="hidden" name="imgName"   value="{$media.file.full_file}" />
+                    <input type="hidden" name="thumbName" value="{$media.file.show_thumb}" />
+                    <input type="hidden" name="hotlink" value="{$media.file.hotlink}" />
+                    {if $media.htmltarget}
+                    <input type="hidden" name="serendipity[htmltarget]" value="{$media.htmltarget|@escape}" />
+                    {/if}
+                    {if $media.filename_only}
+                    <input type="hidden" name="serendipity[filename_only]" value="{$media.filename_only|@escape}" />
+                    {/if}
+
+                    {if $media.file.fast_select}
+                    <script type="text/javascript">
+                        {serendipity_hookPlugin hookAll=true hook='frontend_image_add_filenameonly' eventData=$media.file}
+                        serendipity_imageSelector_done('{$media.textarea|@escape}');
+                    </script>
+                    {else}
+                    <b>{$CONST.IMAGE_SIZE}:</b>
+                    <br />
+                    <input id="radio_link_no" type="radio"  name="serendipity[linkThumbnail]" value="no" {'linkThumbnail'|@ifRemember:'no':true} /><label for="radio_link_no">{$CONST.I_WANT_THUMB}</label><br />
+                    <input id="radio_link_yes" type="radio" name="serendipity[linkThumbnail]" value="yes" {'linkThumbnail'|@ifRemember:'yes'} /><label for="radio_link_yes">{$CONST.I_WANT_BIG_IMAGE}</label><br />
+                    {serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagesize' eventData=$media.file}
+                    <br />
+
+                    {if NOT $media.filename_only}
+                    <b>{$CONST.IMAGE_ALIGNMENT}:</b>
+                    <br />
+                    <input type="radio" name="serendipity[align]" {'align'|@ifRemember:''}           value="" />     <img src="{serendipity_getFile file='img/img_align_top.png'}"   vspace="5" /><br />
+                    <input type="radio" name="serendipity[align]" {'align'|@ifRemember:'left':true}  value="left" /> <img src="{serendipity_getFile file='img/img_align_left.png'}"  vspace="5" /><br />
+                    <input type="radio" name="serendipity[align]" {'align'|@ifRemember:'right'}      value="right" /><img src="{serendipity_getFile file='img/img_align_right.png'}" vspace="5" /><br />
+                    {serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagealign' eventData=$media.file}
+                    <br />
+
+                    <b>{$CONST.IMAGE_AS_A_LINK}:</b>
+                    <br />
+                    <input id="radio_islink_yes" type="radio" name="serendipity[isLink]" value="yes" {'isLink'|@ifRemember:'yes':true} /><label for="radio_islink_yes"> {$CONST.I_WANT_NO_LINK}</label><br />
+                    <input id="radio_islink_no"  type="radio" name="serendipity[isLink]" value="no"  {'isLink'|@ifRemember:'no'} /><label for="radio_islink_no"> {$CONST.I_WANT_IT_TO_LINK}</label>
+                    {if $media.file.hotlink}
+                    <input type="text"  name="serendipity[url]" size="30" value="{$media.file.path}" /><br />
+                    {else}
+                        {serendipity_hookPlugin hookAll=true hook='frontend_image_selector_link_url' eventData=$media.file.links}
+                        <input type="text"  name="serendipity[url]" size="30" value="{$media.file.links.imagelinkurl}" /><br />
+                    {/if}
+                    {serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagelink' eventData=$media.file}
+                    <br />
+
+                    <b>{$CONST.COMMENT}:</b>
+                    <br />
+                    <textarea id="serendipity_imagecomment" name="serendipity[imagecomment]" rows="5" cols="40"></textarea>
+                    {serendipity_hookPlugin hookAll=true hook='frontend_image_selector_imagecomment' eventData=$media.file}
+                    <br />
+                    {/if}
+
+                    {serendipity_hookPlugin hookAll=true hook='frontend_image_selector_more' eventData=$media.file}
+
+                    <input type="button" value="{$CONST.BACK}" onclick="history.go(-1);" />
+                    <input type="button" value="{$CONST.DONE}" onclick="rememberOptions(); {$media.file.finishJSFunction}" />
+                    {serendipity_hookPlugin hookAll=true hook='frontend_image_selector_submit' eventData=$media.file}
+                {/if}
+            </div>
+        </form>
+    </p>
+    {else}
+        {if $media.filename_only}
+        <script type="text/javascript">
+            {serendipity_hookPlugin hookAll=true hook='frontend_image_add_filenameonly' eventData=$media}
+            parent.self.opener.serendipity_imageSelector_addToElement('{$media.file.full_file|escape}', '{$media.htmltarget|@escape}');
+            parent.self.close();
+        </script>
+        {else}
+        <script type="text/javascript">
+            block = '<a href="{$media.file.full_file}" title="{$media.file.name|@escape}.{$media.file.extension|@escape}" target="_blank">{$media.file.name|@escape}.{$media.file.extension|@escape}</a>';
+            {serendipity_hookPlugin hookAll=true hook='frontend_image_add_unknown' eventData=$media}
+            if (parent.self.opener.editorref) {ldelim}
+                parent.self.opener.editorref.surroundHTML(block, '');
+            {rdelim} else {ldelim}
+                parent.self.opener.serendipity_imageSelector_addToBody(block, '{$media.textarea}');
+            {rdelim}
+            parent.self.close();
+        </script>
+        {/if}
+    {/if}
+    {/if}
+{elseif $media.case == 'tree'}
+    <div id="content">
+        <form name="mainForm" action="javscript:;">
+            <div class="newsItem">
+                <div id="expandcontractdiv">
+                    <a href="javascript:treeToggleAll()">{$CONST.TOGGLE_ALL}</a>
+                </div>
+                <div id="treeDiv1"></div>
+            </div>
+        </form>
+    </div>
+
+    <div id="footerContainer">
+        <div id="footer">
+            <p><a id="newdirlink" target="media" class="serendipityPrettyButton" href="{$serendipityHTTPPath}serendipity_admin_image_selector.php?serendipity[step]=directoryCreate">{$CONST.WORD_NEW}</a></p>
+        </div>
+    </div>
+
+    <script type="text/javascript">
+       var tree;
+       var nodes = new Array();
+       var nodeIndex;
+       var coreNode = '';
+       var last_path = '';
+       var last_node = new Array();
+       var baseurl       = '{$serendipityHTTPPath}serendipity_admin_image_selector.php?serendipity[step]=default&serendipity[only_path]=';
+    var basenewdirurl = '{$serendipityHTTPPath}serendipity_admin_image_selector.php?serendipity[step]=directoryCreate&serendipity[only_path]=';
+
+       function treeInit() {ldelim}
+               tree = new YAHOO.widget.TreeView("treeDiv1");
+               tree.onExpand = function(node) {ldelim}
+                   document.getElementById('newdirlink').href = basenewdirurl + node.data.relpath;
+               {rdelim};
+
+        coreNode          = new YAHOO.widget.TextNode("{$CONST.MEDIA}", tree.getRoot(), false);
+               coreNode.href     = baseurl;
+               coreNode.target   = 'media';
+        coreNode.expanded = true;
+        {foreach from=$media.paths item="item" key="id"}
+        mydir = {ldelim} id: "{$id}", label: "{$item.name}", target : "media", href: baseurl + "{$item.relpath}", relpath: "{$item.relpath}" {rdelim};
+        {if $item.depth == 1}
+        tmpNode = new YAHOO.widget.TextNode(mydir, coreNode, false);
+        {else}
+        tmpNode = new YAHOO.widget.TextNode(mydir, last_node[{$item.depth} - 1], false);
+        {/if}
+        last_node[{$item.depth}] = tmpNode;
+        {/foreach}
+               tree.draw();
+       {rdelim}
+
+    addLoadEvent(treeInit);
+    </script>
+{/if}
+</div>
+</body>
+</html>
+{/if}
\ No newline at end of file