<mediaDESIGN> St. Kraft + lens*flares
  • Joomla-Erweiterungen
  • Knowledgebase
  • Startseite

Sprache auswählen

  • Deutsch
  • English (UK)
Suche - Kategorien
Suche - Inhalt
  • FAQs für meine Kunden
  • Eigene Joomla-Erweiterungen
    • Update-Downloads
    • VM2/3-Category-Menu-Modul
  • Software-Design / Interface-Design
  • Referenzen / Auszeichnungen
  • Knowledgebase
    • Joomla und Erweiterungen (allg.)
    • Gantry 4 und 5 - Tipps, Know How
    • VirtueMart - Know How und Bugfixes
    • MySQL - Tipps
    • BreezingFoms / FacileForms
    • J!-Extensions selbst erstellen
    • JTL-Shop und -WaWi
  • Shop Warenkorb

Dateiupload mit BreezingForms

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 2 / 5

Mit dem Formularkomponente BreezingForms wurde auch der Dateiupload durch den Kunden ermöglicht. BreezingForms legt dann in der Prodjektwurzel autom. eine Verzeichnis an, in dem die Dateien zusätzlich (wenn aktiviert) gespeichert werden können. Der Verzeichnisname ist /ffKontakt_Datei-uploads/.

Weiterlesen: Dateiupload mit BreezingForms

In BreezingForms Formularelementen ToolTipps anzeigen

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 2 / 5

