Übersicht der Modi

Legacy

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.

Vorlagen- und Attributverwaltung im Legacy-Modus

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!

Abbildung der Attribute im Legacy-Modus

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

Weitere Features und Einschränkungen

  • Wizards funktionieren in diesem Modus uneingeschränkt.
  • Die Suche mit dem SES kann angesprochen werden. Es bedarf nicht der Angabe einer Objektklasse, um Inhalte zu finden.
    Obj.where(:title, :starts_with, "News")
  • Fiona-Attribute wie valid_from, valid_until sowie suppress_export können von der Applikation direkt genutzt werden.
  • Das Suchen und Setzen von News-Channels wird unterstützt.
  • Um aus einem Fiona-Connector-Objekt ein Objekt zu erstellen, wie es von Scrivito-Funktionen erwartet wird, kann über das Attribut scrivito_obj auf das Scrivito-Objekt zugegriffen werden.
    @obj.scrivito_obj
  • APIs wie fiona7_tag und fiona7_tag_list sind im Legacy-Modus verfügbar.

Standalone

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.

Features und Einschränkungen

  • Attribute werden automatisiert mit einem Präfix der zugehörigen Vorlage erzeugt.
  • Fiona-Attribute wie 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.
  • Das Fiona-GUI sollte in diesem Modus nicht länger verwendet werden. Änderungen, die per In-place-Editing durchgeführt werden, sind häufig erst später im Fiona-GUI sichtbar.
  • Helper, die beispielsweise durch den Fiona Connector bereitgestellt wurden, sind nicht länger verfügbar. Es sollten nur noch Scrivito-Helper wie scrivito_tag und scrivito_tag_list eingesetzt werden.
  • Die Suche über den SES ist weiterhin möglich, allerdings können nur Ergebnisse geliefert werden, wenn eine Objektklasse angegeben wird:
    Obj.where(:objClass, :equals, "publication").and(:title, :starts_with, "News")
  • Fiona News-Channels werden in diesem Modus nicht unterstützt.
  • Alle Inhalte werden im CMS als Ordner angelegt. Somit ist es in Fiona nicht möglich, aus der Objektklasse auf die Modellklasse zu schließen, die in der Applikation verwendet wird.