• Сейчас приступил к настройке важных настроек форума. Док в ближайшие дни возвращается и к онлайн работе, и к форуму как человек, а не как компьютерщик! Всем спасибо за терпение и ожидание!

PHP, MySql и другие :)

dok34.ru

Зануда Запорожец
Создаю тему, чисто техническую, и буду благодарен за помощь от форумчан и гостей моего форума!

Kirill89_3 () писал:
То есть нужен PHP скрипт, который бы считывал инфу со старой базы, ее модифицировал и заносил в новую, так ?:) А какие модификации надо внести?
Так.
1.Выборку пользователей - все поля таблицы в соответствующие поля таблицы от другого движка.
2.Выборку постов, с датами понятно, и ID автора поста, и ID ветки форума.
3.Выборку веток форума. Чтобы не все подряд вставилось.
:)
Тест
 
Последнее редактирование модератором:

dok34.ru

Зануда Запорожец
LB_posts и xf_post
<pre class="brush: php">&lt;table_structure name="LB_posts"&gt;
&lt;field field="pid" type="int(10)" null="NO" key="PRI" default="&lt;null&gt;" extra="auto_increment" /&gt;
&lt;field field="topic_id" type="int(10)" null="NO" key="MUL" default="0" extra="" /&gt;
&lt;field field="new_topic" type="tinyint(1)" null="NO" key="MUL" default="0" extra="" /&gt;
&lt;field field="text" type="text" null="YES" key="" default="&lt;null&gt;" extra="" /&gt;
&lt;field field="post_date" type="int(10)" null="NO" key="MUL" default="0" extra="" /&gt;
&lt;field field="edit_date" type="int(10)" null="NO" key="" default="0" extra="" /&gt;
&lt;field field="post_member_id" type="int(10)" null="NO" key="MUL" default="0" extra="" /&gt;
&lt;field field="post_member_name" type="varchar(40)" null="NO" key="MUL" default="" extra="" /&gt;
&lt;field field="ip" type="varchar(40)" null="NO" key="MUL" default="" extra="" /&gt;
&lt;field field="hide" type="tinyint(1)" null="NO" key="MUL" default="0" extra="" /&gt;
&lt;field field="fixed" type="tinyint(1)" null="NO" key="MUL" default="0" extra="" /&gt;
&lt;field field="attachments" type="text" null="YES" key="" default="&lt;null&gt;" extra="" /&gt;
&lt;field field="edit_member_id" type="int(10)" null="NO" key="" default="0" extra="" /&gt;
&lt;field field="edit_member_name" type="varchar(40)" null="NO" key="" default="" extra="" /&gt;
&lt;field field="edit_reason" type="varchar(255)" null="NO" key="" default="" extra="" /&gt;
&lt;field field="moder_member_id" type="int(10)" null="NO" key="" default="0" extra="" /&gt;
&lt;field field="moder_member_name" type="varchar(40)" null="NO" key="" default="" extra="" /&gt;
&lt;field field="moder_reason" type="varchar(255)" null="NO" key="" default="" extra="" /&gt;
&lt;field field="moder_date" type="int(10)" null="NO" key="" default="0" extra="" /&gt;
&lt;field field="utility" type="smallint(5)" null="NO" key="" default="0" extra="" /&gt;
&lt;field field="htmlbr" type="tinyint(1)" null="NO" key="" default="0" extra="" /&gt;
&lt;field field="moderation" type="tinyint(1)" null="NO" key="" default="0" extra="" /&gt;

&lt;options name="LB_posts" engine="MyISAM" version="10" row_format="Dynamic" rows="127327" avg_row_length="926" data_length="117932392" max_data_length="281474976710655" index_length="11926528" data_free="0" create_time="2017-06-27 20:45:37" update_time="2017-06-27 20:45:38" collation="utf8_general_ci" create_options="" comment="" /&gt;
&lt;/table_structure&gt;</pre>

Это структура таблицы LB_posts, понятно.
Это - первый пост.


