errata képe

nagyon köszönöm a tutoriált ezen elindulva sikerült amit szerettem volna :)
sajnos nem fogalmaztam 1értelműen szóval 1-2 dolgot még bele kellet raknom, ezeket leírom hátha még kelleni fog valakinek:

az info_box-ba kicsit átírtam a php-t ez csak ilyen egyéni dolog:

$node_types = node_get_types();
unset($node_types['info_box']);
unset($node_types['panel']);
unset($node_types['page']);
unset($node_types['story']);
$allowed = array();
 
$allowed["evrywhere"] = "Mindenhol";
 
foreach ($node_types as $machine_name => $type_obj) {
    $allowed[$machine_name] = $type_obj->name;
}
return $allowed;

nekem így átláthatóbb, és hozzáfűztem 1 mindenhol megjelenést is, illetve nem vizsgál minden ciklusban egy feltételt a kód...

na de jön a view paraméter kódja :)

if ((arg(0) == 'node' && is_numeric(arg(1)))) {
  $node = node_load(arg(1));
  return $node->type;
} else {
  foreach (views_get_all_views() as $name => $obj) {
    foreach ($obj->display as $display_name => $display_obj) {
        if(isset($display_obj->display_options['path']) && arg(0) == $display_obj->display_options['path']) {
            return str_replace('_prew', '', $obj->name);
            break;
        }
    }
  }   
}

nekem még voltak view-aim is amiknek a [node-type]_prew volt a neve és ott is meg kellet jelenítenem nem tudom hogy szép-e a megoldás amit csináltam de az egyszerű megoldások sehogy se akartak működni :(
szóval a lényeggel meg is vagyok köszön a segítséget.
Már csak 1 dolog van hátra ha a paraméter alapján nincs találat akkor 1 alapértelmezett info box-ot jelenítsen meg (ez lenne az everywhere), ennek a kérdésemnek nyissak új fórum témát vagy felesleges? remélem rájövök a megoldásra de ha valaki gyorsabb nálam ne habozzon írja meg nyugodtan :)

köszi még egyszer
Péter

0
0
aboros képe

a nézet beállításainál a basic settings részben van ilyen, hogy "empty text". oda írjad az alapértelmezett info boxot és az argumentum validálásnál mondjad meg, hogy ha nem valid az argumentum, akkor display empty text.

így átalakítva már igen kacifántosnak tűnik, persze hogy mást javasoljak ahhoz a követelményt kéne tudnom. lehetőleg úgy megfogalmazva, hogy a 'node' meg 'view' meg 'cck' meg ilyen szavak egyszer sem szerepelnek benne. :)

csinálhatnád például azt is, hogy a [node-type]_prew nézeteid gondolom egy-egy page megjelenítőt adnak valamilyen útvonalon. na, ezeket én _egy_ nézettel oldanám meg, valahogy úgy, hogy a node:type lenne az argumentum és az útvonal pedig a teasers/% ... tehát pl a story teaserek a 'teasers/story' útvonalon lennének. ha kell, kézzel adok ezeknek álnevet. (az álnév az arg() fgv működését nem befolyásolja ugye)

ezáltal az info_box view argumentum kezelő kódja:

if (arg(0) == 'node' && is_numeric(arg(1))) {
  $node = node_load(arg(1));
  return $node->type;
} else if (arg(0) == 'teasers') {
  return arg(1);
} else {
  return FALSE;
}

és nem kell minden oldalbetöltéskor betölteni _minden_ nézetet és az _összesen_ végigiterálni és sztinget vagdosni meg miegymás.. :) (a foreachen beluli iffel meg problemad volt, de minden page loadnal egy views_get_all_views() az nem gond.. raadasul teljesen feleslegesen csinalod, gondold mar el, minden oldalletolteskor betoltesz minden nezetet es mindig vegigiteralsz mindegyik nezet mindegyik displayen, amig meg nem leled a magaded.. inkabb szaz if akkor a foreachembe:)

0
0

-
clear: both;

aboros képe

használni kényelmetlen lesz az igaz.
próbáld ki a flexifield modult azzal tudsz elvileg több mezőből "egy mezőt" csinálni klikk-klikk módszerrel. (tulajdonképpen ugyan azt fogja csinálni, mint amin már gondolkodtál, csak használni könnyebb lesz, mintha kézzel építenéd meg és node_referencel hivatkozgatnád egyesével az eseményeket)
http://drupal.org/project/flexifield

0
0

-
clear: both;

Voluman képe

A mező típusa: szöveg, a felületi elem típusa: szövegdoboz (többsoros)

0
0
chrispooh képe

Köszi Aboros, kipróbálom.

0
0
aries képe

Igen, működik.

0
0
aries képe

Sok böngészőben be lehet állítani a legkisebb betűméretet, ami alá nem tudsz menni CSS-ben. Nem ez a gondod?

0
0
Qkacz képe

Köszönöm a segítőkész válaszokat!

A CCK modul is jól működik, kár hogy az alapértelmezett mezőket (pl. törzs) nem lehet kiszedni, mert akkor egy mezővel meg lehetne oldani. Mondjuk így nem értem a CCK modul lényegét, mert akkor lenne rá szerintem igazán szükség ha az alapértelmezett mezők helyett másfajtát szeretnénk sok esetben azok megtartása nélkül. Na de ez másik téma,

A modulos verzió apróbb módosításával sikerült megoldanom a problémát. Először kiírattam a body mezőbe a $body_id változót, aztán arra szűrtem (if $body_id = ...), mivel csak egy tartalom típus esetében szeretném így használni.

Köszi még egyszer!

0
0
hosszu.kalman képe

Jól látod a CCK modul lényegét, pont erre való. El tudod tünteti a body-t, mégpedig a tartalomtípus beállításánál ott van egy "Beküldési űrlap beállítások" és ott lehet megadni a title és body mező tulajdonságait. Ha a body címét üresen hagyod - ahogy a magyarázatban le is van írva - akkor nem jelenik meg a body field.

Ha csak egy tartalomtípus esetén szeretnéd a modulos módosítást akkor ne a $body_id-t nézd hanem a $form_id paramétert.

if ($form_id == 'tipusneve_node_form') {
...
0
0
Schmidt Attila képe

Tényleg, MySQL VIEW! Ezt ki fogom próbálni!

0
0