Ich sitze ja hier immer noch auf über 300 Rezepten aus dem Inselfisch-Kochbuch und habe keine Lust, die per Copy&Paste nach Joomla reinzuschubsen, mehr zu dem Thema habe ich bereits in diesem Artikel erzählt. Jetzt bin ich bei Stackexchange auf einen vielversprechenden Ansatz gestossen, wie man einen Joomla-Artikel programmatisch erzeugen kann, mehr Infos hier:
https://stackoverflow.com/questions/12643725/create-a-joomla-article-programatically?lq=1
Im letzten Beitrag des Threads (Support Joomla 2.5 and Joomla 3.0) findet sich ein Sourcecode, der ohne weitere Modifikationen funktioniert. Ich zitier den mal hier rein:
if (version_compare(JVERSION, '3.0', 'lt')) { JTable::addIncludePath(JPATH_PLATFORM . 'joomla/database/table'); } $article = JTable::getInstance('content'); $article->title = 'This is my super cool title!'; $article->alias = JFilterOutput::stringURLSafe('This is my super cool title!'); $article->introtext = '<p>This is my super cool article!</p>'; $article->catid = 9; $article->created = JFactory::getDate()->toSQL(); $article->created_by_alias = 'Super User'; $article->state = 1; $article->access = 1; $article->metadata = '{"page_title":"","author":"","robots":""}'; $article->language = '*'; // Check to make sure our data is valid, raise notice if it's not. if (!$article->check()) { JError::raiseNotice(500, $article->getError()); return FALSE; } // Now store the article, raise notice if it doesn't get stored. if (!$article->store(TRUE)) { JError::raiseNotice(500, $article->getError()); return FALSE; }
(Quelle: https://stackoverflow.com/questions/12643725/create-a-joomla-article-programatically?lq=1)
Das sieht soweit gut aus, fehlt höchstens noch ein Eintrag für das Feld created_by (bei mir 839), und die metadata sehen bei mir in der Datenbank auch einen Hauch anders aus, aber das ist Kleinkram. Die catid wäre eigentlich immer 8 für Rezepte, das kann man fest verdrahten. Ich habs mal in den Sourcerer reingeschubst und ein paar mal laufen lassen, die neuen Artikel sind einwandfrei erzeugt worden.
So, jetzt gilts: wie kriegen wir unsere WordPress-Datensätze hier rein?
Eigentlich müssen wir nur diese drei Felder ordentlich füllen:
$article->title = 'This is my super cool title!'; $article->alias = JFilterOutput::stringURLSafe('This is my super cool title!'); $article->introtext = '<p>This is my super cool article!</p>';
Schön wärs natürlich, wenn wir die WordPress-Kategorien als Tags mit übernehmen könnten, aber das wär nur ein extra-Zuckerl, jetzt kümmere ich mich erstmal um den Überbau, und der erfordert etwas Planung. Ich geh mal mein Denkmützerl aufsetzen und melde mich dann wieder mit einem neuen Beitrag.