A friss blogbejegyzések listájának hosszát meg lehet adni

Közszolga képe

Kerestem megoldást arra a problémára, hogy a friss blogbejegyzések listája blokk alapértelmezésben tíz bejegyzést tartalmaz és ezt nem lehet változtatni (mint pl. az új fórum témák esetében). Azt hiszem a Drupal.com-on láttam erre megoldást php kód módosítással, de van egy laikusok számára kezelhetőbb mód is:

A blogok oldalt (/blog/feed) be kell venni a hírolvasóba új csatornaként. Ekkor automatikusan létrejön egy blokk, ami gyakorlatilag egyenértékű a friss blogbejegyzések blokkal - ennél viszont már be lehet állítani, hogy hány új tartalmat mutasson.

Mivel a hírolvasó csak a legfrissebb tartalmakat mutatja, a blokk először nem tartalmaz semmit és csak akkor éri el a kívánt számú bejegyzést, ha összegyűlik annyi új tartalom, ami kitölti.

SzeFe képe

Nekem ugyanez a problémám a "Friss hozzászólások"-kal is és a "Friss blog bejegyzések"-kel is.

Lenne rá egyszerű megoldás??????

0
0
aboros képe

friss hozzászólások
a /modules/comment/comment.module -ban van egy ilyen függvény.
ezt az egész függvényt másold át a sminked template.php -filejába.
ha megnézed a függvényt, hív egy ilyet, hogy comment_get_recent() .. ha megkeresed ezt a függvényt a comment.module -ban, láthatod, hogy egy argumentumot lehet neki adni, ami alapértelmezésben 10 (tehát ha nem adsz át neki egy számot, akkor 10 kommentet ad vissza)...

tehát, a sminked template.php -jában van egy másolata a theme_comment_block() -nak, ami így néz ki (én a példában most 50 hozzászólást akarok és a sminkem neve 'playground')

function playground_comment_block() {
  $items = array();
  foreach (comment_get_recent(50) as $comment) {
    $items[] = l($comment->subject, 'node/'. $comment->nid, array('fragment' => 'comment-'. $comment->cid)) .'<br />'. t('@time ago', array('@time' => format_interval(time() - $comment->timestamp)));
  }
  if ($items) {
    return theme('item_list', $items);
  }
}

hogy hasson is, újra kell építened a theme registry -t is!

friss blogbejegyzések
a blog modul sajnos nem ilyen okosan csinálja a blokkot, ezért három megoldás lehetséges:
1. /modules/blog/blog.module 201. sort erre módosítod (például 50 blogbejegyzést akarok)

$result = db_query_range(db_rewrite_sql("SELECT n.nid, n.title, n.created FROM {node} n WHERE n.type = 'blog' AND n.status = 1 ORDER BY n.created DESC"), 0, 50);

ez core hacknek minősül, úgyhogy ne csináld! (bravó, akkor minek ajánlgatod maki??)

2. views modullal saját blokkot hozol létre és azt használod, nem a blog modul blokkját

3. saját modult írsz, ami megvalósítja a blokkodat. (ez lenne a legjobb megoldás, feltéve, hogy eddig nem használtál viewst, mert csak emiatt feltenni nem éri meg)

0
0

-
clear: both;

nevergone képe

Akár Views -sel is felülbírálható az eredeti oldal.

0
0