<pre class="brush: php">&lt;row&gt;
&lt;field name="pid"&gt;3&lt;/field&gt;
&lt;field name="topic_id"&gt;2&lt;/field&gt;
&lt;field name="new_topic"&gt;1&lt;/field&gt;
&lt;field name="text"&gt;...которые частично учтены в печатной версии. Что ещё нужно добавить или убавить в ближайшее время для лучшего &amp;amp;quot;усваивания&amp;amp;quot; медицинского материала?&amp;lt;br /&amp;gt;Жду предложений, критики и прочего.&amp;lt;br /&amp;gt;Кроме спама, разумеется &amp;lt;img id='smiles_img' src='{TEMPLATE}/bbcode/smiles/002.gif' /&amp;gt;&lt;/field&gt;
&lt;field name="post_date"&gt;1265547113&lt;/field&gt;
&lt;field name="edit_date"&gt;0&lt;/field&gt;
&lt;field name="post_member_id"&gt;13&lt;/field&gt;
&lt;field name="post_member_name"&gt;dok34.ru&lt;/field&gt;
&lt;field name="ip"&gt;*.81.101.93&lt;/field&gt;
&lt;field name="hide"&gt;0&lt;/field&gt;
&lt;field name="fixed"&gt;0&lt;/field&gt;
&lt;field name="attachments" xsi:nil="true" /&gt;
&lt;field name="edit_member_id"&gt;0&lt;/field&gt;
&lt;field name="edit_member_name"&gt;Удалён&lt;/field&gt;
&lt;field name="edit_reason"&gt;&lt;/field&gt;
&lt;field name="moder_member_id"&gt;0&lt;/field&gt;
&lt;field name="moder_member_name"&gt;&lt;/field&gt;
&lt;field name="moder_reason"&gt;&lt;/field&gt;
&lt;field name="moder_date"&gt;0&lt;/field&gt;
&lt;field name="utility"&gt;0&lt;/field&gt;
&lt;field name="htmlbr"&gt;0&lt;/field&gt;
&lt;field name="moderation"&gt;0&lt;/field&gt;
&lt;/row&gt;</pre>
Это похоже мой ответ на первый пост, который был удалён вместе с его автором.


Вот аналогичное - структура и первый пост в XenForo - по идее в MyBB попроще будет, ещё не смотрел.


<pre class="brush: xml">&lt;table_structure name="xf_post"&gt;
&lt;field field="post_id" type="int(10) unsigned" null="NO" key="PRI" default="&lt;null&gt;" extra="auto_increment" /&gt;
&lt;field field="thread_id" type="int(10) unsigned" null="NO" key="MUL" default="&lt;null&gt;" extra="" /&gt;
&lt;field field="user_id" type="int(10) unsigned" null="NO" key="MUL" default="&lt;null&gt;" extra="" /&gt;
&lt;field field="username" type="varchar(50)" null="NO" key="" default="&lt;null&gt;" extra="" /&gt;
&lt;field field="post_date" type="int(10) unsigned" null="NO" key="MUL" default="&lt;null&gt;" extra="" /&gt;
&lt;field field="message" type="mediumtext" null="NO" key="" default="&lt;null&gt;" extra="" /&gt;
&lt;field field="ip_id" type="int(10) unsigned" null="NO" key="" default="0" extra="" /&gt;
&lt;field field="message_state" type="enum('visible','moderated','deleted')" null="NO" key="" default="visible" extra="" /&gt;
&lt;field field="attach_count" type="smallint(5) unsigned" null="NO" key="" default="0" extra="" /&gt;
&lt;field field="position" type="int(10) unsigned" null="NO" key="" default="&lt;null&gt;" extra="" /&gt;
&lt;field field="likes" type="int(10) unsigned" null="NO" key="" default="0" extra="" /&gt;
&lt;field field="like_users" type="blob" null="NO" key="" default="&lt;null&gt;" extra="" /&gt;
&lt;field field="warning_id" type="int(10) unsigned" null="NO" key="" default="0" extra="" /&gt;
&lt;field field="warning_message" type="varchar(255)" null="NO" key="" default="" extra="" /&gt;
&lt;field field="last_edit_date" type="int(10) unsigned" null="NO" key="" default="0" extra="" /&gt;
&lt;field field="last_edit_user_id" type="int(10) unsigned" null="NO" key="" default="0" extra="" /&gt;
&lt;field field="edit_count" type="int(10) unsigned" null="NO" key="" default="0" extra="" /&gt;

