01 September 2005
*
* @package webtrees
* @subpackage Charts
* @version $Id$
*/
define('WT_SCRIPT_NAME', 'faq.php');
require './includes/session.php';
global $WT_IMAGES, $faqs;
// -- print html header information
print_header(i18n::translate('FAQ List'));
// -- Get all of the _POST variables we're interested in
$action = safe_REQUEST($_REQUEST, 'action', WT_REGEX_UNSAFE, 'show');
$adminedit = safe_REQUEST($_REQUEST, 'adminedit', WT_REGEX_UNSAFE, WT_USER_GEDCOM_ADMIN);
$type = safe_REQUEST($_REQUEST, 'type', WT_REGEX_UNSAFE);
$oldGEDCOM = safe_REQUEST($_REQUEST, 'oldGEDCOM', WT_REGEX_UNSAFE);
$whichGEDCOM= safe_REQUEST($_REQUEST, 'whichGEDCOM', WT_REGEX_UNSAFE);
$oldOrder = safe_REQUEST($_REQUEST, 'oldOrder', WT_REGEX_UNSAFE);
$order = safe_REQUEST($_REQUEST, 'order', WT_REGEX_UNSAFE);
$header = safe_REQUEST($_POST, 'header', WT_REGEX_UNSAFE);
$body = safe_REQUEST($_POST, 'body', WT_REGEX_UNSAFE);
$pidh = safe_REQUEST($_REQUEST, 'pidh', WT_REGEX_UNSAFE);
$pidb = safe_REQUEST($_REQUEST, 'pidb', WT_REGEX_UNSAFE);
$id = safe_REQUEST($_REQUEST, 'id', WT_REGEX_UNSAFE);
// NOTE: Commit the faq data to the DB
if ($action=="commit") {
if (empty($whichGEDCOM)) $whichGEDCOM = $GEDCOM;
if (empty($oldGEDCOM)) $oldGEDCOM = $whichGEDCOM;
if (empty($order)) $order = 0;
switch ($type) {
case 'update':
$faqs = get_faq_data();
if (isset($faqs[$order]) && $order!=$oldOrder) {
// New position number is already in use: find next higher one that isn't used
while (true) {
$order++;
if (!isset($faqs[$order])) break;
if ($order==$oldOrder) break;
}
}
$header = str_replace(array('<', '>'), array('<', '>'), $header);
WT_DB::prepare("UPDATE {$TBLPREFIX}blocks SET b_order=?, b_username=?, b_config=? WHERE b_id=? and b_username=? and b_location=?")
->execute(array($order, $whichGEDCOM, serialize($header), $pidh, $oldGEDCOM, 'header'));
$body = str_replace(array('<', '>'), array('<', '>'), $body);
WT_DB::prepare("UPDATE {$TBLPREFIX}blocks SET b_order=?, b_username=?, b_config=? WHERE b_id=? and b_username=? and b_location=?")
->execute(array($order, $whichGEDCOM, serialize($body), $pidb, $oldGEDCOM, 'body'));
AddToChangeLog("FAQ item has been edited.
Header ID: ".$pidh.".
Body ID: ".$pidb, get_id_from_gedcom($GEDCOM));
break;
case 'delete':
WT_DB::prepare("DELETE FROM {$TBLPREFIX}blocks WHERE b_order=? AND b_name=? AND b_username=?")
->execute(array($id, 'faq', $oldGEDCOM));
AddToChangeLog("FAQ item has been deleted.
Header ID: ".$pidh.".
Body ID: ".$pidb, get_id_from_gedcom($oldGEDCOM));
break;
case 'add':
$faqs = get_faq_data();
if (isset($faqs[$order])) {
// New position number is already in use: find next higher one that isn't used
while (true) {
$order++;
if (!isset($faqs[$order])) break;
}
}
$newid = get_next_id("blocks", "b_id");
$header = str_replace(array('<', '>'), array('<', '>'), $header);
WT_DB::prepare("INSERT INTO {$TBLPREFIX}blocks (b_id, b_username, b_location, b_order, b_name, b_config) VALUES (?, ?, ?, ?, ?, ?)")
->execute(array($newid, $whichGEDCOM, 'header', $order, 'faq', serialize($header)));
$body = str_replace(array('<', '>'), array('<', '>'), $body);
WT_DB::prepare("INSERT INTO {$TBLPREFIX}blocks (b_id, b_username, b_location, b_order, b_name, b_config) VALUES (?, ?, ?, ?, ?, ?)")
->execute(array($newid+1, $whichGEDCOM, 'body', $order, 'faq', serialize($body)));
AddToChangeLog("FAQ item has been added.
Header ID: ".$newid.".
Body ID: ".($newid+1), get_id_from_gedcom($whichGEDCOM));
break;
case 'moveup':
$faqs = get_faq_data();
if (isset($faqs[$id-1])) {
WT_DB::prepare("UPDATE {$TBLPREFIX}blocks SET b_order=? WHERE b_id=? and b_location=?")
->execute(array($id, $faqs[$id-1]["header"]["pid"], 'header'));
WT_DB::prepare("UPDATE {$TBLPREFIX}blocks SET b_order=? WHERE b_id=? and b_location=?")
->execute(array($id, $faqs[$id-1]["body"]["pid"], 'body'));
}
WT_DB::prepare("UPDATE {$TBLPREFIX}blocks SET b_order=? WHERE b_id=? and b_location=?")
->execute(array($id-1, $pidh, 'header'));
WT_DB::prepare("UPDATE {$TBLPREFIX}blocks SET b_order=? WHERE b_id=? and b_location=?")
->execute(array($id-1, $pidb, 'body'));
AddToChangeLog("FAQ item has been moved up.
Header ID: ".$pidh.".
Body ID: ".$pidb, get_id_from_gedcom($oldGEDCOM));
break;
case 'movedown':
$faqs = get_faq_data();
if (isset($faqs[$id+1])) {
WT_DB::prepare("UPDATE {$TBLPREFIX}blocks SET b_order=? WHERE b_id=? and b_location=?")
->execute(array($id, $faqs[$id+1]["header"]["pid"], 'header'));
WT_DB::prepare("UPDATE {$TBLPREFIX}blocks SET b_order=? WHERE b_id=? and b_location=?")
->execute(array($id, $faqs[$id+1]["body"]["pid"], 'body'));
}
WT_DB::prepare("UPDATE {$TBLPREFIX}blocks SET b_order=? WHERE b_id=? and b_location=?")
->execute(array($id+1, $pidh, 'header'));
WT_DB::prepare("UPDATE {$TBLPREFIX}blocks SET b_order=? WHERE b_id=? and b_location=?")
->execute(array($id+1, $pidb, 'body'));
AddToChangeLog("FAQ item has been moved down.
Header ID: ".$pidh.".
Body ID: ".$pidb, get_id_from_gedcom($GEDCOM));
break;
}
$action = "show";
}
if ($action=="add") {
$i=1;
echo '
| '; echo '', i18n::translate('Add FAQ item'), ''; echo help_link('add_faq_item'); echo ' | |||||
| ', i18n::translate('The FAQ list is empty.'), ' | |||||
| '; echo '', i18n::translate('Add'), ''; echo help_link('add_faq_item'); echo ' | '; } echo ''; if ($adminedit) { echo '', i18n::translate('Preview'), ''; echo help_link('preview_faq_item'); } else { echo '', i18n::translate('Edit'), ''; echo help_link('restore_faq_edits'); } echo ' | '; if ($adminedit) { if (isset($error)) echo '', $error_message, ' | '; else echo ''; } echo ' | ||
| '; echo i18n::translate('Position item'), ': ', $id, ', '; if ($data["header"]["gedcom"]=="*all*") echo i18n::translate('ALL'); else echo PrintReady($data["header"]["gedcom"]); echo ' | '; } // NOTE: Print the header of the current item $header = str_replace(array('<', '>'), array('<', '>'), embed_globals($data["header"]["text"])); echo '', $header, ' | ||||
| ';
echo ' | ';
echo ' | '; echo '', i18n::translate('Edit'), ''; echo help_link('edit_faq_item'); echo ' | '; echo '', i18n::translate('Delete'), ''; echo help_link('delete_faq_item'); echo ' | '; } // NOTE: Print the body text of the current item echo '', nl2br($body), ' | |