Anders als im Standalone-Modus werden im Legacy-Modus der Fiona Connector und das Fiona 7 Gem gemeinsam betrieben. Hierbei übernimmt der Fiona Connector die führende Rolle, und das Fiona 7 Gem ist ihm untergeordnet.
Entsprechend erben Objektmodelle der Rails Applikation immer noch direkt von RailsConnector::BasicObj
und der CmsController
von RailsConnector::DefaultCmsController
. Ferner werden die Routen /:id/:name
und /:permalink
vom Fiona Connector bedient.
Wenn man eine bestehende Rails Connector- oder Fiona Connector-Applikation um das Fiona-7-Gem im Legacy-Modus erweitert, dann ändert sich das Verhalten der Applikation erst einmal nicht. Die Applikation kann dann Schritt für Schritt auf Fiona 7 umgestellt werden. Dadurch ist es zum Beispiel möglich, Fiona-7-Funktionalität zu nutzen und nach und nach Bearbeitungselemente („edit markers“) durch In-place-Editing zu ersetzen. Zusätzlich können die bestehenden Vorlagen und Attribute mit der neuen Technik genutzt und bearbeitet werden.
Beim Einsatz des Fiona Connectors muss jedes verfügbare Attribut und jede Vorlage zunächst in Fiona definiert worden sein, und Attribute müssen den Vorlagen zugewiesen werden. Dies kann entweder vorher vom Systemadministrator erledigt werden, oder beim Einsatz von Reactor mit Hilfe von Migrationen. Beim Fiona-7-Gem ist dies nicht mehr erforderlich.
Attribute von Objekt- oder Widget-Modellen werden über einen in_place
-Block im Model definiert und beim nächsten Schreibvorgang der Applikation automatisch mit Fiona synchronisiert. Gleiches gilt für Vorlagen, die über ein neues Model definiert wurden. Diese werden bei der Erstellung einer ersten Instanz in Fiona automatisch mit angelegt, sollten sie fehlen.
in_place do attribute :title, :string attribute :widgets, :widgetlist end
Neue Attribute oder neue Modelle zu Vorlagen werden – je nach Bedarf – immer automatisch in Fiona neu angelegt. Allerdings werden sie niemals automatisch gelöscht!
In einer reinen Rails-Applikation können in unterschiedlichen Modellen gleichnamige Attribute definiert werden. Dabei kann sich der Typ dieser Attribute unterscheiden. Dies ist in Fiona 7 nicht möglich, da sämtliche Attribute, die in Modellen der Rails Applikation definiert werden, von Fiona als global betrachtet werden. Um Namenskonflikte auszuschließen und die Herkunft eines Attributs festzuhalten, sollten gleichnamige Attribute unterschieden werden, indem ihrem Namen der Name des jeweiligen Models vorangestellt wird.
class ModelOne < Obj in_place do attribute :model_one_headline, :string end end
class ModelTwo < Obj in_place do attribute :model_two_headline, :html end end
Obj.where(:title, :starts_with, "News")
valid_from
, valid_until
sowie suppress_export
können von der Applikation direkt genutzt werden.scrivito_obj
auf das Scrivito-Objekt zugegriffen werden. @obj.scrivito_obj
fiona7_tag
und fiona7_tag_list
sind im Legacy-Modus verfügbar.Anders als im Legacy-Modus wird im Standalone-Modus hauptsächlich das Fiona-7-Gem verwendet. Entsprechend erben Objektmodelle der Rails-Applikation in diesem Modus direkt von Scrivito::BasicObj
. Funktionen, die der Fiona Connector bereitstellt, werden hierbei weitestgehend abgeschaltet.
valid_from
, valid_until
sowie suppress_export
werden von der Applikation nicht berücksichtigt, und können über Objektmodelle auch nicht zugänglich gemacht werden.scrivito_tag
und scrivito_tag_list
eingesetzt werden.Obj.where(:objClass, :equals, "publication").and(:title, :starts_with, "News")