&lt;options name="xf_post" engine="InnoDB" version="10" row_format="Compact" rows="4" avg_row_length="4096" data_length="16384" max_data_length="0" index_length="65536" data_free="0" create_time="2017-06-27 20:50:30" update_time="&lt;null&gt;" collation="utf8_general_ci" create_options="" comment="" /&gt;
&lt;/table_structure&gt;

&lt;table_data name="xf_post"&gt;

&lt;row&gt;
&lt;field name="post_id"&gt;1&lt;/field&gt;
&lt;field name="thread_id"&gt;1&lt;/field&gt;
&lt;field name="user_id"&gt;1&lt;/field&gt;
&lt;field name="username"&gt;admin&lt;/field&gt;
&lt;field name="post_date"&gt;1497809741&lt;/field&gt;
&lt;field name="message"&gt;Первый пошёл&lt;/field&gt;
&lt;field name="ip_id"&gt;2&lt;/field&gt;
&lt;field name="message_state"&gt;visible&lt;/field&gt;
&lt;field name="attach_count"&gt;0&lt;/field&gt;
&lt;field name="position"&gt;0&lt;/field&gt;
&lt;field name="likes"&gt;0&lt;/field&gt;
&lt;field name="like_users"&gt;a:0:{}&lt;/field&gt;
&lt;field name="warning_id"&gt;0&lt;/field&gt;
&lt;field name="warning_message"&gt;&lt;/field&gt;
&lt;field name="last_edit_date"&gt;0&lt;/field&gt;
&lt;field name="last_edit_user_id"&gt;0&lt;/field&gt;
&lt;field name="edit_count"&gt;0&lt;/field&gt;
&lt;/row&gt;
</pre>
 

dok34.ru

Зануда Запорожец
MyBB
<pre class="brush: xml">&lt;table_structure name="mybb_posts"&gt;
&lt;field field="pid" type="int(10) unsigned" null="NO" key="PRI" default="&lt;null&gt;" extra="auto_increment" /&gt;
&lt;field field="tid" type="int(10) unsigned" null="NO" key="MUL" default="0" extra="" /&gt;
&lt;field field="replyto" type="int(10) unsigned" null="NO" key="" default="0" extra="" /&gt;
&lt;field field="fid" type="smallint(5) unsigned" null="NO" key="" default="0" extra="" /&gt;
&lt;field field="subject" type="varchar(120)" null="NO" key="" default="" extra="" /&gt;
&lt;field field="icon" type="smallint(5) unsigned" null="NO" key="" default="0" extra="" /&gt;
&lt;field field="uid" type="int(10) unsigned" null="NO" key="MUL" default="0" extra="" /&gt;
&lt;field field="username" type="varchar(80)" null="NO" key="" default="" extra="" /&gt;
&lt;field field="dateline" type="int(10) unsigned" null="NO" key="MUL" default="0" extra="" /&gt;
&lt;field field="message" type="text" null="NO" key="MUL" default="&lt;null&gt;" extra="" /&gt;
&lt;field field="ipaddress" type="varbinary(16)" null="NO" key="MUL" default="" extra="" /&gt;
&lt;field field="includesig" type="tinyint(1)" null="NO" key="" default="0" extra="" /&gt;
&lt;field field="smilieoff" type="tinyint(1)" null="NO" key="" default="0" extra="" /&gt;
&lt;field field="edituid" type="int(10) unsigned" null="NO" key="" default="0" extra="" /&gt;
&lt;field field="edittime" type="int(10) unsigned" null="NO" key="" default="0" extra="" /&gt;
&lt;field field="editreason" type="varchar(150)" null="NO" key="" default="" extra="" /&gt;
&lt;field field="visible" type="tinyint(1)" null="NO" key="MUL" default="0" extra="" /&gt;

&lt;options name="mybb_posts" engine="MyISAM" version="10" row_format="Dynamic" rows="3" avg_row_length="61" data_length="184" max_data_length="281474976710655" index_length="9216" data_free="0" create_time="2017-06-27 20:33:46" update_time="2017-06-29 18:50:36" collation="utf8_general_ci" create_options="" comment="" /&gt;
&lt;/table_structure&gt;

&lt;table_data name="mybb_posts"&gt;

