Перенести статьи с Joomla перенести на Modx EVO
Помогите, подскажите пожалуйста
Необходимо статьи с сайта который на Joomla перенести на MODX EVO
Предоставляю скрины обеих БД
Необходимо статьи с сайта который на Joomla перенести на MODX EVO
Предоставляю скрины обеих БД
Комментарии: 6
Я не думаю что у кого-то найдется свободное время чтоб Вам тут написать безвозмездно скрипт переноса. Тем более на MODX Evo )
Хотя там не так много писать кода.
Хотя там не так много писать кода.
На Revo — есть. Для Evo — увы.
и кода там писать реально всего ничего
и кода там писать реально всего ничего
Ну помоги пожалуйста, если не трудно
Примерно так это выглядит для Revo (взял из одного проекта, и не проверяя подкорректировал).
А смысл простой — взять нужные данные из таблиц Джумлы, завернуть их в массив и вставить с помощью какой-то матери в таблицу для Evo. Если погуглить, то можно найти такую ссылку. Осталось только присобачить пример выше к примеру по ссылке и добавлять данные как-то так, судя по статье:
<?php
set_time_limit(500);
$modx->setDebug(E_ALL & ~E_NOTICE); // sets error_reporting to everything except NOTICE remarks
$modx->setLogLevel(modX::LOG_LEVEL_DEBUG);
$result = $modx->query("SELECT k2.id,k2.title, k2.fulltext, k2.introtext, k2.created, k2.hits, k2.alias, FROM `joomlasite_k2_items` k2";
if (!is_object($result)) {
return 'No result!';
} else {
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
$data['pagetitle'] = $row['title'];
$data['content'] = $row['introtext'];
$data['template'] = 4;
$data['context_key'] = 'web';
$data['createdon'] = strtotime($row['created']);
$data['tvs'] = true;
$data['tv43'] = $row['hits'];
$response = $modx->runProcessor('resource/create', $data);
if ($response->isError()) {
html .= ($modx->error->failure($response->getMessage())) . '<br />
</br>?';
} else {
$object = $response->getObject();
$html .= "
Был обновлен документ с ID {$object['id']}";
}
}
return $html;
Но дело в том, что в Revo есть процессоры, а в Evo, вроде бы (последний раз работал с Evo в 2014), нет. А смысл простой — взять нужные данные из таблиц Джумлы, завернуть их в массив и вставить с помощью какой-то матери в таблицу для Evo. Если погуглить, то можно найти такую ссылку. Осталось только присобачить пример выше к примеру по ссылке и добавлять данные как-то так, судя по статье:
// где $new_document это массив с данными из базы.
$newDocId = $modx->db->insert( $new_document, $modx->getFullTableName('site_content') );
А если переносить на Revo, не можете подробнее описать действия по переносу?
Да тоже самое:
0. Импортировать таблицы из сайта на Joomla в бд с сайтом на MODX.
1. Составить запрос к БД с присоединением всех нужных параметров (категории, рейтинги, просмотры и т.п.)
2. Выполнить запрос с помощью $modx->query()
3. Обработать запрос, заполнив массив данными
4. С помощью процессора MODX resources/create создавать ресурсы из значений массива
5. Профит. Вы восхитительны.
Примерный код выше.
Я вам даже больше скажу. Вы можете сбыдлокодить и тупо скопировать значения из таблицы в таблицу, минуя процессоры. Это не тру, так делать нельзя, но оно работает. Я сталкивался с такими вещами. Очень многие умники любят так делать.
0. Импортировать таблицы из сайта на Joomla в бд с сайтом на MODX.
1. Составить запрос к БД с присоединением всех нужных параметров (категории, рейтинги, просмотры и т.п.)
2. Выполнить запрос с помощью $modx->query()
3. Обработать запрос, заполнив массив данными
4. С помощью процессора MODX resources/create создавать ресурсы из значений массива
5. Профит. Вы восхитительны.
Примерный код выше.
Я вам даже больше скажу. Вы можете сбыдлокодить и тупо скопировать значения из таблицы в таблицу, минуя процессоры. Это не тру, так делать нельзя, но оно работает. Я сталкивался с такими вещами. Очень многие умники любят так делать.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.