Um Tooltipps im Breezing-Forms-Formularen zu ermöglichen wie folgt verfahren:

  • Das Formular-Element auswählen, welches den Tooltipp erhalten soll (bevorzugt das Label-Element, damit das Tooltipp-Symbol direkt hinter dem Label ausgeben wird.
  • In der Regel haben alle Formularelement vom Typ Label auch ein Feld „Inhalt (HTML erlaubt)". Hinter dem dortigen Anzeige Text folgende Sequenz eingeben:

Weiterlesen: In BreezingForms Formularelementen ToolTipps anzeigen

BreezingForms Komponentenbeschreibung

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 3 / 5

Diese Komponente dient zum Einfachen Aufbau von Web-Formularen.
Statt dessen wurde das Joomla-Kontaktformular deaktiviert (kann eigentl. deinstalliert werden), weil das Formular keine weiteren Formatierungsmöglichkeiten bietet.
BreezingForms wird supported von www.crosstec.de. Hier ist auch ein gutes z.T. deutsches Forum enthalten:
Installiert wurde die Komponente com_breezingforms_165.zip (Version 1.6.5.) per J!Installer und anschließende das Plugin plg_breezingforms.zip.
Mit der Komponente lassen sich über drei unterschiedliche Modi (Packages) (QuickMode, EasyForm und Classic) Formulare erstellen. Für das Kontaktformular wurde der Easy-Mode genutzt.

Weiterlesen: BreezingForms Komponentenbeschreibung

VirtueMart: Bestellabschluss Formular bearbeiten

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 1.5 / 5

Pflichtfelder ergänzen oder aus Liste entfernen

/administrator/components/com_virtuemart/html/checkout_register_form.php
suchen nach $required_fields und im Array auskommentieren
außerdem in
/administrator/components/com_virtuemart/classes/ps_shopper.php
 
in der Funktion validate_add()
in der Lieferadresse account.shipto.php
Angaben löschen wie:
 
in
../classes/ps_user_adress.php siehe: $valid = false;
$d["missing"] darf nur die Felder enthalten, die required sind.

Suche in Virtuemart

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 4.5 / 5

Um in VirtueMart nach Produkten zu suchen gibt es verschiedene Möglichkeiten.
 

1. Die Joomla-Such-Funktion - VM-Such-Plugin

 
Joomla selbst bietet schon eine Suchfunktion an. Diese ist jedoch nicht ohne weiteres in der Lage auch im Shop z.B. nach Produkten oder Kategorien zu suchen. Diese Suchefunktion (com_search / mod_search) benötigt dafür ein Plugin um in seine Suche auch VirtueMart einzubeziehen.
 
Ein solches Plugin ist verfügbar und ist i.d.R. im VM-Installationsbundle enthalten. Sollte nicht die Installation im kompletten Umfang erfolgt sein (alle mitgelieferten VM-Plugins und -Module) kann dieses Plugin per Joomla-Installer nachinstalliert werden.
 
Das Plugin nennt sich "Virtuemart Extended Search Plugin" und als Plugin-Name "vmxsearch.plugin". Das Installations-ZIP-Archiv heißt i.d.R. vmxsearch.plugin_1.1.3.j15.zip und ist Bestandteil des COMPLETE-PACKAGE von VirtueMart.

Weiterlesen: Suche in Virtuemart

VirtueMart: Produkte mit Mengerabatt-Staffel

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 3 / 5

Um in Virtuemart Produkte mit unterschiedlichen Preisen je nach Abnahmemenge anzulegen (Mengenrabatt-Staffel) geht man wie folgt vor.
 
Zunächst muss das Produkt ganz normal angelegt und abschließende gespeichert werden. Dann ruft man das Produkt erneut auf. In der Icon-Zeile oben rechts erscheinen nun ein paar neue Icons, u.a. eines unterschrieben mit "Preise auflisten". Davon nicht beirren lassen, dass das Icon gegraut ist. Es ist trotzdem anklickbar, was man beim Mouse-Over schon vermutet.
 
Hier erhält man jetzt eine Liste der schon verfügbaren Staffelpreise. Immer wird schon der -default-Preis eingetragen sein, der quasi bis jetzt für 1 Stück bis unendlich gilt. Nun kann man diesen auswählen und im erscheinenden Dialog den Anfangswert auf 1 setzen und den Endwert auf 9. So wird's gespeichert.
 
Zurück in der Liste wählt man nun den Button "+Neu" um einen neuen Staffelpreis hinzuzufügen. Hier wird dann als Startpreis z.B. 10 und Endpreis z.B. 50 eingegben und wieder gespeichert.
 
So ließen sich viele weitere Preise einsetzen.

Das Erscheinungsbild von Modulen anpassen (modChrome)

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 3.5 / 5

Wer etwas tiefer in die Templategestaltung einsteigen möchte und dabei für sein Template das Style-Verhalten von Modulen ändern will, oder für einzelne oder eine Gruppe von Modulen neue Styles hinzufügen möchte, kann das in Joomla über die modChrome-Funktion realisieren. Im Beipiel beziehe ich mich auf die Template-Engine JYAML von Hieblmedia.
 
 

Wie wird modChrome genutzt und aufgerufen?

 
Der Aufruf erfolgt im Haupttemplatescript index.php, so wie bekannt über z.b. in nachfolgender Weise:
 
templates/hm_yaml/html/index/THEME/index.php
1
2
3
4
5
6
7
8
9
10
11
<?php
 if($this->countModules( 'teaser' )) :
 $jyaml->getPosition('modules', 'teaser', 'rounded', ''); 
 endif;
?>

<?php
 if($this->countModules( 'HeadFuncModules' )) :
 $jyaml->getPosition('modules', 'HeadFuncModules', 'headfunctionmodule', ''); 
 endif;
?>

Die "Pflichtparameter" sind type, name und style. Ein weiterer Parameter kann genutzt werden um diverse Variablen (Attribute) zu übergeben, die durch modChrome interpretiert werden. Dazu gleich mehr. Zu den ersten beiden Parametern type und name muss wohl nichts gesagt werden, das ist in vielen anderen Artikeln zum Joomla Template und PatTemplate hinreichend dokumentiert (z.B. hier). Mit dem Style-Paramter übergeben wir in unserem Beispiel den Bezeichner teaser. Damit wird in der Funktion modChrome festgelegt, welcher Style verwendet werden soll. Im Anderen Fallbeispiel wird hier rounded verwendet. rounded ist eine der vorgefertigten hm_yaml-Styles, so wie es z.B. auch xhtml, table, none und horz gibt. Im zweiten Fallbeispiel wollen wir einen eigenen Style headfunctionmodule in der Modulposition HeadFuncModules verwenden.

 

Was passiert bei modChrome?

Im Detail passiert folgendes: Verantwortlich für individuell modChrome-Definitionen ist das Script modules.php. Bei JYAML liegt das im Verzeichnis joomlarootpfad/templates/hm_yaml/html/. Enhalten ist dort schon ein Beispiel mit dem Bezeichner jyaml Der Bezeichner jyaml wird montiert zum Methodennamen modChrome_jyaml. Genau diese Methode muss in modules.php existieren und ist die für den Style verantwortliche. Es können dann also in modules.php mehrere modChrome-Methoden definiert werden und somit wie oben als Wunschstyle definiert und wahlweise in der Templates-index.php aufgerufen werden.

Hier also mal ein Beispiel wie so eine Methode aussehen kann. Erzeugt wird ein flexibler Modulestyle, welcher einen Border um das Modul zieht, einen Module-Titel auf einem separaten farbigem Hintergrund ausgibt und den Module-Inhaltsbereich mit einem Schatten Links und oben versieht. Außerdem kann das Module ein Modulbild enthalten, welches wiederum mit einer Link versehen werden kann.

templates/hm_yaml/html/modules.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
function modChrome_jyaml($module, &$params, &$attribs)
{
 $headerLevel = isset($attribs['headerLevel']) ? $attribs['headerLevel'] : '3';
 $cssId = isset($attribs['cssId']) ? ' id="'.$attribs['cssId'].'"' : '';
 $bkColor = isset($attribs['bgColor']) ? ' style="background:'.$attribs['bgColor'].';"' : '';
 $linkStart = isset($attribs['link']) ? ' <a href="' . $attribs['link'] . '" style="color:#333; text-decoration:none;">' : '';
 $linkEnde = isset($attribs['link']) ? '</a>' : '';
 $modulId = ' id#' . $module->id;
 $TeaserMenuBoxHeight = isset($attribs['items'])? ' style="height:' . ($attribs['items']*24 + 125) .'px"' : ''; 
// echo "modChrome_jyaml" . $TeaserMenuBoxHeight;
 if (!empty ($module->content)) : ?>
 <div class="modBox">
 <?php if ($module->showtitle) : ?>
 <?php echo $linkStart ?><div<?php echo $bkColor ?> class="modBoxTitle"><?php echo $module->title; ?><?php echo $linkEnde ?></div>
 <?php endif; ?>
 <div class="modBoxContent"<?php echo $TeaserMenuBoxHeight?>>
 <?php if (isset($attribs['img'])) : ?>
 <div class="modBoxMotivBkGd">
 <?php echo $linkStart ?><img src="/<?php echo $attribs['img'] ?>"><?php echo $linkEnde ?>
 <div class="modBoxMotivShdwLft pngTrans"></div>
 </div>
 <?php endif; ?> 
 <div class="floatbox TeaserMenu module<?php echo $params->get('moduleclass_sfx'); ?>"><?php echo $module->content; ?></div>
 <div class="modBoxShdwTop pngTrans"></div>
 </div>
 </div>
 <?php endif;
}


function modChrome_pvh($module, &$params, &$attribs)
{
 $headerLevel = isset($attribs['headerLevel']) ? $attribs['headerLevel'] : '3';
 $cssId = isset($attribs['cssId']) ? ' id="'.$attribs['cssId'].'"' : '';
 $bkColor = isset($attribs['bgColor']) ? ' style="background:'.$attribs['bgColor'].';"' : '';
 $imgPath = isset($attribs['imgPath']) ? $attribs['imgPath'] : '/templates/hm_yaml/images/pvh/';
 $modulId = ' id#' . $module->id;
 $TeaserMenuBoxHeight = isset($attribs['items'])? ' style="height:' . ($attribs['items']*24 + 125) .'px"' : ''; 
// echo "modChrome_jyaml";
echo $TeaserMenuBoxHeight;
 if (!empty ($module->content)) : ?>
 <?php if ($module->showtitle) : ?>
 <div<?php echo $cssId . $bkColor ?> class="TeaserMenuBoxTitle"><?php echo $module->title; ?></div>
 <?php endif; ?>
 <div class="TeaserMenuBox"<?php echo $TeaserMenuBoxHeight?>>
 <div class="TeaserMenuMotivBkGd"><img src="/<?php echo $imgPath; ?>/TM_Stifte.jpg"></div>
 <div class="floatbox TeaserMenu module<?php echo $params->get('moduleclass_sfx'); ?>"><?php echo $module->content; ?></div>
 <div class="TeaserMenuShaddowTop pngTrans"></div>
 <div class="TeaserMenuShaddowLeft pngTrans"></div>
 </div>
 <?php endif;
}


function modChrome_slider($module, &$params, &$attribs)
{
 jimport('joomla.html.pane');
 // Initialize variables
 $sliders = & JPane::getInstance('sliders');
 $sliders->startPanel( JText::_( $module->title ), 'module' . $module->id );
 echo $module->content;
 $sliders->endPanel();
}

?>

 

Natürlich sind die Styles zu diesem Module-Style in CSS-Dateien hinterlegt und hier werden nur die Classen-Selectoren erzeugt.

 

Wenn Ihnen dieser Beitrag geholfen und viel Zeit gespart hat, zeigen Sie sich erkenntlich: Über einen Klick auf Google+1 oder Rückmeldungen freue ich mich. Zeigen Sie mir, dass sich die Mühe für die Beitragerstellung gelohnt hat. Schenken Sie auch den Produktwerbungen Ihre Beachtung, denn damit wird mein Aufwand für diese Beiträge refinanziert.

Anlegen von Modulpositionen in Joomla 1.5.x

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 5 / 5

Das Anlegen von Modulpositionen in Joomla war in frühreren Versionen immer noch etwas komplizierter, einschließlich Eintragungen in die XML-Datei für das Template etc. Ab der Version 1.5. ist das sehr viel einfacher, aber leider nicht gleich ersichtlich, dass es so einfach ist. Hier nun eine kurze Beschreibung. Es sind in Gänze zwei Arbeitsschritte - mehr nicht. In unserem Beispiel möchten wir eine neue Modulposition anlegen mit dem Namen Teaser, z.B.als Container für eine Flashanimation:
  1. Wir gehen in unsere Template index.php an die gewünschte Stelle und fügen folgende Zeilen ein:

    Template: index.php



    if($this->countModules( 'teaser' )) :
    $jyaml->getPosition('modules', 'teaser', 'raw', '');
    endif;
    ?>

    Wenn countModules also größer Null (ein oder mehrere hierin plazierte Module), dann wird die Modulposition aktiviert mit dem Namen "teaser".

  2. Damit Joomla nun diese Modulposition auch verwenden kann, gehen wir einfach auf das Modul, welches wir in diesem Teaser-Container veröffentlichen wollen - z.B. in ein Modul zur Ausgabe eine Flash-Movies. Schauen wir uns die Pulldown-Liste für die Modulpositionen an, steht dort natürlich keine mit dem Namen "teaser". Kein Problem, einfach das selbe Feld der Pulldown-Liste als Eingabefeld nutzen - also "teaser" eingeben ... das Modul veröffentlichen - und das wars dann schon, die Modulposition ist Joomla nun bekannt. Will man ein weiteres Modul bearbeiten, wird man diese Modulposition schon in der Liste finden und kann sie nun auswählen ohne Eingabe.
Das war's!

Menü Son Of Suckerfish in Joomla implementieren

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 2 / 5

Einleitung

An anderer Stelle hatte ich die Realisierung und Einbindung eines mod_mainmenu's beschrieben als vertikales Menü mit aufklappbaren Untermenüs. Hier möchte ich eine sehr bekannte und beliebte weitere Möglichkeit für eine Menü erläutern, welches im Allgemeinen bekannt ist als Suckerfish oder Son Of Suckerfish. Mit etwas Google'n wird man dazu im Internet verschiedenen Seiten finden, die die Problematike dieses Menütyps umfassend darstellen u.a. zu den Styles, die z.T. notw. Scripte für die fehlende Unterstützung der hover-Funktion durch den IE und die Möglichkeiten der zusätzlichen Aufpeppung durch z.B. mootools.
Gegenstand dieses Artikels soll sein, wie das Suckerfish-Menü unter Joomla eingebunden werden kann unter Verwendung der mittlerweile sehr guten Struktur des XHTML-valieden mod_mainmenu's. Zusammen mit meinem für die vertikale Verwendung beschriebenen Menüs lassen sich dann also beide Menütypen ohne großen Aufwand über das Joomla-Standard-Menü mod_mainmenu einbinden.

Was sind die Charakteristika eine Suckerfish-Menüs?

  • Die erste Menüebene wird horizontal angelegt, i.d.R. in der gesamten Breite des Contentbereiches.
  • Nur die erste Menüebene ist permanent zu sehen.
  • Die zweite Menüebenen wird jeweil unter Ihrem Parent-Menüeintrag beim Mouseover über ihrem Parent-Menüeintrag eingeblendet.
  • Alles weiteren Menüebenen werden rechts neben ihrem Parent-Menüeintrag eingeblende.
  • Gern wird dabei ab der 2. Menüebene ein transparenter Hintergrund verwendet, so dass die aufklappenden Menüeinträge den überlagernden Content nicht vollständig abdecken.
  • Ein Klick auf einen Menüeintrag ruft die entspr. verlinkte Seite auf.
  • Beim Verlassen der Maus aus den Menüeinträgen werden dieses wieder unsichtbar.
  • Schließlich werden noch gern z.B. die MooTools eingesetzt, um das Einblenden und Ausblenden der Menülisten peppiger zu gestalten - entweder durch Fading oder Sliding oder wie auch immer.

Was wird benötigt für das Menü:

  1. Das schöne an dem Menü ist, dass es eigentlich ganz ohne JavaScript auskommen würde. Allein durch die hover-Funktion, wie Sie von den meisten Browsern unterstützt wird, kann die gewünscht Funktion erreicht werden. Deshalb bräuchten wir eigentlich lediglich eine Stylesheet-Datei, die a) zum einen die Layout-Informationen für die Listen liefert und zum anderen b) die Design-Formatierungen für den Style der Menülisten und Listeneinträge.
  2. Eigentlich schon ur noptional werden ein paar wenige Grafiken benötigt. Das aber eben nur um alles etwas zu verschönern oder, und das wäre eigentlich wichtiger, um Eigenschaften eines Menüeintrages zu visualisieren, wie z.B. ob ein Element eine Untermenü besitzt (is parent oder auch has childs), welcher Menüeintrage gerade der Aktuelle ist (benannt i.d.R. mit id=current) oder schließlich welche Menüelement gerade active sind (alle die die auf dem Weg zum aktuellen Menüelement, einschließlich des akutellen Menüelementes liegen - also quasi aufgeklappt sind). Im Gegensatz zum vertikalen Menü-Tree sind aber diese eigentlichen sinnvollen Menüelementeeigenschaften beim Suckerfish-Menü nicht so maßgeblich, weil das Menü weniger zur Orientierung geeignet ist, eben weil ja die Submenü-Einträge immer nur bei Mouseover sichtbar sind.
  3. Schließlich brauchen wir noch ein Script, welches notwendig ist die im IE fehlende Mouse-Over-Funktion (das hover'n) zu erreichen. Leider wurde es von Microsoft auch in der Siebener-Version wieder nicht umgesetzt, weshalb wir wohl noch eine Weile mit solchen IE-Extras leben müssen.


Die CSS-Datei im Detail

Also das Herzstück des Suckerfish-Menü ist ja eben diese CSS-Datei. Hier eine Datei wie Sie beispielsweise aufgebaut werden kann. Das hier abgebildete Beispeil ist weitgehend aus dem Joomla-Standard-Template JA-Purity, in dem ein Suckerfish-Menü bereits eingebunden ist. Allerdings wurden von mir noch die einen oder anderen Anpassungen vorgenommen, weil in der CSS-Datei noch nicht alle Classen sauber auf die mod_mainmenü-Classen abgestellt wurden. Auch ich habe das nur so weit vorangetrieben wie es für meine Design-Bedürfnisse wünschenswert war. Es sind schon noch ein paar Rudimente verblieben (z.B. die Verwendung von li.sfhover, li.havesubchildsfhover oder li.havesubchild-activesfhover, die so von mod_mainmenu gar nicht aufgerufen werden).
Son-of-Suckerfish-menu.css
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
/* Son of Suckerfish Dropdowns
---------------------------------------------------------
Originally developed by Patrick Griffiths and Dan Webb
http://www.htmldog.com/articles/suckerfish/dropdowns/
---------------------------------------------------------
NOTE: After a deep research, we decide to divide this
CSS into 2 parts. The first part will define the layout.
The second part will define the visual look for this menu.
---------------------------------------------------------*/

/* 1. Abschnitt: Hier wird nur das Layout definiert */
#ja-mainnav,
#ja-mainnav ul { padding: 0; margin: 0; line-height: 20px; }
#ja-mainnav a { display: block; line-height: 20px; margin: 0; padding: 10px 20px; }
#ja-mainnav li { float: left; margin: 0; padding: 0; } /* Für alle Listeneinträge */
#ja-mainnav li ul { /* für die Listen der 2. Ebene */
width: 202px;
position: absolute;
left: -999em;
}

#ja-mainnav ul ul a { width: 160px; } /* sub-links */
#ja-mainnav li ul ul { margin: -42px 0 0 200px; } /* für die Listen der 3. Ebenen und darüber */
#ja-mainnav li:hover ul ul,
#ja-mainnav li:hover ul ul ul,
#ja-mainnav li.sfhover ul ul,
#ja-mainnav li.sfhover ul ul ul {
left: -999em;
}

#ja-mainnav li:hover ul,
#ja-mainnav li li:hover ul,
#ja-mainnav li li li:hover ul,
#ja-mainnav li.sfhover ul,
#ja-mainnav li li.sfhover ul,
#ja-mainnav li li li.sfhover ul { /* lists nested under hovered list items */
left: auto;
}

/* 2. Abschnitt: alle Festlegungen für das Design der Elemente*/
/* für alle Ebenen */
#ja-mainnavwrap { border-top: 1px solid #666666; background: #444444; }
#ja-mainnav ul, #ja-mainnav li { background-image: none; list-style: none; }
#ja-mainnav span.separator { display:none; }
/* Für die 1. Ebene */
#ja-mainnav > ul { background-color: #444444; padding-left: 20px; }
#ja-mainnav > ul > li {
background-color: #444444;
border-left: 1px solid #666666;
border-right: 1px solid #333333;
margin-right: 1px;
}

