Mehrere Blogs verwalten
am 06.06.2008 - 16:52 Uhr in
Hallo,
ich komme mal wieder nicht weiter ^^
Deswegen hoffe ich, dass ihr mir helfen könnt.
Also zu meinem Problem:
Ich erstelle gerade eine Seite auf der ich 2 blogs erstellen möchte (Ich bin der einzigste User)
Und zwar mache ich eine Vereinsseite.
Ich würde gerne einen blog erstellen der "1. Mannschaft-news" heißt und einen blog der "2.Mannschaft-news" heißt.
Am besten wäre es wenn ich das bei "Create Content" auch gleich auswählen könnte zu welchem blog ich dann einen Eintrag schreiben möchte. (hatte auch schon einen neuen content typ erstellt, aber irgendwie bekomm ich das nicht hin, dass drupal versteht, dass ich 2 verschiedene blogs haben möchte, so steht bei jedem teaser "meinusername"-blog, der username ist aber egal, den will ich garnicht anzeigen lassen sondern, ob der jeweilige teaser aus dem ersten blog ist oder aus dem 2.)
Dann hätte ich noch gerne, dass auf der -seite die teaser aller beiden Blogs nach aktualität geordnet angezeigt werden. (und dass bei jedem teaser auch dabei steht von welchem blog dieser teaser ist.)
Ich weiß ich schreibe ziemlich viel durcheinander, trotzdem hoffe ich dass ihr mein Vorhaben versteht.
Vielen Dank schonmal im voraus
lg matze
- Anmelden oder Registrieren um Kommentare zu schreiben

