Автоматическое создание файла .CSV для Veppa

PHP
Сегодня решил сделать массовую загрузку изображений для CMS Veppa, посмотрел стандартный код загрузчика, а именно отвечающего за массовую загрузку картинок с помощью файла .CSV. Вобщем все очень интересно сделано и продумано по безопасности, что не хотелось бы что то менять и тут появилась идея об автоматической генерации файла insert.csv и использования стандартного загрузчика. Все оказалось очень просто и понятно и в тоже время нет необходимости прибегать к правки стандартного кода.

Вся суть решения генерации очень проста. Нужно открыть папку /insert/images/ и взять все картинки которые в ней находятся, далее открыть файл .csv и записать в него массив изображений.

Вот собственно и сам модуль, создайте файл training.php со следующим содержанием
<html>
<head>
<title>Подготовка файла .csv author Scriptland.com.ua</title>
<style>
* {margin:0;padding:0}
body {font-family: Arial, Helvetica, sans-serif;font-size: 12px;}
a {color:blue}
a:hover {color:red;text-decoration:none}
.content {margin:50px}
.content.green {color:green;background: #DBFFCE;padding:30px;border:1px solid #ADFFA0}
.content.red {color:red;background: #FFE5E5;padding:30px;border:1px solid #FF837C}
input.submit {padding:10px 30px;font-size:18px;}
input.text {padding:7px 25px;font-size:18px;margin-bottom:5px;}
</style>
</head>
<body>
<div class="content">
    <form action="" method="get">
        <input class="text" type="text" name="name" value="" placeholder="название"/><br />
        <input class="text" type="text" name="tags" value="" placeholder="теги"/><br />
        <input class="submit" type="submit" name="traning" value="подготовить файл .csv" />
    </form>
</div>
<?php
    function ImgFiles($vars) {
            $dir = opendir ($vars);
            while (false !== ($file = readdir($dir))) {
                if(($file !=".") && ($file !="..")) {
                $r[]= $file;
                }
            }
            closedir($dir);
            return $r; 
        }
    if($_GET['traning']) {
      $filename = $_SERVER['DOCUMENT_ROOT']. '/user-content/insert/insert.csv' ;
      $vars = $_SERVER['DOCUMENT_ROOT']. '/user-content/insert/images/' ;
      $var = "\"name\",\"img\",\"description\",\"tags\",\"artist\",\"site\"\n" ;
        if(ImgFiles($vars)) {
              foreach(ImgFiles($vars) as $value) {
                  $var .= "\"{$_GET['name']}\",\"{$value}\",\"\",\"{$_GET['tags']}\",\"\",\"\"\n" ;      
              } 
        
              $open = fopen($filename, 'a') or die ( '<div class="content red">Ошибка при открытии файла! Возможно файл пуст!</div>' );
              fwrite($open, $var) or die( '<div class="content red">Ошибка при записи в файл! Возможно недостаточно прав!</div>' );
              fclose($open);
    ?>
    
    <div class="content green">
        <div>Файл <font color="red"><?=$filename?></font> успешно подготовлен!</div> 
            <a href="/user-content/insert/insert.csv">Скачать</a> файл для просмотра.<br />
            Перейти к <a href="/admin/bulkPreview/">загрузке</a> картинок.
    </div>
<?php } else {?>
<div class="content red">Подготовка файла .csv не возможна, отсутствуют картинки в папке images</div>
<?php }
    } ?>
</body>
</html>


Загрузите файл в корневую директорию сайта
Перейдите по адресу
http://site.ru/training.php


Введите название и теги для картинок, нажмите на кнопку подготовки и следуйте сообщениям скрипта.
ПС. Один и тот же файл можно генерировать только один раз, если вы его обновите дважды или больше, то в файл добавятся такие же строки которые вы сгенерировали совсем недавно.
После того как вы сгенерировали файл и добавили картинки в базу данных, файл insert.csv удаляется вместе с картинками в папке images. Так что последующие ваши действия при загрузке картинок будут всего лишь загрузка новых картинок в папку images, файл insert.csv создается автоматически.

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.