Csináltam egy blogbejegyzéseket megjelenítő nézetet. A fejlécében megjelenítettem a blogger modul által generált táblázatot az alábbi blogger.module fájlból kihalászott kóddal:
<?php { $maxdisp = 25; $shownum = variable_get("blogger_shownum", 0); $blogger_order = variable_get("blogger_order", 0); $blogger_case = variable_get("blogger_case", 0); $blogger_avatar = variable_get("blogger_avatar", 0); $blogger_avatar_width = variable_get("blogger_avatar_width", 0); $blogger_avatar_height = variable_get("blogger_avatar_height", 0); $sql_counts = " SELECT DISTINCT (u.name)" ." FROM {users} u" ." INNER JOIN {node} n ON n.uid=u.uid" ." WHERE u.name<>'' AND n.type='blog' AND n.status=1" ; $dse_sql_counts = db_query($sql_counts); $cnt_sql_counts = db_num_rows($dse_sql_counts); $sql_counts = "SELECT $cnt_sql_counts"; $sql = " SELECT n.uid, u.name, count(u.name) AS numitems, u.picture, n.title " ." FROM {node} n " ." INNER JOIN {users} u ON u.uid = n.uid " ." WHERE n.type = 'blog' AND n.status=1 " ." GROUP BY n.uid" .($blogger_order<>0 ? " ORDER BY " : "") .($blogger_order==1 ? "u.name" : "") .($blogger_order==2 ? "numitems DESC, u.name" : "") ; $sql = db_rewrite_sql($sql); //$results = pager_query($sql, 1, 0, $sql_count, COMMENT_PUBLISHED, $uid, $uid); $results = pager_query($sql, $maxdisp, 0, $sql_counts); $i=1; while ($node = db_fetch_object($results)) { //l($node->title, "node/$node->nid") .' '. theme('mark', node_mark($node->nid, $node->changed)), switch ($blogger_case) { default: case 0: break; case 1: //smallcase $node->name = strtolower($node->name); break; case 2: //uppercase $node->name = strtoupper($node->name); break; case 3: //Wordcase $node->name = ucwords($node->name); break; } //Latest blog $sql = " SELECT n.title, nid " ." FROM {node} n " ." WHERE n.uid = '$node->uid' AND n.type='blog' AND n.status=1" ." ORDER BY n.created DESC" ." LIMIT 1" ; $latest_blogs = db_query($sql); $latest_blog = db_fetch_object($latest_blogs); // if (($blogger_avatar) AND ($node->picture<>"")) { $blogger_img = base_path().$node->picture; $showpict = "<img src='$blogger_img' align='center'" .($blogger_avatar_width<>0 ? " width=$blogger_avatar_width " : " ") .($blogger_avatar_height<>0 ? " height=$blogger_avatar_height " : " ") ."></>"; } else { $showpict = ""; } // if (!$blogger_avatar) { $rows[] = array( l($node->name, "blog/$node->uid"), $node->numitems, l($latest_blog->title, "node/$latest_blog->nid") ); } else { $rows[] = array( l($node->name, "blog/$node->uid"), $node->numitems, l($latest_blog->title, "node/$latest_blog->nid"), "$showpict" ); } } if (!$blogger_avatar) { $header = array( t('Name'), t('Numbers of Blogs'),t('Latest Blog') ); } else { $header = array( t('Name'), t('Numbers of Blogs'),t('Latest Blog'), t('Avatar') ); } $output = '<div id="blogger">'; $output .= theme('table', $header, $rows); $output .= theme('pager', NULL, $maxdisp, 0); $output .= '</div>'; return $output; } ?>
Ez működik, megjelenik a táblázat a fejlécben, de eltünteti a pagert, ami kéne (be van jelölve a "Lapozó használata"). Mit kell változtatnom a kódon, hogy ne tüntesse el a pagert?
Fórum:
inkább Views-ban
A Blogger tünteti el a Views pagerét, vagy a Views a Bloggerét? Egyébként mindegy: a Views pont az ilyen Blogger-szerű modulok leváltására van kitalálva. Ugyanezt a táblázatot el tudod készíteni Views-ban is, és egyszerűbb lesz az életed :)
pager
Ja igen, a Views pager sok mindennel nem kompatibilis, többek között a Views egyes funkcióival sem :)
(Pl. $offset értéket csak akkor tudsz használni argumentumként, ha ki van kapcsolva a pager, stb.)
Mezők
Kifejtenéd milyen mezőket használjak az elkészítéshez? Kellene egy sorban felhasználó neve, blogbejegyzéseinek száma, legutóbbi blogbejegyzése és képe. Magamtól még nem jöttem rá, hogyan valósítsam meg.
Kevered a fogalmakat!
Minek használsz views-t ha nem használod???
Ezt a kódot egyszerűen nyomd bele egy sima oldalba és állítsd be a php bevitelt. Ez a lehető legnagyobb gányolás persze, ennél már csak az lenne a nagyobb, ha belenyomnád egy views fejlécébe és a views beállításainál - aminek semmi köze ehhez a lekérdezéshez - nyomkodnád a pager beállítást. :D
Nem is értem, hogy minek neked a views? (és miért nem jó a blogger modul, ha már úgy is onnan másoltad ki, lehet csak sminkelni kéne és jónapot)
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
szerző node-jainak száma?
Ő 2 nézetet akar 1 oldalra. Tehát fent a Blogger-szerű táblázat, alatta pedig a blogbejegyzések listája, ez utóbbit már elkészítette Views-zal.
Egyébként azt hiszem, nincs olyan az alap Views-ban, hogy adott szerző node-jainak a száma... Lehet, hogy nem lehet megkerülni a lekérdezés megírását.
Akkor viszont tényleg egyszerűbb, ha oldalba beszúrja a Blogger kódját, alá pedig meghívja a nézetet, vagy Insert View modullal beilleszti: