Dobrý den
Použil jsem Váš kód na zobrazení článku daného uživatele. (z Vaší
knihy o Drupalu)
<?php $nlimit = 10; ?>
<?php $userid=$user->uid; ?>
<?php $result1 = pager_query(db_rewrite_sql("SELECT n.nid, n.created
FROM {node} n WHERE n.status = 1 AND n.uid = $userid AND n.type !=
'page' AND n.type != 'poll' AND n.type !='forum' AND n.type='story'
ORDER BY n.created DESC"), variable_get('default_nodes_main', $nlimit)
); ?>
<?php while ($node = db_fetch_object($result1)) {$output2 .=
node_view(node_load(array('nid' => $node->nid)), 1);}; ?>
<?php print "Seznam článků tohoto autora:\n" ?>
<?php print $output2; ?>
<?php print theme('pager', NULL, variable_get('default_nodes_main',
$nlimit), 0); ?>
A mám k tomu pár dotazů:
- jak udělám, aby to vypisovalo více typů obsahů - teď to vypisuje jen typ story
- jak udělám, aby to vypisovalo pouze seznam článků a ne tzv. teaser
děkuji za rady
Píše mi to tuhle chybu : user warning: Table 'film_playall_cz.node' doesn't exist query: SELECT n.created, n.title, n.nid, n.changed FROM node n WHERE n.uid = 1 AND n.status = 1 ORDER BY n.changed DESC LIMIT 0, 10 in /home/home1/playall_cz/public_html/www/includes/database.mysql.inc on line 172.
Ten pager už jsem vyřešil..
Dal jsem pod ten kod obsah a taky nad ten kod jsem dal nadpis.
Ale, když uživatel nemá žádný článek tak se zobrazí i ten nadpis i ten odkaz na další články. Šlo by nějak udělat aby se to nezobrazovalo, když nemá žádný článek ?
Můj kod:
<?php
print 'Články uživatele:';
$nlimit = 10;
$userid=$user->uid;
$query= "SELECT n.created, n.title, n.nid, n.changed FROM {node} n WHERE n.uid = $userid AND n.status = 1 AND n.type != 'page' AND n.type != 'webform' AND n.type != 'profil_filmu' AND n.type != 'image' AND n.type != 'hlaska' ORDER BY n.changed DESC";
$result1 = db_query_range($query,0,$nlimit);
$output2 .= "
\n";
$output2 .= node_title_list($result1);
$output2 .= "
";
print $output2;
print 'více'; ?>
asi nerozumím
Mám tam tento kód:
<?php
print 'Články uživatele:';
$nlimit = 10;
$userid=$user->uid;
$query= "SELECT n.created, n.title, n.nid, n.changed FROM {node} n WHERE n.uid = $userid AND n.status = 1 AND n.type != 'page' AND n.type != 'webform' AND n.type != 'profil_filmu' AND n.type != 'image' AND n.type != 'hlaska' ORDER BY n.changed DESC";
$result1 = db_query_range($query,0,$nlimit);
$output2 .= "
\n";
$output2 .= node_title_list($result1);
$output2 .= "
";
print $output2;
print 'více'; ?>
Jak vidíte na začátku mám nadpis a na konci mám odkaz na další články. Ale když uživatel nemá žádný článek, tak se zobrazí samotný nadpis a odkaz na články... Jak udělám, aby se to nezobrazilo, když nemá žádný článek ?
takto?
<?php
$nlimit = 10;
$userid=$user->uid;
$query= "SELECT n.created, n.title, n.nid, n.changed FROM {node} n WHERE n.uid = $userid AND n.status = 1 AND n.type != 'page' AND n.type != 'webform' AND n.type != 'profil_filmu' AND n.type != 'image' AND n.type != 'hlaska' ORDER BY n.changed DESC";
$result1 = db_query_range($query,0,$nlimit);
$output2 .= "
\n";
$output2 .= node_title_list($result1);
$output2 .= "
";
if ($output2):
print 'Články uživatele:' . $output2 . 'více';
endif;
?>
Tak tedy nevíte jak by to šlo?
tak, jak jsem naznačil. Zkontrolujte, zda vám $result1 něco vrací a teprve pak vypisujte nadpis, výpis a zbytek. Mělo by to fungovat. Zřejmě bude někde chyba v zápisu, takhle bez odladění těžko říct, nejsem programátorský bůh...
Stačí upravit podmínku ve SQL dotazu a pro zobrazení titulů použít úpravu uvedenou níže. Postrádá podporu pro stránkovač, takže to zkuste zkombinovat do sebe. V opačném případě vám kód uvedený níže zobrazí posledních deset článků.
<?php
$nlimit = 10;
$userid=$user->uid;
$query= "SELECT n.created, n.title, n.nid, n.changed FROM node n WHERE n.uid = $userid AND n.status = 1 ORDER BY n.changed DESC";
$result = db_query_range($query,0,$nlimit);
$output .= "
\n";
$output .= node_title_list($result);
$output .= "
";
print $output; ?>
Doporučuju taky kouknout na http://drupal.org/node/35728