Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Anfängerfragen ›

[Gelöst] Systempfade wie /node/add einfach überschreiben/ersetzen

Eingetragen von windm (112)
am 13.09.2010 - 17:55 Uhr in
  • Anfängerfragen
  • Drupal 6.x

Hallo!

Eine womöglich alberne Frage... aber ich möchte sichergehen, daß ich mir mit der ungewöhnlich simplen Lösung nicht irgendein Problem einfange.

Ausgangslage:
Ich habe node_limitnumber das Limit für die Erstellung des Contenttype "Branchenbucheintrag" auf 1 gesetzt - funktioniert prima, (übersetzte) Fehlermeldung kommt, weitere Einträge werden verhindert.
Schönheitsfehler ist allerdings, dass die Fehlermeldung auf der Systemseite /node/add angezeigt wird, die dem Nutzer dann alle von ihm zu erstellenden Contenttypes anzeigt, was z.B. für Sachen wie das Profil von dieser Stelle aus Quatsch ist.

Amateurlösung Stand heute:
Ich habe einfach eine "Erklärungsseite" angelegt und dieser manuell den Alias /node/add gegeben - ohne daß mir drupal einen Konflikt gemeldet hätte (von wegen /node/add existiert schon!). Die neue Seite wird auch korrekt aufgerufen und angezeigt, wenn ich die gewollte Fehlermeldung provoziere.

Also augenscheinlich(!) alles ok - trotzdem meine Frage:

"Darf" ich einen Systempfad einfach so mit einem URL Alias "überschreiben"? Oder fliegt mir das irgendwann/irgendwie um die Ohren?
Müsste ich die alte/originale /node/add Seite irgendwo löschen oder deaktivieren, um Konflikte zu vermeiden?
Oder sollte ich besser die originale node/add belassen und stattdessen mit einem Redirect Modul (z.B. path_redirect) arbeiten um für die node/add auf einen anderen node oder Alias verweisen?

Bin für jeden Hinweis dankbar, ob ich das so lassen kann oder besser ändern sollte!

Danke!

‹ Downloadseite bei Klick auf den Link soll Anmeldeseite erscheinen css class bearbeiten von einem view aber wie? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Gegenfrage: Was tust Du denn,

Eingetragen von Thoor (3678)
am 13.09.2010 - 18:17 Uhr

Gegenfrage: Was tust Du denn, wenn Du zukünftig eine Übersicht der Möglichen zu erstellenden Inhaltstypen mit entsprechenden Verlinkungen benötigst? Da wäre es doch prima wenn man da dann einfach node/add nutzen könnte?

Was ich nicht ganz verstanden hatte, weshalb landest Du fälschlicherweise auf node/add - kommt das von irgendeinem Modul? Falls ja .. solltest Du vielleicht mittels einer angepassten Funktion in Deinem verwendeten Theme auf einen anderen Pfad umleiten?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zur Gegenfrage (hätte ich

Eingetragen von windm (112)
am 13.09.2010 - 18:32 Uhr

Zur Gegenfrage (hätte ich vielleicht erwähnen sollen...):
Ich benötige den Inhalt/die funktion von node/add definitiv nicht. Die Nutzerführung zum Erstellen von Inhalten ist immer eher themenspezifisch und wird dann per Alias (hier z.B. Branchenbuch/Eintrag_erstellen) immer direkt auf z.B. node/add/Branchenbucheintrag geleitet (wobei Branchenbucheintrag natürlich ein gülter Content Type ist...).
Also von der Seite her kein Problem.

Zum 2. Punkt - ich lande nicht fälschlicherweise auf node/add (das habe ich vielleicht auch etwas unsauber formuliert). Das Modul node_limitnumber kontrolliert, daß pro User nur ein Beitrag vom Typ Branchenbucheintrag erstellt werden darf, verhindert dieses auch erfolgreich und erzeugt dann die Fehlermeldungsbox mit der Message. Nur die Anzeige dieser Fehlerbox erfolgt auf node/add und das ist halt der Schönheitsfehler... Also ich rufe Branchenbuch/Eintrag_erstellen (bzw. wahlweise node/add/Branchenbucheintrag...) auf und lande dann mit der Fehlermeldung auf der node/add, deren originaler Inhalt da nicht so richtig passt...

Wie erwähnt - die node/add in ihrer Ursprungsform brauche ich nicht, und augenscheinlich funktioniert alles nach meinem Wunsch - ich dachte halt nur, daß es (aus welchen Gründen auch immer) ein "ungeschriebenes Gesetz" gibt, wie "überschreibe nie einen Systempfad" oder so...

  • Anmelden oder Registrieren um Kommentare zu schreiben

windm schrieb Wie erwähnt -

Eingetragen von Thoor (3678)
am 13.09.2010 - 19:00 Uhr
windm schrieb

Wie erwähnt - die node/add in ihrer Ursprungsform brauche ich nicht, und augenscheinlich funktioniert alles nach meinem Wunsch - ich dachte halt nur, daß es (aus welchen Gründen auch immer) ein "ungeschriebenes Gesetz" gibt, wie "überschreibe nie einen Systempfad" oder so...

Das von Dir erwähnte Modul kenne ich nicht, deshalb war das Posting leicht kryptisch für mich :-) .... aber mit "überschreibe nie einen Systempfad" liegst Du auch bei DRUPAL garantiert nicht falsch! Ich würde keinen Systempfad überschreiben, da es immer Pfade gibt, die später auch von Zusatzmodulen genutzt werden! Es sind eben Systempfade!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Neuer Ansatz: node/add erweitern (mit Panels?)

