vidra képe

Készítettem egy külön tartalomtípust, majd ebből a felesleges mezőket kitöröltem, mert úgyse lesz rá szükségem (egyenlőre).

A template.php-ba beszúrtam ezt a függvényt:

  function typebased_process_page(&$variables) {
  // Add theme suggestion for all content types
  if (isset($variables['node'])) {
    if ($variables['node']->type != '') {
    $variables['theme_hook_suggestions'][] = 'page__node__' . $variables['node']->type;
    }
  }
}

Majd az adott tartalomtípus nevével készítettem egy template fájlt: page--node--tartalomtípusneve.tpl.php

És végül így kiirattam a tpl-ben a az adott nézet adott blokkját:

<?php print views_embed_view($name = 'nezetneve', $display_id = 'blokknev');?>

Igaz ez csak egy egyedi oldalhoz jó, de ez nekem pont elég most.

0
0
aruna képe

megoldás, hogy a tartalom alá vagy fölé rakom ki blokként a formot. Ekkor a szerkesztő tudja szerkeszteni az oldal szövegét továbbra is. Hátránya, hogy ezzel a módszerrel nem tudom berakni az oldal szövegén belülre a formot.

/**
 * Implementation of hook_block_info().
 */
function modulodneve_block_info() {
  $blocks['blokk-azonositod'] = array(
    'info' => t('...'),
  );
  return $blocks;
}
 
/**
 * Implementation of hook_block_view().
 */
function modulodneve_block_view($delta='') {
  $block = array();
  switch ($delta) {
    case 'blokk-azonositod':
      $block['subject'] = t('Blokk címe');
      $block['content'] = drupal_get_form('form_generalo_fuggvenyed');
      break;
  }
  return $block;
}
2
0
szantog képe

Ebből kiindulva: http://drupalcode.org/project/colorbox_node.git/blob/refs/heads/7.x-3.x:...
kéne legyen egy settings page, ahol az Enable Regions be van pipálva.

A fenti legyen B terv, sokkal valószínűbb, hogy az urlképzés nem jó:
<a class="colorbox-node init-colorbox-node-processed-processed cboxElement" href="https://tegyjot.hu/adatgyujtes?width=300&amp;height=150"><img alt="" src="https://tegyjot.hu/sites/default/files/icons/calc.png" style="height:64px; width:64px"></a>

ilyennek kéne lennie:
<a class="colorbox-node init-colorbox-node-processed-processed cboxElement" href="https://tegyjot.hu/colorbox/adatgyujtes?width=300&amp;height=150"><img alt="" src="https://tegyjot.hu/sites/default/files/icons/calc.png" style="height:64px; width:64px"></a>

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

Lenyiló-összecsukó "menü"

lili_ képe

D5 alatt fejlesztek egy oldalt, íme:

http://php-dev.infocsop.dote.hu/drupaltanulo5/emberek/szervegyseg/310

készítettem hozzá egy ilyen összecsukós-lenyitós részt, de nem igazán értek css készítéséhez.
Hogyan tudom megoldani h alapállapotban zárva legyen, csak ha rákattintok akkor jelenjenek meg a gyerekelemek.

a modulomban így néz ki ami az adatbázisból előállítja a hierarchikus szerkeszetet.

/*szervezeti egységek lekérdezése*/
function emberek_jelen($szulo, $szint){
 $html = "";
Fórum: 
Drupal verzió: 
Hojtsy Gábor képe

A Drupal 5.2-ben pont az itt problémás rész is törlésre került a kódból. Hogy miért, azt fel lehetne kutatni a CVS naplókból, ha bővebben érdekel. Ez a kód okozza a problémád, amit az 5.2-ben töröltek:

  // Process the workflow options and provide defaults. If the user
  // can not administer nodes, ignore the form and either use the
  // saved values if the node exists, or force the defaults.
  if (!$access && $node->nid) {
    $saved_node = node_load($node->nid);
  }
  else {
    $node_options = variable_get('node_options_'. $node->type, array('status', 'promote'));
  }
  foreach (array('status', 'promote', 'sticky', 'revision') as $key) {
    if (!$access && $node->nid) {
      $node->$key = $saved_node->$key;
    }
    else if (!isset($node->$key) || !$access) {
      $node->$key = in_array($key, $node_options);
    }
  }

Én nem látom a diffben, hogy máshol ez a korlát visszajött más formában. Gondolom azért került ki, mert nem lehetnek ilyen űrlap elemek, ha nincs erre jog (ezt a validáció úgyis ellenőrzi, hogy "form injection" ne legyen lehetséges), így az eredeti adatok különben is megmaradnak. Most viszont van lehetőség felülírásra :)

