Search code examples
phpelgg

How to save an object in Elgg


I'm trying to save an object in elgg, but nothing happens. On button click the page starts reloading as if to save the object, but nothing happens at all. The page only reloads. Nothing gets persisted.

Any help will be greatly appreciated.

Rev/start.php

$lib = elgg_get_plugins_path() . 'Rev/lib';
elgg_register_library('Rev', "$lib/Rev.php");
elgg_load_library('Rev');

$base = elgg_get_plugins_path() . 'Rev/actions';
elgg_register_action("Rev/room_reservation", "$base/room_reservation.php");

Rev/actions/room_reservation.php

<?php
/**
* Save
*/
// get the form values
$category = get_input('category');
$full_names = get_input('full_names');
$check_in_date = get_input('check_in_date');
$check_out_date = get_input('check_out_date');

$result = help_save_topic($category, $full_names, $check_in_date, $check_out_date);
if (!$result) {
    register_error(elgg_echo('Error Saving'));
} else {
    system_message(elgg_echo('Successfully Saved'));
    $user = elgg_get_logged_in_user_entity();
    forward($user->getURL());
}

Rev/lib/Rev.php

function reservation_save($category, $full_names, $check_in_date, $check_out_date) {
    $reservation = new ElggObject();
    $reservation->subtype = 'reservation';
    $reservation->category = $category;
    $reservation->full_names = $full_names;
    $reservation->check_in_date = $check_in_date;
    $reservation->check_out_date = $check_out_date;
    $reservation->save();
    if (!$guid) {
        return false;
    }
    return true;
}

Rev/views/default/forms/olive_green/room_reservation.php

<div class="olive_color" >The Occupant's Full Names</div>
<div>
    <?php echo elgg_view('input/text', array(
        'name' => 'full_names',
        'class' => 'login_input',
        ));
        ?>
    </div>
    <div class="room_category">
        <?php
        $categories = rooms_get_categories();
        echo elgg_view('input/dropdown', array(
            'name' => 'category',
            'options_values' => $categories,
            ));
            ?>
        </div>
        <div class="check_in_out">
            <input name="check_in_date" class="check_in_out_input" type="text" placeholder="Enter check in date ..." />
            <input name="check_out_date" class="check_in_out_input" type="text" placeholder="Enter check out date ..." />
        </div>
        <div> <?php echo elgg_view('input/submit', array('value' => 'Check availability', 'id' => 'login_submit')); ?> </div>

Solution

  • help_save_topic($category, $full_names, $check_in_date, $check_out_date);

    you have declared your function name as wrong

    reservation_save($category, $full_names, $check_in_date, $check_out_date)