Example #1
0
 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']);
 }
Example #2
0
$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);
}
Example #3
0
	$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);
Example #4
0
/**
 * 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);
}
Example #5
0
                $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);
}
Example #6
0
 */
$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);
}
Example #7
0
// 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'];
Example #8
0
$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);
}