function test_merge_values() { $_POST['foo'] = 'bar'; $obj = new StdClass(); $obj->foo = 'asdf'; $form = new Form('post'); $obj = $form->merge_values($obj); $this->assertEquals($obj->foo, $_POST['foo']); }
$f->verify_csrf = false; if ($f->submit()) { $wp->id = $_POST['id']; $wp->title = $_POST['title']; $wp->menu_title = $_POST['menu_title']; $wp->window_title = $_POST['window_title']; $wp->access = $_POST['access']; $wp->layout = $_POST['layout']; $wp->description = $_POST['description']; $wp->keywords = $_POST['keywords']; $wp->body = $_POST['body']; $wp->put(); if (!$wp->error) { Versions::add($wp); $memcache->delete('_admin_page_' . $_GET['page']); $this->add_notification(i18n_get('Page saved.')); $_POST['page'] = $_GET['page']; $lock->remove(); $this->hook('admin/edit', $_POST); $this->redirect('/' . $_POST['id']); } $page->title = i18n_get('An Error Occurred'); echo i18n_get('Error Message') . ': ' . $wp->error; } else { $wp->layouts = admin_get_layouts(); $wp->failed = $f->failed; $wp = $f->merge_values($wp); $page->title = i18n_get('Edit Page') . ': ' . $wp->title; $page->head = $tpl->render('admin/edit/head', $wp) . $tpl->render('admin/wysiwyg'); echo $tpl->render('admin/edit', $wp); }
$page->title = __ ('Saving Stylesheet Failed'); echo '<p>' . __ ('Check that your permissions are correct and try again.') . '</p>'; } else { $page->title = __ ('Edit Stylesheet') . ': ' . $_GET['file']; } $o = new StdClass; $o->file = $_GET['file']; $o->body = @file_get_contents ($_GET['file']); $o->layouts = array (); $files = glob ('layouts/*.html'); if (is_array ($files)) { foreach ($files as $layout) { $o->layouts[] = basename ($layout, '.html'); } } $files = glob ('layouts/*/*.html'); if (is_array ($files)) { foreach ($files as $layout) { $o->layouts[] = basename ($layout, '.html'); } } $o->failed = $f->failed; $o = $f->merge_values ($o); $page->add_script ('/apps/designer/css/edit_stylesheet.css'); $page->add_script ('/apps/designer/js/jquery.bindWithDelay.js'); echo $tpl->render ('designer/edit/stylesheet', $o);
/** * Password recovery form for users who forgot their passwords. */ $f = new Form('post', 'user/recover'); if ($f->submit()) { $u = User::query()->where('email', $_POST['email'])->single(); $data = $u->userdata; $data['recover'] = md5(uniqid(mt_rand(), 1)); $data['recover_expires'] = time() + 7200; $u->userdata = $data; $u->put(); try { Mailer::send(array('to' => array($u->email, $u->name), 'subject' => i18n_get('Password recovery'), 'text' => $tpl->render('user/email/recover', array('recover' => $data['recover'], 'email' => $u->email, 'name' => $u->name)))); } catch (Exception $e) { @error_log('Email failed (user/recover): ' . $_POST['email']); $page->title = i18n_get('An Error Occurred'); echo '<p>' . i18n_get('Please try again later.') . '</p>'; echo '<p><a href="/">' . i18n_get('Back') . '</a></p>'; return; } $page->title = i18n_get('Check your inbox'); echo '<p>' . i18n_get('An email has been sent with a link to reset your password.') . '</p>'; } else { $u = new StdClass(); $u->email = ''; $u = $f->merge_values($u); $u->failed = $f->failed; $page->title = i18n_get('Forgot your password?'); echo $tpl->render('user/recover', $u); }
$pom->post($appconf['Blog']['title'], 'http://' . $_SERVER['HTTP_HOST'] . '/blog'); } if ($autopost_tw && !empty($appconf['Twitter']['username']) && !empty($appconf['Twitter']['password'])) { $b = new Bitly(); $short = $b->shorten('http://' . $_SERVER['HTTP_HOST'] . '/blog/post/' . $p->id . '/' . URLify::filter($p->title)); $t = new twitter(); $t->username = $appconf['Twitter']['username']; $t->password = $appconf['Twitter']['password']; $t->update($p->title . ' ' . $short); } } // reset blog rss cache $memcache->delete('blog_rss'); $_POST['page'] = 'blog/post/' . $p->id . '/' . URLify::filter($p->title); $lock->remove(); $this->hook('blog/edit', $_POST); $this->redirect('/blog/admin'); } $page->title = 'An Error Occurred'; echo 'Error Message: ' . $p->error; } else { $p->yes_no = array('yes' => i18n_get('Yes'), 'no' => i18n_get('No')); $p->autopost_pom = 'yes'; $p->autopost_tw = 'yes'; $p->tag_list = explode(',', $p->tags); $p->failed = $f->failed; $p = $f->merge_values($p); $page->title = i18n_get('Edit Blog Post') . ': ' . $p->title; $page->head = $tpl->render('admin/wysiwyg') . $tpl->render('blog/edit/head', $p); echo $tpl->render('blog/edit', $p); }
*/ $page->layout = 'admin'; if (!User::require_admin()) { $this->redirect('/admin'); } require_once 'apps/admin/lib/Functions.php'; $f = new Form('post', 'admin/add'); $f->verify_csrf = false; if ($f->submit()) { $wp = new Webpage($_POST); $wp->put(); Versions::add($wp); if (!$wp->error) { $this->add_notification(i18n_get('Page created.')); $_POST['page'] = $_POST['id']; $this->hook('admin/add', $_POST); $this->redirect('/' . $_POST['id']); } $page->title = i18n_get('An Error Occurred'); echo i18n_get('Error Message') . ': ' . $wp->error; } else { $pg = new Page(); $pg->layout = 'default'; $pg->weight = '0'; $pg->layouts = admin_get_layouts(); $pg->failed = $f->failed; $pg = $f->merge_values($pg); $page->title = i18n_get('Add Page'); $page->head = $tpl->render('admin/add/head', $pg) . $tpl->render('admin/wysiwyg'); echo $tpl->render('admin/add', $pg); }
// Check for a custom handler override $res = $this->override('user/update'); if ($res) { echo $res; return; } if (!User::require_login()) { $page->title = __('Members'); echo $this->run('user/login'); return; } $u = User::$user; $form = new Form('post', $this); $form->data = $u->orig(); $form->data->password = ''; $form->data = $form->merge_values($form->data); $form->data->failed = $form->failed; $form->data->_states = user\Data::states(); $form->data->_countries = user\Data::countries(); $page->title = __('Update Profile'); echo $form->handle(function ($form) use($u, $page) { if (user\Rules::email_in_use($_POST['email'], User::val('id'))) { $form->failed[] = 'email-in-use'; return false; } $u->name = $_POST['name']; $u->email = $_POST['email']; if (!empty($_POST['password'])) { $u->password = User::encrypt_pass($_POST['password']); } $u->about = $_POST['about'];
$page->layout = 'admin'; if (!User::require_admin()) { $this->redirect('/admin'); } $f = new Form('post', 'blocks/add'); $f->verify_csrf = false; if ($f->submit()) { $b = new Block($_POST); $b->put(); Versions::add($b); if (!$b->error) { $this->add_notification('Block added.'); $this->hook('blocks/add', $_POST); if (isset($_GET['return'])) { $this->redirect($_GET['return']); } $this->redirect('/blocks/admin'); } $page->title = i18n_get('An Error Occurred'); echo i18n_get('Error Message') . ': ' . $b->error; } else { $b = new Block(); $b->id = $_GET['id']; $b->access = 'public'; $b->yes_no = array('yes' => i18n_get('Yes'), 'no' => i18n_get('No')); $b->failed = $f->failed; $b = $f->merge_values($b); $page->title = i18n_get('Add Block'); $page->head = $tpl->render('blocks/add/head', $b) . $tpl->render('admin/wysiwyg'); echo $tpl->render('blocks/add', $b); }