(A Drupal.hu 5.2-re frissítése közben néztem át a diffet).

0
0
Webappz képe

$(document).ready(function(){   
 
    $("input[@type=radio]").click(function(){
      if ($("input").attr("name") == 'teszt_radio') {	
      	var bejelolt = $(this).val();
      	$("option").filter(function (gaz) {
                  return gaz == bejelolt;
                })
                 .attr('selected', 'selected');
    }});    
 
    $("select").change(function(){
      if ($("select").attr("name") == 'teszt_select') {		
      	var kivalasztott = $(this).val();
      	$("input").filter(function (index) {
                  return index == kivalasztott;
                })
                .attr('checked', 'checked');
    }});
 
  });

Az első verzióban csak "selector" alapján hivatkoztam a form elemeire. Az újabb verzióban -
"kérésedre" - most már csak a "name" attributum meghatározott értéke (teszt_radio és teszt_select) alapjan szűkíti a kört, és csak a feltételnek megfelelő elemek esetében végzi el az attributum beállítását.
Próba képpen tedd bele egy .js fájlba és a drupal_add_js-sel hívd meg. Hogy teljesítmény szempontjából is jó legyen abban, majd a "guruk" mondják meg a tuttit. :)
0
0

Páldi Zoltán

Pasqualle képe

irok egy leegyszerusitett megoldast, ebbol kiindulhatsz.

keszitesz egy users tipusu viewt 2 mezovel "user name" es "Uid". Az oszlop fejlecet se valtoztasd.

keszitesz egy views-view-fields--VIEWNAME.tpl.php fajlt ezzel a tartalommal:

<?php print "Ha latod ezt a szoveget, akkor sikerult sminkelni a view-t.";?>
 
<?php foreach ($fields as $id => $field): ?>
  <div class="views-field-<?php print $field->class; ?>">
    <?php if ($field->label): ?>
      <label class="views-label-<?php print $field->class; ?>">
        <?php print $field->label; ?>:
      </label>
    <?php endif; ?>
      <span class="field-content">
        <?php if ($field->label == "Uid" && $field->content <> "0") {
          print l('kapcsolat', 'user/'. $field->content .'/contact');
        }
        else {
          print $field->content;
        } ?>
      </span>
  </div>
<?php endforeach; ?>

beteszed az aktiv sminked konyvtaraba, es urited a cache-t (admin/settings/performance)

szoval ez a template fajl annyit csinal, hogy az uid tartalmat lecsereli a kapcsolat linkre. ezt tetszolegesen kedved szerint modosithatod..
ha valami nem tiszta, szolj..

0
0
zserno képe

Onnantól, hogy felülírtad a theme_user_profile() függvényt, az eredeti megjelenést is teljesen felülbíráltad. Tehát mindent a user_profile.tpl.php fájlodban kell kinyomtatni. Ezért neked kell kézzel beleírnod a hiányzó részeket. Ez viszont egyszerű, mondjuk hozzámásolod még az eredeti theme_user_profile() eljárásból ezt:

  $output = '<div class="profile">';
  $output .= theme('user_picture', $account);
  foreach ($fields as $category => $items) {
    if (strlen($category) > 0) {
      $output .= '<h2 class="title">'. check_plain($category) .'</h2>';
    }
    $output .= '<dl>';
    foreach ($items as $item) {
      if (isset($item['title'])) {
        $output .= '<dt class="'. $item['class'] .'">'. $item['title'] .'</dt>';
      }
      $output .= '<dd class="'. $item['class'] .'">'. $item['value'] .'</dd>';
    }
    $output .= '</dl>';
  }
  $output .= '</div>';

És persze a végén echo $output;
(pp kódjával pedig helyettesítsd az általad beküldött kód megfelelő sorát.)

0
0
Csete Attila képe

Szia!

Sajnos én még nem vagyok ezen a szinten.
Azt megnéztem, hogy milyen beállításai vannak a tac_lite modulnak.
Csak az egyes szótárak kifejezéseihez való hozzáférést tudom állítani.
De ez a hiba olyan oldalon is előjön, ahol nincsen tartalom, csak a naptár.

Kikapcsoltam a tac_lite modult és még mindíg van hibaüzi:

user warning: Unknown column 'node_data_field_kezdete.field_kezdete_value' in 'field list' query: SELECT DISTINCT(node.nid), node.title AS node_title, node.changed AS node_changed, node_data_field_kezdete.field_kezdete_value AS node_data_field_kezdete_field_kezdete_value, node_data_field_idopontja.field_idopontja_value AS node_data_field_idopontja_field_idopontja_value, node_data_field_idopontja.field_idopontja_value2 AS node_data_field_idopontja_field_idopontja_value2, node.type FROM node node LEFT JOIN content_type_esemeny_program node_data_field_idopontja ON node.vid = node_data_field_idopontja.vid INNER JOIN node_access na ON na.nid = node.nid WHERE (na.grant_view >= 1 AND ((na.gid = 0 AND na.realm = 'all'))) AND ( (node.status = '1') AND ((STR_TO_DATE(node_data_field_idopontja.field_idopontja_value2, '%Y-%m-%dT%T') >= '2009-03-01 00:00:00' AND STR_TO_DATE(node_data_field_idopontja.field_idopontja_value, '%Y-%m-%dT%T') <= '2009-03-31 23:59:59')) ) LIMIT 0, 999 in /var/www/enekles.hu/vh_dev/web/includes/database.mysqli.inc on line 151.

Az adatbázisban én elveszett vagyok, nem tudom pl, hogyan kell ellenőrizni az adott táblát, illetve, ha nincs akkor miért nincs, mit kell tenni, hogy legyen stb.

Van ötleted, hogy egy ilyen felkészültségű tag mint én hogyan léphetne tovább?

Attila

0
0
aboros képe

mivel a preprocessben vagyunk volt már egy node_load, szóval a mi 'extra' node_load -unk nem generál újabb sql kérést, hanem cacheből adja vissza a már lekért nodeot.

ha megnézed a node_load() függvényt szépen látszik, hogy ez ('plusz' egy node_load) nem kerül nekünk szinte semmibe.

...
//csak egy nid a param?
if (is_numeric($param)) {
    if ($cachable) {
      // betoltottuk mar az ilyen nidu nodeot?
      if (isset($nodes[$param])) {
        // hat akkor megegyszer nem kerdezzuk le, vissza adjuk a mar betoltottet
        return is_object($nodes[$param]) ? drupal_clone($nodes[$param]) : $nodes[$param];
      }
    }
...

ugye a para az, hogy a preprocessben lévő $vars és az abban lévő $node nem csak simán a node_load() visszatérési értéke, hanem már a node_view() -n is át lett kergetve (meg minden hook_nodeapi -n is), ami attól függően hogy teaser vagy sem, más-más értékeket pakol a body meg a content meg a teaser helyére. átalakítja a sima, node_load() által adott szerkezetet.
nézd csak:

...
 if ($teaser) {
    $node->teaser = $content;
    unset($node->body);
  }
  else {
    // itt a problema. mivel nem teaser hanem full page nezetben vagyunk, mire a preprocesshez er a node, addigra mar nincs benne a teaser.
    $node->body = $content;
    unset($node->teaser);
  }
...

ezért csinálunk mégegy node_load(), hogy a nyers node -al tudjunk mahinálni.
0
0

-
clear: both;