Как можно было бы решить задачу преобразования пользовательской CMS, использующей базу данных на основе текстовых файлов, в Drupal?


Только сегодня я начал использовать Drupal для сайта, который я разрабатываю. Для моего собственного сайта http://jwm-art.net я написал пользовательскую недружественную CMS на PHP. Мой краткий опыт работы с Drupal заставляет меня хотеть конвертировать CMS, которую я написал. CMS, чей единственный метод (кроме комментариев) автоматической публикации контента-это вход через SSH и использование NANO для создания простого текстового файла в формате so*:

    head<<END_HEAD
title   = Audio
keywords= open,source,audio,sequencing,sampling,synthesis
descr   = Music, noise, and audio, created by James W. Morris.
parent  = home
    END_HEAD

    main<<END_MAIN
text<<END_TEXT
Digital music, noise, and audio made exclusively with
@=xlink=http://www.linux-sound.org@:Linux Audio Software@_=@.
  END_TEXT

image=gfb@--@;Accompanying image for penonpaper-c@right
ilink=audio_2008
br=
ilink=audio_2007
br=
ilink=audio_2006
    END_MAIN

info=text<<END_TEXT
I've been making PC based music since the early nineties - 
fortunately most of it only exists as tape recordings.
  END_TEXT

( http://jwm-art.net/dark.php?p=audio - есть там чуть больше 400 страниц. )

*форма записи джунала, которая берет часть работы из него, таинственным образом сломалась. И все равно требовался SSH-доступ, чтобы скопировать файл в основной DAT dir и проверить, правильно ли я запомнил формат, и код ничего не отформатировал неправильно (что он Всегда делает).

Я не хочу отбрасывать весь старый контент (только некоторые), но сколько работы потребуется для его преобразования, учитывая, что я использую Drupal за день, не написали ни одного PHP за пару лет, и имеют нулевые знания SQL?

Как бы я сопоставил абстракцию в текстовом файле выше, чтобы пользователь мог выбрать эти элементы в механизме публикации страниц для создания страницы?

Как команда разработчиков может справиться с этим? Как это сделать одному парню в свободное время?

2   2   2010-03-31 06:43:50

2 ответа:

Вы бы проанализировали текст с помощью PHP и использовали Drupal API, чтобы сохранить его в качестве объекта node.

Http://api.drupal.org/api/function/node_save

Смотрите аналогичную проблему, программно создавая узлы Drupal:

Рецепт добавления записей узлов Drupal

Drupal 5: поля CCK в пользовательском типе контента

По существу, вы создаете объект $node и присваиваете ему значения. node_save ($node) сделает всю остальную работу за вас, Drupal функция, которая создает запись содержимого и позволяет другим модулям добавлять данные, если это необходимо.

Вы также можете использовать службы XML RPC, если это возможно в вашей установке.

Поскольку вы давно не писали PHP и, вероятно, торопитесь, я предлагаю вам такой подход:

  • Загрузите и установите этот модуль Drupal: http://drupal.org/project/node_import
    Этот модуль импортирует данные-узлы, пользователей, записи таксономии и т.д.- в Drupal из файлов CVS. прочитайте его документацию и потратьте некоторое время, чтобы узнать, как его использовать.
  • преобразуйте свой блог в файлы CVS. к сожалению, я не могу вам сильно помочь в этом, потому что ваш записи в блоге имеют сложную структуру. Я думаю, что написание кода, который преобразует его в файлы CVS, занимает столько же времени, сколько и создание файлов CVS вручную.
  • используйте модуль импорта узлов для импорта данных на ваш новый веб-сайт.

Конечно, некоторые проблемы останутся, что вы должны сделать их вручную; например, создание меню и т.д.