In contrast to the standalone mode, the legacy mode utilizes both the Fiona Connector and the Fiona 7 gem. Here, the Fiona Connector takes the leading role, and the Fiona 7 gem has a subordinate role.
Accordingly, the object models are still derived from RailsConnector::BasicObj
, and the CmsController
is derived from RailsConnector::DefaultCmsController
. Furthermore, the routes /:id/:name
and /:permalink
are handled by the Fiona Connector.
Adding the Fiona 7 gem in legacy mode to an existing Rails Connector or Fiona Connector application initially doesn't change the behavior of the application, allowing you to step-by-step migrate it to Fiona 7. This lets you benefit from Fiona 7 technology and gradually replace edit markers with in-place editing, for example. Additionally, the existing object classes and attributes can be edited and applied using the new technology.
Using the Fiona Connector requires all attributes and object classes to be defined in CMS Fiona, and the attributes need to be assigned to the object classes. This can be done either in advance by the system administrator or, when using Reactor, by means of migrations. With Fiona 7, this in no longer required.
Attributes of object or widget models are defined within an in_place
block in the model. Once a missing attribute is stored, it is created automatically and assigned to the object class concerned. Analogously, missing object classes are created once the first instance of it is created.
in_place do attribute :title, :string attribute :widgets, :widgetlist end
In a pure Rails application, models can have equally named attributes, even if their type is different. With Fiona 7, this is not possible since all attributes, which are defined in models of the Rails application, are considered global by Fiona. To prevent naming conflicts and preserve the origin of the attribute it is recommended to prefix every attribute name with the name of the model to which it belongs:
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
and suppress_export
can be directly used by the application.scrivito_obj
method. @obj.scrivito_obj
fiona7_tag
and fiona7_tag_list
are available in legacy mode.In contrast to the legacy mode, the standalone mode is biased towards the Fiona 7 gem. Accordingly, object models are derived from Scrivito::BasicObj
. Most functions provided by the Fiona Connector are disabled.
valid_from
, valid_until
and suppress_export
are not available within the application and can no longer be made available through object models.scrivito_tag
or scrivito_tag_list
.Obj.where(:objClass, :equals, "publication").and(:title, :starts_with, "News")