Esempio n. 1
0
    $startverse = required_param('startverse', PARAM_INT);
    $endbookid = required_param('endbookid', PARAM_INT);
    $endchapter = required_param('endchapter', PARAM_INT);
    $endverse = required_param('endverse', PARAM_INT);
    $versionid = required_param('versionid', PARAM_INT);
    $currenturl = new moodle_url(qualified_me());
    $currenturl->params(array('startbookid' => $startbookid, 'startchapter' => $startchapter, 'startverse' => $startverse, 'endbookid' => $endbookid, 'endchapter' => $endchapter, 'endverse' => $endverse, 'versionid' => $versionid, 'sesskey' => sesskey()));
    $versetext = lookup_bible_verse($versionid, $startbookid, $startchapter, $startverse, $endbookid, $endchapter, $endverse);
    if (!optional_param('confirm', 0, PARAM_BOOL)) {
        $linkyes = $currenturl->out(false, array('confirm' => '1'));
        $linkno = $CFG->wwwroot . '/mod/memorization/view.php?' . $currenturl->get_query_string();
        $message = '<div class="confirm-verse">' . get_string('confirmverse', 'memorization') . '</div>' . '<div class="verse">' . $versetext . '</div>';
        print_header_simple(get_string('notice'));
        notice_yesno($message, $linkyes, $linkno);
        print_footer();
        exit;
    }
    $versionname = get_field('memorization_version', 'name', 'id', $versionid);
    $verse = (object) array('userid' => $userid, 'startbookid' => $startbookid, 'startchapter' => $startchapter, 'startverse' => $startverse, 'endbookid' => $endbookid, 'endchapter' => $endchapter, 'endverse' => $endverse, 'text' => $versetext, 'versionid' => $versionid, 'repetitions' => 0);
    $verse = addslashes_recursive($verse);
    if (!insert_record('memorization_verse', $verse)) {
        print_header();
        error('There was an error adding your verse. Please try again');
    }
    redirect('view.php?' . $currenturl->get_query_string());
}
// end the portion that saves a supplied verse
// get a verse if none was supplied
print_header_simple();
memorization_print_new_verse_box();
print_footer();
Esempio n. 2
0
function memorization_print_view_method7week($userid, $cmid)
{
    global $CFG;
    $currenttab = optional_param('currenttab', 'day', PARAM_ALPHA);
    // calculate the range of repititions for current tab
    $repititionsupper = $repetitionslower = 0;
    switch ($currenttab) {
        case 'day':
            //once a day for 7 weeks ----------7 weeks * 7d/week = 49 times
            $repetitionslower = MEMORIZATION_VERSE_DAY_LOWER;
            $repetitionsupper = MEMORIZATION_VERSE_DAY_UPPER;
            break;
        case 'week':
            // once a week for 7 months -------7 months * 4w/month = 28 more times
            $repetitionslower = MEMORIZATION_VERSE_WEEK_LOWER;
            $repetitionsupper = MEMORIZATION_VERSE_WEEK_UPPER;
            break;
        case 'month':
            // once a month for 7 years--------7 years * 12m/year = 84 more times
            $repetitionslower = MEMORIZATION_VERSE_MONTH_LOWER;
            $repetitionsupper = MEMORIZATION_VERSE_MONTH_UPPER;
            break;
        case 'life':
            // once a quarter for life
            $repetitionslower = MEMORIZATION_VERSE_LIFE_LOWER;
            $repetitionsupper = MEMORIZATION_VERSE_LIFE_UPPER;
    }
    $userversesrs = get_recordset_select('memorization_verse', "userid = '{$userid}' AND repetitions >= '{$repetitionslower}' AND repetitions < '{$repetitionsupper}'", 'id ASC');
    $tablecount = new stdClass();
    $tablecount->day = get_record_select('memorization_verse', "userid = '{$userid}' AND repetitions >= '" . MEMORIZATION_VERSE_DAY_LOWER . "'   AND repetitions < '" . MEMORIZATION_VERSE_DAY_UPPER . "'", 'COUNT(*) as total');
    $tablecount->week = get_record_select('memorization_verse', "userid = '{$userid}' AND repetitions >= '" . MEMORIZATION_VERSE_WEEK_LOWER . "'  AND repetitions < '" . MEMORIZATION_VERSE_WEEK_UPPER . "'", 'COUNT(*) as total');
    $tablecount->month = get_record_select('memorization_verse', "userid = '{$userid}' AND repetitions >= '" . MEMORIZATION_VERSE_MONTH_LOWER . "' AND repetitions < '" . MEMORIZATION_VERSE_MONTH_UPPER . "'", 'COUNT(*) as total');
    $tablecount->life = get_record_select('memorization_verse', "userid = '{$userid}' AND repetitions >= '" . MEMORIZATION_VERSE_LIFE_LOWER . "'  AND repetitions < '" . MEMORIZATION_VERSE_LIFE_UPPER . "'", 'COUNT(*) as total');
    if ($userversesrs === false) {
        error('Problem with database setup, please contact the system administrator');
    }
    /// Prints out tabs
    $page = new moodle_url('view.php', array('userid' => $userid, 'id' => $cmid));
    $toprow = array();
    $toprow[] = new tabobject('day', $page->out(false, array('currenttab' => 'day')), get_string('daytab', 'memorization') . " ( {$tablecount->day->total} )");
    $toprow[] = new tabobject('week', $page->out(false, array('currenttab' => 'week')), get_string('weektab', 'memorization') . " ( {$tablecount->week->total} )");
    $toprow[] = new tabobject('month', $page->out(false, array('currenttab' => 'month')), get_string('monthtab', 'memorization') . " ( {$tablecount->month->total} )");
    $toprow[] = new tabobject('life', $page->out(false, array('currenttab' => 'life')), get_string('lifetab', 'memorization') . " ( {$tablecount->life->total} )");
    print_tabs(array($toprow), $currenttab);
    // make a table for checkboxes
    $table = new stdClass();
    $table->head = array(get_string('verse', 'memorization'), get_string('tablehead:/' . $currenttab, 'memorization'), get_string('progress', 'memorization'), get_string('moveverseto', 'memorization'));
    $table->align = array('left', 'center', 'center', 'center');
    $table->class = 'generaltable memorization memorization-' . $currenttab;
    $table->data = array();
    $table->rowclass = array();
    $biblebooks = biblebooks_array();
    while (($verse = rs_fetch_next_record($userversesrs)) !== false) {
        $row = array();
        // add the verse reference
        $versecell = '<span class="verse-cell"><a title="' . htmlspecialchars(_get_verse_text($verse)) . '" class="my-message-box" href="ajaxversedisplay.php?verseid=' . $verse->id . '&userid=' . $userid . '&sesskey=' . sesskey() . '"> <img class="hint-icon" src="' . $CFG->wwwroot . '/mod/memorization/pix/bulb.png"/></a>';
        $versecell .= _get_verse_text($verse);
        $versecell .= '</span>';
        $row[] = $versecell;
        // add the checkbox progress
        $checkboxcell = '<div class="boxes">';
        $counter = 0;
        $persistentclass = '';
        for ($x = $repetitionslower + 1; $x != $repetitionsupper + 1; $x++) {
            $counter++;
            $class = '';
            // add classes for spacing issues
            if ($currenttab == 'day' || $currenttab == 'year') {
                $class .= $counter % 7 == 0 ? 'seventh-box' : '';
                $class .= $counter % 14 == 0 ? ' second-set ' : '';
                $class .= $counter % 7 == 0 && $counter % 14 != 0 ? ' first-set ' : '';
            } elseif ($currenttab == 'week' || $currenttab == 'life') {
                $class = $counter % 4 == 0 ? ' fourth-box ' : '';
            }
            $persistentclass .= " greater-than-{$verse->id}-{$x} ";
            // we need to get each greater than box for jquery stuff so we know what it is less than
            for ($y = $repetitionsupper + 1; $y != $x; $y--) {
                $class .= " less-than-{$verse->id}-{$y} ";
            }
            $class .= $persistentclass;
            $checked = $x <= $verse->repetitions ? ' checked="checked" ' : '';
            // add some wrappers for styling purposes
            if ($currenttab == 'month') {
                $checkboxcell .= $counter % 12 == 1 ? '<div class="box-12-wrapper">' : '';
                $checkboxcell .= $counter % 6 == 1 ? '<div class="box-6-wrapper">' : '';
            } else {
                $checkboxcell .= $counter % 14 == 1 ? '<div class="box-14-wrapper">' : '';
                $checkboxcell .= $counter % 7 == 1 ? '<div class="box-7-wrapper">' : '';
            }
            $checkboxcell .= '<input ' . $checked . ' type="checkbox" class="' . $class . ' repetition-box" id="' . $verse->id . '-' . $x . '" value="' . $x . '">';
            if ($currenttab == 'month') {
                $checkboxcell .= $counter % 6 == 0 ? '</div>' : '';
                $checkboxcell .= $counter % 12 == 0 ? '</div>' : '';
            } else {
                $checkboxcell .= $counter % 7 == 0 ? '</div>' : '';
                $checkboxcell .= $counter % 14 == 0 ? '</div>' : '';
            }
        }
        // catch any that didn't end with a end span
        $checkboxcell .= $counter % 7 != 0 ? '</div>' : '';
        $checkboxcell .= $counter % 14 != 0 ? '</div>' : '';
        $checkboxcell .= '</div><div class="moving-verse" style="display: none;">' . get_string('moving-verse-' . $currenttab, 'memorization') . '</div>';
        $row[] = $checkboxcell;
        // add the progress bar
        $progress = $verse->repetitions / MEMORIZATION_COMPLETE * 100;
        $verseidprogressmap[$verse->id] = $progress;
        $row[] = "<div id=\"progressbar-{$verse->id}\"></div>";
        // don't forget this is initialized later
        // move verse links
        $movecell = '<span class="move-verse">';
        $movecell .= $currenttab != 'day' ? '<span class="day"  ><a href="' . $page->out(false, array('currenttab' => 'day')) . '" class="move-verse-link" id="move-verse-' . $verse->id . '-' . MEMORIZATION_VERSE_DAY_LOWER . '">' . get_string('moveday', 'memorization') . '</a></span>' : '';
        $movecell .= $currenttab != 'week' ? '<span class="week" ><a href="' . $page->out(false, array('currenttab' => 'week')) . '" class="move-verse-link" id="move-verse-' . $verse->id . '-' . MEMORIZATION_VERSE_WEEK_LOWER . '">' . get_string('moveweek', 'memorization') . '</a></span>' : '';
        $movecell .= $currenttab != 'month' ? '<span class="month"><a href="' . $page->out(false, array('currenttab' => 'month')) . '" class="move-verse-link" id="move-verse-' . $verse->id . '-' . MEMORIZATION_VERSE_MONTH_LOWER . '">' . get_string('movemonth', 'memorization') . '</a></span>' : '';
        $movecell .= $currenttab != 'year' ? '<span class="life" ><a href="' . $page->out(false, array('currenttab' => 'life')) . '" class="move-verse-link" id="move-verse-' . $verse->id . '-' . MEMORIZATION_VERSE_LIFE_LOWER . '">' . get_string('movelife', 'memorization') . '</a></span>' : '';
        $deleteurl = new moodle_url('deleteverse.php', array('userid' => $userid, 'verseid' => $verse->id, 'currenttab' => $currenttab, 'id' => $cmid));
        $movecell .= "<span class=\"delete\"><a href=\"{$deleteurl->out_action()}\"><img src=\"{$CFG->pixpath}/i/cross_red_big.gif\" /></a></span>";
        $movecell .= '</span>';
        $row[] = $movecell;
        $table->data[] = $row;
        $table->rowclass[] = 'verse-' . $verse->id;
    }
    print_table($table);
    if ($currenttab == 'day') {
        memorization_print_new_verse_box();
    }
    echo '<script type="text/javascript">
            jQuery(document).ready(function () {
                function parse_verse_id_from_repetion_box(elementid) {
                    return elementid.replace(/\\-[0-9]*$/, "");
                }

                function parse_verse_id_from_move_to_link(elementid) {
                    firststrip = elementid.replace(/move\\-verse\\-/, "");
                    return firststrip.replace(/\\-[0-9]*$/, "");
                }

                function parse_repetition_value_from_move_to_link(elementid) {
                    return elementid.replace(/.*\\-/, "");
                }

                function update_verse_in_database_and_progressbar(verseid, newrepetition) {
                    jQuery.ajax({
                       type: "POST",
                       url: "ajaxupdateverserepetition.php",
                       data: "sesskey=' . sesskey() . '&userid=' . $userid . '&verseid="+verseid+"&newrepetition="+newrepetition,
                       success: function(msg){
                         $("#progressbar-"+verseid).progressBar(((newrepetition / ' . MEMORIZATION_COMPLETE . ') * 100), {showText: false, barImage: "images/progressbg_green.gif"});
                       }
                     });
                }';
    // this is for the last checkbox click
    if (!empty($verseidprogressmap)) {
        foreach ($verseidprogressmap as $verseid => $progress) {
            echo '$("#progressbar-' . $verseid . '").progressBar(' . ($progress + 1) . ');

                        // this will fade the verse onto the next page when last checkbox clicked
                        jQuery("#' . $verseid . '-' . $repetitionsupper . '").change(function () {
                            if (jQuery(this).is(":checked") && ' . $repetitionsupper . ' <= ' . MEMORIZATION_COMPLETE . ') {
                                if (' . $repetitionsupper . ' == ' . MEMORIZATION_VERSE_DAY_UPPER . ') {
                                    jQuery(".tabtree .selected a").html(
                                        jQuery(".tabtree .selected a").html().replace(/([0-9])+?/, "' . ($tablecount->day->total - 1) . '")
                                    );
                                    jQuery(".tabtree .selected + li a").html(
                                        jQuery(".tabtree .selected + li a").html().replace(/([0-9])+?/, "' . ($tablecount->week->total + 1) . '")
                                    );
                                } else if (' . $repetitionsupper . ' == ' . MEMORIZATION_VERSE_WEEK_UPPER . ') {
                                    jQuery(".tabtree .selected a").html(
                                        jQuery(".tabtree .selected a").html().replace(/([0-9])+?/, "' . ($tablecount->week->total - 1) . '")
                                    );
                                    jQuery(".tabtree .selected + li a").html(
                                        jQuery(".tabtree .selected + li a").html().replace(/([0-9])+?/, "' . ($tablecount->month->total + 1) . '")
                                    );
                                } else if (' . $repetitionsupper . ' == ' . MEMORIZATION_VERSE_MONTH_UPPER . ') {
                                    jQuery(".tabtree .selected a").html(
                                        jQuery(".tabtree .selected a").html().replace(/([0-9])+?/, "' . ($tablecount->month->total - 1) . '")
                                    );
                                    jQuery(".tabtree .selected + li a").html(
                                        jQuery(".tabtree .selected + li a").html().replace(/([0-9])+?/, "' . ($tablecount->life->total + 1) . '")
                                    );
                                }

                                jQuery("tr.verse-' . $verseid . ' td.c1 div.boxes").fadeOut(1500, function () {
                                    jQuery("tr.verse-' . $verseid . ' td.c1 div.moving-verse").fadeIn(1500, function () {
                                        jQuery("tr.verse-' . $verseid . '").fadeOut(500);
                                    });
                                });
                            }
                        });';
        }
    }
    // this will move the verse between day / week / month
    echo 'jQuery(".move-verse-link").click(function () {
                    verseid = parse_verse_id_from_move_to_link(jQuery(this).attr("id"));
                    newrepvalue = parse_repetition_value_from_move_to_link(jQuery(this).attr("id"));
                    update_verse_in_database_and_progressbar(verseid, newrepvalue);
                });';
    echo 'jQuery(".repetition-box").change(function () {
                    verseid = parse_verse_id_from_repetion_box(jQuery(this).attr("id"));

                    if (jQuery(this).is(":checked")) {
                        newrepetition = jQuery(this).val() - 0;

                        jQuery(".less-than-"+$(this).attr("id")).attr("checked", true);
                        update_verse_in_database_and_progressbar(verseid, newrepetition);

                    } else {
                        jQuery(".greater-than-"+$(this).attr("id")).removeAttr("checked");

                        newrepetition = jQuery(this).val() - 1;

                        update_verse_in_database_and_progressbar(verseid, newrepetition);
                    }
                });
            });
          </script>';
    return true;
}