realdream képe

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:

    while ($node = db_fetch_object($lekerdezes1))
    {
$datum=$node->utc_date;
$form['checking'][$node->vid] = array('#type' => 'checkbox', '#title' =>$node->availability, );
    }

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

-------------------------------
http://www.realdream.hu

aboros képe

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.

0
0

-
clear: both;

Bálint képe

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.

0
0
sgabe képe

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.

0
0
aboros képe

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

0
0

-
clear: both;

Bálint képe

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

0
0
joco38jp képe

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.

0
0

thx, Jocó

szato képe

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 :)

0
0
Bálint képe

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.
0
0
bazsi255 képe

Köszönöm a a segítséget, sajnos most az a hiba lépett fel hogy tölti be a flasht de semmi nem történik csak tölt egy folytában. Hogy vajon mi lehet a baj flash?
Amit beírtam kód az nem jó?
A flash nevét átírtam header nek és ezt a fájlt bele tettem a téma főkönyvtárában.

<object type="application/x-shockwave-flash" data="<?php print base_path(). path_to_theme(); ?>/header.swf" width="900" height="400" id="header">
              <param name="movie" value="<?php print base_path(). path_to_theme(); ?>/header.swf" />
              <param name="menu" value="false" />
              <param name="quality" value="high" />
              <param name="wmode" value="transparent" />
              <param name="bgcolor" value="" />
              <img src="<?php print base_path(). path_to_theme(); ?>/header.swf" width="900" height="400" alt="" />
</object>
0
0