diff --git a/index.php b/index.php index 896661c..4ee29b8 100644 --- a/index.php +++ b/index.php @@ -11,329 +11,252 @@ * @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html */ -if (!defined('DC_CONTEXT_ADMIN')){return;} +if (!defined('DC_CONTEXT_ADMIN')) { + return null; +} dcPage::check('admin'); -$s = $core->blog->settings->noodles; -$msg = isset($_POST['done']) ? __('Configuration successfully updated') : ''; -$tab = isset($_REQUEST['tab']) ? $_REQUEST['tab'] : 'blocs'; -$img_green = ''; -$img_red = ''; +include dirname(__FILE__) . '/inc/_default_noodles.php'; -include dirname(__FILE__).'/inc/_default_noodles.php'; +$s = $core->blog->settings->noodles; $__noodles = noodles::decode($s->noodles_object); - -if ($__noodles->isEmpty()) -{ +if ($__noodles->isEmpty()) { $__noodles = $__default_noodles; -} -else -{ +} else { $default_noodles_array = $__default_noodles->noodles(); - foreach($default_noodles_array AS $id => $noodle) - { - if ($__noodles->exists($id)) continue; - $__noodles->{$id} = $noodle; + foreach($default_noodles_array AS $id => $noodle) { + if ($__noodles->exists($id)) { + continue; + } + $__noodles->set($id, $noodle); } } - -if (!$s->noodles_active) -{ - $tab = 'settings'; +$public_path = path::real($core->blog->public_path); +if (!is_dir($public_path) || !is_writable($public_path)) { + $public_path = false; } +$default_images = files::scandir(dirname(__FILE__) . '/default-templates/img/'); +if (!is_array($default_images)) { + $default_images = []; +} +$default_image = $s->noodles_image; -$default_avatars_images = files::scandir(dirname(__FILE__).'/default-templates/img/'); -$avatar_paths = noodlesLibImagePath::getArray($core,'noodles'); - -$combo_active = array( - __('no') => 0, - __('yes') => 1 -); -$combo_place = array( +$combo_place = [ __('Begin') => 'prepend', __('End') => 'append', __('Before') => 'before', __('After') => 'after' -); -$combo_rating = array( - 'G'=>'g', - 'PG'=>'pg', - 'R'=>'r', - 'X'=>'x' -); -$combo_size = array( - '16px'=>16, - '24px'=>24, - '32px'=>32, - '48px'=>48, - '56px'=>56, - '64px'=>64, - '92px'=>92, - '128px'=>128, - '256px'=>256 -); +]; +$combo_rating = [ + 'G' => 'g', + 'PG' => 'pg', + 'R' => 'r', + 'X' => 'x' +]; +$combo_size = [ + '16px' => 16, + '24px' => 24, + '32px' => 32, + '48px' => 48, + '56px' => 56, + '64px' => 64, + '92px' => 92, + '128px' => 128, + '256px' => 256 +]; -if (!empty($_POST['save']) && $tab == 'settings') -{ - try - { - $s->put('noodles_active',$_POST['noodles_active'],'boolean'); +if (!empty($_POST['save'])) { + try { + $public_file = $public_path . '/noodles-default-image.png'; + $s->put('noodles_active', !empty($_POST['noodles_active']), 'boolean'); - # Destination image according to noodlesLibImagePath() - $dest_file = DC_ROOT.'/'.$s->public_path.'/noodles-default-image.png'; - - # user upload image - if ($_POST['noodles_image'] == 'user') - { - if (2 == $_FILES['noodlesuserfile']['error']) - { + // user upload image + if ($_POST['noodles_image'] == 'user' && !empty($public_path)) { + if (2 == $_FILES['noodlesuserfile']['error']) { throw new Exception(__('Maximum file size exceeded')); } - if ($_FILES['noodlesuserfile']['type'] != 'image/x-png') - { - throw new Exception(__('Image must be in png format')); - } - if (0 != $_FILES['noodlesuserfile']['error']) - { + if (0 != $_FILES['noodlesuserfile']['error']) { throw new Exception(__('Something went wrong while download file')); } - if ($_FILES['noodlesuserfile']['type'] != 'image/x-png') - { + if (!in_array($_FILES['noodlesuserfile']['type'], ['image/png', 'image/x-png'])) { throw new Exception(__('Image must be in png format')); } - if (move_uploaded_file($_FILES['noodlesuserfile']['tmp_name'],$dest_file)) - { - $s->put('noodles_image',1,'boolean'); + if (move_uploaded_file($_FILES['noodlesuserfile']['tmp_name'], $public_file)) { + $s->put('noodles_image', 1, 'boolean'); + } else { + throw new Exception(__('Failed to save image.')); } - } - # Default gravatar.com avatar - elseif ($_POST['noodles_image'] == 'gravatar.com') - { - $s->put('noodles_image',0,'boolean'); - } - # existsing noodles image on blog - elseif ($_POST['noodles_image'] == 'existsing') - { - $s->put('noodles_image',1,'boolean'); - } - # noodles image - elseif (preg_match('/^gravatar-[0-9]+.png$/',$_POST['noodles_image'])) - { - $source = dirname(__FILE__).'/default-templates/img/'.$_POST['noodles_image']; - if (!file_exists($source)) - { + // Default gravatar.com avatar + } elseif ($_POST['noodles_image'] == 'gravatar.com') { + $s->put('noodles_image', 0, 'boolean'); + + // existsing noodles image on blog + } elseif ($_POST['noodles_image'] == 'existing') { + $s->put('noodles_image', 1, 'boolean'); + + // noodles image + } elseif (preg_match('/^gravatar-[0-9]+.png$/', $_POST['noodles_image']) && !empty($public_path)) { + $source = dirname(__FILE__) . '/default-templates/img/' . $_POST['noodles_image']; + if (!file_exists($source)) { throw new Exception(__('Something went wrong while search file')); } - if (file_put_contents($dest_file,file_get_contents($source))) - { - $s->put('noodles_image',1,'boolean'); + if (files::putContent($public_file, file_get_contents($source))) { + $s->put('noodles_image', 1, 'boolean'); } + + // Default gravatar.com avatar + } else { //if ($_POST['noodles_image'] == 'gravatar.com') { + $s->put('noodles_image', 0, 'boolean'); } - $core->blog->triggerBlog(); - http::redirect('plugin.php?p=noodles&tab=settings&done=1'); - } - catch (Exception $e) - { - $core->error->add($e->getMessage()); - } -} - -if (!empty($_POST['save']) && $tab == 'blocs' && !empty($_POST['noodle'])) -{ - try - { - foreach($_POST['noodle'] as $id => $bloc) - { - foreach($bloc as $k => $v) - { - $__noodles->{$id}->set($k,$v); - } + // behaviors + foreach($_POST['noodle'] as $id => $bloc) { + $__noodles->get($id) + ->set('active', !empty($bloc['active'])) + ->set('rating', $bloc['rating'] ?? 'g') + ->set('size', $bloc['size'] ?? '16') + ->set('css', $bloc['css'] ?? '') + ->set('target', $bloc['target'] ?? '') + ->set('place', $bloc['place'] ?? 'prepend') + ; } - $s->put('noodles_object',$__noodles->encode(),'string'); + $s->put('noodles_object', $__noodles->encode(), 'string'); $core->blog->triggerBlog(); - http::redirect('plugin.php?p=noodles&tab=blocs&done=1'); - } - catch (Exception $e) - { + dcPage::addSuccessNotice(__('Configuration succesfully updated')); + $core->adminurl->redirect('admin.plugin.noodles'); + } catch (Exception $e) { $core->error->add($e->getMessage()); } } -if (!empty($_POST['reset']) && $tab == 'blocs') -{ - try - { - $s->put('noodles_object','','string'); - $core->blog->triggerBlog(); - http::redirect('plugin.php?p=noodles&tab=blocs&done=1'); - } - catch (Exception $e) - { - $core->error->add($e->getMessage()); +echo '