Články uživatele

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

Fórum: 

Reklama

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

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

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.

kolem node dejte složené závorky, jako je to v prvním kódu

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Supr! Funguje to! Díky moc!
A poradíte ještě jak tam přidám ten pager? Nebo stačí odkaz na stránku se všemi články danýho uživatele.

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

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

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;
?>

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Pořád mi to ukazuje u uživatelů, kteří článek namají ... tedy pořád stejný.

tak dejte do podmínky místo tohoto
if ($output2):
toto:
if ($result1):

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Pořád stejný..

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

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Přidat komentář