Platzhalter im Menü
am 09.08.2011 - 10:01 Uhr in
Sehr geehrte ForenteilnehmerINNEN,
.
mit den Modulen "Special Menu Items" und "Void Menu" soll es laut
meinen Recherchen im Web möglich sein, den Klick eines Nutzers
auf einen Menüpunkt zu unterdrücken.
.
Daher habe ich beide Module (auch von "Special Menu Items" gibt es
einen Port auf Drupal 7) ausprobiert.
.
Leider gab es jedesmal bestenfalls nur die Meldung "page not found".
.
Hat jemand in diesem Forum es geschafft mit einem dieser Module
unter Drupal 7 die gewünschte "Klick-Unterdrückung" zu erreichen?
.
Und wenn ja, was muß dazu im Detail eingestellt bzw. noch per
Hand und PHP bzw. Javascript wo gemacht werden?
.
Ich wäre von einer großen Last befreit, wenn mir jemand dabei helfen
könnte.
.
Beste Grüße,
GeorgHuber
- Anmelden oder Registrieren um Kommentare zu schreiben
Ich habe gerade mal Special
am 09.08.2011 - 10:56 Uhr
Ich habe gerade mal Special menu Items für D7 getested. Der Unterschied zu D6 liegt darin, daß der Pfad jetzt <nolink> lauten muß. Bei D6 war es einfach nur nolink. Ich habe einen Menü-Eintrag im Navigations-Menü damit gemacht, und es ist nur ein Text im Menü mit einem Span-Tag eingerahmt. Es scheint aber Issues zu geben mit anderen Menü-Modulen. Da mußt Du Dir evtl mit einem jQuery-Script helfen. Ich brauchte bei D6 eins in dem Breadcrumbs, da Custom-Breadcrumbs mir auch einen merkwürdigen Link einbaute. Das folgende Script hat das behoben.
$(document).ready(function () {
$('div.breadcrumb a[href*="nolink"]').each(function () {
$(this).replaceWith( "<span>" + $(this).text() + "</span>" );
});
});
Du mußt vermutlich die Selection für Deine Zwecke ändern.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
OK. Ich werde das versuchen, aber ...
am 10.08.2011 - 11:41 Uhr
was bitte ist ein jQuery-Script?
Welches Modul muß ich dazu laden?
Was muß in diesem jQuery-Script stehen?
Wo muß ich dieses jQuery-Script einbauen?
"Du mußt vermutlich die Selection für Deine Zwecke ändern."
Was ist eine "Selection", wo steht sie und was muß ich dann daran
ändern?
Lieber Werner, vielen Dank für Deine Antwort. Versteh' bitte meine Fragen
nicht falsch, ich meine sie nicht als schnippische Einwürfe, sondern ich
habe tatsächlich keine Ahnung was genau zu tun ist.
Das ist ja das Problem mit vielen Drupal-Foren-Beiträgen: sie geben für
Experten die richtigen Denkanstöße, aber Drupal-Anfänger bleiben auf der
Strecke.
Ich habe z.B. mehrere Wochen lang eine einfache Lösung gesucht, ohne
das Modul "Submenu Tree" die direkten "Kinder" eines menu items per PHP
und SQL zu erhalten, damit ich über das Styling mehr Kontrolle bekomme.
Die Lösung war (genauso wie das Finden des Parent items) dann zwar re-
lativ simpel, aber ich fand halt immer nur klitzekleine Hinweise oder ultra-
komplizierte Code Snippets, die aber dann ein bereits von Drupal fertig ge-
rendertes Submenu lieferten (eben genau das, was ich nicht wollte).
Ich hatte dies ursprünglich per Views-Modul versucht und bin kläglich ge-
scheitert. Mein Ansuchen um Hilfe in diesem Forum verhallte auch ungehört
(siehe http://www.drupalcenter.de/node/35494).
Es würde mich sehr freuen, wenn sich jemand eines Anfängers erbarmen
würde und wirklich erklärt was genau zu tun ist.
Mir wäre, da Special menu Items allem Anschein nach "eingestellt" ist,
eine Void-Menu-Lösung am liebsten, aber als Bittsteller kann man nicht
wählerisch sein.
Ich möchte auch versuchen, das wenige was ich bisher weiß und benötigte
als Modul oder Code veröffentlichen:
Modul für "Please enable Javascript"
Modul für "Find Parent item"
Modul für "Max number of Promoted Articles"
Code für "Kinder finden".
Beste Grüße,
GeorgHuber
Sorry, aber dann solltest Du
am 10.08.2011 - 12:30 Uhr
Sorry, aber dann solltest Du Dich erst mal auf Deinem lokalen System mit einem Drupal-Buch für Anfänger hinsetzen und die dort aufgeführten Beispiele nachvollziehen. Ohne ein Basis-Verständnis wirst Du hier im Forum immer wieder auf Informationen stoßen, mit denen Du nicht zurechtkommen kannst. Ich kann aber nicht jeden Anfänger ans Händchen nehmen und Schritt für Schritt durch die speziefischen Schwierigkeiten führen. Ich erwarte einfach, daß nach dem Angeben von Hinweisen der Fragesteller sich einarbeitet.
Oft werden hier spezielle Fragen gestellt, die auch ich nicht ohne eigenes Experimentieren beantworten kann. Wenn ich dazu aber keine Zeit (oder Lust) habe, werde ich darauf nicht antworten und anderen geht es sicher ebenso. Also solltest Du dich nicht wundern, wenn eine Frage unbeantwortet "verhallt".
Es gibt auch nicht zu jedem Thema ein Modul. Vieles erreicht man über das Zusammenwirken von mehreren Modulen.
Wenn Du Dich ernsthaft in Drupal einarbeiten willst, hilft nur experimentieren und lesen und die nötige Zeit einkalkulieren. Vielleicht gibt es in Deiner Gegend ja eine Drupal User Gruppe, an die Du Dich wenden kannst. In einem persönlichen Gespräch ist vieles einfacher, als hier im Forum. Zudem könntest Du dann Deine Probleme mitbringen und jemand kann sich das dann im Original ansehen.
Noch zu der Frage nach jQuery: jQuery ist eine JavaScript Library, die in Drupal schon mitgeliefert wird. Wie man ein solches Script einbindet findest Du in Büchern zum Theming bzw. in der Suche hier in Drupalcenter (oder Du googelst danach).
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
So. Kleiner Erfolg.
am 11.08.2011 - 19:41 Uhr
Sehr geehrte ForenteilnehmerINNEN,
.
nach der sehr hilfreichen Antwort von Werner werde ich mich künftig
mit Anfragen an dieses Forum zurückhalten und nur noch nachvoll-
ziehbare Lösungsansätze posten. Vielleicht ändert sich dann die
etwas dünkelhafte Philosophie der Gurus etwas. (Ulkigerweise wurde
damit ein Vorurteil über Drupal-Experten, das in WordPress-Foren
zu finden ist, bestätigt: "Aloofness".)
.
Ich benutze ein Subtheme zu OMEGA 7.x-3.0-rc2. Dort habe ich
probeweise im Template namens "html.tpl.php" nach folgendem
Code Skript eingefügt:
.
(Da in diesem Editor wohl die in der Physik üblichen "bra" und "ket"
bzw. "Kleiner-" und "Größerzeichen" oder auch "Spitzenklammern"
mit Steuerbefehlen kollidieren könnten, verwende ich für die linke
(also die öffnende) "Spitze Klammer" das Wort "bra" und für die
rechte (also die schließende) "Spitze Klammer" das Wort "ket".
bra?php print $page; ?ket /* "html.tpl.php" */
Hier beginnt also mein kleines Erfolgsskript:
brascript type="text/javascript"ket
jQuery(document).ready(function(){
jQuery("#").click(function() {
return false;
});
});
bra/scriptket
Nach dem Speichern und zweimaligen Neuladen der gerade aktuellen
Webpage (das braucht Drupal anscheinend um die Änderungen der
Datei "html.tpl.php" zu übernehmen) änderte ich unter folgendem Pfad
im Administratorbereich "Content - edit" den content XXX um:
Ich wählte "URL path settings" und entfernte den Haken neben
"Automatic alias" und änderte im darunter liegenden Inputfeld mit dem
Label "URL alias" den Eintrag auf "#" (ohne Anführungszeichen) um.
Die Voraussetzung, damit dies die gewünschte Wirkung erzielt ist
nur, daß das Void-Menu-Modul aktiviert worden ist und dort die Ein-
stellungen so belassen werden, wie sie nach der Aktivierung ohnehin
sind.
Damit erreichte ich, daß ein Klick auf den Menue-Punkt namens XXX
keinen Seitenwechsel hervorrief. Es gab auch keine Fehlermeldungen.
Noch bestehende Nachteile:
1) Drupal versuchte trotzdem eine Seite vom Server zu laden, allerdings
passierte sonst - wie eben gewünscht - nichts. Die Seite von der der
Klick ins Menue erfolgte blieb bestehen.
2) Über die Breadcrumbs kann leider die eigentlich "deaktivierte" Page
noch immer aufgerufen werden.
Ich versuche, auch dies noch in den Griff zu bekommen. Wenn sich hier
ein (Teil-)Erfolg einstellt, melde ich mich wieder.
.
Beste Grüße,
GeorgHuber
Sorry, aber Du kommst mir vor
am 11.08.2011 - 20:41 Uhr
Sorry, aber Du kommst mir vor wie jemand, der ein Haus bauen will und, obwohl man ihm rät mit Keller und Parterre anzufangen, mit dem Balkon in ersten Stock beginnt. Der muß zwar mit wackeligen Balken irgenwie abgestützt werden, aber da ist nun mal für Dich der Anfang.
Der Editor hier versteht Code in normaler Schreibform, wenn Du den Code mit <code> und </code> einrahmst und dazu gibt über dem Eingabefenster sogar eigens einen Button.
Zu Deiner jQuery-Funktion was soll die denn leisten?
jQuery(document).ready(function(){
jQuery("#").click(function() {
return false;
});
});
jQuery("#")
: Für das # mußt Du einen CSS-Selector verwenden z.B. #main. Dann liefert jQuery alle in der Webseite liegenden Tags, die die ID main gesetzt haben. Also wird nur ein einziges Element geliefert, da eine ID in der Seite immer eindeutig ist. Ohne eine Angabe nach dem # gibt es nichts, also hat Deine Funktion auch keine Wirkung.Bitte tue uns den Gefallen und arbeite dich in die Grundlagen ein. Basteln in jQuery ohne Basis in CSS-Selektoren und minimale Programmierkenntnisse hilft Dir nicht weiter.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
[Gelöst]
am 15.08.2011 - 13:20 Uhr
Sehr geehrte ForenteilnehmerINNEN,
ich möchte nun meine Lösung für mein Problem kurz darstellen.
Vielleicht ist sie auch anderen Drupal-AnwenderINNEn eine
Hilfe.
Den nachfolgenden Code baute ich im Template html.tpl.php (ich
verwende ein Subtheme von OMEGA, bei anderen Themes heißt
das korrespondierende Template wohl page.tpl.php) ein:
<?php
$string_jQuery01 ='<script type="text/javascript">'.'jQuery(document).ready(function(){'.'jQuery("a[href = /drupal-7.7/content/xxx]").click(function(){'.'return false;})});'.'</script>';
?>
<?php print $string_jQuery01; ?>
Dabei steht "xxx" (ohne Anführungszeichen) für die Node, die nicht
klickbar sein soll.
Diese Lösung hat für mich mehrere Vorteile:
1) Ich bin nicht mehr auf die Module "Special Menu Items" und
"Void Menu" angewiesen.
2) Ich kann per PHP-Code jede beliebige Node in das obige Code-
Schema einfügen und somit gezielt Menu-Items "abschalten".
3) Aus diesem Code heraus kann ich ein Modul erstellen.
Ach ja: Jetzt funktioniert das Ganze auch mit den Breadcrumbs.
Dies mag nicht die schönste Lösung sein, aber sie tut genau
das was sie soll, sie ist beliebig ausbaubar und ich brauche erst
gar nicht zu verstehen, was Module "Special Menu Items" und
"Void Menu" genau machen oder welche Einstellungen sie for-
dern.
Ich würde mich sehr freuen, hier in diesem Forum öfter solche
Rezept-artigen Lösungen zu finden.
Beste Grüße,
GeorgHuber