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

  • 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 2 Tagen
  • Hey danke
    vor 2 Wochen 3 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 4 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 1 Tag
  • Da scheint die Terminologie
    vor 3 Wochen 1 Tag
  • Kannst doch auch alles direkt
    vor 3 Wochen 6 Tagen
  • In der entsprechenden View
    vor 3 Wochen 6 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 6 Tagen
  • gelöst
    vor 6 Wochen 2 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20454

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 26 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