Eingetragen von windm (112)
am 14.09.2010 - 11:24 Uhr

Vielen Dank schon mal, daß du dich so schnell und geduldig mit meiner Frage auseinandergesetzt hast.

Ich würde dann jetzt den Weg gehen und die originale node/add Seite beibehalten.
Die Beschreibungen der Contenttypes (also auch Forenthemen, Profil etc.) habe ich schon so umformuliert, dass sie an dieser Stelle Sinn ergeben. Was ich mir nun noch wünschen würde, wäre ein Einleitungstext auf der Seite... also ein einfacher Textblock zwischen der Überschrift und dem userspezifisch generierten Teil mit den verfügbaren Contenttypes die der User erstellen kann.

Komme ich bei so einer Systemseite mit Panels weiter? Oder lohnt es gar nicht, mich da reinzuarbeiten, weil das womöglich für Systempfade/-seiten gar nicht der richtige Ansatz ist...?

  • Anmelden oder Registrieren um Kommentare zu schreiben

windm schrieb Was ich mir nun

Eingetragen von Thoor (3678)
am 14.09.2010 - 13:05 Uhr
windm schrieb

Was ich mir nun noch wünschen würde, wäre ein Einleitungstext auf der Seite... also ein einfacher Textblock zwischen der Überschrift und dem userspezifisch generierten Teil mit den verfügbaren Contenttypes die der User erstellen kann.

Ich würde einfach einen Block erstellen mit den nötigen Zusatz Informationen! Den kannst Du dann in der Blockverwaltung genau dem Pfad node/add zuweisen und er wird nur dort angezeigt.
Kommt jetzt nur noch auf das verwendete Theme an, ob es Dir eine Region zum Block einblenden an der passenden Stelle zur Verfügung stellt. Eine Region einrichten ist aber in zwei Minuten erledigt ... PANELS einrchten und erlernen dauert da sicherlich länger ... Infos zu Regionen und Blöcken gibts hier im Handbuch ... oder vielleicht hilft auch diese Anleitung von mir zu nem eigentlich anderen Thema .... aber es wird darin auch gezeigt, wie man Regionen anlegt und Blöcke zuweist ...

  • Anmelden oder Registrieren um Kommentare zu schreiben

windm schrieb Vielen Dank

Eingetragen von aschiwi (1113)
am 14.09.2010 - 13:27 Uhr
windm schrieb

Vielen Dank schon mal, daß du dich so schnell und geduldig mit meiner Frage auseinandergesetzt hast.

Ich würde dann jetzt den Weg gehen und die originale node/add Seite beibehalten.
Die Beschreibungen der Contenttypes (also auch Forenthemen, Profil etc.) habe ich schon so umformuliert, dass sie an dieser Stelle Sinn ergeben. Was ich mir nun noch wünschen würde, wäre ein Einleitungstext auf der Seite... also ein einfacher Textblock zwischen der Überschrift und dem userspezifisch generierten Teil mit den verfügbaren Contenttypes die der User erstellen kann.

