zászlókat lehet vele létrehozni :)
amiket aztán tartalmakra vagy felhasználókra lehet ragasztani. később ez alapján a zászló alapján viewsal ilyen-olyan szűréseket lehet csinálni. akár argumentumként is lehet használni vagy relationshipként is.
ebben az esetben pl kellene egy zászló, hogy "ez a leírás hasznos". ezt a zászlót minden felhasználó maga rakhatná a nodera. mondjuk egy feature lehetne ezután, hogy megjelenítek egy blokkot, ami azokat a felhasználókat mutatja, akik szerint szintén hasznos ez a node. vagy egy másik display lehetne, hogy olyan nodeokat mutatok, amik olyan felhasználók szerint hasznosak, akik szerint ez is hasznos. :) vagy még ezer meg egy dolog lehetséges.
lehet kigondolok majd egy általánosabb esetet, aztán csinálok egy gyors screencast, bár a node reference » views relationships az most éppen égetőbbnek tűnik.
még kézzelfoghatóbb példa: d.hu -n lehetne egy zászló, amit a forum nodeokra lehet rakni, de csak a node tulajdonosa rakhatja rá a zászlót: 'megvan a megoldás' .. ezután a tracker egyedi szűrés oldalán lehetne egy plusz opció: 'csak azokat mutasd, amikre van megoldás' (ez a funkció egyébként tervben van, készül is, csak idő, idő idő)
másik kézzelfogható, hogy még egy zászlót felveszek, amit pedig fórumtémára érkezett hozzászólásokra lehet adni, 'ez egy helyes megoldás'. ezt szintén a téma tulajdonosa rakhatná a beérkezett megoldás-javaslatokra.. ezután lehetne mondjuk egy olyan fül a felhasználók profilján, hogy 'aboros helyes megoldásai: 42db' és szépen fel vannak sorolva a helyes megoldások, linkekkel, miegyéb.
további életszerű d.hu példa: rég áhított funkció a 'témakövetés', vagyis hogy anélkül tudj egy témát követni, hogy hozzá kéne szólnod. mi sem egyszerűbb, kell egy zászló: 'követem ezt!' .. és kell egy nézet, ami olyan nodeokat mutat, amikre rárakta emberünk ezt a zászlót. vagy a 'látnom kell' fület kiegészítjük, hogy olyan nodeokat is mutasson, amiken van ez a zászlója adott usernek.
még további életszerű példa: 'érdekelnek a dolgai' zászló, amit userekre lehet rakni. tegyük fel, nagyon érdekel pp minden hozzászólása, mert mindig lehet belőle valami újat tanulni. akkor ppre rakok egy 'érdekelnek a dolgai' zászlót, így a 'kedvenc felhsználóim tartalmai' oldalon mindig megjelenne nekem minden, amit pp küld be vagy hozzászólt.
mondom, ezerféle alkalmazása lehetséges, nagyon hasznos, igen absztrakt modul. érdemes játszadozni vele.
-
clear: both;
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
View template
Találsz viszont olyan mezőt, hogy Tartalom: Nid. Add hozzá ezt, ez már majdnem jó neked, hiszen minden node-nak az elérési útvonata a node/[nid].
Szóval kicsit módosítani kell a template-ben, mondjuk így:
Hozz létre egy fájlt a sminked mappájában views-view-field--nid.tpl.php néven, majd írd bele ezt:
<?php print 'node/' . $output; ?>
Ha linket szeretnél belőle, akkor így csináld:
<?php print l('node/' . $output, 'node/' . $output); ?>
Ezt a template-fájlt egyébként többféleképpen is elnevezheted. A view-nál a Basic Settings-ben legalul lévő Theme Information rész ad neked erről bővebb infót. Jelen esetben egy field-et szerettünk volna sminkelni, és ezzel a névadással az összes view összes ilyen nevű mezőjére ki fog hatni ez a template. Ezt természetesen tetszőlegesen tudod szűkíteni.
Ha létrehoztad a fájlt, akkor ürítened kell a smink regisztrációs tárat. Ezt megteheted úgy, hogy a Webhely építés >> Sminkek oldalon mentesz egyet, vagy ha Admin menu-t használsz, akkor a bal oldalt lévő favikon mögött rejtőzik egy ilyen lehetőség.
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
mégis van rá mód
Ezen téma kapcsán felfigyeltem egy view_unpublished nevű modulra. Letöltöttem és meglestem a kódot, hogy mégis hogyan...
<?php /** * Implementation of hook_menu_alter(). * * Modifies the path node/nid to use our access callback. */ function view_unpublished_menu_alter(&$items) { $items['node/%node']['access callback'] = '_view_unpublished_node_access'; $items['node/%node']['access arguments'] = array(1); } ?>
Ezzel a hurokkal módosítja a menüt, hogy először a saját modul ellenőrizze a jogosultságokat és ha nem kielégítő az eredmény (FALSE) csak akkor dobja oda a node modulnak.
Ezen az úton elindulva szerintem megoldható amit szeretnél.
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
a régiók már nem léteznek a node.tpl.php -ban
a régiók az "oldal" részei. egy "oldal" (teljes oldal fejléccel, oldalsávokkal, lábléccel, tokkal, vonóval) a page.tpl.php -ban áll össze. ott van a html, head, perhead, body, perbody, pehtml. másképp fogalmazva, egy klasszikus html "oldalt" a page.tpl.php "ír ki".
a node.tpl.php egy darab node megjelenéséért felel, ott régiók már nincsenek.
ha egy blokkot szeretnél a node címe és a törzse közé pakolni, akkor én azt csinálnám, hogy a template_preprocess_node -ban hívnám a module_invoke -al a block.module hook_block -ját, ami visszaadná a blokkomat. ez nem egy string lesz, de tegyük fel, hogy a visszatérésből a $block->content részt a $variables['enblokkom'] -ba pakolnám, aztán a node.tpl.php -ban a print $title és a print $content közé raknám az:
<?php if (isset($enblokkom)): ?> <div id="enblokkom"> <?php print $enblokkom; ?> </div> <?php endif; ?>
snippet.
tulajdonképpen ezzel egy új $enblokkom változót tettem elérhetővé a node.tpl.php számára, amiben a blokkom "törzse" lesz.
nagy vonalakban. próbáld ki, ha nem megy, írd le mit próbáltál és mi a hibajelenség.
(drupal 7 -ben sokkal könnyebb lesz már mindez ;)
-
clear: both;
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
Én így csinálnám
A smink template.php-jában elkészíteném az alábbi függvényt:
<?php function SMINKNEVE_preprocess_node(&$vars) { if ($vars['node']->type == 'group') { $vars['my_block'] = views_embed_view('view-name', 'block-1'); //* } } ?>
Majd lemásolnám a node.tpl.php tartalmát egy node-group.tpl.php nevű fájlba, és a megfelelő helyre beírnám:
<?php print $my_block; ?>
(Smink regisztrációs tár ürítés szükséges.)
*: A 'view-name' itt a view neve lesz természetesen. A 'block-1' pedig a display neve. Ha ez az első blokk típusú display, amit létrehoztál, akkor 'block-1'.
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
Eddig semmi
Köszönöm a segítséget! Megpróbáltam kiszedtem az engine = phptemplate sort, ez nem vált be.
Kiegészítettem az info fájlt, most így néz ki:
name = proba
description = bluefun alapú alsmink
core = 6.x
engine = phptemplate
base theme = bluefun
stylesheets[all][] = proba.css
stylesheets[print][] = print.css
scripts[] = scripts.js
regions[left] = Left sidebar
regions[right] = Right sidebar
regions[content] = Content
regions[header] = Header
regions[footer] = Footer
; Information added by drupal.org packaging script on 2009-08-07
version = "6.x-1.x-dev"
core = "6.x"
project = "bluefun"
datestamp = "1249646809"
megvan a page.tpl-ben a régió is,
<?php if ($right) { ?><div id="rightCol"> <div class="inside"> <?php print $right ?> </div> </div><?php } ?> </div>
de mégsem működik.
Észre vettem a webhelyépítés blokkok beállításnál, hogy megvan a jobb és bal oldalsáv, viszont a listában sincs sehol a navigáció és a belépés menü. Tehát nem csak nem jelenik meg, hanem olyan, mintha nem lenne létrehozva. Viszont ha a szülő sminket állítom be alapértelmezettnek, akkor újra minden a helyére kerül.
thx, Jocó
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
debug_backtrace()
Ha minden tartalom létrehozásnáll előjön a probléma, akkor azt kell kideríti, hogy mi okozza ezt. Hogy volt 1 fake user regisztrálás, vagy hogy full html-e a bevitel az nem teljesen ide vág szerintem. Tehát egyik módszer:
felteszed a developer module-t, majd módosítod a modules/user/user.module fájl (persze előtte másolatot készítesz) user_save fgv-ét, mégpedig beírod az első sorába:
dpm(debug_backtrace());
Elédobhatsz egy IF-et is (gobal $user; if ($user->uid == 1) {...}) ha nem akarod hogy minden szerkesztő is kapjon ilyen jelentést, vagy watchdog-ba is írhatod.
Ezután létrehozol egy említett tartalmat és átnézed a jelentést amit kapsz. Vszínű vmi module meghívja a user_save-t. Tehát ilyesmit keress:
'function' => 'user_save'
Ha van ilyen, akkor fél siker, a tömbön belül lesz egy 'file' és egy 'line' - és el is kaptad mi, hol hívta meg! :)
Másik módszer: egyenként kikapcsolod a feltett moduljaid, hasra ütés/gyanú sorrendben :) és figyeled melyik kikapcsolása után tűnik el a hibajelentés.
Ui:sőt, most látom hogy a devel-ben van ddebug_backtrace(). Én is tanulok :)
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
Ez normális
nodereference.module, 876. sor:
<?php // We do need title field, so add it if not present (unlikely, but...) $fields = $view->get_items('field', $display); if (!isset($fields['title'])) { $view->add_item($display, 'field', 'node', 'title'); } ?>
Tehát maga a Node Reference modul adja hozzá a mezőkhöz a node title-t, mert valamiért szüksége van rá. (Elég furcsa, hogy neked nagyon egyforma címeid vannak, de te biztos tudod az okát.)
Most nincs időm kipróbálni, de szerintem az működhet, hogy te magad hozzáadod a mezőkhöz a node title-t, majd kizárod a megjelenítésből.
- A hozzászóláshoz regisztráció és bejelentkezés szükséges





Pl. heti naptár és
Ha kétszer kell futtatni az sql lekérdezést, az lassítja, ezt akarom elkerülni.
Pl. heti naptár és időpontokra lehet jelentkezni checkbox-ok bejelölésével.
a, ..._form(): Sql lekérdezés leválogat pl. vid, időpont, nap neve, esemény neve... tehát meghatározza a form elemeket amiket be lehet jelölni:
b, theme_..() a témában ezeket a megfelelő napokhoz és a megfelelő órához kell kiírni egy táblázatban, hogy vigyem át a form elemhez tartozó nap nevét és időpontját?
-------------------------------
http://www.realdream.hu