Как сделать админку для XML4

Posted by: Maestro
Date: Tue, 05 Apr 2016 12:33:18
Tags: настройка управление сайтом xml

К доброму старому всегда возвращаются,
но с другого конца.

©Дмитрий Сергеевич Лихачёв

Так получилось, что к версии XML4.0 нет админки. Ну совсем нет. Автор скрипта привык править напрямую файлы данных, и это проблем у него не вызывает, ну а как быть остальным? Тем, кто сидит на 2.8 версии, и хочет приобщиться к новому движку. Так и ждать? Как-то не романтично это...

Из каждой безвыходной ситуации на самом деле есть как минимум, один выход. Но в нашей ситуации их два. С одной стороны, можно копаться напрямую в коде, с другой... использовать старый движок как админку.

Если вы помните, база данных новой версии специально была сделана 100-процентно совместимой с классической из 2.8 версии. С одной стороны, это не дало возможности добавить красоты в xml (и убрать кое-какую избыточность), а с другой, стало возможным на локальном сервере работать с старой версией движка. После внесения изменений файл базы просто закидывается на "боевой" хостинг с новым движком, и все дела. Просто и вполне реализуемо и понятно.

Но вся эта суета с копированием... Для того, чтобы использование староко движка стало максимально прозрачным, я написал маленький модуль для 2.8, который надо поместить в папку data/add/ под названием publish.php В конце статьи я дам код, который должен быть в этом файле. Все опции, которые потребуют изменения, указаны у комментариях кода.

После создания нового модуля в административном меню старой версии сайта (после авторизации) появится ссылка с надписью Publish. Достаточно её нажать, чтобы изменения в файлах базы данных, тегов и категорий скопировались на хостинг работающего под управлением новой версии движка сайта. На моём тестовом сайте это занимает секунду. Удобно и просто. Что и требовалось. Пробуйте:


if ($sesia==true)
  {
  $adminpanel.=' [Publish] ';
  
# ----------------
# ---------------- Published on other webtags="newss (hosting)
# ----------------
if (array_key_exists('event', $_GET)!==false)
{
  if ($_GET['event']=='publish' && $sesia==true)
  {
    $title.='Copy site';
    $desc.='Copy site';
    $telo.='';
  $all_url = array( // ИЗМЕНИТЬ /www/site.com/ на ваши данные с хостинга!
    'data/data.xml' => '/www/site.com/package/Xmlblog/Data/Xml/data.xml',
    'data/checked.txt' => '/www/site.com/package/Xmlblog/Data/Txt/checked.txt',
    'data/category.txt' => '/www/site.com/package/Xmlblog/Data/Txt/category.txt'
  );
    
  $ftp_server = 'site.com'; // ИЗМЕНИТЬ!
  $ftp_user_name = 'admin'; // ИЗМЕНИТЬ!
  $ftp_user_pass = 'pass'; // ИЗМЕНИТЬ!
    
  // установка соединения
  $conn_id = ftp_connect($ftp_server);
  if (!$conn_id) {echo "Не удалось установить connect!"; exit();}
  // вход с именем пользователя и паролем
  $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
  // включение пассивного режима
  ftp_pasv($conn_id, true);
  // проверка соединения
  if ((!$conn_id) || (!$login_result)) {
      echo "Не удалось установить соединение с FTP сервером! ";
      echo "Попытка подключения к серверу $ftp_server под именем $ftp_user_name!"; exit();
      exit;
    } else {
      $telo.="Установлено соединение с FTP сервером $ftp_server под именем $ftp_user_name
rn";
    } flush();
    
  foreach ($all_url as $item => $kuda)
    {  
      // закачивание файла
      $upload = ftp_put($conn_id, $kuda, $item, FTP_ASCII); // FTP_ASCII, либо FTP_BINARY.
      // проверка результата
      if (!$upload) {
          $telo.="Не удалось закачать файл - ".$item."
rn";
          flush();
        } else {
          $telo.="

  • Файл $item закачен на $ftp_server
  • rn";
              flush();
            }
          flush();
        }

      // закрытие соединения
      $telo.="Соединение $conn_id закрыто
    rn";
      flush();
      ftp_close($conn_id);
      }
    }
      
      
      }

    Смотри также:


    Шаблон diz3colonki для Rumba XML  Импорт WordPress базы данных для Rumba XML  Подключение шаблонов и больших текстов  Вложенные категории в блоге Rumba XML  Кэширование для снижения нагрузок 






        Сгенерировано
        Rumba News v.1.0a
        за 0.007112 сек.