Prancz Ádám képe

Szerintem valami programozási hiba lehet a cck computed fieldel. A drupal.org-on próbáltam jelezni már a computed field fejlesztőinek amennyire tőlem tellett sajnos nem vagyok programozó.

Addig is most már ebből tanulva próbálok minél kevesebb modult használni így próbálom minimalizálni a hasonló esetek előfordulásának valószínűségét.

Nézegettem a netet és vannak php snipettek erre a célra de nem tudom, hogy hogyan használjam őket. Mondjuk csináljak egy sima integer mezőt az életkornak és oda a php kódhoz másoljam be ezekt?

Meg igazából a baj az, hogy mi van akkor ha x ideig nem szerkesztik az adott nodeot, akkor nem frissül az életkor adat, ami eléggé gáz hosszútávon...

Ezekre a kérdésekre nem is ad megoldást a computed fields sem, szóval aktuális ez a kérdés szerintem.

0
0
Prancz Ádám képe

Ez szerepel a logban:
Nov 16 08:53:16 s34 kernel: php5.2[4315]: segfault at bf1324e0 ip 083545ef sp bf1324e0 error 6 in php5.2[8048000+635000]

Nov 16 08:53:16 s34 kernel: php5.2[4313]: segfault at bf06ab70 ip 083545ef sp bf06ab70 error 6 in php5.2[8048000+635000]

Nov 16 08:53:16 s34 kernel: php5.2[4320]: segfault at bf25e560 ip 083545ef sp bf25e560 error 6 in php5.2[8048000+635000]

Nov 16 08:54:25 s34 kernel: php5.2[5535]: segfault at bf325600 ip 083545ef sp bf325600 error 6 in php5.2[8048000+635000]

Nov 16 08:54:47 s34 kernel: php5.2[6060]: segfault at bf318960 ip 083545ef sp bf318960 error 6 in php5.2[8048000+635000]

Nov 16 08:54:49 s34 kernel: php5.2[6062]: segfault at bf535d00 ip 083545ef sp bf535d00 error 6 in php5.2[8048000+635000]

Nov 16 08:54:51 s34 kernel: php5.2[6075]: segfault at bf7d9cc0 ip 083545ef sp bf7d9cc0 error 6 in php5.2[8048000+635000]

Nov 16 08:54:52 s34 kernel: php5.2[6102]: segfault at bf677510 ip 083545ef sp bf677510 error 6 in php5.2[8048000+635000]

Nov 16 08:58:09 s34 kernel: php5.2[8790]: segfault at bf6b5630 ip 083545ef sp bf6b5630 error 6 in php5.2[8048000+635000]

Nov 16 09:04:26 s34 kernel: php5.2[14559]: segfault at bf007f00 ip 083545ef sp bf007f00 error 6 in php5.2[8048000+635000]

Nov 16 09:04:34 s34 kernel: php5.2[14946]: segfault at bf3a4e60 ip 083545ef sp bf3a4e60 error 6 in php5.2[8048000+635000]

A computed field a hibás. Az életkort ezzel a kóddal számítottam:

if (!$node->nid) node_save($node);
  $dob = $node->field_birthdate[0]['value'];
        $now = time();
        $then = strtotime($dob);
 
        $diff = date('Y', $now) - date('Y', $then);
 
        if($diff < 0)      /* ideally you want to prevent this from happening */
           echo '??? - negative age.';
 
        if(($diff > 0) && (date('z',$now) < date('z',$then)))
           $diff --;
$node_field[0]['value'] = $diff;

Ebben lehet a hiba, mert ha kiszedem ezt a kódot akkor remekül működik minden!
Mi lehet a baj?

0
0
csg képe

Nekem is lehet küldeni kritikát, bár én már kaptam, és magamtól is éreztem utána, hogy min javíthatnék, úgyhogy elsősorban inkább azokat bátorítanám, hogy írjanak nekem, akik belemerülnek a grafikonos témába, és kérdésük lenne, vagy megosztanák a tapasztalataikat.

--
Csonka Gergely
http://cheppers.com

Prancz Ádám képe

Találtam egy egyszerűbb megoldást is a lekerekített gombú első szint megvalósítására.
Advanced css option a superfish blokkon bellül és ott hozzá lehet adni az extra tagokat, ezután css-ből könnyen megoldható a lekerekítés!

0
0
moha képe

Szerencsére nem kell majd túl gyakran frissíteni. Szerintem nem is feltétlen muszáj ehhez a CMS, de a főnök ragaszkodott hozzá.

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
szantog képe

Leginkább minek menteni a node-ot? Semmi dolgod a niddel, amúgy elég valószínű, hogy a $node ojjektum már teljes egészében elérhető cf-ben, furcsának találnám, ha olyan adatokkal akarna dolgozni, ami még nem is létezik.

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.

szantog képe

Meg igazából a baj az, hogy mi van akkor ha x ideig nem szerkesztik az adott nodeot, akkor nem frissül az életkor adat, ami eléggé gáz hosszútávon...

Ez így nem igaz. Nem kell adatbázisba írni az értéket, és mindig számolni fog:
http://szantogabor.com/drupal/hirek/computed-field-hasznalata-cck-mezoko...

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.

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

drifter képe

Tölts le firebugot ha még nincs, kapcsold be és a "Net" panelt nézd, ott látod hogy mely oldalelemek mennyi idő alatt töltődnek le, ez alapján levonhatsz következtetéseket. YSlow is segíthet:

http://getfirebug.com/

https://addons.mozilla.org/en-US/firefox/addon/5369/

0
0