0 Error decoding JSON data: Syntax Error

0
2629

Yıllarca joomla kullanırım hep standart content sistemini kullanırdım. Bu gün beğenerek satın almış olduğum bir temanın tüm güzelliklerinin K2 bileşeni üzerine kurulu olduğunu görünce moralim bozuldu. Çünkü standartların dışında sistem kullanmayı ve third party bileşenleri çok kullanmayı sevmiyorum.

Temayı siteme kurduktan sonra joomla nın kendi makaleleri bir tarafta kaldı, K2 nin kendi makale sistemi bir tarafta kaldı. Bunları nasıl birleştiririm diye araştırırken bu işlemin kolayca yapılabildiğini gördüm.

Joomla Makaleleri K2 Makaleye Dönüştürme – Content to K2

Aşağıdaki resimde görüldüğü gibi K2 bileşenin itemlarını açtığınız zaman 3 numarada “import Joomla! content” butonunu göreceksiniz. Buna tıkladığınız zaman popup pencere açılacak ve bu işlemi yapıp yapmayacağınızdan emin olup olmadığınızı soracak. Onayladıktan sonra joomla nın kendi öz makaleleri, K2 altına gelmiş olacak. Asıl sorunumuz ise bundan sonra başlıyor.

Error decoding JSON data: Syntax error – Bir Hata Oluştu

Transfer olan makalelerden herhangi bir tanesini düzenlemek istediğiniz zaman aşağıdaki gibi hata alacaksınız. Bu hatanın sebebini ve çözümünü bulmam yaklaşık 4-5 saatimi aldı. Benim zamanım gitmiş olsa da en azından sizinkini kurtarmış oldum.

Hatanın sebebi; joomla nın kendi makale sisteminde olan  robots, author, rights, xreference gibi metadata bilgisinin K2 sisteminde karşılığı olmamasından dolayı uyumsuzluğundan kaynaklanmaktadır.

 

Bu hatanın 2 adet çözümü bulunmaktadır.

1.Yöntem

K2 ye taşınamayan bu fazla metadataları silerek uyumsuzluğu giderebilirsiniz. Bunun için phpmyadmin de SQL sorgusu ile ilgili alanı update edeceğiz. Aşağıdaki kodu phpmyadmin den db nizi seçerek SQL sekmesine gelip yapıştırın.  “burayaTabloÖnEkiGelecek” olan yeri kendi tablonuzun ön eki ile değiştirin. Burası değişken olur. Mesela wordpress sitelerde wp_ şeklindedir.
Önemli: Herhangi bir yanlışlık yapılma ihtimaline karşı mutlaka database nizin yedeğini alın.

UPDATE `burayaTabloÖnEkiGelecek_k2_items` SET `metadata` = ''

Sorgu başarılı bir şekilde çalıştı ise, fazla olan metadata lar silinmiş ve artık makaleler düzenlebilir olmuş olacaktır.

2.Yöntem

Bence en mantıklı yöntem olup, K2 de karşılığı olmayan metadata ları kod ile tanımlamaktadır. Bunun için sitenizin bulunduğu root dizinine giriyoruz. view.html.php dosyasını düzenliyoruz. Benim kendi dosyam aşağıdaki gibi dizinde bulunmaktadır. Bu path e bakarak kendi dosyanızı bulabilirsiniz.

/home/root/public_html/life/administrator/components/com_k2/views/item/view.html.php

Dosyayı açtıktan sonra aşağıdaki kodu

JFilterOutput::objectHTMLSafe($item, ENT_QUOTES, array(
			'video',
			'params',
			'plugins',
		));

Bununla yer değiştirin.

JFilterOutput::objectHTMLSafe($item, ENT_QUOTES, array(
			'video',
			'params',
			'plugins',
			'metadata'
		));

Dosyayı kayıt ettikten sonra tekrar giderek makalelerinizi kontrol edin. Artık düzenlenebiliyor olması gerekmektedir. Sonucu aşağıya yorum olarak yazarsanız sevinirim. En azından birilerinde işe yaradığını görmek sevindirici olur 🙂

CEVAP VER

Please enter your comment!
Please enter your name here