Komme ich bei so einer Systemseite mit Panels weiter? Oder lohnt es gar nicht, mich da reinzuarbeiten, weil das womöglich für Systempfade/-seiten gar nicht der richtige Ansatz ist...?

Das war auch mein erster Gedanke bei deiner Frage, Panels kann ja auch node/add überschreiben. Allerdings ist Panels tatsächlich nicht einfach mal eben so gemacht. Die Idee mit dem Block von Thoor finde ich ganz gut, aber dann hast du da immer noch die erstellbaren Inhaltstypen. Wenn dich das nicht stört, wäre das eine gute Lösung.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Auch auf die Gefahr hin,

Eingetragen von windm (112)
am 14.09.2010 - 15:11 Uhr

Auch auf die Gefahr hin, etwas verbohrt zu wirken... ;-) würde ich die Sache ungern mit dem Block lösen - das wäre sicher gut, wenn man einfach noch ein paar Randnotizen loswerden will.

Mir geht es aber darum, zwischen title und body noch einen Einleitungs-/Erklärungstext einzuschieben und das auch noch für weitere Seiten, die oft kein Feld für Erklärungen vorhalten (apply_for_role fällt mir spontan ein).

Es ist auch nicht so, daß ich noch gar nichts mit Panels gemacht hätte - für neu angelegte Seiten habe ich damit eigentlich immer mein Ziel erreicht.
Mein bisheriger Stand/Versuch dazu:
- Ich würde über das Dashboard auf die vorhandenen Seiten gehen und finde da auch eine System-Seite "Beitragsvorlage" (node/%node).
- Die bearbeite ich, bzw. erstelle eine Variante mit Kontext "Beitragserstellungsformular".
- Nur muß ich dann im Dialog einen(!) Inhaltstyp auswählen, damit ich beim Dialogfenster "Inhalt einfügen" auch die Formulare finde.
- Da nehme ich z.B. das "Allgemeine Formular" - schon habe ich mir eine spezielle Eingabeseite für einen Inhaltstyp gebaut... so weit so gut.

Nur stehe ich wohl total auf der Leitung, wie ich das für die generische node/add mache... bin ich mit dem der o.g. Seite node/%node auf der richtigen Spur?
Welche Settings muß ich (dann) vornehmen, damit ich für node/add ein Panel Layout definieren kann und dann als Inhalt wieder den ursprünglichen Inhalt der node/add einfügen kann?

Ich hoffe, ich nerve nicht mit meiner Sturheit, das schaffen zu wollen ;-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

mit rules kannst du ein

Eingetragen von caw (2762)
am 14.09.2010 - 15:20 Uhr

mit rules kannst du ein nodlimit abfragen und zur einer url umleiten und/oder eine message ausgeben

  • Anmelden oder Registrieren um Kommentare zu schreiben

node_limit ist schon ok - die generelle Panels Frage bleibt...

Eingetragen von windm (112)
am 15.09.2010 - 23:04 Uhr

Das sind alles schon ganz pragmatische Ansätze für das konkrete (eine) Beispiel.

Ich bin trotzdem noch grundsätzlich an der Panels-Frage interessiert... Ist es möglich, bestehende Systempfade mit einem Panel zu gestalten?

Für die Suche geht das z.B. - für den Pfad /search/node/!keyword ist ja sogar schon eine aktivierbare Panel-Seite da - da gestalte ich ein wenig, setze unter anderem aus den Steuerelementen Search form und Search result als Baustein wieder rein und schon habe ich eine fertig gelayoutete Suchseite auf der ich Textbereiche, Blöcke oder auch beliebige views einbauen kann...

Wenn ich aber eine neue Panel-Seite anlegen will - z.B. für den Pfad node/add oder auch für user/%user/apply_for_role bekomme ich immer direkt die Fehlermeldung, daß bestehende Pfade nicht überschrieben werden können.

Kann man tatsächlich nur die in Panels vorgegebenen (und default deaktivierten) Pfade überschreiben?
Oder muß ich bei der Pfadangabe irgendwas tricksen, damit ich bestehende Pfade mit einem Panel-Layout versehen kann?

Falls das nicht geht, ist ja auch ok - dann gebe ich mich geschlagen ;-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