#ja-mainnav > ul > li.active {
background: url(../../../images/marks/navigation/sos/arrow2.png) no-repeat bottom center #444444;
color: #CCCCCC;
}

#ja-mainnav > ul > li:hover,
#ja-mainnav > ul > li:active,
#ja-mainnav > ul > li:focus {
background: url(../../../images/marks/navigation/sos/arrow2.png) no-repeat bottom center #555555;
color: #FFFFFF;
}

/* -------- sub-levels -------- */
#ja-mainnav ul ul li {
border-left: 1px solid #666666;
border-right: 1px solid #333333;
border-top: 1px solid #666666;
border-bottom: 1px solid #333333;
margin-bottom: 1px;
}

#ja-mainnav li ul { background-color: #555555; /* second-level lists */ }

#ja-mainnav li a {
color: #CCCCCC;
font-weight: bold;
text-decoration: none;
}

#ja-mainnav ul ul li:hover,
#ja-mainnav ul ul li:active,
#ja-mainnav ul ul li:focus {
background: #444444;
color: #FFFFFF;
}


/*old css*/
/* Son of Suckerfish Dropdowns
---------------------------------------------------------
Originally developed by Patrick Griffiths and Dan Webb
http://www.htmldog.com/articles/suckerfish/dropdowns/
---------------------------------------------------------
NOTE: After a deep research, we decide to divide this
CSS into 2 parts. The first part will define the layout.
The second part will define the visual look for this menu.
---------------------------------------------------------*/

#ja-mainnav ul.menu {
margin: 0; /* all lists */
padding: 0;
float: left;
border-right: 1px solid #555555;
}

#ja-mainnav ul.menu ul {
margin: 0; /* all lists */
padding: 0;
}

#ja-mainnav ul.menu li {
margin: 0; /* Alle Listenelemente */
padding: 0;
float: left;
display: block;
background: none;
cursor: pointer;
position: relative;
list-style: none;
}

#ja-mainnav ul.menu li ul {
width: 16.4em;
position: absolute; /* Liste der 2. Ebene */
z-index: 99;
height: auto;
w\idth: 15.9em;
}

#ja-mainnav ul.menu li ul ul {
margin: -1.5em 0 0 14em; /* für die Liste ab 3. und darüber Ebenen läßt sich die Überlappung zum Elternelemen festlegen */
}

#ja-mainnav ul.menu li li {
padding: 0 1em 0 0;
margin: 0;
width: 14.9em;
}

#ja-mainnav ul.menu ul a {
width: 14.8em;
w\idth: 10.8em;
}

#ja-mainnav ul.menu li ul {
/* es wird ein negativer Wert bevorzugt, weil das Objekte so außerhalb der Seite liegt,
anstatt von display: none, denn display none versteckt das Objekt auch für Textbrowser */
left: -999em;
}

#ja-mainnav ul.menu li:hover ul ul,
#ja-mainnav ul.menu li:hover ul ul ul,
#ja-mainnav ul.menu li.sfhover ul ul,
#ja-mainnav ul.menu li.parentsfhover ul ul,
#ja-mainnav ul.menu li.parent-activesfhover ul ul,
#ja-mainnav ul.menu li.activesfhover ul ul,
#ja-mainnav ul.menu li.sfhover ul ul ul,
#ja-mainnav ul.menu li.parentsfhover ul ul ul,
#ja-mainnav ul.menu li.parent-activesfhover ul ul ul,
#ja-mainnav ul.menu li.activesfhover ul ul ul {
left: -999em;
}

/* Macht die Unter-Menüs wieder sichtbar, die vorher durch left: -999em versteckt wurden */
#ja-mainnav ul.menu li:hover ul,
#ja-mainnav ul.menu li li:hover ul,
#ja-mainnav ul.menu li li li:hover ul,
#ja-mainnav ul.menu li.sfhover ul,
#ja-mainnav ul.menu li.parentsfhover ul,
#ja-mainnav ul.menu li.parent-activesfhover ul,
#ja-mainnav ul.menu li.activesfhover ul,
#ja-mainnav ul.menu li li.sfhover ul,
#ja-mainnav ul.menu li li.havesubchildsfhover ul,
#ja-mainnav ul.menu li li.havesubchild-activesfhover ul,
#ja-mainnav ul.menu li li.activesfhover ul,
#ja-mainnav ul.menu li li li.sfhover ul,
#ja-mainnav ul.menu li li li.havesubchildsfhover ul,
#ja-mainnav ul.menu li li li.havesubchild-activesfhover ul,
#ja-mainnav ul.menu li li li.activesfhover ul {
left: auto;
}