&lt;row&gt;
&lt;field name="pid"&gt;1&lt;/field&gt;
&lt;field name="tid"&gt;1&lt;/field&gt;
&lt;field name="replyto"&gt;0&lt;/field&gt;
&lt;field name="fid"&gt;2&lt;/field&gt;
&lt;field name="subject"&gt;test1&lt;/field&gt;
&lt;field name="icon"&gt;0&lt;/field&gt;
&lt;field name="uid"&gt;1&lt;/field&gt;
&lt;field name="username"&gt;adm&lt;/field&gt;
&lt;field name="dateline"&gt;1498751250&lt;/field&gt;
&lt;field name="message"&gt;test1-1&lt;/field&gt;
&lt;field name="ipaddress"&gt;Nj?&lt;/field&gt;
&lt;field name="includesig"&gt;0&lt;/field&gt;
&lt;field name="smilieoff"&gt;0&lt;/field&gt;
&lt;field name="edituid"&gt;0&lt;/field&gt;
&lt;field name="edittime"&gt;0&lt;/field&gt;
&lt;field name="editreason"&gt;&lt;/field&gt;
&lt;field name="visible"&gt;1&lt;/field&gt;
&lt;/row&gt;</pre>
Это аналогичное в MyBB/
Проще вроде, я поэтому рассматриваю движок как посредника.

Я могу в дампе тупо заменить часть полей, получить аналог и загрузить в базу.
Этот путь парильный - я просто не умею пока понимать SQLзапросы, к сожалению.
Пару дней начинал, но времени мало пока , для уроков.
Хотя и интересно :)

Не парильный, а парафильный :)
Автозамена странная :)
 

dok34.ru

Зануда Запорожец

Вот ссылка по миграции на движок MyBB

Это обсуждение темы конвертеров LB - прямого решения пока нет, хотя оно востребовано.
 

dok34.ru

Зануда Запорожец
Я попробовал сначала переделать блок конвертера, но не понимаю ряда моментов в скрипте.
Универсальный скрипт, я ещё не все файлы участвующие просмотрел хоть бегло.
 

dok34.ru

Зануда Запорожец

Собственно вот документация.
Я тоже почитаю сейчас :)
По идее переделка одного из существующих блоков должна быть возможна :)
 

dok34.ru

Зануда Запорожец
Merge пара страниц скрины




Это при запуске конвертера, его плановые возможности.
LB понятно это я вставил, пока неполноценно :)
 
Последнее редактирование:

Kirill89_3

Покорный инквизитор
Я не совсем понял...Какая задача ?:) Конвертация структуры базы данных из одного формата в другой ?:) Или же конвертация только данных? То есть берем данные из одной таблицы, некоторые поля удаляем, другие добавляем, так примерно? : )
 
Последнее редактирование:

dok34.ru

Зануда Запорожец

Доступ на скачивание есть?
У меня есть, как у клиента, могу скачать нужное.
Когда-то переходил с PhpBB - это было давненько :)
Сейчас выложу код конвертера и блока PhpBB
ТОже можно разобраться пожалуй :)

файл конвертера

<pre class="brush: php">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&gt;
&lt;head&gt;
&lt;meta http-equiv="content-type" content="text/html; charset=windows-1251"/&gt;
&lt;title&gt;Конвертор LogicBoard 2.2 (DLE Edition)&lt;/title&gt;
&lt;link rel="stylesheet" href="style.css"/&gt;
&lt;style&gt;
* {
font-family: sans-serif;
font-size: 14px;
color: #444;
}

input {
border: 1px solid #777;
}

input:hover {
border: 1px solid #444;
}

input:focus {
border: 1px solid #222;
}

.container-header {
font-weight: bold;
}

#page {
margin: auto;
display: block;
width: 570px;
overflow: hidden;
}

div#header {
font-size: 25px;
margin: 0 auto;
display: block;
text-align: center;
padding-bottom: 10px;
}

div#from_container {
display: block;
float: left;
}

div#to_container {
display: block;
float: right;
}

div.option_item {
display: block;
padding-top: 5px;
}

div.commonoption_item {
display: block;
padding-top: 15px;
clear: both;
}



div#submit {
padding-top: 10px;
margin: 0 auto 10px auto;
clear: both;
width: 100px;
}

.option_item &gt; label {
width: 110px;
display: inline-block;
}

.commonoption_item &gt; label {
width: 410px;
display: inline-block;
}

input[type=submit] {
margin: 0 auto;
display: block;
}

div#engine-choose{
margin:0 auto;
width: 325px;
}

