Blocks über Code
Eingetragen von Schnittmenge@dr... (288)
am 22.09.2008 - 09:04 Uhr in
am 22.09.2008 - 09:04 Uhr in
Wenn die Block Einstellung (Anzahl der Einträge, Sichtbarkeitseinstellung, ..) nicht über admin/build/block einstellbar ist, so vermute ich, dass dies direkt irgendwo im Code (oder Datenbank) steht. Doch wie finde das im Code bzw. in der Datenbank?
Ich möchte die Anzahl der Einträge bzw. die Sichtbarkeitseinstellung von ein paar Blocks von OG ändern. Wie mache ich das?
- Anmelden oder Registrieren um Kommentare zu schreiben
Blöcke
am 22.09.2008 - 09:09 Uhr
Moin!
Doch wie finde das im Code bzw. in der Datenbank?
Notfalls in der Tabelle {blocks}.
Die OG-Blöcke sind nicht über die Standard-Seite einstellbar? Merkwürdig.
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Wie sieht der nächste Schritt aus?
am 22.09.2008 - 09:30 Uhr
Gefunden, doch wie ändere ich da die Anzahl der Einträge im Block bzw. wo ein Block erscheint? (auf welchen Seiten und nicht der Ort innerhalb einer Seite) Wie mache ich das?
Blöcke
am 22.09.2008 - 09:37 Uhr
Gefunden, doch wie ändere ich da die Anzahl der Einträge im Block
Weiss ich nicht. Wahrscheinlich in der Konfiguration von organic groups.
bzw. wo ein Block erscheint? (auf welchen Seiten und nicht der Ort innerhalb einer Seite)
Notfalls auch in der Tabelle {blocks}. Da gibt es die Spalte "pages". Setz einfach mal für einen anderen Block ein paar Seiten und schau, wie sich die Werte für den Block verändern.
Allerdings finde ich es immer noch äußerst seltsam, dass die Blöcke von og sich nicht über admin/build/blocks konfigurieren lassen.
Mal ausprobieren...
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Blöcke
am 22.09.2008 - 09:47 Uhr
Habs gerade mal getestet: ich kann die Blöcke von og über die Block-Adminseite konfigurieren.
http://i36.tinypic.com/douhr7.jpg
http://i37.tinypic.com/fdderk.jpg
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
OG Standard Blocks funktioniert
am 22.09.2008 - 13:30 Uhr
Dieser Teil funktioniert. Dazu eine Frage: Was für ein Snippets müsste ich in "Page specific visibility settings" schreiben, damit nur dieser Block auf der ersten Ansicht von der OG angezeigt wird. Zu Zeit wird er bei allen Ansichten von OG angezeigt.
Bei dem Block, wo ich die Zeilen pro Einträge nicht Einstellen kann wurde mir mal programmiert und da funktioniert es nicht auf diesem Weg. Der Block muss irgendwo im Code stehen. Wie finde ich den? Mit dem Namen vom Link in der Block-Adminseite habe ich ihn nicht gefunden: admin/build/block/configure/aggregator/group-aggregator
og-Blöcke
am 22.09.2008 - 13:34 Uhr
Dieser Teil funktioniert. Dazu eine Frage: Was für ein Snippets müsste ich in "Page specific visibility settings" schreiben, damit nur dieser Block auf der ersten Ansicht von der OG angezeigt wird. Zu Zeit wird er bei allen Ansichten von OG angezeigt.
Einfach den Pfad der Seite reinschreiben und "show on only the listed pages" anklicken.
Bei dem Block, wo ich die Zeilen pro Einträge nicht Einstellen kann wurde mir mal programmiert und da funktioniert es nicht auf diesem Weg. Der Block muss irgendwo im Code stehen. Wie finde ich den? Mit dem Namen vom Link in der Block-Adminseite habe ich ihn nicht gefunden: admin/build/block/configure/aggregator/group-aggregator
Öhm, hast Du mal das entsprechende Quelltext-Stück parat?
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
1.) Ich muss den Pfad
am 22.09.2008 - 13:46 Uhr
1.) Ich muss den Pfad allgemein angeben, denn ich kann ja nicht im Voraus wissen, welche nodes einmal eine OG-Node wird.
2.) Da ist mein Problem, wie finde ich das Stückchen Quelltext?
og-Blöcke
am 22.09.2008 - 14:09 Uhr
1.) Ich muss den Pfad allgemein angeben, denn ich kann ja nicht im Voraus wissen, welche nodes einmal eine OG-Node wird.
Klingt nach einem Problem, muss jedoch nicht sein. Du kannst da auch Platzhalter ("*") mit in den Pfad schreiben. Falls die Seiten also eine spezielle Pfad-Struktur haben, könntest Du das darüber schaffen.
2.) Da ist mein Problem, wie finde ich das Stückchen Quelltext?
Öh, tja. Wer hat Dir denn den Block geschrieben? Gibts dafür ein extra Modul? Oder liegt das vielleicht in der template.php?
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
1. Kenne diesen Weg, jedoch
am 22.09.2008 - 14:23 Uhr
1. Kenne diesen Weg, jedoch bringt dies in meinem Fall nichts. Denn es handelt sich bei der Startseite von OG immer um ein einfachen Node des Styles: node/34434 Ich brauche eine Bedingung, die mir "Wahr" zurückliefert, wenn ich mich auf der Startseite von OG befinde und sonst "Falsch". Aus dieser Bedingung kann ich mir dann ein php snippets basteln.
<?php
if (Welche Bedingung brauche ich hier) {
return true;
}
?>
2. Ich suche mal mit den Block hooks ....
og-Blöcke
am 22.09.2008 - 14:26 Uhr
Zu 1.: kannst Du den "Startseiten" nicht einen speziellen Alias geben? So "groups/group-name"? Dann kannst Du den Block auf "groups/*" loslassen.
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
1. Interessant, aber auch
am 22.09.2008 - 14:43 Uhr
1. Interessant, aber auch aggressive. Brauche nur eine Bedingung die "Wahr" ist für die erste Seite von OG. Wie sieht folgende Abfrage in Php aus? Wenn node type = og und Node wird nicht als teaser angezeigt => wahr
2. War doch eine gute Idee mit der Block api zu suchen. Hier ist der Code: http://pastebin.com/m16cdffa4
Die Lösung ist vermutlich in Zeile 36. Wie gesagt über das Admin-Menü wird die "Item in block" nicht übernommen.
og-Blöcke
am 22.09.2008 - 14:58 Uhr
1. Interessant, aber auch aggressive. Brauche nur eine Bedingung die "Wahr" ist für die erste Seite von OG. Wie sieht folgende Abfrage in Php aus? Wenn node type = og und Node wird nicht als teaser angezeigt => wahr
Grob geschätzt:
<?php
(($node->type == 'og') && $page)
?>
Wobei ich mir nicht sicher bin, ob
$page
da zur Verfügung steht.2. War doch eine gute Idee mit der Block api zu suchen. Hier ist der Code: http://pastebin.com/m16cdffa4
Die Lösung ist vermutlich in Zeile 36. Wie gesagt über das Admin-Menü wird die "Item in block" nicht übernommen.
Schau mal in die Tabelle {aggregator_feed} (oder {aggregator_category}). Da müsste für den Block der Wert drin stehen.
Ich muss jetzt leider weg und bin heute Abend erst wieder am Rechner.
viel Spass beim Testen,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Wie geht das mit den Alias für OG?
am 22.09.2008 - 15:28 Uhr
Probiere ich gerne mal aus. Jedoch wie stelle ich diese ein?
Alias
am 22.09.2008 - 16:42 Uhr
Doch noch kurz da: wenn Du das Modul "path" aktiviert hast, kannst Du unter [admin/build/path] Aliase für bestehende URLs einrichten.
Also beispielsweise "groups/anonymous_drupal_lovers" für "node/36682".
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Im Block: Erst das Nodeobject laden.
am 22.09.2008 - 17:04 Uhr
Du kannst im Block PHP Code nicht einfach
<?php
(($node->type == 'og') && $page)
?>
verwenden um mittels PHP Code irgendwas vom Nodeobject zu checken. Im Block musst Du das Nodeobject erst in Abhaengigkeit der aktuellen URL laden:
<?php
if ( arg(0) == 'node' && is_numeric(arg(1)) ) {
// erst dann das Nodeobject laden
$mynode = node_load(arg(1));
// Nodetype checken
if ( $mynode->type == 'og' ) {
//bei TRUE wird der Block angezeigt
return TRUE;
}
}
?>
Man muss wie in der ersten if Zeile erst pruefen ob die URL eine "Node URL" ist. Sonst, wenn man sofort
node_load()
verwendet, gibt es einen PHP Error in all den Faellen wenn die URL nicht dem Schema /node/x folgt.URL Aliase werden von Drupal intern mit dem Schema /node/x behandelt.
Und was soll die Variable $page sein oder beinhalten oder verkoerpern?
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Viva Quiptime
am 22.09.2008 - 17:53 Uhr
Super das war es. Es funktioniert, wie ich es brauche.
Jetzt ist nur noch das Thema mit Item in block. Zu Zeit werden 5 angezeigt sollen aber nur 3 angezeigt werden. Hier ist der Code: http://pastebin.com/m16cdffa4
Die Lösung ist vermutlich in Zeile 36. Wie gesagt über das Admin-Menü wird die "Item in block" nicht übernommen.
@schnittmenge, der Anschiss lauert ueberall
am 22.09.2008 - 18:06 Uhr
Erst mal Danke.
@schnittmenge, der Anschiss lauert ueberall. Hier kommt er:
Drupal 5.x oder neuer
Solltest Du eigentlich schon irgendwie mitbekommen haben. Oder arbeitest Du mit einer universellen 5/6 Drupalversion?
Lass den zuletzt geposteten Code der Modulfunktion
aggregator_block()
in Ruhe. Bestenfalls ergibt sich aus dem Code dieser Funkion, das es eine Themefunktion mit Namentheme_aggregator_block_item()
gibt zu der man sich erforderlichenfalls ein Template erstellen kann um darin die Itemlist zu veraendern.Das Erstellen solcher Templates ist Inhalt meines morgigen Dojo im DVC.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Blöcke
am 22.09.2008 - 18:45 Uhr
Moin!
$page
kann man ja in der node.tpl.php einsetzen, um herauszufinden, ob der Beitrag gerade als Teaser angezeigt wird oder nicht. Ich war mir (wie ich auch geschrieben hatte) nur nicht sicher, ob der in diesem Kontext auch zur Verfügung steht.Das Erstellen solcher Templates ist Inhalt meines morgigen Dojo im DVC.
Werbung :-)
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Anz d. Items eines Newsblock in der Blockadministr. festlegen !
am 22.09.2008 - 18:53 Uhr
Die Anzahl der Items in einem Block mit aggregierten News wird definitiv in der Block-Administration festgelegt! Siehe nachfolgende Screenshots.
Die Aufgabe lautet, in einem der moeglichen News-Bloecke 4 Items von aggregierten News zu zeigen.
Den richtigen Block verwenden:
Die gewuenschte Anzahl der Items waehlen:
Der Block mit den 4 Items:
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Genau das funktioniert bei dem Block nicht
am 22.09.2008 - 21:05 Uhr
So sollte es funktionieren, tut es aber nicht.
@schnittmenge, lass Dir nicht die Würmer aus der Nase ziehen.
am 22.09.2008 - 22:14 Uhr
@schnittmenge, lass Dir nicht die Würmer aus der Nase ziehen.
So sollte es funktionieren, tut es aber nicht.
Was bedeutet dies genau?
1. Kannst Du eine Anzahl von Items wählen und diese gewählte Anzahl wird nicht verwendet
oder
2. kannst Du keine Anzahl für Items festlegen weil beim Konfigurieren des Blockes dies nicht möglich ist?
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Lösung
am 23.09.2008 - 07:57 Uhr
Am Ende wurde im Code die Anzahl der Items pro Block eingestellt und die bereits aktiven Blocks wurde die Anzahl der Items in der Datenbank geändert.
Danke an Dereine und Quiptime.
stBorchert schrieb Doch
am 23.09.2008 - 08:35 Uhr
Doch noch kurz da: wenn Du das Modul "path" aktiviert hast, kannst Du unter [admin/build/path] Aliase für bestehende URLs einrichten.
Also beispielsweise "groups/anonymous_drupal_lovers" für "node/36682".
Soweit ist das klar. Jedoch ich kenne die Node-Nummer einer zukünftigen Gruppe nicht im Voraus.
Gruppen
am 23.09.2008 - 08:38 Uhr
Jedoch ich kenne die Node-Nummer einer zukünftigen Gruppe nicht im Voraus.
Musst Du auch nicht. Du sagst dem Block, er soll nur auf "groups/*" erscheinen. Dann erstellst Du Deine Seiten und irgendwann setzt Du den Pfad einer node (die dann eine Gruppenseite werden soll) auf "groups/...". Und schon erscheint der Block dort.
Tipp: Beachte die Verhaltensregeln des DrupalCenter.