/* Nur Styling für's Menü -----------------------------------*/
/* erste Ebene */
#ja-mainnav ul.menu li a {
margin: 0;
padding: 5px 10px; /* mit diesen Werten läßt sich die Höhe der Menüeinträge der 1. Ebene festlegen*/
border-left: 1px solid #555555;
border-right: 1px solid #333333;
display: block;
color: #CCCCCC;
font-weight: bold;
line-height: normal;
text-decoration: none;
}

#ja-mainnav ul.menu li a:hover,
#ja-mainnav ul.menu li a:active,
#ja-mainnav ul.menu li a:focus {
background: url(../../../images/marks/navigation/sos/arrow2.png) no-repeat bottom center #555555;
color: #FFFFFF;
}

#ja-mainnav ul.menu li {
margin: 0;
}

#ja-mainnav ul.menu li:hover,
#ja-mainnav ul.menu li.sfhover,
#ja-mainnav ul.menu li.parentsfhover,
#ja-mainnav ul.menu li.parent-activesfhover {
background: url(../../../images/marks/navigation/sos/arrow2.png) no-repeat bottom center #555555;
color: #FFFFFF;
}

#ja-mainnav ul.menu li.active a,
#ja-mainnav ul.menu li.active a:hover,
#ja-mainnav ul.menu li.active a:active,
#ja-mainnav ul.menu li.active a:focus {
background: url(../../../images/marks/navigation/sos/arrow2.png) no-repeat bottom center #333333;
color: #FFFFFF;
}

/* 2. Ebene und darüber */
#ja-mainnav ul.menu li ul {
border: 1px solid #555555;
background: url(../../../images/marks/navigation/sos/opaque.png);
}

#ja-mainnav ul.menu li ul li {
border-top: 1px solid #777777;
border-bottom: 1px solid #444444;
background: none;
}

#ja-mainnav ul.menu li ul a {
border-right: none;
margin: 0;
padding: 3px 10px; /* mit diesen Werten läßt sich die Höhe der Menüeinträge ab der 2. Ebene festlegen*/
background: none;
color: #CCCCCC;
font-weight: normal;
line-height: normal;
text-transform: none;
}

#ja-mainnav ul.menu li.parent,
#ja-mainnav ul.menu li.havesubchild-active {
background: url(../../../images/marks/navigation/sos/parent.gif) no-repeat 96% 50%;
}

#ja-mainnav ul.menu li ul a:hover,
#ja-mainnav ul.menu li ul a:active,
#ja-mainnav ul.menu li ul a:focus,
#ja-mainnav ul.menu ul li:hover,
#ja-mainnav ul.menu ul li.sfhover,
#ja-mainnav ul.menu ul li.havesubchildsfhover,
#ja-mainnav ul.menu ul li.havesubchild-activesfhover,
#ja-mainnav ul.menu ul ul li:hover,
#ja-mainnav ul.menu ul ul li.sfhover,
#ja-mainnav ul.menu ul ul li.havesubchildsfhover,
#ja-mainnav ul.menu ul ul li.havesubchild-activesfhover {
background: #333333;
color: #CCCCCC;
}

#ja-mainnav ul.menu ul li.active a.active_link,
#ja-mainnav ul.menu ul li.active a.active_link:hover,
#ja-mainnav ul.menu ul li.active a.active_link:active,
#ja-mainnav ul.menu ul li.active a.active_link:focus {
background: none !important;
color: #FFFFFF;
font-weight: bold;
}

#ja-mainnav ul.menu li.active li a,
#ja-mainnav ul.menu li.active li a:hover,
#ja-mainnav ul.menu li.active li a:active,
#ja-mainnav ul.menu li.active li a:focus {
background: none !important;
}

#ja-mainnav h3 { display: none; }
#ja-mainnav .moduletable_menu { background: none; margin: 0; padding: 0; }

Das Spezial-Script für den IE

Hier nun die paar Scriptzeilen, die die Hoverfunktion für den IE-Erzeugen. Auch dieses wurde vom JA-Purity-Template übernommen.
son-of-sucherfish-menu.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
sfHover = function() {
var sfEls = document.getElementById("ja-mainnav").getElementsByTagName("li");
for (var i=0; i<sfEls.length; ++i) {
sfEls[i].onmouseover=function() {
clearTimeout(this.timer);
if(this.className.indexOf(" sfhover") == -1)
this.className+=" sfhover";
}
sfEls[i].onmouseout=function() {
this.timer = setTimeout(sfHoverOut.bind(this), 20);
}
}
}

function sfHoverOut() {
clearTimeout(this.timer);
this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
}

if (window.attachEvent) window.attachEvent("onload", sfHover);
In diesem Script ist evtl. eine Anpassung notwendig, fall Sie den DIV-Bezeichner für den Menü-Container anders verwenden wollen als hier vorgegeben. Dazu dann also inder Zeil2 "ja-mainnav" ändern in Ihre DIV-Class-Bezeichnung.

Aufruf des Menü im Template und die mod_mainmenü-Konfiguration.

