Subinformation (SP-Tag)

Aus SiteparkWiki
(Weitergeleitet von Sp:subinformation)
Zur Navigation springen Zur Suche springen

Name

<sp:subinformation> - Subinformation-Tag

Syntax

<sp:subinformation name="sub"></sp:subinformation>

Beschreibung

Dieser Tag dient zur Gruppierung weiterer SP-Tags. Dadurch werden mehrere Information in einer sog. SubInformation zusammengefasst. Durch Angabe eines optionalen Typs, können außerdem noch bestimmte Objekte angelegt werden. So werden z.B. CalendarInformation-Objekte in Templates unter Verwendung dieses Tags beschrieben.

Attribute

Name Type Required Default ab IES Version
name Variable Ja None 1
type Text Nein None 2.0.3
name
Name der Subinformation.
type
Optionale Angabe eines Typs. Dieser Tag erzeugt standardmäßig Subinformation-Objkete, kann aber auch bestimmte andere Datentypen erstellen. So kann über den Typ calendar ein CalendarInformation-Object angelegt werden.

Beispiele

Gruppierung von Textfeldern

Template Quelltext

<sp:subinformation name="sp_textblock">
  <sp:text name="sp_text_a"/><br>
  <sp:text name="sp_text_b"/><br>
</sp:subinformation>

Ausgabe

<sp:print name="sp:textblock.sp_text_a"/> - <sp:print name="sp:textblock.sp_text_b"/>

Zeitgesteuerte Freigabe von Artikeln

So oder ähnlich könnte ein Template aussehen, das die zeitgesteuerte Freigabe von Artikeln konfiguriert. Die eigentlichen Tasks liegen innerhalb eines CalendarInformation, das wiederum den Zeitpunkt bestimmt.

  Artikel publizieren:<br>
  <sp:subinformation name="publicationFrom" type="calendar">
    <sp:text name="calendar" id="publicationFrom.calendarType" type="calendarType" size="16" hidden="true" value="day"/>
    <sp:text name="calendar" id="publicationFrom.calendarFrom" type="calendarFrom" size="16" format="dd.MM.yyyy HH:mm"/><br>
    <sp:text name="calendar" id="publicationFrom.calendarTo" type="calendarTo" size="16" format="dd.MM.yyyy HH:mm" hidden="true"/>
    <sp:text name="publishTask" id="publicationFrom.taskDateType" type="taskDateType" value="-1" hidden="true"/>
    <sp:text name="publishTask" id="publicationFrom.taskDate" type="taskDate" size="16" hidden="true"/>
    <sp:text name="publishTask" id="publicationFrom.taskTemplate" type="taskTemplate" value="${editor_template}" hidden="true" />
    <sp:text name="publishTask" id="publicationFrom.taskPublisher" type="taskPublisher" value="${_publisher}" hidden="true" />
  </sp:subinformation>
  Artikel depublizieren:<br>
  <sp:subinformation name="publicationTo" type="calendar">
    <sp:text name="calendar" id="publicationTo.calendarType" type="calendarType" size="16" hidden="true" value="day"/>
    <sp:text name="calendar" id="publicationTo.calendarFrom" type="calendarFrom" size="16" format="dd.MM.yyyy HH:mm"/><br>
    <sp:text name="calendar" id="publicationTo.calendarTo" type="calendarTo" size="16" format="dd.MM.yyyy HH:mm" hidden="true"/>
    <sp:text name="depublishTask" id="publicationTo.taskDateType" type="taskDateType" value="-1" hidden="true" />
    <sp:text name="depublishTask" id="publicationTo.taskDate" type="taskDate" size="16" hidden="true"/>
    <sp:text name="depublishTask" id="publicationTo.taskTemplate" type="taskTemplate" value="${editor_template}" hidden="true" />
    <sp:text name="depublishTask" id="publicationTo.taskPublisher" type="taskPublisher" value="${_publisher}" hidden="true" />
  </sp:subinformation>

Erstellung eines CalendarInformation

Template Quelltext

