makgab képe

A szotar_delete függvényen dolgozom. Cél:
egy kérdés, hogy biztos törölni akarja-e a user az elemet, majd ha igen, akkor töröl.

confirm_form()-t kellene használnom, ugye?

<?php
function szotar_delete(&$form_state, $SZOTARID) {
   return confirm_form($form, 'Biztos törlöd a/z/ ' . $SZOTARID . ' azonosítót?', 'Igen', 'Nem', t('Delete') );
}
?>

A paraméterek nem egészen világosak:
$form Additional elements to inject into the form, for example hidden elements.
$question The question to ask the user (e.g. "Are you sure you want to delete the block foo?").
$path The page to go to if the user denies the action. Can be either a drupal path, or an array with the keys 'path', 'query', 'fragment'.
$description Additional text to display (defaults to "This action cannot be undone.").
$yes A caption for the button which confirms the action (e.g. "Delete", "Replace", ...).
$no A caption for the link which denies the action (e.g. "Cancel").
$name The internal name used to refer to the confirmation item.

és kellene egy:

<?php
function szotar_delete_submit($form, &$form_state) {
   // SQL delete
   db_query(" DELETE FROM {table}... ");
   drupal_set_message( 'Bejegyzés törölve.' );
}
?>

Jó felé indultam el?

G.

0
0
Pasqualle képe

a sminked template.php fajljaban