Hier nun die Hinweise, wie das Menü im Template eingebunden ist. Wer JYAML benutzt findet seine Template-Datei im Verzeichnis joomlarootpfad/templates/hm_yaml/html/index/meinDESIGN/ als index.php, index_fullheight.php oder z.B. index_gfxborder.php (welche Datei verwendet wird läßt sich in der JYAML-Komponente unter meinDESIGN "Bearbeite Design-Konfiguration" im Bereich Layout entscheiden. Da jedes Template anders aussieht, einschließlich Ihrer Eigenbauten ist nun eine Position schwer vorzugeben. Sie brauchen i.d.R. für das Suckerfish-Menü eine Modulposition, die über die ganze Inhaltsbreite geht. So wäre es also z.B. möglich unter den Header zu integrieren oder eine eigene Modulposition zu erstellen.
So sieht dieser Template-Bereich bei mir aus:
Template: index.php
80
81
82
83
84
85
86
87
88
89
90
 if($this->countModules( 'nav_main' )) : ?>





$jyaml->getPosition('modules', 'nav_main', 'raw', ''); ?>



endif; ?>

Einbindung der notwendigen Dateien in das Template

Bei dieser Beschreibung werde ich der Einfachheit halber mich auf die eleganten Möglichkeiten der Template-Engine hm_yaml (JYAML - eine excellente, sehr stabile Joomla-Adaption des YAML-Template-Framework von HieblMedia). Im Detail möchte ich aber nicht das Template beschreiben, setzte also einfach voraus, dass sich der Interessiert mit der Template-Komponente JYAML beschäftigt hat. Bei denen die ein eigenes Template entwickelt haben oder ein bestehendes Template nur mit diesem Suckerfish-Menü modifizieren wollen, möchte ich ebenfalls die notw. Kenntnis voraussetzen.
Bevor Sie die Datei in Ihr YAML-Design einbinden können, müssen diese auf den Server geschoben werden. Am besten per ftp-Client. Ich nutze dafür der JYAML-Strukturlogik gehorchend folgende Verzeichnisse:
  1. für die CSS-Datei den Pfad: joomlarootpfad/templates/hm_yaml/css/meinDESIGN/navigation/
  2. für die Script-Datei den Pfad: joomlarootpfad/templates/hm_yaml/scripts/meinDESIGN/
  3. für die Grafiken z.B: den Pfad: joomlarootpfad/templates/hm_yaml/images/meinDESIGN/navigation/sos/
Wichtig ist also die CSS-Datei und die Script-Datei in den Header des Templates einzubinden. Im JYAML erfolgt das über die JYAML-Komponente (ich erstelle mir i.d.R. durch Kopie des default-Designs ein eigenes YAML-Design, in der ich dann sehr gut reversibel experimentieren kann) in dem Bereich für das eigene Design (meinDESIGN) über den Link "Bearbeite Design-Konfiguration". In dem dann erscheinenden Dialog gibt es a) einen Bereich StyleSheets mit einem Link "Style-Sheet hinzufügen" und b) einen Bereich Scripts ebenfalls mit einem solchen Link zum Hinzufügen der einzubindenden Scripte. Mehr muss hier nicht gemacht werden.
Natürlich ist wichtig, dass Sie die CSS-Datei dahingehend anpassen, dass alle background url()-Pfadangaben korrekt auf den Pfad zeigen der von der StyleSheet-Datei aus auf die einzubindenden Grafiken verweist. z.B. url(../../../images/meinDESIGN/navigation/sos/grafik.gif).

Favicon in Joomla ändern

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 4.5 / 5

Bitte beachten:
Die nachfolgenden Ausführen konzetrieren sich auf Joomla Vers. 1.5.x - speziell die Angaben zu diversen Scripten. In neueren Versionen wird's ziemlich sicher anderes gehandhabt. Unverändert blieben bisher die Ablageorte für die Standard-Favicons, solangen man diese als Dateinamen favicon.ico verwendet.

 

Favicon einfach überschreiben

Das Frontend-Icon

Die einfachste Art das Favoriten-Icon (shortcut-icon) zu ändern welches durch das Template ausgeben und im Frontend angezeigt wird, ist diese "favicon.ico"-Datei zu überschreiben. Unter Joomla 1.5.x liegt dieses i.d.R. im Template-root-Verzeichnis, also unter joomlarootpath/templates/DeinTemplate/favicon.ico für das Frontend-Icon.

 

Das Backend-Icon

In meinen Projekten lege ich meistens auch noch für den Admin-Bereich ein eigenes Projekticon ab, dass errleichtert mir die Orientierung in den Tabs, wenn ich zw. diversen Kundenprojekten wechseln muss. Dies erfolgt nach dem gleichen Prinzip, nur dass wir hier in das Template-Verzeichnis des Backend-Templates gehen müssen joomlarootpath/dministrator/templates/khepri/favicon.ico.

 

Das Error-Icon oder Standard-Icon

Letzlich kann man noch ein drittes Standard-Favicon ablegen. Wozu? Ich nenne es wg. seiner typischen Verwendung immer das Error-Favicon, denn es wird immer dann aufgerufen wenn z.B. eine Fehler auftritt und Joomla mal ganz seinen Dienst versagt. Natürlich passiert das nicht nur dann sondern auch wenn ich z.B. in dem Webverzeichnis weitere i.d.R. kleine Hilfstools und Seiten habe, die unabhängig von Joomla laufen, z.B. Importscripte etc.

Hier passiert nämlich folgendes: Auf Grund dessen, weil Joomla nicht ausgeführt wird, werden auch die Templates nicht gefetcht und so auch nicht o.g. Favicons eingebunden. Wird durch ein Script oder html-Seite eine Seite an den Browser gesendet, in der kein Favicon definiert ist, ruft der Client automatisch eine favicon.ico aus der Domain-Wurzel ab - das ist eben so ein Quasi-Standard. Das machen wir uns also zu nutze und legen dort eine dritte FavIcon-Variante ab.

 

Weiterlesen: Favicon in Joomla ändern

SEF mit Joomla

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 3 / 5

Eigentlich sind die Zeiten vorbei, wo SEF für Joomla schwer erkämpft werden musste. Zum einen liefert Joomla ab 1.5. und stabil bei mir zumindest im Test mit Joomla 1.5.9 ein eigenes gutes SEO/SEF zum anderen gibt es hervorragende SEF-Tools, wie z.B. sh404SEF, welches das schafft was Joomla-SEF nicht zustande bringt: a) Unterstützung von SEF auch für 3rd-Party-Komponenten wie z.B. virtueMart und b) neben dem eigentliche URL-SEF auch die suchmaschinengerechte Implementierung von META-Tags und einiges mehr.
Trotzdem gibt es immer mal wieder Fallstricke die die Arbeit dieser Tools verhindern, wenn man nicht alles wichtige beachtet und dabei akriebisch vorgeht.

Aktivierung von Joomla-SEF

Die Componente "sh404SEF" läuft nicht ohne das Joomla-SEF, also muss dieses zunächst aktiviert werden. Dazu geht man im Backoffice unter "Site" > "Konfiguration". Hier befindet sich unter dem Registerreiter "Site" rechts der Bereich Suchmaschinen-Optimierung (SEO). Alle drei dort befindlichen Optionen müssen aktiviert werden.
  • Zunächst sollte die erste Option aktiviert werden: "Suchmaschinenfreundliche URLs". Das sollte sofort Wirkung zeigen und die URSs nun schon wir folgt aussehen lassen: ...index.php/faq/1-wissen/1-nicht-vergessen
  • Dann die Option "mod_rewrite nutzen". Diese sorgt dafür dass die .htaccess die im Joomla/Server-Root liegen sollte verwendet wird. Joomla liefert dazu eine fertige gut opitmierte htaccess.txt, die eigentlich nur noch umbenannt werden mus in .htaccess. Mehr ist dafür nicht nötig. Eine weitere Anpassung der .htaccess war in meiner Praxis nicht nötig. Die htaccess schmeißt z.B. ein paar Dinge aus der URL heraus, die dort nicht hineingehören, wie das /index.php/ und sonstige unschöne Sonderzeichen.
  • Schließlich kann man der URL die jetzt aus der Domain und einem generiertem Pfad zusammengesetzt ist noch den Look verpassen, als ob eine HTML-Datei aufgerufen wird. Dazu wird die 3. Option aufgerufen die dann z.B. .html an die URL anhängt.

