Переход с MultiPhotos на SimpleGallery

Попал на доработки сайт с галереями на MultiPhotos, а значит появился повод написать скрипт для переноса их на SimpleGallery. Создаем возле index.php и запускаем:


<?php
define('MODX_API_MODE', true);
include_once("index.php");
$modx->db->connect();
if (empty ($modx->config)) {
    $modx->getSettings();
}
$modx->invokeEvent("OnManagerPageInit");

$tvIds = "0"; //Здесь указываем через запятую id параметров с галереями

$q = $modx->db->query("SELECT * FROM {$modx->getFullTableName('site_tmplvar_contentvalues')} WHERE `tmplvarid` IN ({$tvIds})");
include_once(MODX_BASE_PATH.'assets/plugins/simplegallery/lib/table.class.php');
$fs = \Helpers\FS::getInstance();
$sg = new \SimpleGallery\sgData($modx);
while ($row = $modx->db->getRow($q)) {
    $path = 'assets/galleries/'.$row['contentid'].'/';
    $images = json_decode($row['value'], true);
    if (!is_array($images)) continue;
    foreach ($images as $image) {
        $name = $fs->takeFileBaseName($image[0]);
        $fs->copyFile($image[0],$path.$name);
        $sg->create();
        $sg->set('sg_rid',$row['contentid']);
        $sg->set('sg_title',$image[2]);
        $sg->set('sg_description','');
        $sg->set('sg_image',$path.$name);
        $name = MODX_BASE_PATH . $path.$name;
        $info = getimagesize($name);
        $properties = array(
            'width' => $info[0],
            'height' => $info[1],
            'size' => filesize($name)
        );
        $sg->set('sg_properties',$properties);
        $sg->save();
    }
}

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

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