function SMINKNEV_translation_link_alter(&$links, $path) {
  foreach ($links as $lang_code => $link {
    $links[$lang_code]['title'] = t('Read this article in %language', array('%language' => t($link['language']->name)));
  }
}

a kodot nem probaltam ki. Minden mas beallitas a link szovegere valoszinuleg eltunik (pl zaszlok)

Annak aki nem erti az aktualis nyelvet az nehezen talalja meg a forditast, mert peldaul a "Olvassa el a cikket angol nyelven" szoveg egy csak angolul tudo valakinek nem sok segitseget nyujt.

igy talan jobb lenne

t('Read this article in %language', array('%language' => $link['language']->native, $link['language']->language);

mert ez ilyet irna ki:
"Read this article in English", "Olvassa el a cikket magyar nyelven"
0
0
zoliky képe

OK, elvileg mukodik a kovetkezo kodal:

function phptemplate_preprocess_node($vars) {
  $node = $vars['node'];
 
  if (isset($node->field_themepic[0])) {
    $vars['content'] = $node->content['body']['#value'];
    $images = '';
    foreach ($node->field_themepic as $key=>$image) {
      $images .= '<div class="image">' . $image['view'] . '</div>';
    }
    $vars['images'] = $images;
  }
}

De a "$vars['content'] = $node->content['body']['#value'];" valamit csinal, mert a tobbi CCK mezo nem jon elo, peldaul egy sima text mezo. Csak a kep jelenik meg.

A fenti kod kitiltja az osszes CCK adatot a kepen kivul? BTW, a tobbi mezot is le szeretnem kezelni manualisan, es masik divekbe rakni oket... Csinalok meg egy loopot a fuggvenyben ? az adatokat beszerzem a print_r($node)-val

0
0
redbullpet képe

Tovább próbálkoztam és kb 5. telepítés után elég fura dolgot láttam a forrásban, mégpedig két kulcsszó meta jelölő van benne és az első üres, ha be van kapcsolva a modul. Ahogy látom a második sort tölti ki bekapcsolt állapotban. Kikapcsolom, akkor csak az üres jelölő marad. A kezdőlap jó egyedül, igaz ott bekapcsolt állapotban csak egy kulcsszó sor van, ha kikapcsolom eltűnik.

bekapcsolt állapot:

	<meta http-equiv="content-language" content="hu" />
	<meta name="description" content="1.1 TÁJÉKOZTATÓ A KÖTELEZŐ SZÁMVITELI SZABÁLYZATOKRÓL A Számviteli Törvény a vállalkozások részére kötelezővé tette a Számviteli sz..." />
<meta name="keywords" content="" />
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="számviteli szabályzat, számlarend, könyvelés, tanfolyam" />

kikapcsolt állapot:

 
	<meta http-equiv="content-language" content="hu" />
	<meta name="description" content="1.1 TÁJÉKOZTATÓ A KÖTELEZŐ SZÁMVITELI SZABÁLYZATOKRÓL A Számviteli Törvény a vállalkozások részére kötelezővé tette a Számviteli sz..." />
<meta name="keywords" content="" />
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Mi miatt lehet ez?

0
0

Megtisztelő Figyelmeteket Köszönöm
redbullpet

hosszu.kalman képe

Ha a formAPI-t akarod használni, akkor valami ilyesmi mini modult kell írni:
break_body.info

name = Break body
description = Insert break to body
version = VERSION
core = 6.x

break_body.module
/**
 * Implementation of hook_form_alter().
 */
function break_body_form_alter(&$form, $form_state, $form_id) {
  if ($form['#id'] == 'node-form') {
    $form['body_field']['body']['#default_value'] = (isset($form['#node']->body)) ? $form['#node']->body : 'teaser<!--break-->nem teaser';
  }
}

Ez alapból leválasztja a body-t, amit a teaser részhez ír az a teaser lesz, amit meg a body-ba az a teljes nézet. Persze a "teaser" és "nem teaser" részeket ki lehet törölni.

A B verzióhoz nem kell programozni. Felteszed a CCK modult és kiegészíted a tartalomtípust egy text típussal, megadod hogy több soros legyen és a felhasználó választhassa ki a beviteli formát, default value-ba meg beírod a break szöveget. Én ezt ajánlom.

Ez igazából pp válaszának részletezése.

0
0
etyike képe

Én js_injectort használok és a láblécbe teszem be a szkriptet
javítson ki valaki ha valamit rosszul írok, én ennek jártam most utána!

Drupal.behaviors.nev = function(context) {
// a nev lehet: smink, modul vagy 'akarmi'
  console.log(context);
  // firebug vagy más kiírja mi az, maga a DOM objektum asszem
  var color; // globalis valtozo megadasa
  $(context).find('a').hover(function() {
  // "linkek megkeresese"
    color = $(this).css('color'); // eredeti szin meghatarozasa
    $(this).css('color', 'red');
    // ha fole allsz egerrel milyen szine legyen a linknek
    // neked itt van egy return false; mert?
  },
  function() {
    $(this).css('color', color);
    // ha mar nem allsz folotte, akkor kapja vissza az eredeti szinet
  });
}
0
0

Kellemes és szép napot a továbbiakban
etyike

eager képe

  1. .node-article.node-teaser .field-name-field-image .field-item {
  2. float: left;
  3. margin: 0 15px 10px 0;
  4. }
  5. .node-article.node-teaser .field-name-body {
  6. clear: both;
  7. }

Akár ki is keresheted, hogy a sminked melyik .css-e foglalkozik ilyesmikkel, és oda beteheted.

De ha csak ki akarod próbálni, hogy működik-e a szabály, akkor egyszerűen bebiggyeszted a sminked info filejában definiált utolsó .css fájl végére.

Azon kívül amíg css-t fejlesztünk, addig a css aggregálást hasznos kikapcsolni.

Illetve még meglephet az is, hogy a theme registryt is üríteni kell, hogy tudomásul vegye a változásokat. Ahhoz meg az kell, hogy miután bemásoltad a kódot, el kell menni a megjelenés menübe, belépni a sminked beálításaihoz, és nyomni egy mentést. Akkor újraolvassa a .css -eket, és benne lesz a változás is.

(nem mindig kell keresni, hogy melyik kiválasztóhoz lehet ezt vagy azt a formázási szabályt még besuvasztani: simán magunk is létrehozhatjuk a kívánt kiválasztót (sőt, legvalószínűbb, hogy arra lesz szükség: saját kiválasztóval és a Drupal szuper-használható HTML class-aival szinte arra tehetsz egyedi szabályt, amire csak akarsz))

Tanulmányozhatod ezt a szálat is: http://drupal.hu/forum/rendszer%C3%BCzenet-sminkel%C3%A9se/15877

1
0
szantog képe

php filter, views_php és társai egyértelműen felejtős, és a ds code field sem erre van kitalálva, hanem arra, hogy tetszőleges html-be ide-oda bepakolj egy-egy adatot, nem pedig arra, hogy komplett alkalmazás logikát építs bele. Az ilyen textaraeba hányt php kódoknak egy vége lehet, előbb-utóbb jön egy olyan frissítés, ami rosszabb esetben kinyírja az oldalt, de minimum elcsesz valamit, és iszonyat mennyiségű agysejt árán fogod megtalálni, hogy melyik textfieldben van a hiba.

Ha már php kódot írsz, semmi akadálya nincs, hogy azt a megfelelő hookban tedd meg.
Pl egy preprocess_node a sminkben:

  1. if ($field = field_get_items('node', $vars['node'], 'field_voc_category')) {
  2. $term = taxonomy_term_load($field[0]['tid']);
  3. $vars['classes_array'][] = drupal_html_class(check_plain($term->name));
  4. }

sample

_process nodeban közvetlenül a ds templatebe lehet injektálni akár ds régiót célozva.

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

Dibusz Tamás képe

Mindenki okulására, ha valaki ilyesmibe vágná a fejszéjét...

A views (egy előzőleg becsatolt tábláblát, létrehozott nézetet feltételezünk) visszaad egy view nevű objektumot. Ennek az objektumnak a felépítését a nézet megjelenítési oldalára kiírathatjuk az alábbi kóddal:

/**
 * mymodule.module fájl tartalma               
 */
 
function mymodule_views_pre_render(&$view) {
 
   if ($view->name=='my_views_machine_name') { //a nézet (gépi) neve
 
                drupal_set_message('<pre>' . print_r($view, TRUE). '</pre>'); // vagy $view->result
 
     }

Ebből jelen esetben a [result] tömb érdekes, ebben szerepelnek ugyanis a megjeleníteni kívánt adatok. Innen könnyedén kiolvasható a saját handlerhez szükséges mezőnév (v. mezőnevek).

A mellékelt példa a machine_name_of_MYFIELD nevű mezőre van vonatkoztatva, és borzasztóan bonyolult eljárást alkalmaz, hogy szemléltesse a mező értékének felülírását a kimenetre. Megjegyzendő, hogy a mező értéke nem változik meg, pusztán a nézetben való megjelenését befolyásolja!

<?php
 
/**
 * mymodule_views_handler_field fájl tartalma               
 */
 
class mymodule_views_handler_field extends views_handler_field {
 
  function render($values) {
 
    //yourcode, variables, etc...
 
/**
 * pl. $values->machine_name_of_MYFIELD = 1;                
 */
 
  return $values->machine_name_of_MYFIELD; //a lényeg, hogy a mező nevét meg kell adni a visszatérési értéknél.
 
  }
}
0
0
snufkin képe

Ez egy nagyon jo peldaja annak a funkcionalis logikanak, amit nem kellene a templatebe rakni. Template-be ugyanis elvileg csak valtozokat kellene printelni, es kesz, igy aztan barkinek akinek csak minimalis PHP tudasa van konnyu lesz a markupot valtoztatni.

En ugy oldanam meg, hogy csinalnek egy hook_preprocess_comment-et a template.php-be, valahogy igy:

function mytheme_preprocess_comment(&$variables) {
  $author = user_load($variables['comment']->uid);
  $variables['membership'] = in_array('DOC', array_values($author->roles)) ? t('DOC') : '';
}

Es ezutan a comment.tpl.php-ba csak annyit kellene irni, hogy print $membership;.

Most fejbol nem tudom, hogy a $variables['comment']-ben benne van-e a szerzo user object, meg kene nezni, hogy le lehet-e sporolni a user_load-ot.

A te template-dben a $author azert nem volt jo, mert ha megnezed a core altal keszitett preprocess fuggvenyt [https://api.drupal.org/api/drupal/modules%21comment%21comment.module/fun... (ami elokesziti neked a valtozokat), ott az $author az mar a lerenderelt szerzo (lasd a $variables['author'] = theme('username'...) sor).

4
0