ninja képe

én úgy csinátam, hogy a képek adminisztrálásakor nem jelenik meg a jobb oldali blokk. sőt az útvonalat is elrejtem.

imhol egy kép róla
itt nincs elrejtve a file neve, viszont linkké formálódik

továbbá érdemes megmutatni az olvasóknak, ha van még kép a 'galériában'.

nálam ilyen a node.tpl.php:

<div class="entry-content">
<?php
if ($teaser == 1) {
	print '<div class="node_images_teaser">';
	print $node->node_images;
	print $content;
	$sql = db_query('SELECT * FROM {node_images} WHERE nid=%d ORDER BY weight', $node->nid);
if (db_num_rows($sql)>1) { 
	print '<span><a href="/node/'.$node->nid.'#mutasd-a-kepeket">Az összes kép megtekintése</a></span>';
	}
if ($node->node_images) {
	print '<br clear="all" />';
	}
	print '</div>';
  }
else {
	print $content;
	print '<div class="node_images_page" id="mutasd-a-kepeket">';
	print $node->node_images;
	print '</div>';
}
?>
</div>

http://alleycat.hu

0
0
vikicica22 képe

Olyat szeretnék a node imagel elkövetni, hogy a szöveghez feltöltöttem 5 db. képet.

A bevezető szövegnél ugye egy kép jelenik, meg utána rá kattintok, hogy a teljes cikket / szöveget el tudjam olvasni akkor a szöveg után, jelenik meg az - az 5 db kép.

Én úgy szeretném, hogy 1 kép ugyanúgy felüljelenjen, meg mint a bevezetőnél és a többi 4 kép pedig lent. Ezt meg lehet valahogyan valósítani?

üdv.: viki

<div class="entry-content">
<?php 
if ($teaser == 1) {    
	print '<div class="node_images_teaser">';    
	print $node->node_images;    
	print $content;    
	$sql = db_query('SELECT * FROM {node_images} WHERE nid=%d ORDER BY weight', $node->nid);
if (db_num_rows($sql)>1) {     
	print'<div class="node_images_text"><a href="/node/'.$node->nid.'#mutasd-a-kepeket">Az összes kép megtekintése</a></div>';    
	}
if ($node->node_images) {    
 
}    
	print '</div>';  }
else {       
    print $content;    
	print '<div class="node_images_page" id="mutasd-a-kepeket">';    
	print $node->node_images;    
	print '</div>';
}
?>
</div>
0
0
Paal képe

<?php
if (!( arg(0) == 'node' && is_numeric(arg(1)) )) {
  return;
}
 
$node = node_load(arg(1));
 
$category = $node->field_category_id[0]['value'];
print t('Products in category @category', array('@category' => $category));
 
$view_name = 'same_product';
$limit = 0; // number of returns
$view_args = array($field_category_id);
$view = views_get_view($view_name);
print views_build_view('embed', $view, $view_args, FALSE, $limit);
?>

A fentire módosítottam, de most újból az összes eddig felvitt terméket legyűjti, mintha nem szűrne az aktuális field_category_id értékére. Ja, a field_category_id az sima Text beviteli mező, mert nem 100%, hogy csak számok lesznek benne. Ez gond? ... && is_numeric(arg(1)) ....

Köszi, Pali

0
0

--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan

aboros képe

nem a .tpl.php -t feltúrni, hanem szépen az előfeldolgozóba újraépíteni a $content.

kb így gondoltam:

function playground_preprocess_node($vars) {
  $node = $vars['node']; #lusta aboros
  if (isset($node->field_image[0])) {
    $newcontent = '<div class="nodebody">' . $node->content['body']['#value'] . '</div>';
    $newcontent .= '<div class="images">';
    foreach ($node->field_image as $key=>$image) {
      $newcontent .= '<div class="image">' . $image['data']['view'] . '</div>';
    }
    $newcontent .= '</div>';
    $vars['content'] = $newcontent;
  }
}

persze ennél sokkal kifinomultabban is lehet, ez csak az irányt mutatja.

