CMS MODX. Запись данных в таблицу Mysql

Тема в разделе "Импорт CSV", создана пользователем stza, 27 окт 2015.

  1. stza

    stza New Member Пользователи

    Регистрация:
    21 июл 2015
    Сообщения:
    10
    Приветствую всех любителей попарсить, а в особенности пользователей cms modx. Давно мечтал на лету закидывать данные напрямую в базу, а не через всякие import csv и т.п. Долго искал то, что может меня устроить и наткунлся на сей отличнейший софт. Подружить ContentDownloader с modx получилось не сразу. Вся сложность заключается в том, что modx хранит контент в базу так ,что основные поля находятся в одной таблиице, а доп поля tv-параметры(переменные) в другой таблице и связываются по id.:surprised:
    Поэтому скрипт немного увеличивается. Я собираюсь в этот топик выкладывать версии своего скрипта и надеюсь он кому то поможет.
    Сейчас скрипт умеет:
    • записывать данные
    • перезаписывать данные, если alias посылаемой строки, совпадает уже с имеющимся таким alias в базе.
    • Записывать tv-параметры (только при создании документа)
    Сейчас делаю:
    1. перезаписывать tv-парметры, если alias или id посылаемой строки совпадает

    Выкладываю исходник:
    PHP:
    <?php
    $db 
    mysql_connect("localhost""имя_базы""пароль_от_базы"); #подключение к MySQL с передачей имени пользователя и пароля
    mysql_select_db("имя_базы"); #выбираем имя_базы
    mysql_query("SET NAMES utf8");
    $_POST[pagetitle] = mysql_real_escape_string($_POST[pagetitle]); #экранируем специальные символы в полученных от Content Downloader POST-данных pagetitle
    $_POST[content] = mysql_real_escape_string($_POST[content]);
    $_POST[alias] = mysql_real_escape_string($_POST[alias]);
    $_POST[longtitle] = mysql_real_escape_string($_POST[longtitle]);
    $_POST[description] = mysql_real_escape_string($_POST[description]);
    $_POST[published] = mysql_real_escape_string($_POST[published]);
    $_POST[parent] = mysql_real_escape_string($_POST[parent]);
    $_POST[isfolder] = mysql_real_escape_string($_POST[isfolder]);
    $_POST[template] = mysql_real_escape_string($_POST[template]);
    $_POST[menutitle] = mysql_real_escape_string($_POST[menutitle]);
    $_POST[introtext] = mysql_real_escape_string($_POST[introtext]);
    $_POST[tmplvarid] = mysql_real_escape_string($_POST[tmplvarid]);
    $_POST[tmplvarid2] = mysql_real_escape_string($_POST[tmplvarid2]);
    $_POST[value] = mysql_real_escape_string($_POST[value]);
    $_POST[value2] = mysql_real_escape_string($_POST[value2]);


    mysql_query("SELECT id FROM modx_site_content WHERE alias='".$_POST[alias]."'");
    $test mysql_query("SELECT id FROM `modx_site_content` WHERE alias='".$_POST[alias]."'") or die ("Error.<hr>" mysql_error());


    if (
    mysql_num_rows($test)) {
        
    mysql_query("UPDATE modx_site_content SET pagetitle='$_POST[pagetitle]', content='$_POST[content]', longtitle='$_POST[longtitle]', description='$_POST[description]', published='$_POST[published]', parent='$_POST[parent]', isfolder='$_POST[isfolder]', template='$_POST[template]', menutitle='$_POST[menutitle]', introtext='$_POST[introtext]' WHERE alias='".$_POST[alias]."'");
        
        
    }
    else {
        
    mysql_query("INSERT INTO modx_site_content (pagetitle,content,alias,longtitle,description,published,parent,isfolder,template,menutitle,introtext,uri) VALUES ('$_POST[pagetitle]', '$_POST[content]', '$_POST[alias]', '$_POST[longtitle]', '$_POST[description]', '$_POST[published]', '$_POST[parent]', '$_POST[isfolder]', '$_POST[template]', '$_POST[menutitle]', '$_POST[introtext]', '$_POST[alias]')");  
        
    $latest_id mysql_insert_id();
        
    mysql_query("INSERT INTO modx_site_tmplvar_contentvalues (tmplvarid,value,contentid) VALUES ('$_POST[tmplvarid]','$_POST[value]','$latest_id')");
        
    mysql_query("INSERT INTO modx_site_tmplvar_contentvalues (tmplvarid,value,contentid) VALUES ('$_POST[tmplvarid2]','$_POST[value2]','$latest_id')");
    }
    ?>

    Топик создал для новых идей в загрузке контента в БД на CMS MODX
     
    Последнее редактирование: 27 окт 2015
  2. stza

    stza New Member Пользователи

    Регистрация:
    21 июл 2015
    Сообщения:
    10
    Если что то нужно объяснить, что там чему равно, обращайтесь: skype stiza666
     
  3. d15000

    d15000 New Member Пользователи

    Регистрация:
    26 окт 2015
    Сообщения:
    5
    Город:
    СПБ
    Буду тестить, хотя до этого справлялся с компонентом catallogfill на modx revo
     
  4. stza

    stza New Member Пользователи

    Регистрация:
    21 июл 2015
    Сообщения:
    10
    Да я тоже всякой всячиной загружал раньше, куда как комфортнее сразу в базу писать. Следи за темой, скрипт в режиме реального времени пишем, скоро перезапись tv вылью.
     
  5. stza

    stza New Member Пользователи

    Регистрация:
    21 июл 2015
    Сообщения:
    10
    Если кому то интересно поделюсь скриптом записи и перезаписи данных в бд, в т.ч. и tv парметров. Стучите ICQ 405219928
     
Similar Threads
  1. boodooboo
    Ответов:
    6
    Просмотров:
    2.892
  2. ZloeSalo
    Ответов:
    0
    Просмотров:
    1.761
  3. bigshark
    Ответов:
    0
    Просмотров:
    1.245
  4. mur
    Ответов:
    1
    Просмотров:
    1.046
  5. koleso62
    Ответов:
    0
    Просмотров:
    1.119
Загрузка...

Поделиться этой страницей