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

Node Pane: Kleine PHP-Anpassung (Sortierung der Content Types)

Eingetragen von SuperEngineer 64 (133)
am 09.11.2014 - 09:19 Uhr in
  • Anfängerfragen

Ich grüße!

Das Modul Node Pane von floretan erzeugt in Panels für jeden Content Type einen entsprechenden Link: "New Article", "New Person", etc. der dann direkt in eine PanelPane eingefügt wird.

Die Reihenfolge, in der die Content Types in Panels dann aufgelistet werden richten sich scheinbar nach den maschinenlesbaren Namen der Content Types. Da ich die Reihenfolge jedoch manuell anpassen möchte, dachte ich mir wäre eine Sortierung nach dem menschenlesbaren Namen sinnvoll, da ich diese auch ändern kann.

Im Modul wird die Funktion node_type_get_types() aufgerufen, welche folgendes ausgibt (Inhaltstypen: Text und Image):

array(20) {

["text"]=>
  object(stdClass)#140 (14) {
    ["type"]=>
    string(4) "text"
    ["name"]=>
    string(4) "Text"
    ["base"]=>
    string(12) "node_content"
    ["module"]=>
    string(33) "feature_drupal_blueprint_ct_lines"
    ["description"]=>
    string(0) ""
    ["help"]=>
    string(0) ""
    ["has_title"]=>
    string(1) "1"
    ["title_label"]=>
    string(14) "Internal Title"
    ["custom"]=>
    string(1) "0"
    ["modified"]=>
    string(1) "1"
    ["locked"]=>
    string(1) "1"
    ["disabled"]=>
    bool(false)
    ["orig_type"]=>
    string(4) "text"
    ["disabled_changed"]=>
    bool(false)
  }

["image"]=>
  object(stdClass)#128 (14) {
    ["type"]=>
    string(5) "image"
    ["name"]=>
    string(7) "A Image"
    ["base"]=>
    string(12) "node_content"
    ["module"]=>
    string(33) "feature_drupal_blueprint_ct_image"
    ["description"]=>
    string(0) ""
    ["help"]=>
    string(0) ""
    ["has_title"]=>
    string(1) "1"
    ["title_label"]=>
    string(14) "Internal Title"
    ["custom"]=>
    string(1) "0"
    ["modified"]=>
    string(1) "1"
    ["locked"]=>
    string(1) "1"
    ["disabled"]=>
    bool(false)
    ["orig_type"]=>
    string(5) "image"
    ["disabled_changed"]=>
    bool(false)
  }
}

Der CodeSchnipsel sieht nun folgendermaßen aus:

<?php

