آیا اسکریپتی هست که phpnuke رو تبدیل کنه به wp ?
آیا اصلا میشه همچین کاری کرد ؟؟
ممنون می شم اگه کمک ام کنید
آیا اسکریپتی هست که phpnuke رو تبدیل کنه به wp ?
آیا اصلا میشه همچین کاری کرد ؟؟
ممنون می شم اگه کمک ام کنید
خیر همچین چیزی نیست . البته میتونید در گوگل هم جستجو کنید . منتها تا اونجایی که من میدونم امکان تبدیل cms ها به هم کمه یا اصلا وجود نداره چون که این امر علاوه بر داشتن مشکلات زیاد مورد پسند مدیران خود cms ها هم نیست ;-) . موفق باشد .
یعنی چی که phpnuke رو تبدیل به wp کنه ؟
آپا شما می خواهید از مطالب در وبلاگ phpnuke پشتیبان تهیه کنید و اون را در وردپرس درون ریزی کنید
بله منظور ایشون همینه .
اگر اين امكان وجود داشته باشد شما بايد آن را در صفحه زير پيدا كنيد:
http://codex.wordpress.org/Importing_Content
داش میتونی هر cms را به وردپرس تبدیل کنی ، هیچ کاری هم نداره ....
فوق فوفقش باید از RSS استفاده کنی دیگه .... :D :D ;-) :-)
metablog جان می شه چنین کاری کرد؟
اینو امتحان کنید
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>PHP-Nuke to Wordpress Converter/Port</title>
<style type="text/css">
<!--
.td {
font-family:Georgia, "Times New Roman", Times, serif;
font-size:12px;
color:#FFF;
background-color:#333;
}
.htab {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:10px;
color:#36C;
background-color:#CCC;
}
.txt {
font-family:Arial, Helvetica, sans-serif;
font-size:14px;
}
-->
</style>
</head>
<body>
<p class="txt">Este es un simple script que convierte los articulos y topicos de una base de datos de PHP-Nuke a una de Wordpress.
<strong>Este script no importa los comentarios</strong> :P<br />
<br />
Lo primero que deben hacer es instanalar un nuevo blog/Wordpress en su cuenta/dominio y vaciar las tablas <em>wp_post</em>, <em>wp_categories</em> y <em>wp_post2cat</em>, luego complete el formulario debajo y presione el boton "Comenzar!" cuando este todo listo.</p>
<form id="migracion" name="migracion" method="post" action="">
<table width="600" border="0" align="center" cellpadding="0" cellspacing="2">
<tr>
<td height="34" colspan="4" align="center" valign="middle" class="td">Debes utilizar el mismo usuario y clave para las dos bases de datos.</td>
</tr>
<tr>
<td height="34" colspan="4" align="center" valign="middle" class="htab"><table width="250" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align="right" valign="middle" class="htab">
Servidor:
<input name="hostname" type="text" id="hostname" value="localhost" /><br>
Usuario DB:
<input name="username" type="text" id="username" value="user" />
<br />
Clave DB:
<input name="password" type="text" id="password" value="pass" /></td>
</tr>
</table>
</td>
</tr>
<tr>
<td height="30" colspan="2" align="center" valign="middle" class="td">PHP-Nuke DB</td>
<td colspan="2" align="center" valign="middle" class="td">Wordpress DB</td>
</tr>
<tr>
<td width="250" align="right" valign="middle" class="htab">
Nombre DB:
<input name="dbpn" type="text" id="dbpn" value="nuke_db" /><br /></td>
<td width="50" align="right" valign="middle" class="htab"> </td>
<td width="250" align="right" valign="middle" class="htab">Nombre DB:
<input name="dbwp" type="text" id="dbwp" value="wp_db" /><br /></td>
<td width="50" align="right" valign="middle" class="htab"></td>
</tr>
<tr>
<td height="36" colspan="4" align="center" valign="middle" class="htab">
<input type="submit" name="submit" id="submit" value="Comenzar!" /></td>
</tr>
</table>
</form>
<p class="txt"><strong>Una vez que presiones el boton comenzara la migracion</strong>, y solo tienes que sentarte a esperar a que termine, no demorara demasiado :P</p>
<p class="txt">Asumimos que el nombre de las tablas del PHP-Nuke son: <em>nuke_topics</em> y <em>nuke_stories</em> y el prefijo para las tablas del Wordpress es <em>wp_</em></p>
<p class="txt">Una cosa mas, la codificacion de las bases de datos debe ser la misma, sino notaras algunos erores con los acentos y caracteres internacionales.</p>
<p class="txt">Si te ha gustado o sido util esta herramienta :), por favor enlazanos desde tu blog a:
<a href="http://www.phpes.net">PHP en Espa?±ol</a></p>
<hr align="center">
</body>
</html>
<?php
$submit = $_POST['submit'];
$hostname = $_POST['hostname'];
$username = $_POST['username'];
$password = $_POST['password'];
/* PHP-Nuke database */
$db_nuke = $_POST['dbpn'];
$nuke_news = "nuke_stories"; // your phpnuke stories table
$nuke_topics = "nuke_topics"; // your phpnuke topics table
/* Wordpress database */
$db_wp = $_POST['dbwp'];
$wp_prefix = "wp_";
// sanitize function stolen from wordpress source
// used to generate the dashed titles in the URLs
function sanitize($title)
{
$title = strtolower($title);
$title = preg_replace('/&.+?;/', '', $title); // kill entities
$title = preg_replace('/[^a-z0-9 _-]/', '', $title);
$title = preg_replace('/\s+/', ' ', $title);
$title = str_replace(' ', '-', $title);
$title = preg_replace('|-+|', '-', $title);
$title = trim($title, '-');
return $title;
}
if($submit)
{
$db_connect = @mysql_connect($hostname, $username, $password) or die("Error al conectar: ".mysql_error());
mysql_select_db($db_nuke, $db_connect);
$srcresult = mysql_query("select * from $nuke_news", $db_connect) or die("Error: ".mysql_error());
$srccatresult = mysql_query("select * from $nuke_topics", $db_connect) or die("Error: ".mysql_error());
/* Here we do the topics -> categories convertion */
while ($myrow = mysql_fetch_array($srccatresult))
{
$mytopictext = mysql_real_escape_string($myrow['topictext']);
$mynicename = mysql_real_escape_string(sanitize($mytopictext));
$sql = "INSERT INTO <code>" . $wp_prefix . "categories</code>
(
<code>cat_ID</code>,
<code>cat_name</code>,
<code>category_nicename</code>,
<code>category_description</code>
)
VALUES
(
'$myrow[topicid]',
'$myrow[topicname]',
'$mynicename',
'$mytopictext'
);";
if($myrow[topicid] > 1)
{
mysql_select_db($db_wp, $db_connect);
mysql_query($sql, $db_connect) or die("Fatal error: ".mysql_error());
}
}
/* Stories -> Posts convertion */
echo "Conversion Stories -> Posts<hr align='center'>";
while ($myrow = mysql_fetch_array($srcresult))
{
$myhometext = mysql_real_escape_string($myrow['hometext']);
if($myrow['bodytext'])
{
$mybodytext = mysql_real_escape_string($myrow['bodytext']);
$myhometext = $myhometext.'\n<!--more-->\n'.$mybodytext;
}
$mytitle = mysql_real_escape_string($myrow['title']);
$myname = mysql_real_escape_string(sanitize($mytitle));
$sql = "INSERT INTO <code>" . $wp_prefix . "posts</code>
(
<code>ID</code> ,
<code>post_author</code> ,
<code>post_date</code> ,
<code>post_date_gmt</code> ,
<code>post_content</code> ,
<code>post_title</code> ,
<code>post_name</code> ,
<code>post_category</code> ,
<code>post_excerpt</code> ,
<code>post_status</code> ,
<code>comment_status</code> ,
<code>ping_status</code> ,
<code>post_password</code> ,
<code>to_ping</code> ,
<code>pinged</code> ,
<code>post_modified</code> ,
<code>post_modified_gmt</code> ,
<code>post_content_filtered</code> ,
<code>post_parent</code> )
VALUES
(
'$myrow[sid]',
'1',
'$myrow[time]',
'0000-00-00 00:00:00',
'$myhometext',
'$mytitle',
'$myname',
'$myrow[topic]',
'',
'publish',
'open',
'open',
'',
'',
'',
'$myrow[time]',
'0000-00-00 00:00:00',
'',
'0' );";
mysql_select_db($db_wp, $db_connect);
mysql_query($sql, $db_connect);
// now get the ID of the post we just added
$sql = "select MAX(ID) from " . $wp_prefix . "posts";
$getID = mysql_query($sql, $db_connect);
$currentID = mysql_fetch_array($getID);
$currentID = $currentID['MAX(ID)'];
echo "- Insertado ID $currentID <br/>\n";
// add post2cat map... why does he have this table?
if ($myrow['topic'] == 0)
$topicnum = 1;
else
$topicnum = $myrow['topic'];
$sql = "insert into <code>" . $wp_prefix . "post2cat</code> (<code>post_id</code>, <code>category_id</code>) VALUES ('$currentID', '$topicnum');";
$result = mysql_query($sql, $db_connect) or die("Error: ".mysql_error());
}
/* Updating Category Counts */
mysql_select_db($db_wp, $db_connect);
$tidyresult = mysql_query("select * from $wp_prefix" . "categories", $db_connect) or die("Error: ".mysql_error());
echo "<hr align='center'>Actualizando contador de Categorias<hr align='center'>";
while ($myrow = mysql_fetch_array($tidyresult))
{
$mypostid=$myrow['cat_ID'];
$countsql="select COUNT(*) from $wp_prefix" . "post2cat" . " WHERE <code>category_id</code> = " . $mypostid;
$countresult=mysql_query($countsql) or die("Fatal Error: ".mysql_error());
$catcount=mysql_result($countresult,0,0);
$countsql="UPDATE <code>" . $wp_prefix . "categories</code> SET <code>category_count</code> = '" . $catcount . "' WHERE <code>cat_ID</code> = " . $mypostid . " LIMIT 1";
$countresult=mysql_query($countsql) or die("Fatal Error: ".mysql_error());
if($catcount > 0)
{
echo "- $mypostid : $catcount <br/>\n";
}
}
echo "<hr align='center'>Listo!<hr align='center'>";
}
?>
این هم یه افزونه
<?php
/*
Plugin Name: Dagon Design Import Users
Plugin URI: http://www.dagondesign.com/articles/import-users-plugin-for-wordpress/
Description: Import list of users into WordPress. To use, go to 'Manage -> DDImport Users'.
Author: Dagon Design
Version: 1.2
Author URI: http://www.dagondesign.com/
Contributor: Nicholas LaRacuente, http://www.sccs.swarthmore.edu/users/10/ndl
*/
/*
2009-01-24 - Modified by Robert McKenzie (rmckenzi@rpmdp.com) http://www.gammaray-tech.com
Modifications to this script include the ability to specify a password as well as first and last names.
Firstname, Lastname and Password are optional but the fields must be delimited, ie:
bill|Bill|Smith|blahblah|bill.smith@blah.com
jim|Jim|||Jim@blah.com
In the case of a missing password the script will generate one as the original script did and email that
password to the new user. If the password has been specified it will also be sent to the user
*/
$ddui_version = '1.2';
function ddiu_add_management_pages() {
if (function_exists('add_management_page')) {
add_management_page('Import Users', 'DDImportUsers', 8, __FILE__, 'ddiu_management_page');
}
}
#can specify how to parse submitted file by editing this function
function fileParseFunction($filename){
return file($filename);
}
#modify this function to specify how to parse text in field
#could change format or add validation
function fieldParseFunction($text){
return explode("\n", trim($text));
}
#specify format information to be displayed to the user
$formatinfo = '<p><strong>The data you enter MUST be in the following format:</strong><br />
username(delimiter)firstname(delimiter)lastname(delimiter)password(delimiter)email(delimiter)role<br />
username(delimiter)firstname(delimiter)lastname(delimiter)password(delimiter)email(delimiter)role<br />
etc...<br />
</p>';
function ddiu_management_page() {
global $wpdb, $wp_roles, $formatinfo, $ddui_version;
$result = "";
if (isset($_POST['info_update'])) {
?><div id="message" class="updated fade"><p><strong><?php
echo "Processing Complete - View Results Below";
?></strong></p></div><?php
//
// START Processing
//
$the_role = (string)$_POST['ddui_role'];
$delimiter = (string)$_POST['delimiter'];
// get data from form and turn into array
$u_temp = array();
if(trim((string)$_POST["ddui_data"]) != ""){
$u_temp = array_merge($u_temp, fieldParseFunction(((string) ($_POST["ddui_data"]))));
}
else{
$result .= "<p>No names entered in field.</p>";
}
if ($_FILES['ddui_file']['error'] != UPLOAD_ERR_NO_FILE){#Earlier versions of PHP may use $HTTP_POST_FILES
$file = $_FILES['ddui_file'];
if($file['error']){
$result .= '<h4 style="color: #FF0000;">Errors!</h4><p>';
switch ($file['error']){
case UPLOAD_ERR_INI_SIZE:
$result .= "File of ".$file['size']."exceeds max size ".upload_max_filesize;
break;
case UPLOAD_ERR_FORM_SIZE:
$result .= "File of ".$file['size']."exceeds max size ".upload_max_filesize;
break;
case UPLOAD_ERR_PARTIAL:
$result .= "File not fully uploaded";
break;
default:
}
$result.='.</p>';
}
elseif(!is_uploaded_file($file['tmp_name'])){
$result = "File ".$file['name']." was not uploaded via the form.";
}
else{ #should be ok to read the file now
$u_temp = array_merge($u_temp, fileParseFunction($file['tmp_name']));
}
} else{
$result .= "<p>No file submitted.</p>";
}
$u_data = array();
$i = 0;
foreach ($u_temp as $ut) {
if (trim($ut) != '') {
if (! (list($u_n, $u_f, $u_l, $u_p, $u_e, $u_r) = @split($delimiter, $ut, 6))){
$result .= "<p>Regex ".$delimiter." not valid.</p>";
}
$u_n = trim($u_n);
$u_f = trim($u_f);
$u_l = trim($u_l);
$u_p = trim($u_p);
$u_e = trim($u_e);
$u_r = trim($u_r);
//if (($u_n != '') && ($u_f != '') && ($u_l != '') && ($u_p != '') && ($u_e != '')) {
if (($u_n != '') && ($u_e != '')) {
$u_data[$i]['username'] = $u_n;
$u_data[$i]['firstname'] = $u_f;
$u_data[$i]['lastname'] = $u_l;
$u_data[$i]['password'] = $u_p;
$u_data[$i]['email'] = $u_e;
$u_data[$i]['role'] = $u_r;
$i++;
}
}
}
// print_r($u_data);
// process each user
$errors = array();
$complete = 0;
foreach ($u_data as $ud) {
// check for errors
$u_errors = 0;
$user_line = '<b>' . htmlspecialchars($ud['username']) . '|' . htmlspecialchars($ud['firstname']) . '|' . htmlspecialchars($ud['lastname']) . '|' . htmlspecialchars($ud['password']) . '|' . htmlspecialchars($ud['email']) . '|' . htmlspecialchars($ud['role']) . '</b>';
if (!is_email($ud['email'])) {
$errors[] = 'Invalid email address: ' . $user_line;
$u_errors++;
}
if (!validate_username($ud['username'])) {
$errors[] = 'Invalid username: ' . $user_line;
$u_errors++;
}
if (username_exists($ud['username'])) {
$errors[] = 'Username already exists: ' . $user_line;
$u_errors++;
}
$email_exists = $wpdb->get_row("SELECT user_email FROM $wpdb->users WHERE user_email = '" . $ud['email'] . "'");
if ($email_exists) {
$errors[] = 'Email address already in use: ' . $user_line;
$u_errors++;
}
if ($u_errors == 0) {
// generate passwords if none were provided in the import
if ($u_p == '') {
$password = substr(md5(uniqid(microtime())), 0, 7);
} else {
$password = $ud['password'];
}
// create user
$user_id = wp_insert_user(array(
"user_login" => $ud['username'],
"first_name" => $ud['firstname'],
"last_name" => $ud['lastname'],
"user_pass" => $password,
"user_email" => $ud['email'])
);
if (!$user_id) {
$errors[] = 'System error! Could not add: ' . $user_line;
} else {
wp_new_user_notification($user_id, $password);
$complete++;
// set role
if ($ud['role'] == '') {
$ruser = new WP_User($user_id);
$ruser->set_role($the_role);
} else {
$ud['role'] = strtolower($ud['role']);
$ruser = new WP_User($user_id);
$ruser->set_role($ud['role']);
}
}
}
}
// show result
if ($complete > 0) {
$result .= "<p>Processing complete: <b>" . $complete . " users imported!</b></p>";
$result .= "<p>Role: <b>" . $the_role . "</b></p>";
$result .= "<p>(These users will receive an email notification with their assigned password.)</p>";
}
if ($errors) {
$result .= '<h4 style="color: #FF0000;">Errors!</h4><ul>';
foreach ($errors as $er) {
$result .= '<li>' . $er . '</li>';
}
$result .= '</ul>';
}
//
// END Processing
//
} ?>
<div class=wrap>
<h2>Import Users v<?php echo $ddui_version; ?></h2>
<p>For information and updates, please visit:<br />
<a href="http://www.dagondesign.com/articles/import-users-plugin-for-wordpress/">http://www.dagondesign.com/articles/import-users-plugin-for-wordpress/</a></p>
<?php
if ($result != "") {
echo '<div style="border: 1px solid #000000; padding: 10px;">';
echo '<h4>Results</h4>';
echo trim($result);
echo '</div>';
}
?>
<form enctype="multipart/form-data" method="post" action="<?php echo $_SERVER["REQUEST_URI"]; ?>" >
<input type="hidden" name="info_update" id="info_update" value="true" />
<div style="padding: 0 0 15px 12px;">
<?php print $formatinfo; ?>
<h3>User Data</h3>
May specify the (regex) delimiter between name, email and password (default "[|]").
<input type="text" name="delimiter" value="[|]" />
<br />
May type username|password|email pairs directly.<br />
<textarea name="ddui_data" cols="100" rows="12"></textarea>
<br />
May submit a file.
<input type="file" id="ddui_file" name="ddui_file" value="TestInput" />
<div style="margin: 6px 0 0 0;">
<br /><b>Role for these users:</b>
<select name="ddui_role">
<?php
if ( !isset($wp_roles) )
$wp_roles = new WP_Roles();
foreach ($wp_roles->get_names() as $role=>$roleName) {
echo '<option value="'.$role.'">'.$roleName.'</option>';
}
?>
</select>
</div>
</div>
<div class="submit">
<input type="submit" name="info_update" value="<?php _e('Import Users'); ?> »" />
</div>
</form>
</div><?php
}
add_action('admin_menu', 'ddiu_add_management_pages');
?>
مطمئن باشن تگ ها و نظرات و دسته بندی و لینک مطالب و ... مشکل ور میدارن . این کار سختیه و برای اینکه این عملیات بدون هیچ مسکلی انجام بشه نیاز به کار فوق حرفه ای داره . البته ایننظر منه . چون منم یک زمانی دنبالش بودم به این نتیجه رسیدم.
سلام دوستان
راستش من می خوام کاری کنم که مطالب سایت ام از بین نره همین . یعنی اگه بشه مثلا خبر های سایت ام رو بریزم توی table ای که
خبر های wp توش ذخیره میشه و تو wp نشون بده
metablog عزیز می شه بیشتر در مورد این کدهایی که گذاشتین توضیح بدی ؟
چون من تازه با سیستم wp آشنا شدم 4 ساله فقط با phpnuke کار می کنم ممنون می شم اگه بیشتر راهنمایی ام کنید
از دوستان ممنون می شم اگه بیشتر کمک ام کنند
دوست عزیز با همون اسکریپت اولی که معرفی کردم میتونی این کار را انجام بدی
http://www.phpes.net/phpnuke_to_wpress.txt
فایل txt بالا را به php تبدیل کن و روی هاست قرار بده (افزونه نیست)
بعد اطلاعت دیتابیس را وارد کن !Comenzar کلیک کن
البته من خودم تستش نکردم چون نیوک را نداشتم
من رو اطلاعات دیتابیس رو وارد کردم و همه چیز اما تبدیل نکرد دوست من
این لینک نیوکی هست که من ازش استفاده می کنم ممنون می شم اگه دانلود کنی خودتون هم تست کنید
http://nukelearn.com/testINP/INP4Patch3.0.0.5Nukelearn.tar.gz
با تشکر
دوست عزیز اینترنت من یا بهتر بگم ISP دچار مشکله و سرعت اینترنت خیلی خیلی کم شده به طوری که برای ورود به انجمن هم دچار مشکل شدم :O
اگه نمیشه هم هم بی خیال
دنبال یه افزونه هستم که کارت رو را بندازه
http://codex.wordpress.org/Importing_from_other_blogging_software
دوست من تو این لینکی ک شما دادین در مورد همه پورتال ها هست به جز phpnuke !
از دوستان خواهش می کنم یک آموزش تصویری بسازن
دوست عزیز کاری نداره! شما این فایل رو با پسوند php ذخیره می کنید :
http://www.phpes.net/phpnuke_to_wpress.txt
بعد اون رو در قسمت root سایت آپلود می کنید.
از نوار آدرس فایل رو اجرا می کنید بعد یه صفحه میاد که توش چند تا باکس هست.
وسط دومین باکس یوزر نیم دیتابیس رو وارد می کنید و زیرش هم پسورد رو .
دو تا باکس هم هست که باید باید درونش نام دیتابیس وردپرس و نیوک رو بزنید.
در آخر هم کلید رو فشار می دید تا تبدیل انجام بشه
دوست عزیز این اسکریپت تست کردم کار نم یکنه می تونین خودتون هم تست کنین بار ها هم گفته شده که این اسکریپت کار نمی کنه تو همین تاپیک اما ....
عجب .. اگه تو دکتر گوگل یه چرخی بزنید فقط همین اسکریپت موجوده که به گفته شما کار نمی کنه!!
من تست کردم کار نکرد دوست من شما هم میتونید تست کنید :-)
دوستان اگر خواستین فقط مطالب را از نیوک به وردپرس از طریق تبدیل دیتا بیس انجام بدین بازم یه راهیه هست اما مطالب تالار گفتمان را نه
چون کار مشکلی هست و تفریبا غیر ممکن
kits عزیز من هم فقط مطالب خود نیوک رو می خوام از طریق دیتابیس تبدیل کنم حالا می شه بگین چه راهی ؟
ممنون می شم یک راهنمای تصویری درست کنین
من میخام مطالب و همچنین کاربران عضو شده در سایت نیوک رو به ورد پرس انتقال بدم. راهی نداره؟