Als Beispiel für die Anleitung zu SobiPro dient hier ein Produktkatalog. Die wesentlichen Schritte sind aber auch für andere Anwendungen (Gästebuch, Immobilienkatalog o.ä.) die gleichen.
Um zum Produktkatalog zu gelangen klicken Sie mit der Maus auf den Menüpunkt "Komponenten" (1) und klicken dann auf "SobiPro" (2).
In dieser Ansicht können Sie eine Ihrer Sektionen anwählen (1), oder über den Button "Aktionen" eine neue Sektion erstellen (2):
Sie haben auf dieser Seite, nach einem Klick auf "Alle Einträge" (2.), folgende Möglichkeiten um die Inhalte der gewählten Sektion zu "Verwalten"
Wenn Sie in eine Kategorie gesprungen sind oder sich alle Einträge anzeigen lassen, so sehen Sie folgende Ansicht:
In diese Ansicht können Sie Einträge und eventuelle Unterkategorien (werden bei "Alle Einträge" ausgeblendet) bearbeiten.
Das Eintragsformular hilft Ihnen dabei neue Einträge (z.B. Produkte) aufzunehmen. Zum Eintragsformular gelangen Sie, wenn Sie auf den Button "Eintrag" klicken und "Hinzufügen" wählen.
Das Eintragsformular teilt sich in vier Bereiche: Eintragsdaten (1), Allgemeine Angaben (2.1), Metadaten (2.2) und Veröffentlichung (2.3)
Das Eintragsformular hilft Ihnen dabei neue Kategorien (z.B. Produktgruppen) anzulegen. Zum Eintragsformular gelangen Sie, wenn Sie auf den Button "Kategorie" klicken und "Hinzufügen" wählen.
Das Eintragsformular teilt sich in drei Bereiche: Allgemeine Angaben (1), Metadaten (2) und Veröffentlichung (3)
Sollte man ein mehrsprachiges Verzeichnis auf Basis von Sobi Pro betreiben so sollte man beachten, dass alle Kategorien und Einträge immer in der beim Bearbeiten aktiven Sprache gespeichert werden. Dieser Umstand hat besondere Auswirkungen auf die Kategorien welche über die Administrationsoberfläche erstellt werden, denn werden diese mit der aktiven Sprache Deutsch angelegt, so werden die Kategorien im englischen Frontend nicht zu sehen sein.
Für das Veröffentlichen von Einträgen in SobiPro 1.1.x ist normalerweise ein Zugang zur Administrationsoberfläche notwendig, es können aber auch andere Benutzer das Recht bekommen Einträge freizugeben. Genau diesen Umstand kann man sich zu nutze machen um Einträge auch automatisch zu veröffentlichen.
Gehen Sie in die Administrationsoberfläche ihrer Webseite und öffnen sie das Kontrollzentrum von SobiPro 1.1.x. Klicken Sie dann einfach auf den Button "Berechtigungen (ACL)" und öffnen dann die Berechtigungen der Sektion in der die Einträge automatisch veröffentlicht werden sollen.
Im Feld "Frontend Berechtigungen" muss zusätzlich der Punkt "Eigene veröffentlichen" markiert werden.
In SobiPro ist die maximale Anzahl der Einträge je Kategorieseite aus maximal 15 begrenzt, aber es gibt eine recht simple Lösung für dieses Problem.
Sie müssen "nur" die Datei general.xml auf dem Server ein wenig bearbeiten. Die Dtei finden Sie im Ordner:
administrator/components/com_sobipro/config/
In der Datei suchen Sie nach
<field type="select" label="SECN.CFG.NUMBER_ENTRIES_PAGE" name="spcfg[list.entries_limit]" selected="list.entries_limit" class="input-mini">
In Zeile 155.
Und ergänzen nach
<option value="15" />
In Zeile 171 folgende Zeilen: <option value="20" />
<option value="25" />
<option value="30" />
<option value="35" />
<option value="40" />
<option value="45" />
<option value="50" />
Wichtig ist, dass </values> unbedingt unter der letzten Option stehen bleiben muss.
Die Änderung bewirkt letzten Endes, dass in der Auswahl Einträge / Seite in den Sektionsoptionen noch die Wahlmöglichkeiten 20, 25, 30, 35, 40, 45 und 50 hinzukommen.
Achtung!!! Bitte vorher immer eine Kopie der Originaldatei erstellen um Fehler zu vermeiden.Hinweis!!! Bei einem Update von SobiPro wird diese Datei meist überschrieben, so dass mn diese Prozedur wieder durchführen muss.
Wenn man im verwendeten Template für eine Sektion Die Datei [template]/entry/edit.xsl anpasst kann einen Eintrag in eine bestimmte Kategorie erzwingen.
Ö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.
Ö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.
In Der Version SobiPro 1.0 und 1.1 können die fehlenden Editor Erweiterungen (Weiterlesen, Seitenumbruch, Bild und Beiträge) welche sich immer unter dem Editor befinden leicht aktiviert werden.
Zur Aktivierung muss die config.ini angepasst werden. Die Datei findet ihr im Verzeichnis:
components\com_sobipro\etc\adm\
In der Datei muss "nur" in der Zeile 26:
editor_buttons = false
das "false" in "true" geändert werden und schon sind die xtd-Buttons in SobiPro verfügbar.
Achtung!!! Am besten man legt die Datei "config_override.ini" im Verzeichnis "adm" an und kopiert den gesamten (überarbeiteten) Inhalt der config.ini in diese Datei. Damit wird bei einem Update von SobiPro nicht die Konfiguration überschrieben.
; @package: SobiPro Component for Joomla!
; @author; Name: Sigrid Suski & Radek Suski, Sigsiu.NET GmbH; Email: sobi[at]sigsiu.net; Url: https://www.Sigsiu.NET
; @copyright Copyright (C) 2006 - 2016 Sigsiu.NET GmbH (https://www.sigsiu.net). All rights reserved.; @license GNU/GPL Version 3; This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation, and under the additional terms according section 7 of GPL v3.; See http://www.gnu.org/licenses/gpl.html and https://www.sigsiu.net/licenses.
; This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
[general]top_menu = truedebug = false
[entry]primary_path_always = falsename_field = 0maxCats = 5publish_limit = 0field_description = falseapprove_all_langs = trueversioning = trueversioningAdminBehaviour = true
[icon-fonts]font-awesome-3="//maxcdn.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css"font-awesome-4="//maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css"font-google-materials="//fonts.googleapis.com/icon?family=Material+Icons"
[template]bs3_css="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"bs3_js="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"
[lang]engb_preload = trueignore_default = false
[section]force_category_id = false;
[plugins]content_disable = "json://['entry.payment', 'entry.submit']"
[editing]def_cout_time = 3600
[html]tooltip_class = "editlinktip hasTip"editor = "cms.html.editor"pre_to_entities = true
[date];publishing_format = "Y-m-d H:i:s"publishing_format = "j F Y H:i:s"
log_format = "D M j G:i:s T Y"db_format = "Y-m-d H:i:s"
[mail_protection]show = 80
[jquery]ui_theme = "smoothness.smoothness"
[cache]js_compress_exceptions = "jquery.js,mootools.js"include_files = truexml_enabled = trueunique_search_url = false
[images]category_icons = "[cfg:images_folder]/images/"category_icons_live = "[cfg:img_folder_live]/images/"folder_ico = "[cfg:img_folder_live]/adm/folder-category.png"
[image_field]pass_exif = falseexif_id_data = "json://['Make', 'Model', 'Orientation', 'XResolution', 'YResolution', 'ResolutionUnit', 'Software', 'DateTime', 'YCbCrPositioning', 'Copyright', 'Exif_IFD_Pointer', 'CustomRendered', 'ExposureMode', 'WhiteBalance', 'DigitalZoomRatio', 'SceneCaptureType', 'YCbCrPositioning', 'CustomRendered', 'ExposureMode', 'WhiteBalance', 'DigitalZoomRatio', 'SceneCaptureType']"exif_data = "json://['ExposureTime', 'FNumber', 'ExposureProgram', 'ISOSpeedRatings', 'ExifVersion', 'DateTimeOriginal', 'DateTimeDigitized', 'CompressedBitsPerPixel', 'BrightnessValue', 'ExposureBiasValue', 'MaxApertureValue', 'MeteringMode', 'LightSource', 'Flash', 'FocalLength', 'FlashPixVersion', 'ColorSpace', 'ExifImageWidth', 'ExifImageLength', 'CustomRendered', 'ExposureMode', 'WhiteBalance', 'DigitalZoomRatio', 'SceneCaptureType', 'Contrast', 'Saturation', 'Sharpness', 'SubSecTimeOriginal', 'SubSecTimeDigitized']"exif_gps_data = "json://['Version','AltitudeRef','Altitude','Status','MeasureMode','DOP','SpeedRef','Speed','TrackRef','Track','ImgDirectionRef','ImgDirection','MapDatum','DateStamp','Differential']"fix_rotation = true
[browser]add_title = falsereverse_title = falsetitle_separator = ' - '
[search]; word_filter = "/\p{L}+|\d+|%/iu"suggest_start_with = truesuggest_min_chars = 1params_to_pass = "json://['rendercomponent','tmpl']"result_limit = 1000
[meta]desc_append = truekeys_append = true
[category]show_intro = trueshow_icon = trueparse_desc = falseshow_desc = false
[list]cat_desc = falsecat_meta = falsesubcats = trueentry_meta = falseentry_cats = truecategories_ordering = "name.desc"categories_in_line = 2entries_in_line = 1entries_limit = 8num_subcats = 6field_description = false
[alphamenu]letters = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,0-9"verify = falseshow = truefield_types = "json://['inbox','select','chbxgroup','multiselect']"
[redirects]section_enabled = falsesection_url = "index.php"section_msgtype = "info"section_msg = "UNAUTHORIZED_ACCESS"section_search_enabled = falsesection_search_url = "index.php"section_search_msgtype = "info"section_search_msg = "UNAUTHORIZED_ACCESS"category_enabled = falsecategory_url = "index.php"category_msgtype = "info"category_msg = "UNAUTHORIZED_ACCESS"entry_access_enabled = falseentry_access_url = "index.php"entry_access_msgtype = "info"entry_access_msg = "UNAUTHORIZED_ACCESS"entry_add_enabled = falseentry_add_url = "index.php"entry_add_msgtype = "info"entry_add_msg = "UNAUTHORIZED_ACCESS"entry_save_enabled = falseentry_save_url = "index.php"entry_save_msgtype = "info"entry_save_msg = "EN.ENTRY_SAVED_NA"
[legacy]maxCats = 5sigsiutree = false
[image]ico_size="100:100"
Sollten die Bilder nicht angezeigt werden so liegt das meistens am Cache der Webseite. Um den Cache zu erneuern muss man jede Sektion einzeln öffnen und dann Links auf Sektionskonfiguration -> Sektions-Crawler gehen und im nächsten Fenster oben bei Crawl auf den kleinen Pfeil und dann auf den Unterpunkt "Cache löschen & Crawlen" klicken.
Der Vorgang kann je nach Anzahl der Einträge in der Sektion eine gewisse Zeit in Anspruch nehmen und muss für jede Sektion einzeln wiederholt werden.
Grundlegend ist das SobiPro Entries Modul in seinen grundlegenden Einstellungen wie (Position, Name usw.) so wie jedes andere Modul auch.
Mit der Version 3.0 ergibt sich eine wesentliche Änderung des Moduls, denn die Ablage der Templatedateien ist verschoben wurden.
Vor der Aktualisierung des Moduls muss man die Templatedateien in die neue Ordnerstruktur kopieren. Dazu müssen alle Dateien aus dem Verzeichnis:
Components/com_sobipro/usr/templates/front/modules/entries
In die neue Struktur unter:
Components/com_sobipro/usr/templates/[Templatename]/modules/entries
Kopiert werden.
Im Entries Modul von SobiPro ist ein kleiner Bug welcher nach einer Aktualisierung von SobiPro 1.1.x auf 1.2 und der Aktualisierung des Entries Modules auf die Version 2.2 auftritt.
Es kommt je nach Einstellung des Servers zu einem Error 500 oder der Fehlermeldung:
Fatal error: Class 'SPFactory' not found in …/modules/mod_sobipro_entries/mod_sobipro_entries.php on line 25
Die einfache "Quick and Dirty" Lösung ist das auskommentieren der Zeile 25 in der Datei mod_sobipro_entries.php
/modules/mod_sobipro_entries/mod_sobipro_entries.php
SPFactory::registry()->save();
Ändern zu
//SPFactory::registry()->save();
Das Einbinden des Emailfeldes inklusive des Labels und einer entsprechenden Verlinkung der Emailadresse kann auf folgende Art und Weise geschehen:
Einbinden in die Detail View (entry/details.xsl)
<strong><xsl:value-of select="entry/fields/field_email/label" />
<xsl:text>: </xsl:text></strong>
<xsl:copy-of select="entry/fields/field_email/data/*"/>
Einbinden in die vCard (common/vcard.xsl)
<strong><xsl:value-of select="fields/field_email/label" />
<xsl:text>: </xsl:text></strong>
<xsl:copy-of select="fields/field_email/data/*"/>
Möchte man nun nicht die Emailadresse als solches angezeigt und verlinkt haben sondern das Wort "Email" muss das Einbinden auf folgende Weise geschehen:
Einbinden in Detail View (entry/details.xsl)
<a>
<xsl:attribute name="href">
<xsl:value-of select="entry/fields/field_email/data/a/@href" />
</xsl:attribute>Email
</a>
Einbinden in die vCard (common/vcard.xsl)
<a>
<xsl:attribute name="href">
<xsl:value-of select="fields/field_email/data/a/@href" />
</xsl:attribute>Email
</a>
In den aller meisten Fällen liegt das an folgenden Einstellungen:
Als Lösung muss man nun entweder das Joomla Plugin aktivieren oder in den Feldeigenschaften den Schutz vor Spambots deaktivieren.
Vorab gleich ein Tipp am einfachsten ist die Metatag Verwaltung mit einer Komponente wie Sh404sef oder ähnlichen, hier hat man dann auch die komplette Verwaltung aller Metatags aus allen Komponenten an einer Stelle.
In der Grundkonfiguration baut SobiPro die Titletags wie folgt auf:
Sektionshauptseite
Kategorien
Detailseiten
Die einzelnen Teile werden durch Bindestriche getrennt aber der Titel wird auf diese Weise natürlich extrem lang. Die Grundeinstellungen können in der Datei components/com_sobipro/etc/config.ini können im Bereich "Browser" einzelnen Teile des Titel Tags deaktiviert werden.
Hat man nun einen Menüpunkt für die Sektion in SobiPro gesetzt und in diesem Menüpunkt einen das Feld Seitentitel im Browser ausgefüllt ändert sicher der Aufbau des Seitentitels wie folgt:
Sektionshauptseite
Kategorien
Detailseiten
Erstellt man nun einen Menüpunkt für eine Kategorie in der SobiPro Sektion entfällt im Titeltag der Seiten der Teil für die Sektion, das heißt es der Titeltag baut sich folgender maßen auf:
Kategorien
Detailseiten
Nehmen wir an man möchte das auf den Eintragsdetailseiten generell nur den Eintragsnamen als Metatitel haben, dann wird es schon komplizierter. Hier müssen wir nämlich zwei Dateien des verwendeten SobiPro Templates bearbeiten.
Zuerst die Template.php, hier muss der folgende Code, vor dem letzten "}" ergänzt werden:
public static function AddTitle( $title )
{
SPFactory::header()->setTitle( $title );
}
In der Datei entry/details.xsl müssen wir oben nach "<xsl:template match="/entry_details">" einfach folgendes Einbinden:
<xsl:variable name="myTitle">
<xsl:value-of select="entry/name"/>
</xsl:variable>
<xsl:value-of select="php:function( 'TplFunctions::AddTitle', $myTitle )" />
Das ganze bewirkt dann, dass der Eintragsname als Metatitel genommen wird, natürlich könnte man auch in der Sektion ein Extrafeld wie "Metatitel" anlegen und dann dieses verwenden.
Mosebergstraße 1
37441, Bad Sachsa
+49-(0)-5523-952 89 98
+49-(0)-160-932 435 66
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
Montag - Freitag 09:00 - 18:00 Uhr