36 lines
966 B
PHP
36 lines
966 B
PHP
<?
|
|
$label = $_POST['label'];
|
|
$order = $_POST['order'];
|
|
$itemMoved = $_POST['itemMoved'];
|
|
|
|
$orderArray = explode(',', $order);
|
|
$itemIndex = 0;
|
|
|
|
foreach($orderArray as $index=>$value){
|
|
if($value == $itemMoved)
|
|
$itemIndex = (int)$index;
|
|
}
|
|
|
|
$itemAfter = '';
|
|
if(isset($orderArray[$itemIndex+1]))
|
|
$itemAfter = $orderArray[$itemIndex+1];
|
|
|
|
$doc = new DOMDocument;
|
|
$doc->load('../db/links.xml');
|
|
|
|
$xpath = new DOMXpath($doc);
|
|
|
|
// Buffering and deleting moved element
|
|
foreach($xpath->query('label/link[title = "'.$itemMoved.'"]') as $node) {
|
|
$buffer = $node;
|
|
$node->parentNode->removeChild($node);
|
|
}
|
|
|
|
if($itemAfter != ''){
|
|
$searchLabel = $xpath->query('label[@id="'.$label.'"]/link[title = "'.$itemAfter.'"]')->item(0);
|
|
$searchLabel->parentNode->insertBefore($buffer, $searchLabel);
|
|
}else{
|
|
$searchLabel = $xpath->query('label[@id="'.$label.'"]');
|
|
$searchLabel->item(0)->appendChild($buffer);
|
|
}
|
|
$doc->save('../db/links.xml'); |