#tooltip{
position: absolute;
width: 200px;
background: #FEEFB3;

padding: 10px;
-webkit-border-radius: 9px;
-moz-border-radius: 9px;
border-radius: 9px;
border: 1px solid;
visibility:hidden;
margin-top: 5px;
padding: 10px 10px 10px 20px;
}

#warning{
-webkit-border-radius: 9px;
-moz-border-radius: 9px;
border-radius: 9px;

background: #FEEFB3;
border: 1px solid;
margin-bottom:10px;
padding:10px 5px;
text-align:center;
}

#warning ul li{

font-size: 11px;
padding-top: 5px;
}

&lt;/style&gt;
&lt;script type="text/javascript"&gt;

var tooltip, op;
function show_tooltip(el, txt)
{
tooltip = document.getElementById('tooltip');
tooltip.innerHTML = txt;
op = 0.1;
tooltip.style.opacity = op;
tooltip.style.visibility = "visible";

tooltip.style.left = (el.offsetLeft - 10)+"px";
tooltip.style.top = (el.offsetTop + 20)+"px";

show();
return false;
}

function show()
{
if(op &lt; 1)
{
op += 0.1;
tooltip.style.opacity = op;
tooltip.style.filter = 'alpha(opacity='+op*100+')';
t = setTimeout("show()", 30);
}
}

function hide(el)
{
tooltip.style.visibility = "hidden";
}

&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id="tooltip"&gt;&lt;/div&gt;

&lt;?php

set_time_limit(0);
ini_set('memory_limit', '2048M');
ini_set('display_errors',1);


require_once "modules/dle_2.5.php";
require_once "modules/dle_2.6.php";
require_once "modules/phpbb_3.0.9.php";
require_once "modules/ipb_3_1_4.php";
require_once "modules/lb_2.0.php";
require_once "modules/vb_3_6.php";
require_once "modules/twsf.php";

$engines = array(new DLE_2_5(), new DLE_2_6(), new TWSF(), new IPB_3_1_4(), new LB_2_0(), new phpBB_3_0_9(), new VB_3_6);
$engine = null;

if(isset($_POST['engine'])) {
foreach($engines as $cur_engine)
{
if($_POST['engine'] == $cur_engine-&gt;Setup("id"))
{
$engine = $cur_engine;
break;
}
}
}


if(isset($_POST['convert_submit']))
{
$engine-&gt;ConnectDestSql($_POST['to_mysql_host'], $_POST['to_mysql_login'], $_POST['to_mysql_password']);
$engine-&gt;ConnectSrcSql($_POST['from_mysql_host'], $_POST['from_mysql_login'], $_POST['from_mysql_password']);

$engine-&gt;SetDestDb($_POST['to_db_name'], $_POST['to_db_prefix']);
$engine-&gt;SetSrcDb($_POST['from_db_name'], $_POST['from_db_prefix']);



if(!$engine-&gt;Setup("dle_based"))
$engine-&gt;SetDleDB($_POST['to_db_dleprefix']);
$options = array();
if(isset($_POST['rep_mod']) &amp;&amp; $_POST['rep_mod'] == "on")
$options[] = "rep_mod";
if(isset($_POST['admin_name']))
$options['admin_name'] = $_POST['admin_name'];
$engine-&gt;OnStart();
$engine-&gt;Convert($options);
$engine-&gt;OnFinish();
}