function ctools_node_content_type_content_types($plugin) {
 
$ctools_content_types = array();

  foreach(
node_type_get_types() as $name => $node_type) {
   
$ctools_content_types[$name] = array(
     
'title' => t('New @type', array('@type' => $node_type->name)),
     
'description' => $node_type->description,
     
'category' => array(t('Content')),
     
'top level' => TRUE,
     
'add form' => array(
       
'ctools_node_content_type_add_form' => t('Add new @type', array('@type' => $node_type->name)),
       
'ctools_node_content_type_edit_form' => array(
         
'default' => TRUE, // put wrapper here, not on the previous form.
         
'title' => t('Configure display'),
        ),
      ),
     
'edit form' => 'ctools_node_content_type_edit_form',
    );
  } 

?>

Was kann ich nun unternehmen, um in der foreach-schleife nach den Inhalten von "["name"]=> ... " aus node_type_get_types() zu sortieren?

Einen wunderschönsten Sonntag,
SE64!

‹ [gelöst] Drupal 7.33 - Passwort Installation von Drupal ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Du willst doch nicht bestehende Module ändern?

Eingetragen von ronald (3857)
am 09.11.2014 - 10:58 Uhr

Wie gut kennst du mittlerweile Drupal?

Für selektion und Sortierung bist du am besten bei views aufgehoben.

Den Code bestehender Module ändert man niemals.

Wenn du es besser kannst, schreibe dein eigenes Modul.
Du kannst natürlich Verbesserungsvorschläge an die Entwickler des Moduls richten.
Wenn du ein Modul selbst änderst, ist das nicht mehr wartbar. Bei jeder Aktualisierung kann es dir deine Änderungen wieder überschreiben.

Es gibt viele Möglichkeiten, die Ergebnisse zu überschreiben.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mit Drupal arbeite ich ca.

Eingetragen von SuperEngineer 64 (133)
am 09.11.2014 - 16:51 Uhr

Mit Drupal arbeite ich ca. seit 3 Jahren. Allerdings nur im Frontend - nichts im Backend.
Auch sind meine PHP-Skills noch recht mager.

Ich weiß das man Modul eig. nicht ändert - gibts aber keine andere Möglichkeit, werd ichs tun. Im übrigen machen Patches doch das gleiche?
Ob ich da mit ksort(); weiter komme? Ich bin aufgeschmissen... ^-^.

Zur not positioniere ich die alle absolut und verschiebe so deren Reihenfolge. Auch ne Option..

Gruß,
SE64

  • Anmelden oder Registrieren um Kommentare zu schreiben

ich sehe nicht ganz, was du hier vor hast

Eingetragen von ronald (3857)
am 09.11.2014 - 18:38 Uhr

aber soweit ich es verstanden habe, ist views genau das, was du hier brauchst.

Mit rudementären PHP-Kenntnissen in Modulen zu fummeln, ist schon mutig.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Kein Grund aufzugeben *g. Ich

Eingetragen von SuperEngineer 64 (133)
am 10.11.2014 - 10:29 Uhr

Kein Grund aufzugeben *g. Ich denke mit Views komm ich da nicht weiter. *sicher bin*

Das Sortieren klapp jetzt:

<?php

 
function cmp($a, $b) {
    return
strcmp($a->name, $b->name);
  }

 
$types_sortiert = node_type_get_types();
 
usort($types_sortiert, "cmp");

?>

Rufe ich $types_sortiert mit var_dump(); auf, sehe ich meine Sortierung.

Das Problem ist nun - $types kann ich scheinbar nicht in die foreach schleife einbauen. Denn da erhalte ich keine Ergebnisse mehr:

<?php


function ctools_node_content_type_content_types($plugin) {
 
$ctools_content_types = array();

/* HIER WURDE node_type_get_types() DURCH $types ERSETZT. */
 
foreach($types as $name => $node_type) {
   
$ctools_content_types[$name] = array(
     
'title' => t('New @type', array('@type' => $node_type->name)),
     
'description' => $node_type->description,
     
'category' => array(t('Content')),
     
'top level' => TRUE,
     
'add form' => array(
       
'ctools_node_content_type_add_form' => t('Add new @type', array('@type' => $node_type->name)),
       
'ctools_node_content_type_edit_form' => array(
         
'default' => TRUE, // put wrapper here, not on the previous form.
         
'title' => t('Configure display'),
        ),
      ),
     
'edit form' => 'ctools_node_content_type_edit_form',
    );
  }

?>

Hast du da eine Idee was ich falsch mache?

Gruß und Danke,
SE64

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Netx360
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • 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
Weiter

Neue Kommentare

  • Arrrrg. Nix Tabelle :-D /*
    vor 2 Wochen 2 Tagen
  • Textboxen mit Tabelle
    vor 2 Wochen 3 Tagen
  • Du sollst ja auch keine
    vor 2 Wochen 3 Tagen
  • Theme
    vor 2 Wochen 3 Tagen
  • Welches Theme benutzt du
    vor 2 Wochen 3 Tagen
  • Mit Responsive Raster hatte
    vor 2 Wochen 3 Tagen
  • Hallo Alex,um das Häkchen
    vor 2 Wochen 4 Tagen
  • Modul view_unpublished
    vor 2 Wochen 5 Tagen
  • Modul "override node options"
    vor 2 Wochen 6 Tagen
  • Im Grunde ist dass ein
    vor 3 Wochen 1 Tag

Statistik

Beiträge im Forum: 250271
Registrierte User: 20479

Neue User:

  • Floydphymn
  • Stevebok
  • Robertnobia

» Alle User anzeigen

User nach Punkten sortiert:
wla9463
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 13 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