Files
HtaccessBuilder/ajax.php
2013-02-08 20:18:32 +00:00

86 lines
1.7 KiB
PHP

<?php
define('AJAX',True);
include('includer.php');
if (!isset($_REQUEST['action']))
return;
$rules = new HtRule_List();
$action = $_REQUEST['action'];
switch($action)
{
case "rules":
return_html('rules');
break;
case "delete":
$id = (int)get_post('id');
$rule = $rules->GetAtIndex($id);
$rules->DeleteRule($rule);
return_json(True);
break;
case "add":
$type = (string)get_post('type');
$ruleTypes = HtRule_List::ListRules();
if (!array_key_exists($type, $ruleTypes))
return_json (array('error'=>'Unknown Rule'));
$position = False;
if ($type == 'HtRule_Rule_EnableRewrite')
$position = 0;
$id = $rules->AddRule(new $type(), $position);
return_json(array('id'=>$id));
break;
case "edit":
return_html('edit', array('id'=>(int)get_post('id')));
break;
case "save":
$rule = $rules->GetAtIndex((int)get_post('id'));
$form = new HtRule_Form($rule);
if ($form->Validate($_POST, $error))
{
//Save
$form->Save($_POST);
$rules->MarkChanged();
return_json(True);
}
else
{
return_json(array('error'=>$error));
}
break;
case "listing":
return_json((string)$rules);
break;
case 'updateOrder':
if (!is_array($_POST['order']))
break;
$order = $_POST['order'];
array_walk($order, 'intval');
$order = array_unique($order);
$rules->UpdateOrder($order);
break;
}
function return_html($file, $params=array())
{
ob_start();
include("html/ajax/$file.php");
$html = ob_get_contents();
ob_end_clean();
return_json($html);
}
function return_json($return)
{
header('Content-Type: application/json');
echo json_encode($return);
exit;
}