sh404SEF hinzufügen

Zu den Gründen sh404SEF zusätzlich zum Joomla-SEF zu nutzen hatte ich eingangs schon welche angeführt, genau die beiden für mich am wichtigsten. Denn wer ein Shop in seinem Joomla implementieren will, kann sicher nicht damit leben, dass Joomla die Shop-URLs nicht suchmaschinengerecht verarbeitet. Auch die Arbeit mit Meta-Tags wird sehr viel besser unterstützt.
Die Komponente sh404SEF kann man sich hier http://extensions.siliana.com herunterladen. Ich habe installiert die Version 1.0.16 für Joomla 1.5.native (com_sh404SEF-15_1.0.16_Beta_build_222.joomla1.5.x.zip). Die Componente wird über den Joomla-Installer installiert, was immer reibungslos funktionierte.
Nun kommen ein paar ganz wichtige Dinge, die zu den Stolperfallen zählen.
Also nachdem wie oben beschrieben zunächst das Joomla-SEF aktiviert wurde, kann sh404SEF eingerichtet werden.
  • Ganz wichtig. Zunächst gleich mal per ftp-Client in das Verzeichnis /joomlapfad/administrator/components/com_sh404sef wechseln. Hier müssen nämlich neben diesem Verzeichnis selbst(!) Verzeichnisrechte Schreibrechte 777 erhalten. Leider steht das nirgens, ich mußt es selbst herausfinden. Von sh404SEF wird das zwar geprüft aber die Prüfung findet nur statt wenn das "speichern" als Option überhaupt aktiviert wurde. Macht man das schon nicht, dann wird auch dieser Missstand nicht angemahnt und man kann Stunden in der Componente herumstochern ohne die gewünschten Ergebnisse.
    Also im Detail: es betrifft dort die Verzeichnisse (hier also mit 777, im Fall des von Joomla genutzten FTP-Layers setzen):
    • /config/
    • /logs/ und
    • /security/
    und die Datei /config/config.sef.php, die die Rechte 666 erhalten muss.
    Außerdem gibt es im Verzeichnis /joomlapfad/components/com_sh404sef noch ein Pfad /cache/. Wenn das cachen genutzt werden soll, dann muss auch dieses Verzeichnis Schreibrechte erhalten.
  • Nun weiter zur Konfiguration von sh404SEF. Die Komponente wird aufgerufen und dann die "Konfiguration" angeklickt. Im zuerst erscheinenden Registerreiter "Allgemein" die Option "Aktiviert" auf "Ja" schalten und anschließend diese Einstellungen speichern. Nun kann man sich die Auswirkungen auf der Website anschauen.
  • Sollte es zu Problemen kommen, empfiehlt es sich die Konfiguration wieder aufzurufen und auf den Registerreiter "Erweitert" zu wechseln. Hier finden wir weiter ganz wichtige Einstellungen.
    • Zunächst den Rewrite-Modus. Es ist in jedem Fall der Modus "Mit .htaccess (mod_rewrite) zu empfehlen. Dieser nutzt die oben beschriebene .htaccess und liefert die besten Ergebnisse. Sollte es hiermit trotz aller Bemühungen zu Problemen kommen (dazu mehr unten), dann kann optional umgeschaltet werden auf "ohne .htaccess (index.php)" oder "ohne .htaccess (index.php?). Die dritte Variante ist die robusteste aber mit dem Nachteil, dass eben "index.php?" hinter der Domain und vor den Pfadangaben in der URL auftaucht.
    • Dann könnte hier der Cache eingeschaltet werden. Das hat i.d.R. keinen Einfluss auf die Funktion, macht die Seite aber schneller. Bedenken sollte man dabei aber das das Cachen auch ein Relaod erschwert. Gerade für die Zeit der Entwicklung einer Seiten absolut unpraktikabel.
    • Nun wieder der Stolperstein, von dem ich oben schon sprach: Unten auf dieser Seite befinden sich 4 Optionsschalter, davon der erste, "Konfiguration sichern" sollte nach meinen Erfahrungen eingeschaltet sein, denn sonst scheint sh404SEF gewisse Einstellungen nicht wirklich wirksam zu übernehmen. Auch erst dann, wenn dieser Schalter gesetzt ist, kommen die Meldungen zu den evtl. nicht vorhandenen Schreibrechten. An dieser Stelle habe ich bei einem Projekt unendlich viel Zeit verbraten. Warum diese Einstellung von Anfang an auf "Aus" gestellt war, ist mir ein Rätsel.
Was nun das Laufen von sh404SEF angeht, waren das die wichtigsten Einstellungen - quasi die, die mitunter über die grundsätzliche Funktion entschieden. An allen weiteren Parametern kann man nach Belieben herumexperimentieren, wenn man sich dazu fit genug fühlt, notwendig schien es mir nie.
Ein Nachtrag sei noch gemacht. Nach Änderungen in der Komponente sollte man bei eingeschaltetem Joomla-Cache diesen leeren, sonst werden diverse Änderunge gar nicht sichtbar und man kommt schnell ins Schwitzen. Der Cache wird geleer über das Backend-Menü "Werkzeuge" > Cache leere und "abgelaufenen Cache leeren". Auch ist es manchmal notwendig den Cache von sh404SEF zu leeren, wenn dieser eingeschalten ist. Das erfolgt über dessen Komponenten-Startseite über die Schaltfläche: "SEF-URLs löschen". Wenn Seiten z.B. 404-Fehlermeldungen geliefert hatten, die man nun behoben hat, ist auch das löschen der 404-Logs über das entspr. Icon sinnvoll.
Die SEF-URLs sollte man außer während der anfänglichen Testphasen sonst nicht löschen. Es sind ja i.d.R. die die bei den Suchverzeichnissen als URLs gelistet sind. Hat man die Einstellungen geändert, ändern sich auch die URLs und die Suchmaschinen greifen ins Leere. Wenn der URL-Umbau notw. war, sollten auch die vorherigen URLs funktionieren in dem man diese eben nicht löscht oder als Eigene Umleitungen hinzufügt.

Wenn SEF Probleme macht

