Skip to main content

Unser kleines Handbuch für SobiPro in Joomla! - SobiPro 1.0.x und 1.1.x Standardkategorie für Frontend Eintragsformular erstellen

Seite 4 von 9: Standardkategorie für Frontend Eintragsformular erstellen

Wenn man im verwendeten Template für eine Sektion Die Datei [template]/entry/edit.xsl anpasst kann einen Eintrag in eine bestimmte Kategorie erzwingen.

Vorgehensweise für SobiPro 1.0

Öffnen Sie im Templatemanger die Datei entry/edit.xsl zum bearbeiten und suchen die Zeilen 26 bis 46. In den besagten Zeilen wird folgender Inhalt entfernt und dann

<div class="spFormRowOdd" >  
        <div class="spFormRowLeft">
          <label for="entry.parent">
            <xsl:value-of select="php:function( 'SobiPro::Txt' , 'TP.CAT_BOX' )" />          
          </label>
        </div>          
        <div class="spFormRowRight">
          <xsl:copy-of select="entry/category_chooser/path/*"/>
          <div style="clear:both;"/>
          <div style="float:left; display:none;">
            <xsl:copy-of select="entry/category_chooser/selected/*"/>
          </div>
          <div style="float:left;">
            <button type="button" name="parent_path" id="entry_parent_path" class="osx inputbox">
              <xsl:value-of select="php:function( 'SobiPro::Txt' , 'EN.SELECT_CAT_PATH' )" />
            </button>
          </div>
          <div style="clear:both;"/>
        </div>
      </div>        
      <div style="clear:both;"/>

ersetzt durch:

 <input type="hidden" name="entry.parent" value="62" id="entry.parent"  />

Die "62" steht hierbei für die ID-Nummer der Standardkategorie.

Vorgehensweise in SobiPro 1.1.x

Öffnen Sie wieder die Datei entry/edit.xsl im Templatemanger der entsprechenden Sektion. Leider muss hier etwas mehr gemacht werden als in der Version 1.0 von SobiPro.

Im ersten Schritt entfernen Sie die Zeilen 40 bis 101 mit folgendem Code:

<xsl:for-each select="entry/fields/*">
<xsl:if test="( name() != 'save_button' ) and ( name() != 'cancel_button' )">
<xsl:variable name="fieldId" select="name(.)" />
<xsl:if test="string-length( fee )">
<div class="control-group">
<div class="control-label">
<input name="{$fieldId}Payment" id="{$fieldId}-payment" value="" type="checkbox" class="payment-box" />
</div>
<div class="alert spAlert controls">
<xsl:value-of select="fee_msg" /><xsl:text> </xsl:text>
<xsl:value-of select="php:function( 'SobiPro::Txt', 'TP.PAYMENT_ADD' )" />
</div>
</div>
</xsl:if>
<div class="control-group" id="{$fieldId}-container">
<label class="control-label" for="{$fieldId}-input-container">
<xsl:choose>
<xsl:when test="string-length( description )">
<a href="#" rel="popover" data-placement="top" data-content="{description}" data-original-title="{label}">
<xsl:value-of select="label" />
</a>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="label" />
</xsl:otherwise>
</xsl:choose>
</label>
<div class="controls" id="{$fieldId}-input-container">
<div>
<xsl:if test="string-length( @suffix )">
<xsl:attribute name="class">input-append</xsl:attribute>
</xsl:if>
<xsl:choose>
<xsl:when test="data/@escaped">
<xsl:value-of select="data" disable-output-escaping="yes" />
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="data/*" />
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="string-length( @suffix )">
<span class="add-on">
<xsl:value-of select="@suffix" />
</span>
</xsl:when>
<xsl:otherwise>
<span id="{$fieldId}-message" class="hide message-lightbulb">
<i class="icon-lightbulb" />
</span>
</xsl:otherwise>
</xsl:choose>
</div>
<xsl:if test="string-length( @suffix )">
<span id="{$fieldId}-message" class="hide message-lightbulb">
<i class="icon-lightbulb" />
</span>
</xsl:if>
</div>
</div>
</xsl:if>
</xsl:for-each>

Nun müssen Sie das Formular wieder neu aufbauen, dazu muss folgender Aufbau berücksichtigt werden. Für jedes Feld welches im Eintragsformular berücksichtigt werden soll muss folgender Code verwendet und angepasst werden:

<div id="field_field-nameContainer">
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="position() mod 2">spFormRowEven</xsl:when>
<xsl:otherwise>spFormRowOdd</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<div class="spFormRowLeft">
<strong>
<xsl:value-of select="entry/fields/field_FELDNAME/label" />
</strong>
<xsl:text>: </xsl:text>
</div>
<div class="spFormRowRight">
<xsl:copy-of select="entry/fields/field_FELDNAME/data/*" disable-output-escaping="yes" />
</div>
</div>

Eingefügt wird der Code an genau der Stelle an der vorher der Ursprüngliche Code entfernt wurde (Zeile 40 bis 101). 

Nach dem nun für alle Felder der entsprechende Code eingefügt wurde muss unter den Letzten Feldcontainer noch folgende Zeile eingefügt werden:

<input type="hidden" name="field_category" value="56" id="field_category"  />

Die Zahl 56 steht dabei für ID-Nummer des Kategoriefeldes in der Felderverwaltung Ihrer Sobipro Sektion.

Die fehlenden xtd-editior Buttons
Seite