]> git.mjollnir.org Git - s9y.git/commitdiff
All work no play make garvin a dull boy
authorgarvinhicking <garvinhicking>
Tue, 11 Apr 2006 14:55:04 +0000 (14:55 +0000)
committergarvinhicking <garvinhicking>
Tue, 11 Apr 2006 14:55:04 +0000 (14:55 +0000)
docs/NEWS
include/functions_images.inc.php
include/functions_smarty.inc.php
templates/default/admin/media_items.tpl
templates/default/admin/media_pane.tpl [new file with mode: 0644]

index ee686c48b1150306ca9e076cd89290a6164ae629..a4806491be373ebb8b124509ff5005cc409ea160 100644 (file)
--- a/docs/NEWS
+++ b/docs/NEWS
@@ -10,7 +10,7 @@ Version 1.1-alpha4()
 
    * Make media manager able to store media properties (garvinhicking)
      TODO:
-        - Show more existing properties in edit interface [see TODO in file]
+        - Show more existing properties in edit interface/Smartify [see TODO in file]
         - Read/Parse EXIF metadata, ask which to import [config option?]
         - Search/Filter for specific properties/keywords
         - Move/rename images/directories (browse serendipity_entries to fix up image paths [using <img src="..." />]. Also move ALL images of a directory, like when moving s9y installations. Put this into "Sync Thumbs" or "Manage Directories" panel.
index 82995d2dd226d4bec37df3b376ab14d598bcf4e1..697d1ff7d6b6b8520f4264dca1265f83e8a757d7 100644 (file)
@@ -1163,7 +1163,6 @@ function serendipity_displayImageList($page = 0, $lineBreak = NULL, $manage = fa
     global $serendipity;
     static $debug = false;
 
-    $sort_row_interval = array(8, 16, 50, 100);
     $sortParams        = array('perpage', 'order', 'ordermode');
     $importParams      = array('adminModule', 'htmltarget', 'filename_only', 'textarea', 'subpage');
     $extraParems       = '';
@@ -1192,7 +1191,7 @@ function serendipity_displayImageList($page = 0, $lineBreak = NULL, $manage = fa
     $serendipity['GET']['only_path']     = serendipity_uploadSecure($limit_path . $serendipity['GET']['only_path'], true);
     $serendipity['GET']['only_filename'] = str_replace(array('*', '?'), array('%', '_'), $serendipity['GET']['only_filename']);
 
-    $perPage = (!empty($serendipity['GET']['sortorder']['perpage']) ? $serendipity['GET']['sortorder']['perpage'] : $sort_row_interval[0]);
+    $perPage = (!empty($serendipity['GET']['sortorder']['perpage']) ? $serendipity['GET']['sortorder']['perpage'] : 8);
     $start   = ($page-1) * $perPage;
 
        ## SYNCH START ##
@@ -1329,99 +1328,11 @@ function serendipity_displayImageList($page = 0, $lineBreak = NULL, $manage = fa
     $pages         = ceil($totalImages / $perPage);
     $linkPrevious  = '?' . $extraParems . 'serendipity[page]=' . ($page-1);
     $linkNext      = '?' . $extraParems . 'serendipity[page]=' . ($page+1);
-    $sort_order    = serendipity_getImageFields();
     if (is_null($lineBreak)) {
         $lineBreak = floor(750 / ($serendipity['thumbSize'] + 20));
     }
-?>
-<form style="display: inline; margin: 0px; padding: 0px;" method="get" action="?">
-<?php
-    echo serendipity_setFormToken();
-    foreach($serendipity['GET'] AS $g_key => $g_val) {
-        if ( !is_array($g_val) && $g_key != 'page' ) {
-            echo '<input type="hidden" name="serendipity[' . $g_key . ']" value="' . htmlspecialchars($g_val) . '" />';
-        }
-    }
-?>
-    <table class="serendipity_admin_filters" width="100%">
-        <tr>
-            <td class="serendipity_admin_filters_headline" colspan="6"><strong><?php echo FILTERS ?></strong> - <?php echo FIND_MEDIA ?></td>
-        </tr>
-        <tr>
-            <td><?php echo FILTER_DIRECTORY ?></td>
-            <td><select name="serendipity[only_path]">
-                    <option value=""> <?php if (!$limit_path) { echo ALL_DIRECTORIES; } else { echo basename($limit_path);}?></option>
-                    <?php foreach ( $paths as $folder ) { ?>
-                    <option <?php echo ($serendipity['GET']['only_path'] == $limit_path.$folder['relpath']) ? 'selected="selected"' : '' ?> value="<?php echo $folder['relpath'] ?>"><?php echo str_repeat('&nbsp;', $folder['depth']*2) . ' '. $folder['name'] ?></option>
-                    <?php } ?>
-                </select>
-            </td>
-            <td><?php echo SORT_ORDER_NAME ?></td>
-            <td colspan="3"><input type="text" name="serendipity[only_filename]" value="<?php echo htmlspecialchars($serendipity['GET']['only_filename']); ?>" /></td>
-        </tr>
-        <tr>
-            <td class="serendipity_admin_filters_headline" colspan="6"><strong><?php echo SORT_ORDER ?></strong></td>
-        </tr>
-        <tr>
-            <td><?php echo SORT_BY ?></td>
-            <td><select name="serendipity[sortorder][order]">
-<?php
-        foreach($sort_order AS $so_key => $so_val) {
-            echo '<option value="' . $so_key . '" ' . (isset($serendipity['GET']['sortorder']['order']) && $serendipity['GET']['sortorder']['order'] == $so_key ? 'selected="selected"' : '') . '>' . $so_val . '</option>';
-        }
-?>              </select>
-</td>
-            <td><?php echo SORT_ORDER ?></td>
-            <td><select name="serendipity[sortorder][ordermode]">
-                    <option value="DESC" <?php echo (isset($serendipity['GET']['sortorder']['ordermode']) && $serendipity['GET']['sortorder']['ordermode'] == 'DESC' ? 'selected="selected"' : '') ?>><?php echo SORT_ORDER_DESC ?></option>
-                    <option value="ASC"  <?php echo (isset($serendipity['GET']['sortorder']['ordermode']) && $serendipity['GET']['sortorder']['ordermode'] == 'ASC'  ? 'selected="selected"' : '') ?>><?php echo SORT_ORDER_ASC  ?></option>
-                </select>
-            </td>
-            <td><?php echo FILES_PER_PAGE ?></td>
-            <td><select name="serendipity[sortorder][perpage]">
-<?php
-        foreach($sort_row_interval AS $so_val) {
-            echo '<option value="' . $so_val . '" ' . ($perPage == $so_val ? 'selected="selected"' : '') . '>' . $so_val . '</option>';
-        }
-?>              </select>
-            </td>
-        </tr>
-        <tr>
-            <td align="right" colspan="6">
-<?php
-        if ($show_upload) {
-?>
-                <input type="button" value="<?php echo htmlspecialchars(ADD_MEDIA); ?>" onclick="location.href='<?php echo $url; ?>&amp;serendipity[adminAction]=addSelect&amp;serendipity[only_path]=<?php echo urlencode($serendipity['GET']['only_path']); ?>'; return false" class="serendipityPrettyButton" />
-<?php
-        }
-?>
-                <input type="submit" name="go" value=" - <?php echo GO ?> - " class="serendipityPrettyButton" />
-            </td>
-        </tr>
-</table>
-</form>
-<?php if (sizeof($serendipity['imageList']) == 0) { ?>
-    <div align="center">- <?php echo NO_IMAGES_FOUND ?> -</div>
-<?php } else { ?>
-<table border="0" width="100%">
-    <tr>
-        <td colspan="<?php echo floor($lineBreak); ?>">
-            <table width="100%">
-                <tr>
-                    <td>
-                    <?php if ($page != 1 && $page <= $pages) { ?>
-                        <a href="<?php echo $linkPrevious ?>" class="serendipityIconLink"><img src="<?php echo serendipity_getTemplateFile('admin/img/previous.png') ?>" /><?php echo PREVIOUS ?></a>
-                    <?php } ?></td>
-                    <td align="right">
-                    <?php if ($page != $pages) { ?>
-                        <a href="<?php echo $linkNext ?>" class="serendipityIconLinkRight"><?php echo NEXT ?><img src="<?php echo serendipity_getTemplateFile('admin/img/next.png') ?>" /></a>
-                    <?php } ?></td>
-                </tr>
-            </table>
-        </td>
-    </tr>
-    <tr>
-<?php
+
+    if (count($serendipity['imageList']) > 0) {
         foreach ($serendipity['imageList'] as $k => $file) {
             if (!($serendipity['authorid'] == $file['authorid'] || $file['authorid'] == '0' || serendipity_checkPermission('adminImagesViewOthers'))) {
                 // This is a fail-safe continue. Basically a non-matching file should already be filtered in SQL.
@@ -1430,13 +1341,22 @@ function serendipity_displayImageList($page = 0, $lineBreak = NULL, $manage = fa
 
             serendipity_prepareMedia($serendipity['imageList'][$k], $url);
         }
-
-        serendipity_showMedia($serendipity['imageList'], $url, $manage, $lineBreak, true);
     }
-?>
-    </tr>
-</table>
-<?php
+
+    serendipity_showMedia(
+        $serendipity['imageList'],
+        $paths,
+        $url,
+        $manage,
+        $lineBreak,
+        true,
+        $limit_path,
+        $perPage,
+        $show_upload,
+        $page,
+        $pages,
+        $linkNext,
+        $linkPrevious);
 } // End serendipity_displayImageList()
 
 /**
@@ -1978,11 +1898,12 @@ function serendipity_showPropertyForm(&$new_media, $keywordsPerBlock = 3, $manag
         }
     }
 
+    $show = array();
     foreach($new_media AS $idx => $media) {
         $props =& serendipity_fetchMediaProperties($media['image_id']);
 
-        serendipity_prepareMedia($media['internal']);
-        serendipity_showMedia($file, $url, false, 1, false);
+        $show[$idx] =& $media['internal'];
+        serendipity_prepareMedia($show[$idx]);
 
         echo '<input type="hidden" name="serendipity[mediaProperties][' . $idx . '][image_id]"          value="' . (int)$media['image_id'] . '" />' . "\n";
 
@@ -2046,10 +1967,12 @@ function serendipity_showPropertyForm(&$new_media, $keywordsPerBlock = 3, $manag
             echo '</tr>' . "\n";
         }
         echo '</table></div>' . "\n";
-
-        // TODO: EXIF!
-        // TODO: Upload date, Dimensions, Filename, Autor, Mime, ...
     }
+
+    // TODO: SMARTIFY!
+    // TODO: EXIF!
+    // TODO: Upload date, Dimensions, Filename, Autor, Mime, ...
+    serendipity_showMedia($show, $mirror, $url, false, 1, false);
 ?>
         <br /><input type="submit" name="submit" value="<?php echo GO; ?>" class="serendipityPrettyButton" />
         </div>
@@ -2248,29 +2171,61 @@ function serendipity_prepareMedia(&$file, $url = '') {
  * @return boolean
  *
  */
-function serendipity_showMedia(&$file, $url = '', $manage = false, $lineBreak = 3, $enclose = true) {
+function serendipity_showMedia(&$file, &$paths, $url = '', $manage = false, $lineBreak = 3, $enclose = true, $limit_path = null, $perPage = 8, $show_upload = false, $page = 1, $pages = 1, $linkNext = '', $linkPrevious = '') {
     global $serendipity;
 
+    $form_hidden = '';
+    foreach($serendipity['GET'] AS $g_key => $g_val) {
+        if (!is_array($g_val) && $g_key != 'page') {
+            $form_hidden .= '<input type="hidden" name="serendipity[' . $g_key . ']" value="' . htmlspecialchars($g_val) . '" />';
+        }
+    }
+
     serendipity_smarty_init();
     $media = array(
-        'manage'       => $manage,
-        'lineBreak'    => $lineBreak,
-        'lineBreakP'   => round(1/$lineBreak*100),
-        'url'          => $url,
-        'enclose'      => $enclose,
-        'zoomIMG'      => serendipity_getTemplateFile('admin/img/big_zoom.png'),
-        'renameIMG'    => serendipity_getTemplateFile('admin/img/big_rename.png'),
-        'resizeIMG'    => serendipity_getTemplateFile('admin/img/big_resize.png'),
-        'rotatecwIMG'  => serendipity_getTemplateFile('admin/img/big_rotate_ccw.png'),
-        'rotateccwIMG' => serendipity_getTemplateFile('admin/img/big_rotate_cw.png'),
-        'configureIMG' => serendipity_getTemplateFile('admin/img/configure.png'),
-        'deleteIMG'    => serendipity_getTemplateFile('admin/img/big_delete.png')
-
+        'manage'            => $manage,
+        'lineBreak'         => $lineBreak,
+        'lineBreakP'        => round(1/$lineBreak*100),
+        'url'               => $url,
+        'enclose'           => $enclose,
+        'zoomIMG'           => serendipity_getTemplateFile('admin/img/big_zoom.png'),
+        'renameIMG'         => serendipity_getTemplateFile('admin/img/big_rename.png'),
+        'resizeIMG'         => serendipity_getTemplateFile('admin/img/big_resize.png'),
+        'rotatecwIMG'       => serendipity_getTemplateFile('admin/img/big_rotate_ccw.png'),
+        'rotateccwIMG'      => serendipity_getTemplateFile('admin/img/big_rotate_cw.png'),
+        'configureIMG'      => serendipity_getTemplateFile('admin/img/configure.png'),
+        'deleteIMG'         => serendipity_getTemplateFile('admin/img/big_delete.png'),
+        'prevIMG'           => serendipity_getTemplateFile('admin/img/previous.png'),
+        'nextIMG'           => serendipity_getTemplateFile('admin/img/next.png'),
+        'token'             => serendipity_setFormToken(),
+        'form_hidden'       => $form_hidden,
+        'limit_path'        => $limit_path,
+        'blimit_path'       => basename($limit_path),
+        'only_path'         => $serendipity['GET']['only_path'],
+        'only_filename'     => $serendipity['GET']['only_filename'],
+        'sortorder'         => $serendipity['GET']['sortorder'],
+        'sort_order'        => serendipity_getImageFields(),
+        'sort_row_interval' => array(8, 16, 50, 100),
+        'perPage'           => $perPage,
+        'show_upload'       => $show_upload,
+        'nr_files'          => count($file),
+        'page'              => $page,
+        'pages'             => $pages,
+        'linkNext'          => $linkNext,
+        'linkPrevious'      => $linkPrevious
     );
+
     $media['files'] =& $file;
+    $media['paths'] =& $paths;
 
     $serendipity['smarty']->assign('media', $media);
-    $serendipity['smarty']->display(serendipity_getTemplateFile('admin/media_items.tpl', 'serendipityPath'));
+
+    if ($enclose) {
+        serendipity_smarty_fetch('MEDIA_ITEMS', 'admin/media_items.tpl');
+        $serendipity['smarty']->display(serendipity_getTemplateFile('admin/media_pane.tpl', 'serendipityPath'));
+    } else {
+        $serendipity['smarty']->display(serendipity_getTemplateFile('admin/media_items.tpl', 'serendipityPath'));
+    }
 
     return true;
 }
\ No newline at end of file
index c7e096a5d58aaf98699b6219cde03e6d01c187e0..1976efdc62e54ca3c879b40c3b3f0c4f6759d11f 100644 (file)
@@ -580,7 +580,7 @@ function serendipity_smarty_init($vars = array()) {
 
         $serendipity['smarty']->config_dir    = &$serendipity['smarty']->template_dir[0];
         $serendipity['smarty']->secure_dir    = array($serendipity['serendipityPath'] . $serendipity['templatePath']);
-        $serendipity['smarty']->security_settings['MODIFIER_FUNCS']  = array('sprintf', 'sizeof', 'count', 'rand', 'print_r');
+        $serendipity['smarty']->security_settings['MODIFIER_FUNCS']  = array('sprintf', 'sizeof', 'count', 'rand', 'print_r', 'str_repeat');
         $serendipity['smarty']->security_settings['ALLOW_CONSTANTS'] = true;
         $serendipity['smarty']->security      = true;
         $serendipity['smarty']->use_sub_dirs  = false;
index 655ff1041547365d624e2f0c66ca47ed563d3e2d..34d2a41db3a06f2800fe33a782c3a0c4b47e075c 100644 (file)
             </tr>
         </table>
     {/if}
+
+    {if $media.enclose}
     </td>
+    {/if}
 
     {if $media.enclose AND (($smarty.foreach.mediafiles.iteration % $media.lineBreak) == 0)}
     </tr><tr>
diff --git a/templates/default/admin/media_pane.tpl b/templates/default/admin/media_pane.tpl
new file mode 100644 (file)
index 0000000..da26390
--- /dev/null
@@ -0,0 +1,85 @@
+<form style="display: inline; margin: 0px; padding: 0px;" method="get" action="?">
+    {$media.token}
+    {$media.form_hidden}
+    <table class="serendipity_admin_filters" width="100%">
+        <tr>
+            <td class="serendipity_admin_filters_headline" colspan="6"><strong>{$CONST.FILTERS}</strong> - {$CONST.FIND_MEDIA}</td>
+        </tr>
+        <tr>
+            <td>{$CONST.FILTER_DIRECTORY}</td>
+            <td><select name="serendipity[only_path]">
+                    <option value="">{if NOT $media.limit_path}{$CONST.ALL_DIRECTORIES}{else}{$media.blimit_path}{/if}</option>
+                    {foreach from=$media.paths item="folder"}
+                    <option {if ($media.only_path == $media.limit_path|cat:$folder.relpath)}selected="selected"{/if} value="{$folder.relpath}">{'&nbsp;'|str_repeat:$folder.depth*2}{$folder.name}</option>
+                    {/foreach}
+                </select>
+            </td>
+            <td>{$CONST.SORT_ORDER_NAME}</td>
+            <td colspan="3"><input type="text" name="serendipity[only_filename]" value="{$media.only_filename|@escape}" /></td>
+        </tr>
+        <tr>
+            <td class="serendipity_admin_filters_headline" colspan="6"><strong>{$CONST.SORT_ORDER}</strong></td>
+        </tr>
+        <tr>
+            <td>{$CONST.SORT_BY}</td>
+            <td>
+                <select name="serendipity[sortorder][order]">
+                {foreach from=$media.sort_order item="so_val" key="so_key"}
+                    <option value="{$so_key}" {if $media.sortorder.order == $so_key}selected="selected"{/if}>{$so_val}</option>
+                {/foreach}
+                </select>
+            </td>
+            <td>{$CONST.SORT_ORDER}</td>
+            <td><select name="serendipity[sortorder][ordermode]">
+                    <option value="DESC" {if $media.sortorder.ordermode == 'DESC'}selected="selected"{/if}>{$CONST.SORT_ORDER_DESC}</option>
+                    <option value="ASC"  {if $media.sortorder.ordermode == 'ASC'}selected="selected"{/if}>{$CONST.SORT_ORDER_ASC }</option>
+                </select>
+            </td>
+            <td>{$CONST.FILES_PER_PAGE}</td>
+            <td>
+                <select name="serendipity[sortorder][perpage]">
+                {foreach from=$media.sort_row_interval item="so_val"}
+                <option value="{$so_val}" {if $media.perPage == $so_val}selected="selected"{/if}>{$so_val}</option>
+                {/foreach}
+                </select>
+            </td>
+        </tr>
+        <tr>
+            <td align="right" colspan="6">
+            {if $media.show_upload}
+                <input type="button" value="{$CONST.ADD_MEDIA|@escape}" onclick="location.href='{$media.url}&amp;serendipity[adminAction]=addSelect&amp;serendipity[only_path]={$media.only_path|escape:url}'; return false" class="serendipityPrettyButton" />
+            {/if}
+                <input type="submit" name="go" value=" - {$CONST.GO} - " class="serendipityPrettyButton" />
+            </td>
+        </tr>
+</table>
+</form>
+
+{if $media.nr_files < 1}
+    <div align="center">- {$CONST.NO_IMAGES_FOUND} -</div>
+{else}
+<table border="0" width="100%">
+    <tr>
+        <td colspan="{$media.lineBreak}">
+            <table width="100%">
+                <tr>
+                    <td>
+                    {if $media.page != 1 AND $media.page <= $media.pages}
+                        <a href="{$media.linkPrevious}" class="serendipityIconLink"><img src="{$media.prevIMG}"" />{$CONST.PREVIOUS}</a>
+                    {/if}
+                    </td>
+                    <td align="right">
+                    {if $media.page != $media.pages}
+                        <a href="{$media.linkNext}" class="serendipityIconLinkRight">{$CONST.NEXT}<img src="{$media.nextIMG}" /></a>
+                    {/if}
+                    </td>
+                </tr>
+            </table>
+        </td>
+    </tr>
+
+    <tr>
+    {$MEDIA_ITEMS}
+    </tr>
+</table>
+{/if}
\ No newline at end of file