����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
// xml_manager.php
require_once 'config.php';
class XMLManager
{
private $xml_file;
private $xml;
public function __construct($xml_file = XML_FILE)
{
$this->xml_file = $xml_file;
if (file_exists($xml_file)) {
$this->xml = simplexml_load_file($xml_file);
} else {
// Create basic XML structure
$this->xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><areas></areas>');
// Add default areas
$delhi = $this->xml->addChild('area');
$delhi->addAttribute('name', 'Delhi');
$delhi->addAttribute('slug', 'delhi');
$delhi->addAttribute('phone', '911234567890');
$delhi->addAttribute('email', 'info@delhigal.com');
$delhi->addAttribute('priority', '1');
$ncr = $this->xml->addChild('area');
$ncr->addAttribute('name', 'NCR');
$ncr->addAttribute('slug', 'ncr');
$ncr->addAttribute('phone', '911234567891');
$ncr->addAttribute('email', 'info@delhigal.com');
$ncr->addAttribute('priority', '1');
$this->saveXML();
}
}
public function addArea($parent_slug, $name, $slug, $phone, $email, $priority)
{
$parent = $this->findAreaNode($this->xml, $parent_slug);
if ($parent) {
$new_area = $parent->addChild('area');
$new_area->addAttribute('name', htmlspecialchars($name));
$new_area->addAttribute('slug', htmlspecialchars($slug));
$new_area->addAttribute('phone', htmlspecialchars($phone));
$new_area->addAttribute('email', htmlspecialchars($email));
$new_area->addAttribute('priority', htmlspecialchars($priority));
return $this->saveXML();
}
return false;
}
public function editArea($slug, $name, $phone, $email, $priority)
{
$area = $this->findAreaNode($this->xml, $slug);
if ($area) {
$area['name'] = htmlspecialchars($name);
$area['phone'] = htmlspecialchars($phone);
$area['email'] = htmlspecialchars($email);
$area['priority'] = htmlspecialchars($priority);
return $this->saveXML();
}
return false;
}
public function deleteArea($slug)
{
$area = $this->findAreaNode($this->xml, $slug);
if ($area && $this->hasChildren($area)) {
throw new Exception("Cannot delete area that has child areas! Please delete child areas first.");
}
if (in_array($slug, ['delhi', 'ncr'])) {
throw new Exception("Cannot delete root areas!");
}
if ($this->deleteAreaRecursive($this->xml, $slug)) {
return $this->saveXML();
} else {
throw new Exception("Area not found or cannot be deleted!");
}
}
public function getAllAreas()
{
$areas = [];
$this->getAllAreasRecursive($this->xml, $areas);
return $areas;
}
public function findAreaBySlug($slug)
{
return $this->findAreaNode($this->xml, $slug);
}
// Private helper methods
private function findAreaNode($xml, $slug, &$parent = null)
{
foreach ($xml->area as $area) {
$attributes = $area->attributes();
if ((string)$attributes['slug'] === $slug) {
return $area;
}
if ($area->area && $area->area->count() > 0) {
$found = $this->findAreaNode($area, $slug, $parent);
if ($found) {
if (!$parent) $parent = $area;
return $found;
}
}
}
return null;
}
private function hasChildren($area)
{
return $area->area && $area->area->count() > 0;
}
private function deleteAreaRecursive($xml, $slug)
{
foreach ($xml->area as $area) {
$attributes = $area->attributes();
if ((string)$attributes['slug'] === $slug) {
$dom = dom_import_simplexml($area);
$dom->parentNode->removeChild($dom);
return true;
}
if ($area->area && $area->area->count() > 0) {
if ($this->deleteAreaRecursive($area, $slug)) {
return true;
}
}
}
return false;
}
private function getAllAreasRecursive($xml, &$areas = [], $level = 0)
{
foreach ($xml->area as $area) {
$attributes = $area->attributes();
$prefix = str_repeat('-- ', $level);
$areas[(string)$attributes['slug']] = [
'name' => $prefix . (string)$attributes['name'],
'has_children' => $this->hasChildren($area),
'node' => $area
];
if ($area->area && $area->area->count() > 0) {
$this->getAllAreasRecursive($area, $areas, $level + 1);
}
}
}
private function saveXML()
{
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($this->xml->asXML());
return file_put_contents($this->xml_file, $dom->saveXML()) !== false;
}
}| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| .well-known | Folder | 0777 |
|
|
| cache | Folder | 0777 |
|
|
| content | Folder | 0777 |
|
|
| content1 | Folder | 0777 |
|
|
| image | Folder | 0777 |
|
|
| .ftpquota | File | 12 B | 0666 |
|
| .htaccess | File | 197 B | 0444 |
|
| 404.php | File | 1.31 KB | 0666 |
|
| admin.php | File | 35.14 KB | 0666 |
|
| android-chrome-192x192.png | File | 78.08 KB | 0666 |
|
| android-chrome-512x512.png | File | 378.8 KB | 0666 |
|
| apple-touch-icon.png | File | 69.97 KB | 0666 |
|
| arealist.xml | File | 13.18 KB | 0666 |
|
| auth.php | File | 884 B | 0666 |
|
| cache.php | File | 948 B | 0666 |
|
| config.php | File | 1.61 KB | 0666 |
|
| content_manager.php | File | 11.84 KB | 0666 |
|
| delhigal.zip | File | 6.82 MB | 0644 |
|
| error_log | File | 778 B | 0666 |
|
| favicon-16x16.png | File | 977 B | 0666 |
|
| favicon-32x32.png | File | 3.26 KB | 0666 |
|
| favicon.ico | File | 15.04 KB | 0666 |
|
| frontpage.php | File | 113.04 KB | 0666 |
|
| google2fabcdaeda4836e4.html | File | 53 B | 0666 |
|
| index.php | File | 1.62 KB | 0666 |
|
| index1.html | File | 0 B | 0666 |
|
| index1.php | File | 1.63 KB | 0666 |
|
| login.php | File | 2.28 KB | 0666 |
|
| logout.php | File | 73 B | 0666 |
|
| robots.txt | File | 25 B | 0666 |
|
| site.webmanifest | File | 272 B | 0666 |
|
| sitemap.xml | File | 501 B | 0666 |
|
| style.css | File | 27.09 KB | 0666 |
|
| template.php | File | 93.07 KB | 0666 |
|
| wp-blog-header.php | File | 2.74 KB | 0644 |
|
| wp-cron.php | File | 2.74 KB | 0644 |
|
| xml_manager.php | File | 4.17 KB | 0666 |
|