else if(isset($_POST['engine_choose_submit'])){


?&gt;

&lt;form action="" method="POST"&gt;
&lt;div id="page"&gt;
&lt;div id="header"&gt;Конвертор LogicBoard 2.2 (DLE Edition)&lt;/div&gt;
&lt;?php if($engine-&gt;Setup("add_text")){ echo '&lt;div id="warning"&gt;&lt;ul&gt;';
foreach($engine-&gt;Setup("add_text") as $text)
echo "&lt;li&gt;".$text.'&lt;/li&gt;';
echo '&lt;/ul&gt;&lt;/div&gt;';}
?&gt;
&lt;div id="from_container"&gt;

&lt;label class="container-header"&gt;&lt;?php echo $engine-&gt;Setup("caption");?&gt;&lt;/label&gt;

&lt;div class="option_item"&gt;
&lt;label&gt;MySQL Сервер&lt;/label&gt;
&lt;input type="text" name="from_mysql_host" value="localhost"/&gt;
&lt;/div&gt;
&lt;div class="option_item"&gt;
&lt;label&gt;MySQL Логин&lt;/label&gt;
&lt;input type="text" name="from_mysql_login"/&gt;
&lt;/div&gt;
&lt;div class="option_item"&gt;
&lt;label&gt;MySQL Пароль&lt;/label&gt;
&lt;input type="text" name="from_mysql_password"/&gt;
&lt;/div&gt;
&lt;div class="option_item"&gt;
&lt;label&gt;База данных&lt;/label&gt;
&lt;input type="text" name="from_db_name" /&gt;
&lt;/div&gt;
&lt;div class="option_item"&gt;
&lt;label&gt;Префикс таблиц&lt;/label&gt;
&lt;input onfocus='show_tooltip(this, "Если у вас база с \"_\" то не забудьте её добавить в поле");'
onblur='hide();'
type="text" name="from_db_prefix" value="&lt;?php echo $engine-&gt;Setup("db_prefix"); ?&gt;"/&gt;
&lt;/div&gt;
&lt;?php if ($engine-&gt;Setup("id") == "phpbb_3_0_9") {?&gt;
&lt;div class="option_item"&gt;
&lt;label&gt;Логин администратора&lt;/label&gt;
&lt;input type="text" name="admin_name"/&gt;
&lt;/div&gt;
&lt;?php } ?&gt;
&lt;/div&gt;
&lt;div id="to_container"&gt;
&lt;label class="container-header"&gt;LogicBoard 2.2 (DLE Edition)&lt;/label&gt;

&lt;div class="option_item"&gt;
&lt;label&gt;MySQL Сервер&lt;/label&gt;
&lt;input type="text" name="to_mysql_host" value="localhost"/&gt;
&lt;/div&gt;
&lt;div class="option_item"&gt;
&lt;label&gt;MySQL Логин&lt;/label&gt;
&lt;input type="text" name="to_mysql_login"/&gt;
&lt;/div&gt;
&lt;div class="option_item"&gt;
&lt;label&gt;MySQL Пароль&lt;/label&gt;
&lt;input type="text" name="to_mysql_password"/&gt;
&lt;/div&gt;
&lt;div class="option_item"&gt;
&lt;label&gt;База данных&lt;/label&gt;
&lt;input type="text" name="to_db_name"/&gt;
&lt;/div&gt;
&lt;?php if ($engine-&gt;Setup("dle_based")) {?&gt;
&lt;div class="option_item"&gt;
&lt;label&gt;Префикс таблиц&lt;/label&gt;
&lt;input onfocus='show_tooltip(this, "Если у вас база с \"_\" то не забудьте её добавить в поле");'
onblur='hide();'
type="text" name="to_db_prefix" value="LB_"/&gt;
&lt;/div&gt;
&lt;?php } else { ?&gt;
&lt;div class="option_item"&gt;
&lt;label&gt;Префикс таблиц DLE&lt;/label&gt;
&lt;input onfocus='show_tooltip(this, "Если у вас база с \"_\" то не забудьте её добавить в поле");'
onblur='hide();'
type="text" name="to_db_dleprefix" value="dle_"/&gt;
&lt;/div&gt;
&lt;div class="option_item"&gt;
&lt;label&gt;Префикс таблиц LB&lt;/label&gt;
&lt;input onfocus='show_tooltip(this, "Если у вас база с \"_\" то не забудьте её добавить в поле");'
onblur='hide();'
type="text" name="to_db_prefix" value="LB_"/&gt;
&lt;/div&gt;
&lt;?php } ?&gt;

&lt;/div&gt;
&lt;div class="commonoption_item"&gt;
&lt;label&gt;Установлен модуль репутации для CMS DLE от ShapeShifter&lt;/label&gt;
&lt;input type="checkbox" name="rep_mod"/&gt;
&lt;/div&gt;
&lt;div id="submit"&gt;
&lt;input type="submit" name="convert_submit" value="Конвертировать"/&gt;
&lt;/div&gt;
&lt;div id="warning"&gt;Если у вас нет модуля репутации, то вы можете купить его
&lt;a target="_blank" href="http://savgroup.ru/modules_dle/pay_modules_dle/38-reputaciya-65.html"&gt;здесь&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;input type="hidden" name="engine" value="&lt;?echo $_POST['engine'];?&gt;"/&gt;
&lt;/form&gt;

&lt;?php }else{ ?&gt;

&lt;form action="" method="POST"&gt;
&lt;div id="page"&gt;
&lt;div id="header"&gt;Конвертор LogicBoard 2.2 (DLE Edition)&lt;/div&gt;
&lt;div id="engine-choose"&gt;
&lt;label&gt;Форум для конвертирования&lt;/label&gt;
&lt;select name="engine"&gt;
&lt;?php
foreach($engines as $eng)
echo "&lt;option value=\"". $eng-&gt;Setup("id")."\"&gt;".$eng-&gt;Setup("caption")."&lt;/option&gt;";
?&gt;
&lt;/select&gt;
&lt;/div&gt;
&lt;div id="submit"&gt;
&lt;input type="submit" name="engine_choose_submit" value="Далее"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/form&gt;

&lt;?php }?&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>