<sp:io type="in">

  <sp:subinformation name="sp_dateItem" type="calendar">

    <%-- Typ des Termins --%>
    <sp:text name="calendar" type="calendarType" id="_calendarType" hidden="true"/>
    <select name="calendarType" size="1" onchange="document.getElementById('_calendarType').value=this.options[this.options.selectedIndex].value; document.getElementsByName('SYS_INFE_action')[0].value='edit';document.forms[0].submit();">
      <option value="day"<sp:if name="sp_dateItem.calendar.calendarType" eq="day"> selected="selected"</sp:if>>einfacher Termin (z.B. Urlaub)</option>
      <option value="daily"<sp:if name="sp_dateItem.calendar.calendarType" eq="daily"> selected="selected"</sp:if>>täglicher Termin (z.B. Emails lesen)</option>
      <option value="weekly"<sp:if name="sp_dateItem.calendar.calendarType" eq="weekly"> selected="selected"</sp:if>>wöchentlicher Termin (z.B. jeden Montag Besprechung)</option>
      <option value="monthlyByDay"<sp:if name="sp_dateItem.calendar.calendarType" eq="monthlyByDay"> selected="selected"</sp:if>>Tag X eines Monats (z.B. immer am 15. eines Monats)</option>
      <option value="monthlyByOccurrence"<sp:if name="sp_dateItem.calendar.calendarType" eq="monthlyByOccurrence"> selected="selected"</sp:if>>bestimmter Wochentag eines Monats (z.B. jeder 2. Samstag im Monat)</option>
      <option value="yearlyByDay"<sp:if name="sp_dateItem.calendar.calendarType" eq="yearlyByDay"> selected="selected"</sp:if>>Tag X eines Jahres (z.B. 6. Tag des Jahres)</option>
      <option value="yearlyByOccurrence"<sp:if name="sp_dateItem.calendar.calendarType" eq="yearlyByOccurrence"> selected="selected"</sp:if>>bestimmter Wochentag eines Monats (z.B. Pokalturnier am ersten Wochenende im Juni)</option>
      <option value="yearlyByMonth"<sp:if name="sp_dateItem.calendar.calendarType" eq="yearlyByMonth"> selected="selected"</sp:if>>Tag X eines Monats im Jahr (z.B. Geburtstag)</option>
    </select>

    <%-- Start und Ende des Termins --%>
    <table>
        <tr>
        <td>von:</td><td><sp:text name="calendar" id="_calendarFrom" type="calendarFrom" size="10" format="dd.MM.yyyy"/></td>
        <td>bis:</td><td><sp:text name="calendar" id="_calendarTo" type="calendarTo" size="10" format="dd.MM.yyyy"/></td>
        </tr>
    </table>

    <%-- ganztägige Termine --%>
    <sp:text name="calendar" type="calendarAllDay" id="_calendarAllDay" fixvalue="true" hidden="true"/>

    <%-- Konfiguration der Wiederholungen --%>
    <sp:if condition="${sp_dateItem} != '' && ${sp_dateItem.calendar.calendarType} != 'day'">
      Wiederholungen:<br>
      <table>
          <tr>
          <sp:set name="_readonly" value="false"/><sp:if name="sp_dateItem.calendar.calendarRepetitionCount" gt="0"><sp:set name="_readonly" value="true"/></sp:if>
          <td>Wiederholungen bis:</td><td><sp:text name="calendar" id="_calendarRepetitionDate" type="calendarRepetitionDate" size="10" format="dd.MM.yyyy" readonly="${_readonly}" onchange="document.getElementById('_calendarRepetitionCount').value=0"/></td>
          <td>Anzahl der Wiederholungen:</td><td><sp:text name="calendar" id="_calendarRepetitionCount" type="calendarRepetitionCount" size="3" onchange="document.getElementById('_calendarRepetitionDate').value=''"/></td>
          </tr>
      </table>

      <br>
      Interval (0-n):<br><sp:text name="calendar" id="_calendarInterval" type="calendarInterval" size="3"/><br>

      <%-- dow --%>
      <sp:if condition="${sp_dateItem.calendar.calendarType} == 'weekly' || ${sp_dateItem.calendar.calendarType} == 'monthlyByOccurrence' || ${sp_dateItem.calendar.calendarType} == 'yearlyByOccurrence'">
        <br>
        <sp:condition>
          <sp:if condition="${sp_dateItem.calendar.calendarType} != 'weekly'">
            Tag der Woche:<br>
          </sp:if>
          <sp:else>
            Tage der Woche (Mehrfachauswahl):<br>
          </sp:else>
        </sp:condition>
        <sp:text name="calendar" type="calendarDow" id="_calendarDow" hidden="true"/>
        <select name="calendarDow" size="7" <sp:if condition="${sp_dateItem.calendar.calendarType} == 'weekly'">multiple="true" </sp:if>onchange="var ret = ''; for (i = 0; i < this.length; i++) { if (this.options[i].selected == true) { if (ret != '') ret+=','; ret+=this.options[i].value; }} document.getElementById('_calendarDow').value=ret;">
          <option value="mon"<sp:if name="sp_dateItem.calendar.calendarDow" contains="mon"> selected="selected"</sp:if>>Montag</option>
          <option value="tue"<sp:if name="sp_dateItem.calendar.calendarDow" contains="tue"> selected="selected"</sp:if>>Dienstag</option>
          <option value="wed"<sp:if name="sp_dateItem.calendar.calendarDow" contains="wed"> selected="selected"</sp:if>>Mittwoch</option>
          <option value="thu"<sp:if name="sp_dateItem.calendar.calendarDow" contains="thu"> selected="selected"</sp:if>>Donnerstag</option>
          <option value="fri"<sp:if name="sp_dateItem.calendar.calendarDow" contains="fri"> selected="selected"</sp:if>>Freitag</option>
          <option value="sat"<sp:if name="sp_dateItem.calendar.calendarDow" contains="sat"> selected="selected"</sp:if>>Samstag</option>
          <option value="sun"<sp:if name="sp_dateItem.calendar.calendarDow" contains="sun"> selected="selected"</sp:if>>Sonntag</option>
        </select>
      </sp:if>

      <%-- dom --%>
      <sp:if condition="${sp_dateItem.calendar.calendarType} == 'monthlyByDay' || ${sp_dateItem.calendar.calendarType} == 'yearlyByMonth'">
        <br>
        Tag der Monats (1-31):<br><sp:text name="calendar" id="_calendarDom" type="calendarDom" size="2"/><br>
      </sp:if>

      <%-- oom --%>
      <sp:if condition="${sp_dateItem.calendar.calendarType} == 'monthlyByOccurrence' || ${sp_dateItem.calendar.calendarType} == 'yearlyByOccurrence'">
        <br>
        Woche des Monats (1-5):<br><sp:text name="calendar" id="_calendarOom" type="calendarOom" size="1"/><br>
      </sp:if>

      <%-- doy --%>
      <sp:if condition="${sp_dateItem.calendar.calendarType} == 'yearlyByDay'">
        <br>
        Tag des Jahres (1-365):<br><sp:text name="calendar" id="_calendarDoy" type="calendarDoy" size="3"/><br>
      </sp:if>

      <%-- moy --%>
      <sp:if condition="${sp_dateItem.calendar.calendarType} == 'yearlyByMonth' || ${sp_dateItem.calendar.calendarType} == 'yearlyByOccurrence'">
        <br>
        Monat des Jahres:<br>
        <sp:text name="calendar" type="calendarMoy" id="_calendarMoy" hidden="true"/>
        <select name="calendarMoy" size="1" onchange="document.getElementById('_calendarMoy').value=this.options[this.options.selectedIndex].value;">
          <option value="0"<sp:if name="sp_dateItem.calendar.calendarMoy" eq="0"> selected="selected"</sp:if>>Januar</option>
          <option value="1"<sp:if name="sp_dateItem.calendar.calendarMoy" eq="1"> selected="selected"</sp:if>>Februar</option>
          <option value="2"<sp:if name="sp_dateItem.calendar.calendarMoy" eq="2"> selected="selected"</sp:if>>März</option>
          <option value="3"<sp:if name="sp_dateItem.calendar.calendarMoy" eq="3"> selected="selected"</sp:if>>April</option>
          <option value="4"<sp:if name="sp_dateItem.calendar.calendarMoy" eq="4"> selected="selected"</sp:if>>Mai</option>
          <option value="5"<sp:if name="sp_dateItem.calendar.calendarMoy" eq="5"> selected="selected"</sp:if>>Juni</option>
          <option value="6"<sp:if name="sp_dateItem.calendar.calendarMoy" eq="6"> selected="selected"</sp:if>>Juli</option>
          <option value="7"<sp:if name="sp_dateItem.calendar.calendarMoy" eq="7"> selected="selected"</sp:if>>August</option>
          <option value="8"<sp:if name="sp_dateItem.calendar.calendarMoy" eq="8"> selected="selected"</sp:if>>September</option>
          <option value="9"<sp:if name="sp_dateItem.calendar.calendarMoy" eq="9"> selected="selected"</sp:if>>Oktober</option>
          <option value="10"<sp:if name="sp_dateItem.calendar.calendarMoy" eq="10"> selected="selected"</sp:if>>November</option>
          <option value="11"<sp:if name="sp_dateItem.calendar.calendarMoy" eq="11"> selected="selected"</sp:if>>Dezember</option>
        </select>
      </sp:if>
    </sp:if>

  </sp:subinformation>
</sp:io>

Ausgabe

von: <sp:print name="sp_dateItem.calendar.calendarFrom" dateformat="dd.MM.yyyy"/><br>
bis: <sp:print name="sp_dateItem.calendar.calendarTo" dateformat="dd.MM.yyyy"/><br>