Aller au contenu principal

ValueService für ContenCreator und SiteArchitect

Commentaires

3 commentaires

  • Zendesk API User
    Author: mbergmann - 11/27/2019 21:33

    Hallo Fidel,

    der ModelListener ist aber nicht Teil des CC und geht darum nur im SA. Du musst hier weiter trennen.

    Ist der gesamte Code im ValueService selbst? Dann kann es soweit ich es verstehe eh nicht gehen weil der Listener zu spät registriert wird.

    Meine Standardlösung um auch im SA an das aktuelle Element zu kommen geht über zwei PermanentPlugins (hier in einem etwas anderen Kontext aber das Grundprinzip sollte klar werden):

    Re: Eingabekomponente auf einer bestimmten Seite per Regel einblenden / aktivieren

    bzw. dann das von dort aus verlinkte Posting:

    Re: DataAccessPlugin - getStoreElement möglich?

    Viele Grüße

    Michael

    0
  • Zendesk API User
    Author: fidelbravo - 11/28/2019 13:45

    Hallo Michael,

    Danke für die ausführliche Beschreibung. Mir ist aber immer noch nicht ganz klar. Ich brauche die "pageid" der Inhaltsseite und ich wollte die "pageid" durch die ValueService rauskriegen. In CC hätte ich kein Problem aber in SA wurde das nicht gehen. Also benötige ich 2 Regeln damit der ValueService oder dem PermanetPlugin angesprochen wird.

    Momentan ist so:

    Formularkanal

        <CMS_INPUT_TEXT name="pt_pageIdORI" useLanguages="no">

          <LANGINFOS>

            <LANGINFO lang="*" label="pageID "/>

          </LANGINFOS>

        </CMS_INPUT_TEXT>

    Rules:

    <RULE>

      <SCHEDULE delay="500" id="pageService" service="PageIdValueService">

        <CONDITION>

           <PROPERTY name="EMPTY" source="pt_pageIdORI"/>

        </CONDITION>

        <PARAM name="pt_pageId">

          <PROPERTY name="VALUE" source="pt_pageIdORI"/>

        </PARAM>

      </SCHEDULE>

      <DO>

        <PROPERTY name="VALUE" source="pt_pageIdORI"/>

      </DO>

    </RULE>

    Viele Grüße,

    Fidel

    0
  • Zendesk API User
    Author: mbergmann - 11/28/2019 14:13

    Hallo Fidel,

    gern geschehen :-)

    Wie Du im ValueService an die PageID kommst ist aber schon klar geworden oder? Das wäre ja der erste Schritt. Ich frage weil Du schreibst "Also benötige ich 2 Regeln damit der ValueService oder dem PermanetPlugin angesprochen wird" - es ist ja kein "entweder/oder" sondern sieht letztlich folgendermaßen aus:

    1. Du nutzt den ValueService in der Regel.
    2. Der ValueService selbst kennt den aktuellen Kontext (=die Seite) nicht, weil diese Info nicht automatisch "mitgeliefert" wird.
    3. Darum musst Du vorher diese Info selbst hinterlegen und eine Stelle schaffen, von wo Du die Info aus dem ValueService heraus abrufen kannst
    4. Das Abrufen machst Du später im ValueService über den ClientService, den Du Dir dort über den ServicesBroker holst
    5. Damit dieser selbst gebaute Service auch verfügbar ist, musst Du ihn im Rahmen des PermanentPlugins registrieren. Ein PermanentPlugin ist ein wenig anders als andere Plugins - es liefert selbst keine zusätzlichen "Funktionalitäten" sondern bietet lediglich die Möglichkeit, "ein Stück Code einmalig beim Clientstart auszuführen". Insbesondere ist garantiert, dass dieser Code vor dem Laden anderer Arten von Plugins (wie z.B. Reports/DAPs) ausgeführ wird.
    6. Im Rahmen der Registrierung des ClientServices (also im PermanentPlugin) registrierst Du auch den Listener, der auf den "Elementwechsel" im SA reagiert und sich das jeweilige Element im ClientService "merkt".

    Logisch gesehen besteht das Ganze also quasi aus zwei Teilen:

    1. ClientService im PermanentPlugin instantiieren und Listener registrieren => Damit schaffst Du die Möglichkeit, im SA von überall aus auf das aktuell ausgewählte Element zuzugreifen
    2. Der ValueService, der im Rahmen der Regel benutzt wird, benutzt den ClientService, um sich von dort die Page zu holen. Oder die PageId oder was auch immer Du halt hinein legst.

    In der <RULE> benutzt Du immer den ValueService, also <SCHEDULE>.

    Es kommt letztlich darauf an, was Du mit der PageID machen willst bzw. wozu Du die brauchst. Ich hatte es bisher so verstanden, dass der ValueService etwas "auf Basis der Page" tun soll, die also nutzt um irgendeine Entscheidung zu treffen.

    Kannst Du vielleicht mal den Anwendungsfall erklären?

    Viele Grüße

    Michael

    0

Vous devez vous connecter pour laisser un commentaire.