Оформление тут понятно, подключаемые модули тоже, это типа оболочки :)

это модуль PhpBB
<pre class="brush: php">&lt;?php

require_once "EngineBase.php";
require_once 'include/parse/functions.php';
require_once 'include/parse/bbcode/function.php';

function to_bb($text)
{
$text = str_replace(array("[code", "[/code"), array("[php", "[/php"), $text);
$bb_codes = array("b", "i", "u", "quote","url","img", "php", "spoiler", er");
$smiles = array(
"\:D" =&gt; "007",
"\:\)" =&gt; "002",
"\;\)" =&gt; "004",
"\:\(" =&gt; "003",
":shock:" =&gt; "009",
":eek:" =&gt; "043",
":\?" =&gt; "030",
"8-\)" =&gt; "006",
":lol:" =&gt; "035",
":p" =&gt; "005",
":oops:" =&gt; "046",
":cry:" =&gt; "037",
":evil:" =&gt; "017",
":twisted:" =&gt; "017",
":x" =&gt; "047",
);

foreach($bb_codes as $bb_code)
{
$text = preg_replace('#\['.$bb_code.'(.*?)\:.+?]#si', '['.$bb_code.'\\1]', $text);
$text = preg_replace('#\[/'.str_replace("=", "", $bb_code).'\:.+?]#si', '[/'.str_replace("=", "", $bb_code).']', $text);
}

$text = preg_replace('#\
(.*?)\[/youtube\:.+?\]#si', '[youtube=\\1]', $text);
$text = preg_replace('#\
 

dok34.ru

Зануда Запорожец
Kirill89_3 () писал:
Я не совсем понял...Какая задача ?:) Конвертация структуры базы данных из одного формата в другой ?:) Или же конвертация только данных? То есть берем данные из одной таблицы, некоторые поля удаляем, другие добавляем, так примерно? : )
Второе.
Именно так - некоторые поля обнуляем, некоторые добавляем из старой таблицы.

Не нужны смайлики всякие , аттачи и так далее :)
Главное - информация, имхо - посты, и от кого, кому, когда.
 

dok34.ru

Зануда Запорожец
<pre class="brush: php">$engine-&gt;SetDestDb($_POST['to_db_name'], $_POST['to_db_prefix']);
$engine-&gt;SetSrcDb($_POST['from_db_name'], $_POST['from_db_prefix']);</pre>
Вот я начал переписывать и пытаться понять - тут по крайней мере всё прозрачно :)
 

Kirill89_3

Покорный инквизитор
То есть скрипт проводит итерацию по каждой записи в таблице, это внутренний цикл, внешний осуществляет итерацию по каждой таблице. А параллелить надо? :) Ну чтобы много потоков делало эту работу, а не один :) В PHP же есть инструкции для параллельного программирования ?:) Один поток данные одной таблицы обрабатывает, другой - данные другой. Еще можно дальше параллелить, разбивать потоки во внутреннем блоке.

Я просто подхожу к проблеме как программный инженер, а не как информатик. :) Программная инженерия нацелена на разработку алгоритмов, их оптимизацию :) А специалисты по информатике и выч. технике более высокоуровненными проблемами занимаются - развертыванием информационных систем в реале. :) Поэтому в программу вступительного экзамена в магистратуру "информатика и выч. техника" не входит математика, больше прикладных, технических вещей.
 