ettől a $content -be két div lesz, egyik a .nodebody másik meg az .images, azon belül .image divekbe vannak a képek, amik úgy jelennek meg, ahogy azt a cck admin felületén te beállítod a display fields fülön. oda floatolsz, ahova akarsz.

0
0

-
clear: both;

gdavid képe

köszönöm szépen sok jó ötletet kaptam most. sajna nekem a végére nem szerencsés beillesztenem, mert sok függvénynek nálam nem csak hogy van egyéb paramétere (/oldal/2?ize=valami) hanem az arg-ok nem fixek, tehát van ami csak 2 van ami viszont 5 hosszúságú. Tudom akkor lehetne a tömböt shift-elni...

lehet, hogy nem ennyire elegáns amit végül is kiötöltem, de azért leírom,

en csináltam egy modult ami figyeli, hogy van-e az elején pop, ha van akkor kiveszi belőle, és egy globális változót átállít.

pop.module

function pop_menu() {
  $items['pop']=array(
   'access callback'=>TRUE, 
   'page callback'=>'pop_itup',
   'type'=>MENU_CALLBACK, 
   'weight'=>-99,
  );
  return $items;
}
 
function pop_itup() {
  global $_GET, $pop_path,$popit;
  $popit=1;
  $pop_path= "pop/";
  $_GET['q']= substr($_GET['q'],4);
	$return = menu_execute_active_handler($_GET['q']);
  return $return;
}

a page.tpl.php -ben pedig figyelem ezt a globális - $popit - változót és nem jelenítem meg azokat, amik nem kellenek, mert sajna a header meg a többi kell, különben elég lenne a theme('box',$output)

már csak egy gondom van vele, hogy szeretném ha az l függvényt meghívom ebben a pop-os környezetben akkor tegye be a /pop -ot a link elejére.

0
0
aboros képe

ne node id legyen az argumentum, hanem maga a node reference mező legyen az és a provide default típusa ne node id from url legyen, hanem php code, ahol figyeled, hogy éppen node oldalon vagyunk e, ha igen akkor milyen típusú a node, ha település, add vissza a node id -t, ha nem település, akkor szedd ki a hivatkozott település idjét a mezőből és add vissza azt.

kb:

if (arg(0) == 'node' && is_numeric(arg(1))) {
  $node = node_load(arg(1));
  if ($node->type == 'telepules') {
    return array($node->nid);
  } else if (isset($node->field_telepules[0]['nid'])) {
    return array($node->field_telepules[0]['nid']);
  } else {
    return FALSE;
  }
} else {
  retun FALSE;
}

persze nem tudom hogy hívod a dolgaidat, szóval ez csak egy vázlat, ami az elvet mutatja, de szerintem te ez alapján már vígan megoldod. kérdezz, ha mégse.. ;)

0
0

-
clear: both;

Jenő képe

Tedd ezt a kódot a template.php fájlba (ha nincs benne), csak a <?php és ?> közötti részt:

function SMINKEDNEVE_preprocess_node(&$vars, $hook) {
  switch ($hook) {
    case 'node':
      if ($vars['page']) {
        $vars['template_files'] = array('node-default-page', 'node-'. $vars['node']->type .'-page', 'node-'. $vars['node']->nid .'-page');
      }
      else {
        $vars['template_files'] = array('node-'. $vars['node']->nid);
      }
    break;
  }
}

A SMINKEDNEVE részt módosítsd a sminked nevére :).
Hozz létre egy node-[nodeID].tpl.php fájlt a sminked könyvtárába. A nodeID a node azonosítója, amit a tartalom listázásánál meg tudsz nézni úgy, hogy az adott tartalom fölé viszed az egeret, a node/ utáni szám a nodeID.

A node-[nodeID].tpl.php fájlba másold át a node.tpl.php fájl tartalmát, utána töröld ki a címre hivatkozó részt és ürítsd a caches-t.

Ha minden igaz, akkor a cím eltűnik az adott tartalom elejéről a kezdőoldalon.

