organic group modul themen
Eingetragen von falloutboy (77)
am 30.09.2006 - 20:58 Uhr in
am 30.09.2006 - 20:58 Uhr in
Weiß zufällig jemand von euch, wie ich das organic group modul mit php-template anpassen kann ?
Vielleicht hat gibt es einen Link dazu.
Bis jetzt habe ich noch nichts gefunden.
- Anmelden oder Registrieren um Kommentare zu schreiben
Von Organic Groups werden
am 30.09.2006 - 21:17 Uhr
Von Organic Groups werden die Funktionen
theme_og_view()
theme_og_mission()
theme_opml_icon()
theme_og_list_generic()
theme_og_format_subscriber_status()
zum Themen bereitgestellt.
Wie das funktioniert, ist unter [1] beschrieben.
vg
[1] http://www.drupalcenter.de/node/1766#comment-6049
--
sanduhrs - drupalcenter
--------------------------------
http://erdfisch.de
--
sanduhrs · Stefan Auditor · Drupalcenter
http://drupal.org/user/28074 · http://association.drupal.org/user/646
Danke für die Beschreibung
am 01.10.2006 - 18:41 Uhr
Danke für die Beschreibung und den Link.
Leider komme ich damit noch nicht weiter, weil ich absoluter Neuling bin.
Wenn ich bis jetzt alles richtig verstanden habe, so gibt drupal mit dieser Funktion eine Tabelle aus.
Wie kann ich diese Tabelle in einen div-Container packen?
Bzw. wie kann ich dem "table" eine class="" zuweisen?
Ist es auch möglich, dem "tr" bzw. dem "td" eine class="" zu zuweisen?
function theme_og_list_generic($gid, $type, $mode) {
static $i;
$header = array(t('Title'), t('Author'), t('Replies'), t('Last reply'));
$sql = og_get_home_nodes_sql($type);
$num = $mode == 'brief' ? variable_get('og_max_posts', 10) : 50;
$i++; // multiple pagers on a page need a unique integer
$result = pager_query(db_rewrite_sql($sql, 'n', 'nid', array('og_nid' => $gid)), $num, $i);
while ($row = db_fetch_object($result)) {
$rows[] = array(l($row->title, "node/$row->nid"), theme('username', $row), $row->comment_count, format_date($row->created, 'small'));
}
if ($pager = theme('pager', NULL, $num, $i, array('ntype' => $type))) {
$rows[] = array(array('data' => $pager, 'colspan' => '4'));
}
return $rows ? theme('table', $header, $rows) : NULL;
}
Was muss ich in die template.php schreiben?
Meine node-og.tpl.php sieht so aus.
<?php //$Id: node-og.tpl.php,v 1.3.2.2 2006/01/04 23:03:33 weitzman Exp $
?>
<div class="node<?php print ($sticky) ? " sticky" : ""; ?>">
<?php if ($page == 0): ?>
<h2><a href="/<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
<?php endif; ?>
<div class="content">
<?php print $content ?>
</div>
</div>
Ich weiss leider nicht, wie
am 01.10.2006 - 19:23 Uhr
Ich weiss leider nicht, wie ich es noch verständlicher erklären soll, als unter [1].
Unter [2] findest Du die Funktion
theme_table($header, $rows, $attributes = array(), $caption = NULL)
, mit der Variable$attributes
kannst Du der Tabelle eine Klasse zuweisen. In der Dokumentation ist auch ein Beispiel, wie man einer Tabellen-Zeile eine Klasse zuweist.vg
[1] http://www.drupalcenter.de/node/1766#comment-6049
[2] http://api.drupal.org/api/4.7/function/theme_table
--
sanduhrs - drupalcenter
--------------------------------
http://erdfisch.de
--
sanduhrs · Stefan Auditor · Drupalcenter
http://drupal.org/user/28074 · http://association.drupal.org/user/646
Tut mir Leid, wenn ich Dich
am 01.10.2006 - 21:17 Uhr
Tut mir Leid, wenn ich Dich weiterhin belästige.
In meine template.php habe ich folgendes eingetragen:
<?php
function phptemplate_og_list_generic($gid, $type, $mode = array()) {
return _phptemplate_callback('og_list_generic', array('gid' => $gid, 'type' => $type, 'mode ' => $mode));
}
?>
und dann habe ich eine Datei namens og_list_generic.tpl.php erstellt.
Dort habe ich diesen Code eingetragen:
<div class="content">
<?php print $gid ?>
<?php print $type ?>
<?php print $mode ?>
</div>
Dieser Code gibt dann nur 2 Forum brief aus.
Was mache ich falsch?
Naja, Du überschreibst die
am 02.10.2006 - 13:04 Uhr
Naja, Du überschreibst die alte Funktion, daher musst Du in der neuen Funktion, um die alten Daten zu erhalten auch die alten Aktionen ausführen.
<?php
function phptemplate_og_list_generic($gid, $type, $mode) {
static $i;
$header = array(t('Title'), t('Author'), t('Replies'), t('Last reply'));
$sql = og_get_home_nodes_sql($type);
$num = $mode == 'brief' ? variable_get('og_max_posts', 10) : 50;
$i++; // multiple pagers on a page need a unique integer
$result = pager_query(db_rewrite_sql($sql, 'n', 'nid', array('og_nid' => $gid)), $num, $i);
while ($row = db_fetch_object($result)) {
$rows[] = array(l($row->title, "node/$row->nid"), theme('username', $row), $row->comment_count, format_date($row->created, 'small'));
}
if ($pager = theme('pager', NULL, $num, $i, array('ntype' => $type))) {
$rows[] = array(array('data' => $pager, 'colspan' => '4'));
}
$table = $rows ? theme('table', $header, $rows) : NULL;
return _phptemplate_callback('og_list_generic', array('gid' => $gid, 'type' => $type, 'mode' => $mode, 'table' => $table));
}
?>
und
<div class="content">
<?php print $gid ?>
<?php print $type ?>
<?php print $mode ?>
<?php print $table ?>
</div>
Sollte funktionieren, habe es aber nicht getestet.
Ich hoffe das hilft Dir weiter.
vg
--
sanduhrs - drupalcenter
--------------------------------
http://erdfisch.de
--
sanduhrs · Stefan Auditor · Drupalcenter
http://drupal.org/user/28074 · http://association.drupal.org/user/646