yakamara / yconverter

👨🏻‍🍳 YConverter - REDAXO Addon
25 stars 7 forks source link

value1 bis value20 auf serialisierte Daten prüfen und umwandeln #2

Closed tbaddade closed 7 years ago

tbaddade commented 7 years ago

Skript um nachträglich in R5 die Daten umzuwandeln

<?php
class R4
{
    public static function toArray($value)
    {
        $return = @unserialize($value);
        if (!$return) {
            $return = unserialize(htmlspecialchars_decode(str_replace('<br />', '', $value), ENT_QUOTES));
        }
        return is_array($return) ? $return : null;
    }
}
<?php
// Modulausgabe
$sql = rex_sql::factory();
$items = $sql->getArray('SELECT  id, 
                                value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, 
                                value11, value12, value13, value14, value15, value16, value17, value18, value19, value20 
                        FROM    rex_article_slice
                        WHERE   module_id = 5 
                            OR  module_id = 13
                            OR  module_id = 27');

foreach ($items as $item) {
    $sql = rex_sql::factory();
    $sql->setDebug();
    $sql->setTable('rex_article_slice');
    $sql->setWhere('id = :id', ['id' => $item['id']]);

    for ($i = 1; $i <= 20; $i++) {
        $column = 'value' . $i;
        $value = R4::toArray($item[$column]);
        if (is_array($value)) {
            $sql->setValue($column, json_encode($value));
        }
    }
    $sql->update();
}