template.php

Eingetragen von tumblingmug (872)
am 16.09.2010 - 01:18 Uhr

Drupals Menü-System fällt um jeweils ein Level zurück, wenn ein Menüpunkt nicht aufrufbar ist. daher führt die Nichtexistenz der Page node/add/blah zum Aufruf von node/add - auch in einer jungfräulichen Drupal-Installation ohne Contribs. Probiere es aus: der Aufruf von admin/user/blah führt zum Aufruf von admin/user, da es die Page admin/user/blah nicht gibt. Es handelt sich also um einen Fallback-Mechanismus des Drupal-Menüsystems.
Wenn Du folgende Funktion in die template.php Deines Themes schreibst, kannst Du den Listen-Output von node/add mit allem ersetzen, was Dir an dieser Stelle lieber ist:

<?php
/**
* Display the list of available node types for node creation.
*
* @ingroup themeable
*/
function phptemplate_node_add_list($content) {
 
$output = '';

  if (
$content) {
   
$output = '<dl class="node-type-list">';
    foreach (
$content as $item) {
     
$output .= '<dt>'. l($item['title'], $item['href'], $item['localized_options']) .'</dt>';     
     
$output .= '<dd>'. filter_xss_admin($item['description']) .'</dd>';
    }
   
$output .= '</dl>';
  }
  return
$output;
}
?>

Zwar ist das Ganze kein Theming-Thema, weil Du das bei einem Theme-Wechsel ja auch nicht wirst haben wollen - aber es ist bestimmt am einfachsten so.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke an alle - auch wenn es keine einfache Lösung gab... ;-)

Eingetragen von windm (112)
am 16.09.2010 - 10:26 Uhr

Vielen Dank für die Vorschläge - auch die letzte Lösung ist pragmatisch und gut, ich werde aber glaube ich trotzdem für diesen Zweck davon absehen, das über Eingriffe in templates oder Theming umzusetzen.
Ich dachte eher, daß ich im drupal einfach eine von 10Mio. Funktionen übersehen hätte, mit der man auf einfachste Weise an die Gestaltung dieser Systempfade rankommt.

Was tatsächlich geht und was ich auch einsetze sind folgende Lösungen (für alle Leser dieses Threads, die vielleicht eher/genau das gesucht haben):

-> Mit Panels habe ich die Gestaltung verschiedener Standardseiten problemlos hinbekommen - so z.B. für die Inhalte- und Nutzer-Suche. Die entsprechenden "gestaltbaren" Seiten/Pfade kommen schon direkt mit Panels und müssen nur noch aktiviert und gefüllt werden... Panels beherrscht man sicher nicht in 5 Minuten, kann sich aber relativ schnell herantasten, wenn man erstmal unabhängige Seiten gestaltet und die zur Verfügung stehenden Mittel kennenlernt. Dann ist die Umgestaltung und Aktivierung von z.B. der Suchseite ein Kinderspiel.

-> Mit Contemplate lässt sich ähnliches bewerkstelligen - hier lässt sich pro Contenttype das zu grunde liegende Template modifizieren - direkt aus dem /admin/content/node-type/xyz kann man das Template nach eigenen Wünschen überschreiben/umgestalten... z.B. die Felder neu anordnen, in zwei Spalten anzeigen oder oder oder...

Beides Sachen, die mit den Modulen Panels und Contemplate einfach so (und auch für mich als Anfänger) funktioniert haben.

(Und aus so einer "Liga" hatte ich mir auch eine Lösung für mein node/add oder das user/%user/apply_for_role vorgestellt... ;-) aber das bleibt jetzt einfach so wie es ist...)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 1 Tag
  • Hey danke
    vor 2 Wochen 1 Tag
  • Update: jetzt gibt's ein
    vor 2 Wochen 2 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 56 Minuten
  • Da scheint die Terminologie
    vor 3 Wochen 4 Stunden
  • Kannst doch auch alles direkt
    vor 3 Wochen 4 Tagen
  • In der entsprechenden View
    vor 3 Wochen 4 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 4 Tagen
  • gelöst
    vor 6 Wochen 23 Stunden
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 1 Tag

Statistik

Beiträge im Forum: 250233
Registrierte User: 20453

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 34 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association