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

Тема в разделе "Добро пожаловать на чашечку чего-сами-знаете :)", создана пользователем dok34.ru, 29 июн 2017.

  1. dok34.ru

    dok34.ru Каюр тяжёлых систем

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

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

    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>
     
  3. dok34.ru

    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запросы, к сожалению.
    Пару дней начинал, но времени мало пока , для уроков.
    Хотя и интересно :)

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

    dok34.ru Каюр тяжёлых систем


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

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

    dok34.ru Каюр тяжёлых систем

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

    dok34.ru Каюр тяжёлых систем


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

    dok34.ru Каюр тяжёлых систем

    Merge пара страниц скрины




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

    Kirill89_3 Well-Known Member

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

    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('#\
     
  10. dok34.ru

    dok34.ru Каюр тяжёлых систем

    Kirill89_3 () писал:
    Второе.
    Именно так - некоторые поля обнуляем, некоторые добавляем из старой таблицы.

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

    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>
    Вот я начал переписывать и пытаться понять - тут по крайней мере всё прозрачно :)
     
  12. Kirill89_3

    Kirill89_3 Well-Known Member

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

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

    dok34.ru Каюр тяжёлых систем

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

    Вроде бы.
    тест
     
    Последнее редактирование модератором: 4 июл 2017
  14. Kirill89_3

    Kirill89_3 Well-Known Member

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

    dok34.ru Каюр тяжёлых систем

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

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

    dok34.ru Каюр тяжёлых систем


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

    Нет, я соврал - не совсем тут :)
    НЕ качается, чтобы глянуть ,в смысле
     
  17. 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) Зайдите в центр управления и очистите кеш форума.

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

    dok34.ru Каюр тяжёлых систем

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

    Edelweiss Well-Known Member

    .Цитата:
    Давно пора новые смайлы сделать.
     
  20. dok34.ru

    dok34.ru Каюр тяжёлых систем

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