beszuras cck mezok koze..

kissa képe

Sziasztok!
Egy kodot szeretnek beilleszteni ket cck mezo koze, de a node.tpl.php -ben ezek mind a $content -hez tartoznak. Van erre lehetoseg?
a.

Drupal verzió: 
Fórum: 
vorvor képe

A template file-ban eléred a $node objektumot, és azon keresztül mezőnként a cck tartalmakat. Ha engedélyezed a devel modult, és kiadod a template-ben a dpm($node) parancsot, át tudod nézni, milyen formában tartalmazza a $node ezeket az adatokat .

0
0
kissa képe

...hogy ott kell alkotni valamit, de meg csak most ismerkedek az elofeldolgozoval, ugyhogy a modjat egyelore nem nagyon tudom...
a gyari sminkneve_preprocess_node() fuggvenyt kapcsoljam be, vagy mast?!
egy egyszeru szemlelteto peldatol szerintem megvilagosodnek :) (zent hasznalok)
a.

0
0
vorvor képe

a preprocess függvényben egy változót tudsz létrehozni értékkel, amit aztán megjeleníthetsz a template-ben.
ha pontosabban leírod, mit akarsz, akkor többet tudok segíteni.
a node megjelenítésekor két cck mező között akarsz valamit megjeleníteni scriptből? mit csinál a script? mit állít elő?

0
0
csg képe

Több módja is van. Ha tudnánk, milyen kódot akarsz beszúrni, könnyebben adnánk megfelelő tanácsot.

Egy lehetőség mindenesetre az is, ha egy saját modul hook_nodeapi() függvényében a "view" esetnél hozzáadod a kívánt dolgokat a node objektumhoz a megfelelő weight-tel ellátva.

0
0

--
Csonka Gergely
http://cheppers.com

kissa képe

a kovetkezo a helyzet:
van egy tartalomtipusom ami tartalmaz tobb cck mezot is, de a lenyeg, hogy ket mezo koze kene beszurnom egy nezetet, amit a node.tpl.php-ban igy meghivva mukodik is:
print views_embed_view('calendar1', 'calendar_block_1', $node->nid);
A problema ott van, hogy ezt itt csak a $content ele vagy utan tudom berakni. A hozzaszolasokat atnezve kulonbozo temakbol addig jutottam, hogy a template.php-val kellene eloallitani a modositott $content tartalmat, amibe belekerulne a fenti kod, de meg nem tudom hogyan megy ez a gyakorlatban...
a.

0
0
csg képe

A Viewfield modul segítségével egy view tartalmát be lehet szúrni CCK mezőként.
http://drupal.org/project/viewfield

0
0

--
Csonka Gergely
http://cheppers.com

kissa képe

..a teaserben is meg kell hogy jelenjen, es igy nem kapja meg a nezet a argumentumkent a node azonositot, csak ha kezzel hivom meg.
sajnos

0
0
aboros képe

azt csinálnám, hogy az egyik mező előfeldolgozójába pakolnám a mező tartalmához.
http://img.skitch.com/20101122-mt8hjx59drctgrbc1jppxrgty6.jpg

nagy vonalakban ez úgy néz ki, hogy a sminkedben van:
template.php

<?php
function playground_preprocess_content_field(&$vars) {
  $vars['field_postfix'] = 'most varrtam ide ezt';
}
?>

content-field.tpl.php:

<?php if (!$field_empty) : ?>
<div class="field field-type-<?php print $field_type_css ?> field-<?php print $field_name_css ?>">
  <?php if ($label_display == 'above') : ?>
    <div class="field-label"><?php print t($label) ?>:&nbsp;</div>
  <?php endif;?>
  <div class="field-items">
    <?php $count = 1;
    foreach ($items as $delta => $item) :
      if (!$item['empty']) : ?>
        <div class="field-item <?php print ($count % 2 ? 'odd' : 'even') ?>">
          <?php if ($label_display == 'inline') { ?>
            <div class="field-label-inline<?php print($delta ? '' : '-first')?>">
              <?php print t($label) ?>:&nbsp;</div>
          <?php } ?>
          <?php print $item['view'] ?>
        </div>
      <?php $count++;
      endif;
    endforeach;?>
  </div>
  <?php if (!empty($field_postfix)) : ?>
    <div class="field-postfix">
      <?php print $field_postfix; ?>
    </div>
  <?php endif; ?>
</div>
<?php endif; ?>

ez utóbbit nem mind mi írtuk persze (halleluja;) hanem az originált (lelestük a devel_themerrel) kimásoltuk a cck/theme mappából és csak kicsit írtunk hozzá, ezt a rész:

  <?php if (!empty($field_postfix)) : ?>
    <div class="field-postfix">
      <?php print $field_postfix; ?>
    </div>
  <?php endif; ?>

ez az általános megoldás minden cck meződ mögé odapakolja majd az "ezt most varrtam ide" sztringet. próbáljuk ki, hogy így már meg tudod e csinálni, hogy csak az egyik mezőhöz varrjon hozzá. (vagy ha megmondod a pontos mezőneveket és nézetnevet, idt, megírom neked a pontos kódot is, de abból keveset tanulsz;)

0
0

-
clear: both;

kissa képe

Eddig mukodik, minden mezo utan odavarta a sztinget!
Arra gondoltam, hogy a content-field.tpl -t atirom content-field-sajatmezom.tpl -re, de nem jott be. Ilyenkor a template.php-ban a fuggveny nevet is at kell irni egyedire?
Lassan de biztosan, elobb utobb kesz lesz ;) egyebkent eddig is tok sokat tanultam Toletek! Koszi!

0
0
kissa képe

mukodik, az eredeti content-field.tpl -nek is ott kell lenni a smink konyvtarban, ezen mindig elcsuszok, de most mar csak megtanulom :)
amugy ez a megoldas, vagy kodbol is lehet?
a.

0
0
pp képe

1. viewfield ami ugye a kattintgatós felület(gyanítom van olyan lehetőség, hogy az adott node, – amibe beszúrtad a nézetet – legyen az argumentum)
2. smink amit Boros Preprocess Ádám mutatott be
3. Lehet még a hook_nodapi hookjában view opjában is a $content változóba beletenni azt amit akarsz megfelelő súllyal, a viewfiled is ezt csinálja.
4. írsz saját cck mezőt, ami felesleges, hisz van viewfield
5. stb

0
0
szantog képe

Még 1, és szerintem a legegyszerűbb: views_attach, ezzel a block és page nézethez hasonlóan nézettípust tudsz létrehozni, paraméterezni, hogy honnan szedje az argumentumokat, melyik nodetype, milyen bulid modeján jelenjen meg. És a cck mezőknél lehet ugyanúgy húzigálni a becsatolt nézetet

0
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.