]> git.mjollnir.org Git - s9y.git/commitdiff
Upload multiple images at once: RFE #1174118
authorgarvinhicking <garvinhicking>
Mon, 18 Apr 2005 20:57:27 +0000 (20:57 +0000)
committergarvinhicking <garvinhicking>
Mon, 18 Apr 2005 20:57:27 +0000 (20:57 +0000)
Needs a bit TODO for renaming files.

24 files changed:
docs/NEWS
include/admin/images.inc.php
lang/serendipity_lang_bg.inc.php
lang/serendipity_lang_cn.inc.php
lang/serendipity_lang_cs.inc.php
lang/serendipity_lang_cz.inc.php
lang/serendipity_lang_da.inc.php
lang/serendipity_lang_de.inc.php
lang/serendipity_lang_en.inc.php
lang/serendipity_lang_es.inc.php
lang/serendipity_lang_fa.inc.php
lang/serendipity_lang_fi.inc.php
lang/serendipity_lang_fr.inc.php
lang/serendipity_lang_is.inc.php
lang/serendipity_lang_it.inc.php
lang/serendipity_lang_ja.inc.php
lang/serendipity_lang_ko.inc.php
lang/serendipity_lang_nl.inc.php
lang/serendipity_lang_no.inc.php
lang/serendipity_lang_pt.inc.php
lang/serendipity_lang_ru.inc.php
lang/serendipity_lang_tn.inc.php
lang/serendipity_lang_tw.inc.php
lang/serendipity_lang_zh.inc.php

index d3f9bd827ee868e325d4c8b169714c4eeef1a74e..4cb8c816e2ab2b4344914ac9f849b715a4586e45 100644 (file)
--- a/docs/NEWS
+++ b/docs/NEWS
@@ -3,6 +3,9 @@
 Version 0.9 ()
 ------------------------------------------------------------------------
 
+    * Media manager: Allow to upload as many files as you want via 
+      JavaScript interaction and "add more images" button. (garvinhicking)
+      
     * RSS feed does no longer initialize a session and thus now causes
       proper cachability for Conditional Get (garvinhicking)
 