Последнее редактирование:

dok34.ru

Зануда Запорожец
А давайте запараллелим :)
Версия PHP позволяет :)

Вроде бы.
тест
 
Последнее редактирование модератором:

Kirill89_3

Покорный инквизитор
А это идеальная ситуация для параллельного программирования, так как потоки не над синхронизировать, проблема гонки данных не актуальна.
 

dok34.ru

Зануда Запорожец
Для облегчения я планировал убрать все группы юзеров, кроме одной-двух.
Если одна (Люди, условно) - то остальные будут отдавать ноль\пропуск в имени ID, и соответственно упростится немного вывод.
Это если "вручную" :)

Kirill89_3 () писал:
А это идеальная ситуация для параллельного программирования, так как потоки не над синхронизировать, проблема гонки данных не актуальна.
Да. не требуется. МОЖно выполнять задачи, крутить циклы одновременно.
 

dok34.ru

Зануда Запорожец

Вот ещё примеры конвертеров.

Нет, я соврал - не совсем тут :)
НЕ качается, чтобы глянуть ,в смысле
 

dok34.ru

Зануда Запорожец
Инструкция для конвертирования
Данная инструкция предназначена для запуска/установки конвертора с phpBB 3.0.9 на LogicBoard (DLE Edition) 2.2

Инструкция:
1) Установите форум LogicBoard (DLE Edition) (инструкция в дистрибутиве форума)

2) Зайдите в центр управления -&gt; настройки -&gt; Загрузка файлов.

2.1) Добавьте новую настройку: (поля, которые нужно заполнить указаны ниже)
Название: "Ссылка на файл"
Описание: "Ссылка на прикреплённый файл с phpBB"
Тип: "Одна строка"
Значение (ключ) по умолчанию: "Введите ссылку на папку с файлами. Например: (где forum.ru - адрес форума phpBB)"
Ключ: "upload_convert"

2.2) Добавьте новую настройку: (поля, которые нужно заполнить указаны ниже)
Название: "Ссылка на картинку"
Описание: "Ссылка на прикреплённую картинку с phpBB"
Тип: "Одна строка"
Значение (ключ) по умолчанию: "Введите ссылку на папку с картинками. Например: (где forum.ru - адрес форума phpBB)"
Ключ: "upload_convert_img"

3) Загрузите все файлы из папки upload в корневую папку форума

4) Запустите конвертер, введя в адресную строку браузера
Внимание! Если у Вас вместо кириллицы выводятся непоянтные символы, то смените кодировку страницы вручную на utf-8

5) Выберите нужную версию форума и введите данные от БД phpBB и данные от БД LogicBoard

6) Обязательно удалите загруженные файлы конвертора!

7) Зайдите в центр управления и очистите кеш форума.

Внимание! Если Вы собираетесь удалить старый форум, то не удаляйте папку с файлами, иначе все прикреплённые файлы будут недоступны.
Вы можете перенести данную папку в другое место, при это не забудьте указать в настройках, которые создавали выше, адрес к этой папке.
Тут много лишнего предусмотрено, имхо. Файлы-смайлы не будем тащить :)
 

dok34.ru

Зануда Запорожец
EmEditor - для дампов.
Рабочая машинка у меня не хочет 300мб файл хорошо обрабатывать :)
А это - для винды.
 

dok34.ru

Зануда Запорожец
Именно!
:)
Тоже собирался и откладывал :)
 

dok34.ru

Зануда Запорожец
Новостей по скрипту-конвертеру не появилось? Я пока попробую решить задачу в лоб :)
Получится - хорошо, если нет - вернёмся к конвертеру.
 

dok34.ru

Зануда Запорожец

Вполне годный путь, кстати. И бизнес в популярной нише :)
 
Д

Док бородатый :)

Guest
Наладка продолжается :)
Ссылку на сайт уже вмонтировал!
Пора бай ;)
Завтра спокойно уберем мусор форматирования и открою доступ для всех :)
Но тут уже можно и писать - тем, кто нашел лазейки :)
 
Д

Док на планшете

Guest
Утренний тест капчи, с дорожными знаками, на планшете.
Пройдено!
 

dok34.ru

Зануда Запорожец
Да, passed!
:)
 

dok34.ru

Зануда Запорожец
Привет!
:)
 
Сверху