Trotzdem kann es zu Problemen kommen, auch wenn ich behaupten möchte, wenn obiger Leitfaden berücksichtigt wird, dann sollte es nicht passieren.
  1. Zunächst nochmal prüfen, ob der Server alle wichtigen Voraussetzungen mitbringt, die notwendig sind für den sauberen Betrieb von Joomla 1.5.x. Das wird z.B. hier http://help.joomla.org/content/view/1938/302/ veröffentlicht. Wie demgegenüber die eigene Serverkonstellation aussieht kann man einfach erfahren, in dem man im Backend unter dem Menüpunkt "Hilfe" > "Systeminfo" sich die jeweiligen umfangreichen Infos anschaut.
  2. Dann ist wichtig, zu testen ob der bevorzugte mod_rewrite-Modus unterstützt wird. Hierfür gibt es einen einfach Trick. fügen Sie in Ihre .htaccess-Datei ziemlich weit oben folgende Zeile ein: RewriteRule (.*) http://www.1d5920f4b44b27a802bd77c4f0536f5a-gdprlock/ [R=301,L] Es ist dann ganz einfach so, dass wenn die .htaccess richtig von Joomla verarbeitet wird, bei jedweder URL unter Ihrer Domain, die Sie eingeben die Seite sofort weiterspringt auf Google - also ein klassische 303-Redirekt. Sollte das nicht funktionieren müssen Sie entweder auf die beiden o.g. Modi ausweichen, oder mit Ihrem Provider in Kontakt treten, dann an dieser Stelle muss der Server entspr. konfiguriert werden. Mitunter wird er Ihnen dann auch Möglichkeiten mitteilen, wie diese notwendigen Anpassung selbst vornehmen können. Wenn Sie selbst die Hoheit auf Ihrem Rechner haben, können Sie natürlich auch selbst den Apachen für mod_rewrite umstellen. Dazu müssen Sie eine Datei httpd.conf suchen und in Ihr die Zeile
    LoadModule rewrite_module modules/mod_rewrite.s

    rekommentieren.

  3. Gelesen habe ich auch von etwaigen Problemen bei der Umstellung von php4 auf php5. Auch dazu gibt es vom Provider entspr. Hinweise, die serverabhängig sind und wo Einträge entweder in die .htaccess oder in eine php.ini oder wie auch genannte Datei eingepflegt werden müssen. Diese könnten z.B: so aussehen:
    denkbare Eintragungen in die .htaccess
    Action application/x-httpd-php /cgi-sys/php-fcgi-starter.fcgi
    AddType application/x-httpd-php .php3 .php4
    Action application/x-httpd-php5 /cgi-sys/php5-fcgi-starter.fcgi
    AddType application/x-httpd-php5 .php .php3 .php4 .php5

    AddHandler application/x-httpd-php52 .php .php5 .php4 .php3

    AddType x-mapp-php5 .php
    AddHandler x-mapp-php5 .php

    AddType php5-cgi .php
    AddHandler php5-cgi .php
  4. Schließlich gibt es noch die Möglichkeit mit folgenden zwei Zeilen in der .htaccess zu experimentieren. Zum einen die Zeile #Options +FollowSymLinks. Hier kann das auskommentierende Doppelkreuz entfernt werden. Wer sein Joomla in einem Unterverzeichnis vom www-Root-Verzeichnis betreibt also z.b. www.domain.de/joomla/, der sollte die Zeile # RewriteBase / z.B. ändern in RewriteBase /joomla
Ich hoffe das diese Zusammenstellung meiner mit SEF unter Joomla gemachten Erfahrungen dem einen oder anderen helfen konnte und freue mich auf jedes Feedback.

VirtueMart: Design-Templates (Theme) verwenden

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 1 / 5

Das Theme-Konzept von VirtueMart

VM bietet die Möglichkeit an, mehrere Themen für das Layout/Design zu verwalten. Für Eigenentwicklungen und Eingriffe in das Layout halte ich es für klug, das Standard-Theme zunächst zu dublizieren und dann im dublizierten Thema die Modifikationen vorzunehmen. So ist es leichter möglich bei auftretenden Fehlern/Störungen oder auch "Fehlentwicklungen" zum Standard-Thema zurückzuschalten und Fehlerquellen leichter aufzuspüren.

Das Default-Template (Theme) von VM dublizieren.

Um das Layout reversibel ändern zu können wurde das Verzeichnis joomlapfad\components\com_virtuemart\themes\default\ mit allen seinen Unterverzeichnisse kopiert nach joomlapfad\components\com_virtuemart\themes\meinThema\. In diesem Verzeichnis liegen nun alle Layout-relevanten Dateien für VM einschließlich der browse-pages (Auswahl-Seiten) und den flypages (Produkt-Detailansicht-Seiten).
In der VirtueMart-Componenten-Konfiguration unter dem Tab-Reiter: „Seite“ im Bereich: „Layout“ kann dann das entspr. Thema wie in unserem Beispiel „meineThema“ statt „default“ ausgewählt werden.

Quelltexte in Beiträgen anzeigen und formatieren

Details
Zuletzt aktualisiert: 11. April 2018

Bewertung: 3 / 5

Unter Joomla 1.5

  1. Hierzu muss das Plugin "Geshi-Codehervorhebung" aktiviert werden.
  2. für Editor muss die Codesäuberung bem Speicher/Laden deaktivert werden
  3. es ist empfehlensewert für den JCE das Zusatzplugin "RJ_InsertCode-1.1.0.zip" zu installieren. Mit diesem Plugin erhält man ein leistungsfähiges Paket, welches nicht nur hervorragende im JCE funktioniert, sondern auch eine riesige Sammlung von Anzeige-Sprachen mitbringt.

 

Unter Joomla 2.5 im Gantry-Template

Zunächst muss eine Vorarbeit geleistet werden, die dann die spätere Stil-Zuweisungen erleichern. Wie müssen dem Editor (hier am Beispiel für den JCE) eigenen Stile zuweisen, die wir dann als CSS-Selectoren dem pre-formated Block zuweisen können.

Dazu müssen wir in die Editorkonfiguration gehen und eigene Stile definieren:

  1. Die JCE-Konfiguration start und den Registerreiter Profile auswählen
  2. Unter dem Registerreiter Editoreinstellungen gibt es links eine Gruppenauswahl Typographie
  3. In dieser Gruppe gibt es ein Optionsfeld Styles Liste. In diese tragen wir nach folgendem Muster unsere CSS-Selektoren ein und deren anzuzeigende Bezeichnung ein:

php-Code=prettyprint lang-php, sql-Code=prettyprint lang-qsl, js-Code=prettyprint lang-js, css-Code=prettyprint lang-css, Code-LineNr=linenums

Weiterlesen: Quelltexte in Beiträgen anzeigen und formatieren

  • Das Standard-Modul mod_mainmenu von Joomla
  • VirtueMart 1.1: Ajax und No Account Creation
  • Vergleich Eignung Steckbrief/Kontakte/Vereine-Komponenten
  • EasyBook - damit's läuft
  • Vergleich Eignung Community-Komponenten
  • VirtueMart: Design-Anpassungen

Seite 13 von 14

  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
<mediaDESIGN> St. Kraft + lens*flares
© St. Kraft <mediaDESIGN> + lens*flares 1996 - 2025
Verantwortlich für den Inhalt nach § 5 TMG und § 55 Abs. 2 RStV
  • Impressum
  • Datenschutzerklärung
  • Seitenübersicht
Back to top