index 12e57d1f57f2c9e29a683eca0db3e21c935f10c2..7b1978d9304fe162f22519990ea756285fd372bb 100644 (file)
@@ -112,8 +112,8 @@ switch ($serendipity['GET']['adminAction']) {
 
     // First find out whether to fetch a file or accept an upload
     if ($serendipity['POST']['imageurl'] != '' && $serendipity['POST']['imageurl'] != 'http://') {
-        if (!empty($serendipity['POST']['target_filename'])) {
-            $tfile   = $serendipity['POST']['target_filename'];
+        if (!empty($serendipity['POST']['target_filename'][1])) {
+            $tfile   = $serendipity['POST']['target_filename'][1];
         } else {
             $tfile   = basename($serendipity['POST']['imageurl']);
         }
@@ -124,8 +124,8 @@ switch ($serendipity['GET']['adminAction']) {
         }
 
         $tfile = serendipity_uploadSecure($tfile);
-        $serendipity['POST']['target_directory'] = serendipity_uploadSecure($serendipity['POST']['target_directory'], true);
-        $target = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $serendipity['POST']['target_directory'] . $tfile;
+        $serendipity['POST']['target_directory'][1] = serendipity_uploadSecure($serendipity['POST']['target_directory'][1], true);
+        $target = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $serendipity['POST']['target_directory'][1] . $tfile;
 
         if (file_exists($target)) {
             echo '(' . $target . ') ' . ERROR_FILE_EXISTS_ALREADY;
@@ -156,47 +156,60 @@ switch ($serendipity['GET']['adminAction']) {
                     printf(FILE_FETCHED . '<br />', $serendipity['POST']['imageurl'], $tfile);
 
                     // Create thumbnail
-                    if ( $created_thumbnail = serendipity_makeThumbnail($tfile, $serendipity['POST']['target_directory']) ) {
+                    if ( $created_thumbnail = serendipity_makeThumbnail($tfile, $serendipity['POST']['target_directory'][1]) ) {
                         echo THUMB_CREATED_DONE . '<br />';
                     }
                     // Insert into database
-                    $image_id = serendipity_insertImageInDatabase($tfile, $serendipity['POST']['target_directory'], $authorid);
+                    $image_id = serendipity_insertImageInDatabase($tfile, $serendipity['POST']['target_directory'][1], $authorid);
                 }
             }
         }
     } else {
-        if (!empty($serendipity['POST']['target_filename'])) {
-            $tfile   = $serendipity['POST']['target_filename'];
-        } else {
-            $tfile   = $_FILES['userfile']['name'];
-        }
-
-        if ($serendipity['serendipityUserlevel'] < USERLEVEL_ADMIN && preg_match('@\.(php[34]?|[ps]html?)$@i', $tfile)) {
-            printf(ERROR_FILE_FORBIDDEN, $tfile);
+        if (!is_array($serendipity['POST']['target_filename'])) {
             break;
         }
-
-        $tfile = serendipity_uploadSecure($tfile);
-        $serendipity['POST']['target_directory'] = serendipity_uploadSecure($serendipity['POST']['target_directory'], true);
-        $target = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $serendipity['POST']['target_directory'] . $tfile;
-
-        if (file_exists($target)) {
-            echo '(' . $target . ') ' . ERROR_FILE_EXISTS_ALREADY;
-        } else {
-            // Accept file
-            if (move_uploaded_file($_FILES['userfile']['tmp_name'], $target)) {
-                printf(FILE_UPLOADED . '<br />', $_FILES['userfile']['name'], $target);
-                @umask(0000);
-                @chmod($target, 0664);
-
-                // Create thumbnail
-                if ( $created_thumbnail = serendipity_makeThumbnail($tfile, $serendipity['POST']['target_directory']) ) {
-                    echo THUMB_CREATED_DONE . '<br />';
-                }
-                // Insert into database
-                $image_id = serendipity_insertImageInDatabase($tfile, $serendipity['POST']['target_directory'], $authorid);
+        
+        foreach($serendipity['POST']['target_filename'] AS $idx => $target_filename) {
+            $uploadfile = &$_FILES['serendipity']['name']['userfile'][$idx];
+            $uploadtmp  = &$_FILES['serendipity']['tmp_name']['userfile'][$idx];
+            if (!empty($target_filename)) {
+                $tfile   = $target_filename;
+            } elseif (!empty($uploadfile)) {
+                $tfile   = $uploadfile;
+            } else {
+                // skip empty array
+                continue;
+            }
+            
+            if ($serendipity['serendipityUserlevel'] < USERLEVEL_ADMIN && preg_match('@\.(php[34]?|[ps]html?)$@i', $tfile)) {
+                printf(ERROR_FILE_FORBIDDEN, $tfile);
+                echo '<br />';
+                continue;
+            }
+    
+            $tfile = serendipity_uploadSecure($tfile);
+            $serendipity['POST']['target_directory'][$idx] = serendipity_uploadSecure($serendipity['POST']['target_directory'][$idx], true);
+            $target = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $serendipity['POST']['target_directory'][$idx] . $tfile;
+    
+            if (file_exists($target)) {
+                echo '(' . $target . ') ' . ERROR_FILE_EXISTS_ALREADY;
+                echo '<br />';
             } else {
-                echo ERROR_UNKNOWN_NOUPLOAD . '<br />';
+                // Accept file
+                if (move_uploaded_file($uploadtmp, $target)) {
+                    printf(FILE_UPLOADED . '<br />', $uploadfile, $target);
+                    @umask(0000);
+                    @chmod($target, 0664);
+    
+                    // Create thumbnail
+                    if ( $created_thumbnail = serendipity_makeThumbnail($tfile, $serendipity['POST']['target_directory'][$idx]) ) {
+                        echo THUMB_CREATED_DONE . '<br />';
+                    }
+                    // Insert into database
+                    $image_id = serendipity_insertImageInDatabase($tfile, $serendipity['POST']['target_directory'][$idx], $authorid);
+                } else {
+                    echo ERROR_UNKNOWN_NOUPLOAD . '<br />';
+                }
             }
         }
     }
@@ -337,9 +350,75 @@ switch ($serendipity['GET']['adminAction']) {
     <?php echo ADD_MEDIA_BLAHBLAH; ?>
 
     <script type="text/javascript">
-    function getfilename(field, value) {
+    function getfilename(value) {
         re = /^.+[\/\\]+?(.+)$/;
-        document.getElementById(field).value = value.replace(re, "$1");
+        return value.replace(re, "$1");
+    }
+
+    function hideForeign() {
+        document.getElementById('foreign_upload').style.display = 'none';
+        document.getElementById('imageurl').value = '';
+    }
+
+    var fieldcount = 1;
+    function addField() {
+        fieldcount++;
+
+        fields = document.getElementById('upload_template').cloneNode(true);
+        fields.id = 'upload_form_' + fieldcount;
+        fields.style.display = 'block';
+
+        // Now, this is easy... ;-)
+        userfile       = fields.childNodes[1].childNodes[1].childNodes[0].childNodes[3].childNodes[0];
+        targetfilename = fields.childNodes[1].childNodes[1].childNodes[4].childNodes[3].childNodes[0];
+        targetdir      = fields.childNodes[1].childNodes[1].childNodes[6].childNodes[3].childNodes[0];
+        columncount    = fields.childNodes[3].childNodes[0];
+
+        userfile.id   = 'userfile_' + fieldcount;
+        userfile.name = 'serendipity[userfile][' + fieldcount + ']';
+        
+        targetfilename.id   = 'target_filename_' + fieldcount;
+        targetfilename.name = 'serendipity[target_filename][' + fieldcount + ']';
+        
+        targetdir.id   = 'target_directory_' + fieldcount;
+        targetdir.name = 'serendipity[target_directory][' + fieldcount + ']';
+        
+        columncount.id   = 'column_count_' + fieldcount;
+        columncount.name = 'serendipity[column_count][' + fieldcount + ']';
+
+        iNode = document.getElementById('upload_form');
+        iNode.parentNode.insertBefore(fields, iNode);
+    }
+    
+    var inputStorage = new Array();
+    function checkInputs() {
+        for (i = 1; i <= fieldcount; i++) {
+            if (!inputStorage[i]) {
+                fillInput(i, i);
+            } else if (inputStorage[i] == document.getElementById('target_filename_' + i).value) {
+                fillInput(i, i);
+            }
+        }
+    }
+    
+    // TODO: This does not yet work as expected and if an imageurl is entered it will overwrite the custom name again
+    function fillInput(source, target) {
+        // First field is a special value for foreign URLs instead of uploaded files
+        if (source == 1) {
+            sourceval = getfilename(document.getElementById('imageurl').value);
+        } else {
+            sourceval = getfilename(document.getElementById('userfile_' + source).value);
+        } 
+
+        if (sourceval.length > 0) {
+            document.getElementById('target_filename_' + target).value = sourceval;
+            inputStorage[target] = document.getElementById('target_filename_' + target).value;
+        }
+
+        // Display filename in duplicte form as well!
+        if (source == 1 && target == 1) {
+            fillInput(1, 2);
+        }
     }
     </script>
 
@@ -357,10 +436,13 @@ switch ($serendipity['GET']['adminAction']) {
             }
         }
 ?>
-            <table>
+            <table id="foreign_upload">
                 <tr>
                     <td nowrap="nowrap"><?php echo ENTER_MEDIA_URL; ?></td>
-                    <td><input type="text" name="serendipity[imageurl]" onblur="getfilename('target_filename', this.value);" onchange="getfilename('target_filename', this.value);" onkeyup="getfilename('target_filename', this.value);" value="" size="40" /></td>
+                    <td><input type="text" id="imageurl" name="serendipity[imageurl]" 
+                             onchange="checkInputs()" 
+                              value="" 
+                               size="40" /></td>
                 </tr>
                 <tr>
                     <td nowrap="nowrap"><?php echo ENTER_MEDIA_URL_METHOD; ?></td>
@@ -375,10 +457,16 @@ switch ($serendipity['GET']['adminAction']) {
                 <tr>
                     <td align="center" colspan="2"><b> - <?php echo WORD_OR; ?> - </b></td>
                 </tr>
+            </table>
 
+            <!-- WARNING: Do not change spacing or breaks below. If you do, the JavaScript childNodes need to be edited. Newlines count as nodes! -->
+            <div id="upload_template">
+            <table style="margin-top: 35px" id="upload_table">
                 <tr>
                     <td nowrap='nowrap'><?php echo ENTER_MEDIA_UPLOAD; ?></td>
-                    <td><input name="userfile" onchange="getfilename('target_filename', this.value);" onblur="getfilename('target_filename', this.value);" onkeyup="getfilename('target_filename', this.value);" type="file" /></td>
+                    <td><input id="userfile_1" name="serendipity[userfile][1]" 
+                             onchange="checkInputs();" 
+                               type="file" /></td>
                 </tr>
 
                 <tr>
@@ -387,13 +475,12 @@ switch ($serendipity['GET']['adminAction']) {
 
                 <tr>
                     <td><?php echo SAVE_FILE_AS; ?></td>
-                    <td><input type="text" id="target_filename" name="serendipity[target_filename]" value="" size="40" /></td>
+                    <td><input type="text" id="target_filename_1" name="serendipity[target_filename][1]" value="" size="40" /></td>
                 </tr>
 
                 <tr>
                     <td><?php echo STORE_IN_DIRECTORY; ?></td>
-                    <td>
-                        <select name="serendipity[target_directory]">
+                    <td><select id="target_directory_1" name="serendipity[target_directory][1]">
                         <option value=""><?php echo BASE_DIRECTORY; ?></option>
                         <?php foreach (serendipity_traversePath($serendipity['serendipityPath'] . $serendipity['uploadPath']) as $folder) { ?>
                         <option <?php echo ($serendipity['GET']['only_path'] == $folder['relpath']) ? 'selected="selected"' : '' ?> value="<?php echo $folder['relpath'] ?>"><?php echo str_repeat('&nbsp;', $folder['depth']*2) . ' '. $folder['name'] ?></option>
@@ -401,11 +488,22 @@ switch ($serendipity['GET']['adminAction']) {
                         </select>
                     </td>
                 </tr>
-
-                <tr>
-                    <td align="right" colspan="2"><input type="checkbox" name="serendipity[all_authors]" value="true" checked="checked" id="all_authors" /><label for="all_authors"><?php echo ALL_AUTHORS; ?></label> <input type="submit" value="<?php echo GO; ?>" class="serendipityPrettyButton" /></td>
-                </tr>
-            </table>
+           </table>
+           <div id="ccounter"><input type="hidden" name="serendipity[column_count][1]" id="column_count_1" value="true" /></div>
+           </div>
+           
+           <script type="text/javascript">
+                document.getElementById('upload_template').style.display  = 'none';
+                document.write('<span id="upload_form"><' + '/span>');
+                addField();
+           </script>
+           
+            <div style="text-align: center; margin-top: 15px; margin-bottom: 15px">
+                <script type="text/javascript">
+                    document.write('<input class="serendipityPrettyButton" type="button" value="<?php echo IMAGE_MORE_INPUT; ?>" onclick="hideForeign(); addField()"' + '/><br' + '/>');
+                </script>
+                <input type="checkbox" name="serendipity[all_authors]" value="true" checked="checked" id="all_authors" /><label for="all_authors"><?php echo ALL_AUTHORS; ?></label> <input onclick="checkInputs();" type="submit" value="<?php echo GO; ?>" class="serendipityPrettyButton" />
+            </div>
         </div>
         <div><?php echo ADD_MEDIA_BLAHBLAH_NOTE; ?></div>
     </form>
index 4ab01b50b4810d3b5b16f2d10afe359d35a76bbe..c2963b23a3e705c1f2d215f0517db024d2d300fe 100644 (file)
 @define('FETCH_METHOD_HOTLINK', 'Hotlink to server'); // Translate
 @define('DELETE_HOTLINK_FILE', 'Deleted the hotlinked file entitled <b>%s</b>'); // Translate
 @define('SYNDICATION_PLUGIN_SHOW_MAIL', 'Show E-Mail addresses?');
+@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
 
 /* vim: set sts=4 ts=4 expandtab : */
 ?>
\ No newline at end of file
index 4a618c756a19a57f65a5c2c790323bd1c6fa6fb1..7cec8fa6983807fc880da5518f6cec1f006aa163 100644 (file)
 @define('FETCH_METHOD_HOTLINK', 'Hotlink to server'); // Translate
 @define('DELETE_HOTLINK_FILE', 'Deleted the hotlinked file entitled <b>%s</b>'); // Translate
 @define('SYNDICATION_PLUGIN_SHOW_MAIL', 'Show E-Mail addresses?');
+@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
 
 /* vim: set sts=4 ts=4 expandtab : */
 ?>
\ No newline at end of file
index 7eff04cb40a2b0780f05567d7e8c7e9adb4204f1..9477ab268766d69ce68704c4152417e1dc993187 100644 (file)
 @define('FETCH_METHOD_HOTLINK', 'Odkaz na server'); 
 @define('DELETE_HOTLINK_FILE', 'Vymazán odkazovaný soubor <b>%s</b>'); 
 @define('SYNDICATION_PLUGIN_SHOW_MAIL', 'Show E-Mail addresses?');
+@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
 
 /* vim: set sts=4 ts=4 expandtab : */
 ?>
\ No newline at end of file
index d1bf1a9cb4f2a194c4aea98f575b6e29aa1d9c1f..5d2b067284c45fe83879472d01eb47e8e564955c 100644 (file)
 @define('FETCH_METHOD_HOTLINK', 'Odkaz na server'); 
 @define('DELETE_HOTLINK_FILE', 'Vymazán odkazovaný soubor <b>%s</b>'); 
 @define('SYNDICATION_PLUGIN_SHOW_MAIL', 'Show E-Mail addresses?');
+@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
 
 /* vim: set sts=4 ts=4 expandtab : */
 ?>
\ No newline at end of file
index 3288b96345553c9e5ac53d4d77d5abdfe44bab65..77f69c526c98b7c104295e6dbf460f41bc5298aa 100644 (file)
 @define('FETCH_METHOD_HOTLINK', 'Hotlink til server');
 @define('DELETE_HOTLINK_FILE', 'Slet den hotlinked fil ved navn <b>%s</b>');
 @define('SYNDICATION_PLUGIN_SHOW_MAIL', 'Vis E-Mail adresser?');
+@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
 
 /* vim: set sts=4 ts=4 expandtab : */
 ?>
index dff9d255f612244d2855b88fd366c6ae4e11f461..b00da5dda97334960413d5615cddae805ae2f5dd 100644 (file)
 @define('FETCH_METHOD_HOTLINK', 'Nur zum Quellserver linken');
 @define('DELETE_HOTLINK_FILE', 'Link zu Datei namens <b>%s</b> löschen?');
 @define('SYNDICATION_PLUGIN_SHOW_MAIL', 'E-Mail Adressen einbinden?');
+@define('IMAGE_MORE_INPUT', 'Mehr Bilder hinzufügen');
 
 /* vim: set sts=4 ts=4 expandtab : */
 ?>
\ No newline at end of file
index 539f42f4267b10361b8baef8a758091be2a984aa..c991bec8b974c7a1a9efdca699b70e7ef0c81a18 100644 (file)
 @define('FETCH_METHOD_HOTLINK', 'Hotlink to server'); // Translate
 @define('DELETE_HOTLINK_FILE', 'Deleted the hotlinked file entitled <b>%s</b>'); // Translate
 @define('SYNDICATION_PLUGIN_SHOW_MAIL', 'Show E-Mail addresses?');
+@define('IMAGE_MORE_INPUT', 'Add more images');
 
 /* vim: set sts=4 ts=4 expandtab : */
 ?>
\ No newline at end of file
index fb8a357f5a649d730feca2e690f66d58844894a2..73cff57eb71d7c4e7a9ee5088b38063346a29166 100644 (file)
 @define('FETCH_METHOD_HOTLINK', 'Enlazar externamente al servidor');
 @define('DELETE_HOTLINK_FILE', 'Borrado el recurso enlazado externamente con el nombre <b>%s</b>');
 @define('SYNDICATION_PLUGIN_SHOW_MAIL', 'Show E-Mail addresses?');
+@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
 
 /* vim: set sts=4 ts=4 expandtab : */
 ?>
\ No newline at end of file
index 26790bcc9fe2a39f7318c72fdddd5fa8a9639e42..50a960034f80b3e11a0023d0b2f9cb5cdd4fdf95 100644 (file)
 @define('FETCH_METHOD_HOTLINK', 'لینک دادن به سرور');
 @define('DELETE_HOTLINK_FILE', 'لینک فایل <b>%s</b> حذف شد');
 @define('SYNDICATION_PLUGIN_SHOW_MAIL', 'آیا آدرس ایمیل ها دیده شود؟');
+@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
 
 /* vim: set sts=4 ts=4 expandtab : */
 ?>
\ No newline at end of file
index 9725dd5084b58ee76fddc21e64674a31f4a5c2b9..4b62ef540186b47b351e3cecaf02fa50b75153ac 100644 (file)
 @define('FETCH_METHOD_HOTLINK', 'Hotlink to server'); // Translate
 @define('DELETE_HOTLINK_FILE', 'Deleted the hotlinked file entitled <b>%s</b>'); // Translate
 @define('SYNDICATION_PLUGIN_SHOW_MAIL', 'Show E-Mail addresses?');
+@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
 
 /* vim: set sts=4 ts=4 expandtab : */
 ?>
\ No newline at end of file
index 11d3611a18131733ab9d7fe6f12001b0f8481f7f..c04da7f501b639b962b7fdb13030163ac99b0c1c 100644 (file)
 @define('FETCH_METHOD_HOTLINK', 'Hotlink to server'); // Translate
 @define('DELETE_HOTLINK_FILE', 'Deleted the hotlinked file entitled <b>%s</b>'); // Translate
 @define('SYNDICATION_PLUGIN_SHOW_MAIL', 'Show E-Mail addresses?');
+@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
 
 /* vim: set sts=4 ts=4 expandtab : */
 ?>
\ No newline at end of file
index 46ba192238327e60a4a1d1b232f13b61418aafa9..22ba7e2428c216f04f99a813ada8a732e5af6caa 100644 (file)
 @define('FETCH_METHOD_HOTLINK', 'Hotlinka á þjón');
 @define('DELETE_HOTLINK_FILE', 'Eyddi hotlinkaðri skrá, nefnd <b>%s</b>');
 @define('SYNDICATION_PLUGIN_SHOW_MAIL', 'Sýna netföng?');
+@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
 
 /* vim: set sts=4 ts=4 expandtab : */
 ?>
\ No newline at end of file
index 1a1fc86ebe6b3308d144f4aa1a44c1773f1370b1..b07390bab1e28ed67d4e7793cc7aa3606e37b04e 100644 (file)
 @define('FETCH_METHOD_HOTLINK', 'Hotlink to server'); // Translate
 @define('DELETE_HOTLINK_FILE', 'Deleted the hotlinked file entitled <b>%s</b>'); // Translate
 @define('SYNDICATION_PLUGIN_SHOW_MAIL', 'Show E-Mail addresses?');
+@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
 
 /* vim: set sts=4 ts=4 expandtab : */
 ?>
\ No newline at end of file
index b803587ab37b532144ac6727a575b9125e7ee063..0a3b0d831bffc2d38345fd7e2d4e76c6014eaadd 100644 (file)
@@ -665,6 +665,7 @@ Serendipity のアップグレードステージを無視しました。正し
 @define('FETCH_METHOD_HOTLINK', 'Hotlink to server'); // Translate
 @define('DELETE_HOTLINK_FILE', 'Deleted the hotlinked file entitled <b>%s</b>'); // Translate
 @define('SYNDICATION_PLUGIN_SHOW_MAIL', '電子メールアドレスを表示しますか?');
+@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
 
 /* vim: set sts=4 ts=4 expandtab : */
 ?>
index 76a41d62f5e9f40f462cbb83bb6be61e743078af..71c9b105b3b120606503092b1a64391fbf0f5878 100644 (file)
 @define('FETCH_METHOD_HOTLINK', 'Hotlink to server'); // Translate
 @define('DELETE_HOTLINK_FILE', 'Deleted the hotlinked file entitled <b>%s</b>'); // Translate
 @define('SYNDICATION_PLUGIN_SHOW_MAIL', 'Show E-Mail addresses?');
+@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
 
 /* vim: set sts=4 ts=4 expandtab : */
 ?>
\ No newline at end of file
index 719542f0596dfac6d9f38089f3bb7ba2de4ecf19..87b671cd0be6bc0fc2c24e94dbeb2e9668a13c60 100644 (file)
 @define('FETCH_METHOD_HOTLINK', 'Hotlink to server'); // Translate
 @define('DELETE_HOTLINK_FILE', 'Deleted the hotlinked file entitled <b>%s</b>'); // Translate
 @define('SYNDICATION_PLUGIN_SHOW_MAIL', 'Show E-Mail addresses?');
+@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
 
 /* vim: set sts=4 ts=4 expandtab : */
 ?>
\ No newline at end of file
index 3b1e5c85135032bb1a1a3a158ce1db0471e85fda..e45d8088b09c48f9d31dc8149cf84d265ec77a1f 100644 (file)
 @define('FETCH_METHOD_HOTLINK', 'Hotlink to server'); // Translate
 @define('DELETE_HOTLINK_FILE', 'Deleted the hotlinked file entitled <b>%s</b>'); // Translate
 @define('SYNDICATION_PLUGIN_SHOW_MAIL', 'Show E-Mail addresses?');
+@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
 
 ?>
\ No newline at end of file
index 35b58195de2c3a3b7a796168298bd848376c3b2d..b2017be09e1162e3b650b54ea232417be670cf69 100644 (file)
 @define('FETCH_METHOD_HOTLINK', 'Hotlink to server'); // Translate
 @define('DELETE_HOTLINK_FILE', 'Deleted the hotlinked file entitled <b>%s</b>'); // Translate
 @define('SYNDICATION_PLUGIN_SHOW_MAIL', 'Show E-Mail addresses?');
+@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
 
 /* vim: set sts=4 ts=4 expandtab : */
 ?>
\ No newline at end of file
index af8f2659b7b34b905e7017fa5abd13024244973d..2fffb5a4d3608d19db44cd5cbc1a1cf125d62a7e 100644 (file)
 @define('FETCH_METHOD_HOTLINK', 'Hotlink to server'); // Translate
 @define('DELETE_HOTLINK_FILE', 'Deleted the hotlinked file entitled <b>%s</b>'); // Translate
 @define('SYNDICATION_PLUGIN_SHOW_MAIL', 'Show E-Mail addresses?');
+@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
 
 /* vim: set sts=4 ts=4 expandtab : */
 ?>
\ No newline at end of file
index 7ebe642101a421d65263cd98516032f45a556e50..a67ed03ae310e0340b59718e9be6f46e601dc548 100644 (file)
 @define('FETCH_METHOD_HOTLINK', '盜連到主機');
 @define('DELETE_HOTLINK_FILE', '刪除盜連的檔案 <b>%s</b>');
 @define('SYNDICATION_PLUGIN_SHOW_MAIL', '顯示電子郵件嗎?');
+@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
 
 /* vim: set sts=4 ts=4 expandtab : */
 ?>
\ No newline at end of file
index 1bbf9b542d1f820f49e114a2264da3dd19a9acef..536c2be7bafb5e3a45b768d377bdcb0407f21c99 100644 (file)
 @define('FETCH_METHOD_HOTLINK', 'µs³s¨ì¥D¾÷');
 @define('DELETE_HOTLINK_FILE', '§R°£µs³sªºÀÉ®× <b>%s</b>');
 @define('SYNDICATION_PLUGIN_SHOW_MAIL', 'Åã¥Ü¹q¤l¶l¥ó¶Ü?');
+@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
 
 /* vim: set sts=4 ts=4 expandtab : */
 ?>
\ No newline at end of file
index 54b6fed7803626241cae46a48884bb3abcef66bc..aff3274a1b7dc277b02be0ef1b0fbe75bc797ca7 100644 (file)
 @define('FETCH_METHOD_HOTLINK', 'Hotlink to server'); // Translate
 @define('DELETE_HOTLINK_FILE', 'Deleted the hotlinked file entitled <b>%s</b>'); // Translate
 @define('SYNDICATION_PLUGIN_SHOW_MAIL', 'Show E-Mail addresses?');
+@define('IMAGE_MORE_INPUT', 'Add more images'); // Translate
 
 /* vim: set sts=4 ts=4 expandtab : */
 ?>
\ No newline at end of file