Импорт морды ЛастоБлога.

Импорт морды блога в документ Наны.

Сразу оговоримся, что речь идёт исключительно про ЛастоБлог.
В нём процедура общения с внешними сайтами продумана изначально.
А потому изобретать хитрые хитрости типа парсера морды не придётся.

1. Синхронизация через WEB.

Код документа прост и нагляден, никакие пояснения не нужны.
Основная масса кода - CSS стили для совмещения дизайнов разных сайтов.

<?php /* Выше этой строки в файле ничего не должно быть */

   
$url='http://site.com/blog/tmp/morda.txt'# Место хранения морды блога
   
$file=$_s['logs'].'cash.blog.txt';         # Файл кэша
   
$tm=60*60*8;                               # Пусть будет кэш на 8 часов
   
add_to_csp('img-src','http://site.com/');  # Это для подгрузки картинок
   
   
if (file_exists($file) and filemtime($file)+$tm $_s['unix']) 
      
$c=file_get_contents($file);
   else 
      
file_put_contents($file,$c=file_get_contents($url));

   
$c=preg_replace('~<a ([^ >]+)>(.+)<\/a>~Usi','<a \\1 target="_blank">\\2</a>',$c);
   
$c=preg_replace('~<style type="text\/css">(.+)<\/style>~Usi','',$c);

   
$_s['content']='
<style type="text/css">
/* <![CDATA[ */
.postdate {
   color:#656565;
   margin:5px 10px;
   text-align:right;
}
.anoncetxt {
   margin:10px;
   text-align:justify;
}
.anoncetxt img {
   float:left;
   border:0;
   border-radius:10px;
   box-shadow:3px 3px 5px #999;
   -o-transform:scale(1);
   -o-transition-duration:1s;
   -webkit-box-shadow:3px 3px 5px #999;
   -webkit-transform:scale(1);
   -webkit-transition-duration:1s;
   -moz-box-shadow:3px 3px 5px #999;
   -moz-transform:scale(1);
   -moz-transition-duration:1s;
   opacity:0.9;
}
.anoncetxt img:hover {
   -webkit-transform:scale(1.1);
   -webkit-transition-duration:1s;
   -webkit-box-shadow:3px 3px 10px gray;
   -moz-transform:scale(1.1);
   -moz-transition-duration:1s;
   -moz-box-shadow:3px 3px 10px gray;
   -o-transform:scale(1.1);
   -o-transition-duration:1s;
   box-shadow:3px 3px 10px gray;
   opacity: 1;
}
.postbody img {margin:5px 20px 10px 10px;}
address {font-style:normal;margin:5px 15px;text-align:right;}
.ano {border-left:1px solid silver;margin:10px 20px;padding:0 20px;text-align:left;}
.ano a {display:block;color:#555;}
.postbody span {color:#a00;}
.postbody span:hover, .ano a:hover {color:blue;}
.postbody {margin:10px 0;}
.rightero {font-weight:normal;margin:15px 25px;text-align:right;}
.rightero a {background:#f2f2f2;border:#d5d5d5 1px solid;color:#45f;padding:4px;}
.rightero a:hover {border:#f00 1px solid;color:#f00;}
.rightero span {border:#f00 1px solid;padding:4px;}
.rightero a span {border:0;padding:0;}
/* ]]> */
</style>

<h2>Из блога Мастера Ласто:</h2>'
.$c;

   
$_s['title']='Новости "Блога провинциального самурая".';

/* Ниже этой строки в файле ничего не должно быть. */ ?>

Всё, что нужно сделать - заменить URL места хранения морды блога своим.
Возможно, придётся также подкорректировать CSS под собственные реалии. Но это уже самостоятельно.

Пример того, как это работает - Новости блога Провинциального Самурая

2. Локальная синхронизация.

Если оба сайта (ЛастоБлог, морду которого необходимо клонировать, и Нана, в которую планируется импортировать клонированную морду) физически живут на одном сервере, то нет необходимости учинять межсерверное взаимодейсктвие через исходящие соединения. Можно поступить в разы проще, непосредственно подгружая морду блога по локальному пути.

Вариантов реализации может быть несколько.
Самый простейший и очевиднейший из них:

<?php /* Выше этой строки в файле ничего не должно быть */

   
add_to_csp('img-src','http://site.com/'); # Это для подгрузки картинок
   
$local='../site/blog/tmp/morda.txt';      # Локальный путь до морды блога
   
$c=file_get_contents($local);

   
$c=preg_replace('~<a ([^ >]+)>(.+)<\/a>~Usi','<a \1 target="_blank">\2</a>',$c);
   
$c=preg_replace('~<style type="text\/css">(.+)<\/style>~Usi','',$c);

   
$_s['content']='
<style type="text/css">
/* <![CDATA[ */
.postdate {
   color:#656565;
   margin:5px 10px;
   text-align:right;
}
.anoncetxt {
   margin:10px;
   text-align:justify;
}
.anoncetxt img {
   float:left;
   border:0;
   border-radius:10px;
   box-shadow:3px 3px 5px #999;
   -o-transform:scale(1);
   -o-transition-duration:1s;
   -webkit-box-shadow:3px 3px 5px #999;
   -webkit-transform:scale(1);
   -webkit-transition-duration:1s;
   -moz-box-shadow:3px 3px 5px #999;
   -moz-transform:scale(1);
   -moz-transition-duration:1s;
   opacity:0.9;
}
.anoncetxt img:hover {
   -webkit-transform:scale(1.1);
   -webkit-transition-duration:1s;
   -webkit-box-shadow:3px 3px 10px gray;
   -moz-transform:scale(1.1);
   -moz-transition-duration:1s;
   -moz-box-shadow:3px 3px 10px gray;
   -o-transform:scale(1.1);
   -o-transition-duration:1s;
   box-shadow:3px 3px 10px gray;
   opacity: 1;
}
.postbody img {margin:5px 20px 10px 10px;}
address {font-style:normal;margin:5px 15px;text-align:right;}
.ano {border-left:1px solid silver;margin:10px 20px;padding:0 20px;text-align:left;}
.ano a {display:block;color:#555;}
.postbody span {color:#a00;}
.postbody span:hover, .ano a:hover {color:blue;}
.postbody {margin:10px 0;}
.rightero {font-weight:normal;margin:15px 25px;text-align:right;}
.rightero a {background:#f2f2f2;border:#d5d5d5 1px solid;color:#45f;padding:4px;}
.rightero a:hover {border:#f00 1px solid;color:#f00;}
.rightero span {border:#f00 1px solid;padding:4px;}
.rightero a span {border:0;padding:0;}
/* ]]> */
</style>

<h2>Из блога Мастера Ласто:</h2>'
.$c;

   
$_s['title']='Новости "Блога провинциального самурая".';

/* Ниже этой строки в файле ничего не должно быть. */ ?>

Вам требуется понимать, как проложить локальный путь от корневой папки Наны до файла морды блога (в коде такой путь прописан для примера, у Вас будет другой), плюс уметь записать это без ошибок в единственной конфигурационной строчке данного скрипта.

Второй вариант реализации предпочтительнее, так как он проще, не использует внешние соединения и кэширование. А значит, вдруг изменившаяся морда блога будет импортирована в Нану без всякой задержки.