Du must mit dem EINEN
am 06.06.2008 - 18:11 Uhr
Du must mit dem EINEN Blogmodul auskommen.
Zunaechst strukturiere die beiden Blogs per Taxonomie. Was dann zu klaeren ist sind die diversen netten Anzeigen in Zusammenhang mit welcher Bloginhalt gerade angezeigt wird.
Das geht wohl in Richtung Theming. Da Du am besten fuer die beiden Blogs separate Nodetypes verwendest kannst Du auch separate Nodetype-Templates verwenden. In diesen Template kann man diverse Links/Ausgaben vor ihrer Ausgabe abfangen und sie wie gewuenscht aendern.
Auf jeden Fall solltest Du Dich tiefer in die Fragen des Theming von Nodes einarbeiten. Dann sehe Dir im Blog Modul auch mal die Funktionen mit
function theme_blabla()an. Eventuell ergeben sich da neben den Nodetype-Templates noch Ansatzpunkte fuer weiteres gezieltes Theming der Blogausgaben.Was die Anzeige der neuesten Bloginhalte beider Blogs betrifft so ist das eine Frage der Erstellung eines Views. Der View sammelt die Inhalte der Beiden Blogs nach Deinen Vorgaben zusammen und bereitet sie fuer die Ausgabe vor.
In den letzten Tagen war hier oefter die Rede vom Panels Modul. Das kannst Du benutzen um die Inhalte des View der die Bloginhalte aufgabelt entsprechend strukturiert anzuzeigen - z. Bsp. als Startseite.
Tipp:
Wenn Du bei den Nodetype-Templates fuer die beiden Blogs Variablen benoetigst die Du dann in den beiden Templates abfragst besteht auch die Moeglichkeit mittels CCK einfach Felder (Selectfelder, Optionsfelder) in den beiden Nodetypes einzubauen die aber am Ende nicht mit dem Bloginhalt angezeigt werden. Diese Felder werden praktisch nur im Template auf ihren Wert abgefragt und dienen quasi der Steuerung von irgend etwas. Was weisst Du dann schon selber.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Vielen Dank quiptime. Zwar
am 07.06.2008 - 13:33 Uhr
Vielen Dank quiptime.
Zwar hab ich nicht alles verstanden, da ich noch nichts so in die Struktur von Drupal eingeweiht bin, jedoch habe ich durch deine Anweisungen genau das erreicht was ich wollte. Und so hab ich das ganze gelöst:
Im Menü "Administer--> Content Management--> Taxonomy" habe ich eine neues Vokabular erstellt "News" dann habe ich darin 2 Terms erstellt "1.Mannschaft" und "2. Mannschaft" und habe bei beiden in den Einstellungen "required" angehakt.
Dann habe ich ein paar Blog-entries erstellt, manche mit dem 1.Mannschaft-term und manche mit dem 2.Mannschaft-term.
So werden die News von beiden Terms auf der Startseite angezeigt und sogar noch in jedem node der jeweilige $term.
Dann habe ich 2 Menüpunkte unter News erstellt und habe den beiden die links von 1.Mannschaft (taxonomy/term/4) und 2.Mannschaft (taxonomy/term/5) hinzugefügt.
So jetzt hab ich mein Grundvorhaben verwirklicht.
Jedoch gibt es noch 2 Dinge:
Ich würde gerne die Funktion $terms in die theme_node_submitted()- einbauen und so habe ich das in die template.php eingefügt: (test ist der name meines themes :P)
<?phpfunction test_node_submitted($node) {
return t('Geschrieben von !username on @datetime; Rubrik: $terms',
array(
'!username' => theme('username', $node),
'@datetime' => format_date($node->created),
));
}
?>
Ich hatte die Idee vlt ein !term im array-bereicht zu definieren, leider weiß ich aber nicht wie ich das machen soll, also was ich dann hinter "!terms =>" schreiben soll.
Achja, ausgegeben wird theme_node_submitted richtig! Nur wird eben "Rubrik: $terms" auch als Text ausgegeben.
Und was ich auch nicht verstehe: Immer wenn ich eine Funktion in template.php einfüge, und dann in Drupal zb.: einen neuen Content erstelle und auf "SAVE" drücke, dann seh ich nur noch weiß! und wenn ich dann die Seite aktualisiere (F5) dann bin ich wieder da wo ich sein sollte... also an sich ist nur das nötige Aktualisieren nervig. Denn der Content den ich erstellt habe wird richtig gespeichert.
Ich hoffe jemand kann mir helfen :)
lg matze
Dein Code kann so nicht
am 07.06.2008 - 14:48 Uhr
Dein Code kann so nicht funktionieren! Und zwar vom Grunde her.
1., Fehler:
Du hast das gesamte Array in die t() Funktion gesteckt. Denk mal logisch und frage Dich was die t() Funktion macht. Willst Du ein Array uebersetzbar machen?
Du kannst diese Funktion so nicht verwenden. Sie ist in dieser Form die Ursache fuer den White Screen nach dem Speichern einer Node.
2.
Ich würde gerne die Funktion $terms in die theme_node_submitted()- einbauen
???
Erklaere mal bitte was Du wo und wie angezeigt haben moechtest.
PS
Unabhaengig davon das das gesamte Array in einer t() Funtion steckt.
"Rubrik: $terms" wird deswegen als Text ausgegeben weil Du es auch so praktizierst:
'Geschrieben von !username on @datetime; Rubrik: $terms'.Text zwischen einfachen Hochkamma wird immer als Textstring exakt so ausgegeben wie er zwischen den Hochkommas steht. Das ist eine PHP-Funktionalitaet.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Welche Drupalversion
am 07.06.2008 - 15:28 Uhr
Welche Drupalversion verwendest Du?
Lass Dir mal im Nodetype Template das hier ausgeben:
<pre><?php print $node->taxonomy; ?>
<pre>
Damit kannst Du die Struktur des Taxonomy Arrays erkennen.
Ich meine damit ob es evenuell guensiger ist das "Submmited by" im Template nicht auszugeben und es dafuer in $node->taxonomy reinzuschieben. Soll heissen $terms gibt dann das "Submmited by" aus.
$term ist ein Array und wird als ungeordnete Liste ausgegeben.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
t()
am 07.06.2008 - 16:02 Uhr
Dein Code kann so nicht funktionieren! Und zwar vom Grunde her.
1., Fehler:
Du hast das gesamte Array in die t() Funktion gesteckt. Denk mal logisch und frage Dich was die t() Funktion macht. Willst Du ein Array uebersetzbar machen?
Du kannst diese Funktion so nicht verwenden. Sie ist in dieser Form die Ursache fuer den White Screen nach dem Speichern einer Node.
Da widerspreche ich mal ganz wehement.
<?php$output = t('There are currently %members and %visitors online.', array(
'%members' => format_plural($total_users, '1 user', '@count users'),
'%visitors' => format_plural($guests->count, '1 guest', '@count guests')));
?>
Ist übrigens ein Beispiel auf der API-Seite zu t() . So man den mehrere Parameter im zu übersetzenden Text hat, übergibt man sie als Array an die Funktion.
2.
Ich würde gerne die Funktion $terms in die theme_node_submitted()- einbauen
???
Erklaere mal bitte was Du wo und wie angezeigt haben moechtest.
PS
Unabhaengig davon das das gesamte Array in einer t() Funtion steckt.
"Rubrik: $terms" wird deswegen als Text ausgegeben weil Du es auch so praktizierst:
'Geschrieben von !username on @datetime; Rubrik: $terms'.Text zwischen einfachen Hochkamma wird immer als Textstring exakt so ausgegeben wie er zwischen den Hochkommas steht. Das ist eine PHP-Funktionalitaet.
Da gebe ich Dir Recht. Wenn er "terms" schon mit in den übersetzbaren Text reinpacken will, dann so:
<?phpfunction test_node_submitted($node) {
return t('Geschrieben von !username on @datetime; Rubrik: @terms',
array(
'!username' => theme('username', $node),
'@datetime' => format_date($node->created),
'@terms' => $terms,
));
}
?>
Stefan
Hey quiptime, nochmal Danke
am 07.06.2008 - 16:13 Uhr
Hey quiptime, nochmal Danke für deine Hilfe :)
also: ich verstehe wieso $terms als Textstring ausgegeben wird :) das habe ich verstanden.
Theoretisch müsste ich nach Rubrik das Hochkomma setzen und dann ein "&" dransetzen (so hatte ich mir das gedacht, aber ich weiß nicht ob es so stimmt,funktionieren tut es so jedenfalls nicht)
Dass ich alles in ein Array geschrieben habe verstehe ich jetzt nicht richtig, schließlich ist das der Code der auch in der node.module geschrieben ist:
<?phpfunction theme_node_submitted($node) {
return t('Submitted by !username on @datetime',
array(
'!username' => theme('username', $node),
'@datetime' => format_date($node->created),
));
}
?>
dann dachte ich mir, ich muss "theme" mit "meinemthemename" ersetzen und dann bei return t() die Ausgabe ändern.
Was ich ja dann auch gemacht habe in 'Geschrieben von !username am @datetime' .
So dann war es für mich logisch nach der Definition von @datetime eine Definition für zb.: !Terms zu machen, in etwa so:
<?phpfunction test_node_submitted($node) {
return t('Geschrieben von !username am @datetime ; Rubrik: !terms' ,
array(
'!username' => theme('username', $node),
'@datetime' => format_date($node->created),
'!terms' => ???? (jetzt weiß ich nicht mehr weiter)
));
}
?>
Rein theoretisch müsste es ja gehen, wenn ich jetzt nur noch wüsste wie ich !terms definiere. Denk ich mal...
Das hatte ich mit der Aussage: "ich würde gerne $terms in die theme_node_submitted-funktion einbinden" gemeint.
So jetzt zu deinem Rat mit dem Nodetype TEmplate:
Wenn ich
<?phpprint $node->taxonomy;
?>
Die Ausgabe von theme_node_submitted() in das $terms-Array einzubinden ist eine sehr gute Idee.
Nur weiß ich nicht wie ich das mache.
Achja ich benutze Drupal 6.
lg matze
@ stBorchert auch dir Danke
am 07.06.2008 - 16:22 Uhr
@ stBorchert
auch dir Danke für deine Hilfe
also wenn ich das in meine template.php einfüge:
<?phpfunction test_node_submitted($node) {
return t('Geschrieben von !username on @datetime; Rubrik: !terms',
array(
'!username' => theme('username', $node),
'@datetime' => format_date($node->created),
'!terms' => $terms,
));
}
?>
oder das:
<?phpfunction test_node_submitted($node) {
return t('Geschrieben von !username on @datetime; Rubrik: @terms',
array(
'!username' => theme('username', $node),
'@datetime' => format_date($node->created),
'@terms' => $terms,
));
}
?>
wird nichts ausgegeben. Also bei beidem nicht.
muss ich am Anfang der template.php eigentlich irgendeinen Code einfügen? wie zb.: im HTML-head, da wird ja auch erst die CSS-Datei includet, damit man auf die ganzen Styles zugreifen kann.
Vlt gibt er ja nichts aus, weil er nicht weiß wo er nach der $terms suchen soll?
lg matze
ganz schnell
am 07.06.2008 - 18:10 Uhr
Nur ganz schnell (Spiel geht weiter... :-)): Lass Dir mal $terms in Deinem error-log ausgeben:
<?phperror_log(print_r($terms, 1));
?>
Dann siehst Du, was da drin steht. Und dann noch
<?phperror_log(print_r($node, 1));
?>
Vielleicht stehen die Terms ja auch in den Daten des Nodes drin (hab gerade kein Drupal6 zur Hand).
Stefan
Ich danke dir vielmals
am 07.06.2008 - 18:30 Uhr
Ich danke dir vielmals ^^
aber ich hab keine ahnung was ich mit den beiden Snippets machen soll.
Ich hab sie beide mal in meine node.tpl.php eingefügt. Naja also ich bekomm keine Ausgabe.
Dann dachte ich es gibt bei Drupal einen Error-log, den find ich aber nicht, im Menü nicht und auch nicht im Verzeichnis, Unterverzeichnisse von Drupal.
Trotzdem viel Spass bei der EM ^^
lg matze
template.php
am 07.06.2008 - 19:38 Uhr
Die Schnipsel solltest Du in Deiner template.php in die "test_node_submitted" Funktion einbauen.
Und mit dem error-log war die Log-Datei Deines Apachen gemeint :-)
@matthiasv: taxonomy_node_get_terms($node)
am 08.06.2008 - 11:22 Uhr
wird nichts ausgegeben. Also bei beidem nicht.
Weil $terms leer ist.
Im Context der template.php muss das NodeObject->taxonomy geladen werden denke ich.
Probiere mal das:
<?phpfunction test_node_submitted($node) {
$terms = taxonomy_node_get_terms($node);
return t('Geschrieben von !username on @datetime; Rubrik: !terms',
array(
'!username' => theme('username', $node),
'@datetime' => format_date($node->created),
'!terms' => theme('links', $terms);,
));
}
?>
PS
Mein erster Post mit der t() Funktion und dem Array war Quatsch - ein Schnellschuss eben. Sorry.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
@ quiptime, danke nochmal
am 08.06.2008 - 12:05 Uhr
@ quiptime, danke nochmal ^^
also ich hab es jetzt so eingefügt, dann kam eine Fehlermeldung wegen einem unerwartetem semikolon hinter dem 3. Arraywert.
Das Semikolon hab ich entfernt und dann kam die nächste Fehlermeldung:
Fatal error: Cannot use object of type stdClass as array in C:\Dokumente und Einstellungen\Admin\Eigene Dateien\xampp\htdocs\drupal\includes\theme.inc on line 1106
Und in der theme.inc on line 1106 steht:
if (isset($link['href']) && ($link['href'] == $_GET['q'] || ($link['href'] == '' && drupal_is_front_page()))) {
$class .= ' active';
}
Leider hab ich nicht soviel Ahnung von PHP und verstehe den Code nicht :P
@stBorchert
Ich habe die beiden Codes eingefügt, und hab die Apache error.log aufgerufen und naja da sind Codes, welchen ich nichts entnehmen kann, welche auch sehr lang sind und deswegen kann ich sie nicht posten. Wenn du mir vlt sagen könntest nach was ich suchen sollte wäre ich dir sehr dankbar.
Danke für eure Unterstützung :)
lg matze
@matthiasv: Code ohne Fehler
am 08.06.2008 - 12:15 Uhr
Code ohne Fehler:
<?phpfunction test_node_submitted($node) {
$terms = taxonomy_node_get_terms($node);
return t('Geschrieben von !username on @datetime; Rubrik: !terms',
array(
'!username' => theme('username', $node),
'@datetime' => format_date($node->created),
'!terms' => theme('links', $terms),
));
}
?>
Das war der Fehler, sorry:
'!terms' => theme('links', $terms);,
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Hey Quiptime, ja also es
am 08.06.2008 - 12:22 Uhr
Hey Quiptime,
ja also es kommt immer noch die gleiche Fehlermeldung:
Fatal error: Cannot use object of type stdClass as array in C:\Dokumente und Einstellungen\Admin\Eigene Dateien\xampp\htdocs\drupal\includes\theme.inc on line 1106
trotzdem danke
lg matze
Mhm, dort liegt der
am 08.06.2008 - 12:57 Uhr
Mhm, dort liegt der Fehler:
$terms = taxonomy_node_get_terms($node);
D6 gibt mit taxonomy_node_get_terms() ein volles Nodeobject zurueck - hatte ich, weil so neu, uebersehen.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
@matthiasv: noch ein Versuch
am 08.06.2008 - 13:17 Uhr
Test bitte diesen Code:
<?phpfunction test_node_submitted($node) {
if ( module_exists('taxonomy')) {
$terms = taxonomy_link('taxonomy terms', $node);
$myterms = theme('links', $terms);
}
return t('Geschrieben von !username on @datetime; Rubrik: !terms',
array(
'!username' => theme('username', $node),
'@datetime' => format_date($node->created),
'!terms' => $myterms,
));
}
?>
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Wie schön dass es noch
am 08.06.2008 - 15:44 Uhr
Wie schön dass es noch Menschen gibt, die es einfach nie aufgeben einem Noob etwas beizubringen :)
Danke, der Code funktioniert :):):) hurraaa
Nebensächlich wollte ich nur noch sagen, dass mein term in der nächsten Zeile ausgegeben wird, weil ein neues Listenelement erstellt wird. Hier der Quellcode der Ausgabe:
<span class="submitted"><span id="thmr_19" class="thmr_call">
Geschrieben von <span id="thmr_21" class="thmr_call">
<a href="/drupal/?q=user/1" title="View user profile.">prc</a></span>
on Sat, 06/07/2008 - 14:48<span id="thmr_20" class="thmr_call">
<ul class="links"><li class="taxonomy_term_4 first last active"><a href="/drupal/?q=taxonomy/term/4" rel="tag" title="" class="active">Allgemein</a></li>
</ul></span>
</span>
</span>
Wäre nett wenn du mir noch verraten könntest wie ich das jetzt nicht als Liste ausgebe ^^
Ansonsten bin ich total happy und bedanke mich recht herzlich :)
lg matze