use json rather than serialise for settings
This commit is contained in:
parent
16682dc400
commit
f7ce7fae0b
3 changed files with 35 additions and 7 deletions
|
@ -68,8 +68,8 @@ try {
|
||||||
$s->put('keep_empty_feed', false, 'boolean', 'Keep active empty feeds', false, true);
|
$s->put('keep_empty_feed', false, 'boolean', 'Keep active empty feeds', false, true);
|
||||||
$s->put('tag_case', 0, 'integer', 'How to transform imported tags', false, true);
|
$s->put('tag_case', 0, 'integer', 'How to transform imported tags', false, true);
|
||||||
$s->put('user', '', 'string', 'User id that has right on post', false, true);
|
$s->put('user', '', 'string', 'User id that has right on post', false, true);
|
||||||
$s->put('post_full_tpl', serialize(['post', 'category', 'tag', 'archive']), 'string', 'List of templates types for full feed', false, true);
|
$s->put('post_full_tpl', json_encode(['post', 'category', 'tag', 'archive']), 'string', 'List of templates types for full feed', false, true);
|
||||||
$s->put('post_title_redir', serialize(['feed']), 'string', 'List of templates types for redirection to original post', false, true);
|
$s->put('post_title_redir', json_encode(['feed']), 'string', 'List of templates types for redirection to original post', false, true);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
|
|
@ -106,7 +106,7 @@ class zcfsRsExtPosts extends rsExtPost
|
||||||
public static function getURL(dcRecord $rs): string
|
public static function getURL(dcRecord $rs): string
|
||||||
{
|
{
|
||||||
$url = $rs->zcFeed('url');
|
$url = $rs->zcFeed('url');
|
||||||
$types = @unserialize(dcCore::app()->blog->settings->__get(basename(dirname('../' . __DIR__)))->post_title_redir);
|
$types = json_decode(dcCore::app()->blog->settings->__get(basename(dirname('../' . __DIR__)))->post_title_redir);
|
||||||
$full = is_array($types) && in_array(dcCore::app()->url->type, $types);
|
$full = is_array($types) && in_array(dcCore::app()->url->type, $types);
|
||||||
|
|
||||||
return $url && $full ?
|
return $url && $full ?
|
||||||
|
@ -127,7 +127,7 @@ class zcfsRsExtPosts extends rsExtPost
|
||||||
$content = self::zcFeedBrother('getContent', [&$rs, $absolute_urls]);
|
$content = self::zcFeedBrother('getContent', [&$rs, $absolute_urls]);
|
||||||
|
|
||||||
if ($url && $sitename && $rs->post_type == 'post') {
|
if ($url && $sitename && $rs->post_type == 'post') {
|
||||||
$types = @unserialize(dcCore::app()->blog->settings->__get(basename(dirname('../' . __DIR__)))->post_full_tpl);
|
$types = json_decode(dcCore::app()->blog->settings->__get(basename(dirname('../' . __DIR__)))->post_full_tpl);
|
||||||
|
|
||||||
if (is_array($types) && in_array(dcCore::app()->url->type, $types)) {
|
if (is_array($types) && in_array(dcCore::app()->url->type, $types)) {
|
||||||
return $content . sprintf(
|
return $content . sprintf(
|
||||||
|
|
|
@ -29,10 +29,10 @@ class zcfsUpgrade
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// Rename settings
|
|
||||||
protected static function preUpgrade20221210()
|
protected static function preUpgrade20221210()
|
||||||
{
|
{
|
||||||
$settings_ids = [
|
// Rename settings
|
||||||
|
$setting_ids = [
|
||||||
'zoneclearFeedServer_active' => 'active',
|
'zoneclearFeedServer_active' => 'active',
|
||||||
'zoneclearFeedServer_pub_active' => 'pub_active',
|
'zoneclearFeedServer_pub_active' => 'pub_active',
|
||||||
'zoneclearFeedServer_post_status_new' => 'psot_new_status',
|
'zoneclearFeedServer_post_status_new' => 'psot_new_status',
|
||||||
|
@ -45,10 +45,38 @@ class zcfsUpgrade
|
||||||
'zoneclearFeedServer_post_title_redir' => 'post_title_redir',
|
'zoneclearFeedServer_post_title_redir' => 'post_title_redir',
|
||||||
];
|
];
|
||||||
|
|
||||||
foreach ($settings_ids as $old => $new) {
|
foreach ($setting_ids as $old => $new) {
|
||||||
$cur = dcCore::app()->con->openCursor(dcCore::app()->prefix . dcNamespace::NS_TABLE_NAME);
|
$cur = dcCore::app()->con->openCursor(dcCore::app()->prefix . dcNamespace::NS_TABLE_NAME);
|
||||||
$cur->setting_id = $new;
|
$cur->setting_id = $new;
|
||||||
$cur->update("WHERE setting_id = '" . $old . "' and setting_ns = 'zoneclearFeedServer' ");
|
$cur->update("WHERE setting_id = '" . $old . "' and setting_ns = 'zoneclearFeedServer' ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// use json rather than serialise
|
||||||
|
$setting_values = [
|
||||||
|
'post_full_tpl' => ['post', 'category', 'tag', 'archive'],
|
||||||
|
'post_title_redir' => ['feed']
|
||||||
|
];
|
||||||
|
|
||||||
|
$record = dcCore::app()->con->select(
|
||||||
|
'SELECT * FROM ' . dcCore::app()->prefix . dcNamespace::NS_TABLE_NAME . ' ' .
|
||||||
|
"WHERE setting_ns = '" . dcCore::app()->con->escape(basename(dirname('../' . __DIR__))) . "' "
|
||||||
|
);
|
||||||
|
|
||||||
|
while($record->fetch()) {
|
||||||
|
foreach($setting_values as $key => $default) {
|
||||||
|
try {
|
||||||
|
$value = @unserialize($record->__get($key));
|
||||||
|
} catch(Exception) {
|
||||||
|
$value = $default;
|
||||||
|
}
|
||||||
|
|
||||||
|
$cur = dcCore::app()->con->openCursor(dcCore::app()->prefix . dcNamespace::NS_TABLE_NAME);
|
||||||
|
$cur->setting_value = json_encode(!is_array($value) ? $default : $value);
|
||||||
|
$cur->update(
|
||||||
|
"WHERE setting_id = '" . $key . "' and setting_ns = '" . $record->setting_ns . "' " .
|
||||||
|
'AND blog_id ' . (null === $record->blog_id ? 'IS NULL ' : ("= '" . dcCore::app()->con->escape($record->blog_id) . "' "))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue