Wordpress'ten,
XenForo'ya geçiş sürecini ve tamamlanmasını sizlere detaylı olarak anlatamaya çalışacağım. Öncelikle, konu size ilginç gelebilir. Çünkü
Wordpress gibi bir yazılımdan,
XenForo gibi bir forum yazılımına geçişten söz ediyoruz.
Bu tür işlemler bugüne kadar ya sıkıntılı olmuştur ya da başarısızlıkla sonuçlanmıştır. Tabii hiç sorun yaşamadan bir tek kayıp bile olmadan geçiş yapanlar da mutlaka vardır. Fakat normal bir
CMS sisteminden
FORUM sistemine geçiş sürecinde az da olsa mutlaka sorunlar da olabilir.
Wordpress'ten XenForo'ya geçiş sürecinde aracı olarak
vBulletin scriptini kullanacağız. Sebeplerini yazımın ilerleyen bölümlerinde anlatacağım.
Şunu da ön hatırlatma olarak belirtmeliyim ki; XenForo'da, Wordpress için
URL yönlendirme henüz icra edilmedi.
Yani geçiş sonrası Google'da indexlenen Wordpress linklerini kurtarmak için bir eklenti yapılmadı fakat benim nezdimde bir çözüm yöntemi var. Bu yöntemi anlatması biraz uzun ve karmaşık olduğundan, yazımın sonunda bunu anlatmaya çalışacağım.
İlk olarak sitenizin tam yedeğini alın (
FTP + Veritabanı) ve uygun bir yerde saklayın. Ama tekrar söylüyorum
Wordpress site yedeğinizi düzgün ve tam aldığınızdan emin olun ki, daha sonra problem olmasın. Çok temiz ve güvenli geçiş için, haydi başlayalım!
Giriş Notu: Karakter problemi yaşamamanız için, Wordpress karakter setini
utf-8 şeklinde (
utf8 turkish olabilir) değiştirin. Aynı şekilde karşı tabloları da o setten belirleyin.
1- Aynı sunucuda/hostingte herhangi bir
FTP ve
MySQL yönetiminden yeni bir veritabanı oluşturalım. Hatta
FTP oluşturmaya bile gerek yok. Mevcut F
TP düzenine vb veya vbulletin diye bir klasör oluşturup orada
vBulletin 4 forum kuralım.
Tabii unutmadan, vBulletin CMS ile birlikte kurmamız gerekecek. vBulletin forum kurulumunu sizlere anlatmama gerek yok sanırım. Her zaman nasıl kuruyorsanız, aynen o şekilde vBulletin forum kurulumunu vbulletin klasöründe yapmalısınız. Kurulum bitince vBulletin forumunuz hazır hale geldi.
2- Şimdi
ImpEx kurmamız gerekecek. ImpEx klasörünü vbulletin klasörüne
(ROOT) yükleyin. Ancak, ImpEx ayarlarını yapmanız gerekecek. ImpEx'in config dosyasında normal ve target pozisyonu var config dosyasına girdiğinizde zaten göreceksiniz.
Normal olan Wordpress veritabanı, target ise vBulletin forumdur. Normal olana Wordpress veritabanı bilgilerini, Target olana da vBulletin forumunuzun veritabanı bilgilerinizi girip kaydedin ve çıkın.
3- Şimdi vBulletin admin paneline girerek, ImpEx bölümünü açın. Çıkan listede Wordpress CMS seçip, hedef olarak da vBulletin CMS belirtin ve devam edin.
Not: Wordpress tablo ön eki
wp_ olduğu için, bu ön ekleri kaldırın yani tablo isimleri ön eksiz olsun.
4- Check / Update tables seçeneğini doğrulayın fakat sorun yaşadığınızda veya uyguladıktan sonra şu sorguları çalıştırın;
PHP- Kodu
ALTER TABLE cms_article ADD importcmscontentid INT UNSIGNED NOT NULL DEFAULT '0';
PHP- Kodu
ALTER TABLE cms_node ADD importcmsnodeid INT UNSIGNED NOT NULL DEFAULT '0';
PHP- Kodu
ALTER TABLE cms_nodeinfo ADD importid INT UNSIGNED NOT NULL DEFAULT '0';
Evet bu sorguları da çalıştırdık. Şimdi Wordpress'e kayıtlı olan üyeleri aktaracağız.
5- import the users yaparak Wordpress üyelerinizi vBulletin forumunuza aktarın. Aktarma bittikten sonra kesinlikle başka bir şeyi ellemeyin, herhangi bir ayarla oynamayın.
6- Üst kısımda
"database cleanup" linkine tıklayın ve
"delete the session" tıklayın. Bunu yaparak Wordpress geçiş sürecindeki üyeleri sorunsuzca aktarmış, tabloları analiz etmiş olacağız.
Not: Wordpress veritabanında tablo ön eklerini kaldırmıştık. Şimdi o ön ekleri yeniden ekleyelim
wp_ şeklinde.
7- Aşağıdaki tabloları indirin;
HTML-Kodu
wp_posts
wp_comments
Bu tabloları indirdikten sonra, vBulletin veritabanınıza yükleyin.
8- Şimdi konuları ve yorumları manuel olarak aktaracağız. Eğer çok büyük bir Wordpress siteniz varsa, sunucu biraz zorlanabilir. Sabırla bekleyiniz. Bitiminde göreceksiniz. Şimdi aşağıdaki sorguyu, vBulletin veritabanınızda çalıştırın;
PHP- Kodu
INSERT INTO thread (threadid, title, forumid, open, postuserid, dateline, visible)
SELECT ID, post_title, 2, 1, (SELECT userid FROM user WHERE importuserid = wp_posts.post_author AND wp_posts.post_author > 0), UNIX_TIMESTAMP(post_date), 1
FROM wp_posts
WHERE post_type = 'post';
INSERT INTO post (postid, threadid, username, userid, dateline, pagetext, visible)
SELECT comment_ID, comment_post_ID, comment_author, (SELECT userid FROM user WHERE importuserid = wp_comments.user_id AND wp_comments.user_id > 0), UNIX_TIMESTAMP(comment_date), comment_content, 1
FROM wp_comments;
INSERT INTO post (threadid, username, userid, dateline, pagetext, visible)
SELECT ID, '', (SELECT userid FROM user WHERE importuserid = wp_posts.post_author AND wp_posts.post_author > 0), UNIX_TIMESTAMP(post_date), post_content, 1
FROM wp_posts
WHERE post_type = 'post';
Evet, Wordpress'teki tüm konuları ve yorumları da aktarmış olduk. Şimdi vBulletin admin panele girerek sayaçları tek tek güncelleyin.
9- Wordpress'ten aktarılan üyeler, vBulletin'de
"Imported Users" şeklinde bir gruba aktarılırlar. Bu üyelerin hepsini
Registered Users yani kayıtlı üyeler grubuna taşıyın.
Imported Admin hesabını da, 1 numaraları ID'li olan admin hesabı ile birleştirin ve tüm sayaçları yeniden güncelleyin.
Evet, şimdi Wordpress sitemizi vBulletin foruma komple taşımış olduk. Peki şimdi ne yapacağız? Tabii ki
XenForo'ya geçeceğiz.
Peki vBulletin'den XenForo'ya nasıl geçilir? 1- vBulletin forumunuzda banladığınız üyeleri ve e-posta ile onay yapmayan üyeleri komple silin. Ben silin diyorum çünkü yeni yazılıma geçince bu üyeleri de geçirmenin hiçbir anlamı yok. Tamamen, başlı başına yer kalabalığı yapmaktan başka hiçbir şeye yaramazlar. Ama gene de siz bilirsiniz. Ben silin diyorum.
Not: Banladığınız üyeleri silmezseniz eğer, temizlik açısından şu sorguyu çalıştırın;
PHP- Kodu
UPDATE usertextfield LEFT JOIN user ON user.userid = usertextfield.userid SET signature = '' WHERE user.usergroupid = 8
Üye grubu için 8 yazdım. Forumunuzda banlı üyelerin grub id'si kaçsa, onu yazarsınız artık. Bu sayede banlı üyelerin imzalarını silmiş olacağız.
2- Sitenizde geri dönüşüm kutusu varsa, çöpleşmiş ve işe yaramayan, en azından süresi 7-8 ay veya 1 seneyi geçmiş konular varsa onları silin. Silin diyorum çünkü az önce de belirttiğim gibi hiçbir şeye yaramadıkları gibi, onları da aktarmanın hiçbir faydası yok. Ama gene de siz bilirsiniz. Ben silin diyorum.
3- Zaten yedek almıştınız. Şimdi şu sorguyu vBulletin forumunuzun kurulu olduğu
PhpMyAdmin'den çalıştırın;
PHP- Kodu
UPDATE post SET title = ''
Not: Eğer çok büyük bir siteniz varsa, bu sorgu çalışınca sunucu epey zorlanacaktır fakat sabırla bekleyin tamamlanmadan bir işlem yapmayın. Bu sorgu nedir kısaca değinirsek, mesaj başlarında RE: Konu adı diye bir yer var ya, işte orayı kaldıracaktır. Çünkü bu sistem
XenForo'da gereksizdir. Bunu kesinlikle yapmalısınız zaten
SEO açısından da çok zararlı. Hem title'da var, hem
Navbar'da var hem de böyle her mesajda olması
SEO için kötüdür. İşte XenForo'da bu yok.
4- vBulletin sitenizde, sildiğiniz bir üye varsa ve o üyeye ait konu ve mesajlarda herhangi bir isim geçmiyorsa, XenForo bunları aktarmaz. Yani aktarım işlemleri eksik olur. İşte bunu çözmek için şu sorguyu vBulletin forumunuzun kurulu olduğu
PhpMyAdmin'den çalıştırın;
PHP- Kodu
UPDATE `thread` SET `postusername` = 'Guest' WHERE `thread`.`postusername` =''
Not: Bu işlem uzun sürebilir. Guest'i Misafir veya Silinmiş Üye yapabilirsiniz size kalmış. Önemli bir önerim olacak ki, o da bunların hiçbirisiyle uğraşmak istemiyorsanız şu sorguları çalıştırın;
PHP- Kodu
DELETE FROM post WHERE userid = 0;
PHP- Kodu
DELETE FROM visitormessage WHERE userid = 0;
Bu sorgular silinmiş üyelerin tüm mesajlarını forumdan kaldıracaktır. Fakat bu işlemi de yapmak istemezseniz şu sorguyu çalıştırın;
PHP- Kodu
UPDATE usertextfield LEFT JOIN user ON user.userid = usertextfield.userid SET signature = '' WHERE user.posts = 0;
Bu sorgu silinmiş üyelerin imzalarını veritabanından temizler ve böylelikle yer açılır DB rahatlar.
5- Geri dönüşümlü olarak sildiğiniz tüm konu ve mesajları komple silin. Zaten miladı dolmuştur bunların. Boş yere taşımaya hiç gerek yok. Ben bu işlemi yapmanızı öneririm. Ama yok, "olsun sakıncası yok geçireyim onları" derseniz 5. adımı yani bu kısımı atlayın bu konuda. Fakat yok "tamam bunu da yapayım iyi olur" derseniz, şu sorguları çalıştırın;
PHP- Kodu
DELETE FROM post WHERE visible = 2 AND parentid > 0
PHP- Kodu
truncate deletionlog;
Not: Bu sorgu çalışırken sunucuya yük binecektir. Dikkatli olmalısınız.
6- Özel mesajları taşımak istemiyorsanız şu sorguları tek tek çalıştırın;
PHP- Kodu
DELETE FROM pm;
PHP- Kodu
DELETE FROM pmreceipt;
PHP- Kodu
DELETE FROM pmtext;
PHP- Kodu
UPDATE user SET pmtotal = 0, pmunread = 0;
PHP- Kodu
TRUNCATE pmtext;
Not: Özel mesajları taşımak istiyorsanız, bu adımı atlayın. Fakat ben silmenizi öneriyorum çünkü XenForo'da özel mesaj sistemi live pm gibi bir sistem olduğu için eski vBulletin özel mesajları gereksiz kalacaktır. Yani sorun yok kalmasında ama silinse daha iyi diyorum.
7- Fazla üye grupları varsa, silin. Mesela yok deneme moderatör yok yardımcı moderatör yok bilmem ne üyelikler vb. gibi fazla gruplar varsa silmenizi öneriyorum. "H
ayır kalsın sakınca yok." diyorsanız bu adımı atlayın.
8- IP kayıtlarını silin. Ben silmenizi öneriyorum yeni geçişte onları da yani yüzlerce ip kaydını da taşımanın hiçbir anlamı yok bence. "
Hayır kalsın sorun yok." diyorsanız bu adımı atlayın ama silmek istiyorsanız aşağıdaki sorguları çalıştırın;
vBulletin 3.x versiyon kullananlar şu sorguları çalıştırsın;
PHP- Kodu
UPDATE user SET ipaddress='';
PHP- Kodu
UPDATE post SET ipaddress='';
vBulletin 4.x versiyon kullananlar da şu sorguları çalıştırsın;
PHP- Kodu
truncate ipdata;
PHP- Kodu
UPDATE user SET ipaddress='';
PHP- Kodu
UPDATE post SET ipaddress='';
Not: Büyük bir siteniz varsa sunucunuzu biraz yavaşlatabilir.
9- Aktif olmayan kategorilerdeki eklentileri silin, yer açılsın ve yeni geçişte onlar da taşınmasın diyorsanız, şu sorguyu çalıştırın;
PHP- Kodu
DELETE FROM attachment USING attachment, post, thread WHERE attachment.postid = post.postid AND thread.threadid = post.threadid AND thread.forumid = X
Not: X olan yere kategori id numarası yazın bu sorgu
vBulletin 3.x içindir. Hayır gerek yok kalsın diyorsanız bu adımı atlayın.
10- Mesaj düzenleme kayıtlarını silin. Adı üstünde
"geçmiş" geçmişte kalmış olmuş bitmiş, yeni geçişte onları da boş yere taşımanın anlamı yok diyorsanız şu sorguları çalıştırın;
PHP- Kodu
truncate editlog;
PHP- Kodu
truncate postlog;
PHP- Kodu
truncate postedithistory;
11- Geçiş öncesi performansı arttırmak açısından gereksiz tabloları şu sorgularla boşaltın;
PHP- Kodu
truncate tag;
truncate session;
truncate adminlog;
truncate autosave;
truncate tagsearch;
truncate searchcore;
truncate tagcontent;
truncate profilevisitor;
truncate moderatorlog;
truncate externalcache;
truncate templatehistory;
truncate passwordhistory;
truncate searchcore_text;
Evet vBulletin forumunuz epey temizlendi ve bir o kadar da yer açıldı, rahatladı. Toplam 11 adımda bu işlemleri halletmiş olduk. Şimdi sıra geldi, taşımaya.
XenForo'yu, vBulletin veritabanınızın olduğu yere de kurabilirsiniz. Çakışma olmaz çünkü XenForo tablo isimleri farklıdır ve
xf_ ile başlar. Kurulum esnasında aynı veritabanını kullanabilirsiniz yani. FTP de aynı olabilir. Dosyaları direkt üstüne yazdırın sadece index.php değişir o kadar. Yani bir sıkıntı olmaz çünkü XenForo FTP dosya isimleri de farklı. XenForo kurulumu bittikten sonra, XenForo sitemizin Admin paneline girin.
[Üye Olmadan Linkleri Göremezsiniz. Lütfen Üye Olmak için TIKLAYIN...]
Daha sonra Admin panelde
ARAÇLAR kısmını açın. Sol menüde en aşağıda "Dış Veri Yükle" yazar, ona tıklayın. Açılan sayfada
"Yükleyici Aracı Seçiniz:" bölümünden vBulletin versiyonunu seçin.
Not: Retain imported content IDs hemen altındaki seçenek bunu işaretlemeyin, boş bırakın.
Aktarım arşiv tablosu belirleyin daha sonra lazım olacağı için
archived_import_log olarak kalabilir.
Yüklemeyi yapılandır diyerek devam edin. Karşınıza çıkan sonraki bölümde vBulletin kurulu olan veritabanı bilgilerinizi girin.
Daha sonra açılan sayfada sizden bazı dosya yolları istenecek. Avatarlar ve eklentilerin yolu vs. Bunları girdikten sonrasını zaten siz yapacaksınız. Karşınıza her şey çıkacak çünkü.
Google'da indexlenen linkleri kurtarmak:
Eski linkleri vBSEO olsun veya normal vBulletin link yapısı olsun onları da şu şekilde kurtarıyoruz
[Üye Olmadan Linkleri Göremezsiniz. Lütfen Üye Olmak için TIKLAYIN...];
Eski YouTube BB Kodları kurtarmak
XenForo'ya geçiş yaptıktan sonra şu sorguları ([YOUTUBE] bb kodu için) çalıştırın;
PHP- Kodu
UPDATE xf_post SET message = REPLACE(message, '[GECERSIZYOUTUBE]', '[media=youtube]');
UPDATE xf_post SET message = REPLACE(message, '[/GECERSIZYOUTUBE]', '[/media]');
XenForo'ya geçiş yaptıktan sonra şu sorguları ([YT] bb kodu için) çalıştırın; PHP- Kodu
UPDATE xf_post SET message = REPLACE(message, '[YT]', '[media=youtube]');
UPDATE xf_post SET message = REPLACE(message, '[/YT]', '[/media]');
Hala dönüşümü başarısız YouTube videoları varsa,
[Üye Olmadan Linkleri Göremezsiniz. Lütfen Üye Olmak için TIKLAYIN...] eklentiyi kuracaksınız;
Böylelikle videoları da dönüştürmüş olacaksınız.