0
0
Paal képe

Kell a settings.php-ba ez (hisz le van írva!):

$conf['i18n_variables'] = array(
  'menu_primary_links_source',
  'menu_secondary_links_source',
);

Bővebb változat (INSTALL.txt):

  $conf['i18n_variables'] = array(
    // Site configuration
    'site_name',
    'site_slogan',
    'site_mission',
    'site_footer',
    'anonymous',
    // Node help
    'blog_help',
    'story_help',
    // User configuration
    'user_registration_help',
    'user_mail_welcome_subject',
    'user_mail_welcome_body',
    'user_mail_approval_subject',
    'user_mail_approval_body',
    'user_mail_pass_subject',
    'user_mail_pass_body',
    // Primary and secondary links
    'menu_primary_menu',
    'menu_secondary_menu';
    // Theme settings. This is an 'all or nothing' for each theme
    // This is for 'garland' theme, for other theme it would be 'theme_[themename]_settings'
    'theme_garland_settings',
  );

Utána kapcsold be a nyelvválasztó blokkot.
Menj a "Webhely információk" oldalra (hu/admin/settings/site-information alapértelmezetten). Ki fogja írni magyarul a beállításokat.
A nyelvválasztó blokkban válaszd ki az angol nyelvet. U.ezt a tartalmat kapod, de már en/admin/settings/site-information útvonalon.
Írd át pl. a "Küldetés" részt valami másra. Mentsd el, és navigálj a kezdőoldalra (persze legyen bekapcsolva a témában a "Küldetés" megjelenítése).
Válts magyar nyelvre. A magyar Küldetés szöveg jelenik meg.
Válts angolra, akkor pedig az angol "Mission" fog neked megjelenni.

A lényeg, hogy a settings.php-ban megadott nyelvfüggő változókat akkor tudod elérni, ha a nyelvet megváltoztatod.

Pontosan u.így kell eljárni menük esetében is.

Rengeteget szívtam, mert egyszerűen nem jöttem rá (pedig le is volt írva), hogy át kell váltani a nyelvet, hogy az adott nyelvű tartalmakat módosítani tudd.

Üdv, Pali

0
0

--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan

aboros képe

nyilván egy li -ben van a két mező, mert ugyan ahhoz a nodehoz tartozik, a nézet pedig "node alapú" vagyis a "sorok" nodeonként keletkeznek.
de ez miért is baj?

szeretnéd ha úgy _nézne ki_ mint egy lista? ezt cssel könnyedén elérheted.
vagy rettenetesen fontos, hogy li elem legyen mindenképpen, mert szemantikailag az a korrekt?

több megoldást is el tudok képzelni. ha csak a kinézet miatt akarod listába, csináld meg cssel. a views tplek felépítése nem biztos, hogy engedni fogja, hogy ott elvégezd ezt a módosítást. talán azt kéne, hogy a második mezőnél bejelölöd, hogy a kimenet felülírása és gyalog te odavarrod, hogy ul li[egyik mező tokenje]/li li[másik mező tokenje]/li /ul.. esetleg nézd meg a semantic views modult, talán az is tud ilyen mezőösszevonásokat.

vagy (ezért most lehet megköveznek, de sebaj)
csinálj egy blokkot, aminek php a beviteli formája és abba tegyed ezt a kódot vagy valami ilyesmit. így kiesik a views a képből, erőforrást spórolsz.

<?php
if (arg(0) == 'node' && is_numeric(arg(1))) {
  $node = node_load(arg(1));
  if ($node->type == 'dolgozat') {
    $items[] = $node->field_thesis_author_org[0]['value'];
    $items[] = $node->field_thesis_creation_year[0]['value'];
    print theme('item_list', $items);
  }
}
?>

rakhatod ezt persze egy saját modulba is vagy olyan trükköt is csinálhatsz, hogy van egy üres blokkod és a tempalte_preprocess_block -ban id alapján ezzel a kóddal írod felül az alapból üres $block->content. ;)

0
0

-
clear: both;