nagyon sokat gondolkodtam, hogy mit írjak erre
vagy hogy írjak e egyátlán valamit. lehet nem kellene, akkor bocs, de nem bírom megállni, hogy meg ne jegyezzem.
ez a kódrészlet itt nem megoldás, hanem egy ordas nagy gányolás.
kérem senki ne vegye ezt mintának a témában vázolt feladat megoldására.
azt most hagyjuk, hogy ehhez miért kell űrlap, mikor ezt egy sima anchorral meg lehet csinálni, tegyük fel, hogy mindenképp űrlappal kell megoldani valamiért. (nlta miért)
ilyet, hogy kacsacsőr form, method post, stb... ilyet soha nem csinálunk drupalban. soha! vért könnyezve kórusban visítanak a kismacskák a motorháztető alatt!!!
van formAPI, tessék azt használni. azt kell! mint ahogy nem írunk olyat, hogy kacsacsőr a src (mert van l() fgv és azt használjuk) .. nem írunk olyat, hogy kacsacsőr img src... mert van theme('image'... és azt használjuk!
formAPI!!!
amit még nem értek, hogy ezt miért hook_view -ban csinálod??? az adott tartalomtípust a te modulod hozta létre?? ha igen, akkor talán ok, bár akkor se értem, hogy miért égeted az űrlapodat a $node->content -be?? ha nem a mymodule hozta létre ezt a tartalomtípust, akkor pedig végképp rossz, a hook_view csak olyankor használatos, ha ugyan az a modul definiálta a típust, mint amelyik a hook_view -t valósítja meg. ha másik modul által létrehozott tartalomtípust akarsz piszkálni és mindenképp modulban akarod tenni ezt (ki tudja miért?), akkor hook_nodeapi.
nem vagyok teljesen biztos benne, de ezzel a fenti borzadállyal szerintem eltörted a cckt is, tehát ha most cckval hozzáadsz egy mezőt a típusodhoz, nem fog megjelenni mert manuál átégetted a $node->content. nem túl egészséges.
egy szónak is száz a vége, amit itt fent csinálsz az baromi drupal-idegen.
bocs hogy így megírtam ezt, de fontosnak tartom, hogy ezt tudd, ne szokjad meg ezt a fenti borzalmat.
-
clear: both;
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
Views Custom Field
A Views Custom Field modult használnám erre.
Készítettem egy gyors kis példát. A node-ok címét jelenítem meg vagy éppen rejtem el, az ezt szabályozó CCK mezőnek a private és public értékeket állítottam be erre vonatkozólag.
Hozzáadtam a nézet mezőihez a node-ok címét és a szabályozó CCK mezőt (amit Private-nak nevezek), mindkettőt kizárom a megjelenítésből, csak az értékek miatt szükségesek a lekérdezésbe. Ezután használjuk fel a Customfield PHP kód mezőjét, amibe az alábbi kód kerül:
<?php if ($data->node_data_field_private_field_private_value == 'public') { print check_plain($data->node_title); } else { print '-------'; } ?>
Egy screenshot az eredményről:
https://img.skitch.com/20110106-cp1k7y7r6p9jk57xpjgqcxcmf3.jpg
Ne feledd, ez még csak a view-ban lévő megjelenést szabályozza, emellett gondoskodnod kell a node-ok megjelenéséről is.
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
2003 outlook??
Az minek?? ;)
„Na de várj egy picit, nekem nem működik ezen a gépen.”
Nem gondolod, hogy ez kb. „nesze semmi fogd meg jól”? Mi nem működik? Hogy nem működik? Kicsit részletesebb leírás kellene, hogy mit és hogyan csináltál, hogy nem működik, stb!
- Töltsd le újból a modult.
- Írd felül vele azt, amit összegányoltál.
- Az adminisztrációs részén a „Webhely építés/Felület fordítás/Keresés” oldalon a „A karaktersorozat tartalma:” részbe beírod, hogy pl. „New tip submitted via the SexyBookmarks Plugin!”.
- A találatoknál kilistázza, hogy talált egy - minden bizonnyal lefordítatlan - karaktersort.
- „Szerkesztés” linkre kattintva bejön a fordítási felület.
- Az „Eredeti szöveg” résznél megtalálod az angol kifejezést.
- A „Magyar” részhez beírod a lefordított szöveget, elmented.
- Így le is fordítottál egy karaktersort a modulban. De ezen kívül van még pár...
Hogy pontosan mennyi is, azt a Drupal fordítói szerverén meg tudod nézni (Translate SexyBookmarks to Hungarian). Sőt, le is fordítani. De ehhez a http://drupal.org oldalán regisztrálnod, és bejelentkezned kell. Így már használni tudod a fordítói szervert. Pontosabban még csatlakoznod kell a magyar fordítói csoporthoz.
Amúgy nem ártana ha utána is olvasnál dolgoknak, nem csak össze-vissza kísérletezgetnél.
Mondjuk kezdheted rögtön ezzel: http://drupal.hu/kezikonyv/forditas
További kérdés feltétele előtt pedig ezzel: http://esr.fsf.hu/smart-questions_hu.html
Ne úgy vedd, hogy ez(ek) felesleges piszkálgatás(ok). Ha nem adsz kellő információt akkor mi sem fogunk tudni neked segíteni. Ha pedig nem azt csinálod amit javasolnak, akkor nem fogsz sikert elérni. Pedig ez lenne a (közös) cél! :)
--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
Talan igy ...
Nemtudom hogyan kerulnek be a kepek oda az oldalra de ha jol sejtem a kepeket te vittem be az img taggal abba az oldalba. Gondolom egy page nodrol van szo es a body-ba te irtad be oket fixen mind a 6 kepet. Jol sejtem?
<img width="100px" style="width: 100px; height: 75px; margin-top: 12.5px;" title="1" alt="1" src="http://vadaszfaragasz.neobase.hu/sites/vadaszfaragasz.neobase.hu/files/imagecache/gallery_assist-default-thumbnail-100/gallery_assist/1/gallery_assist3/1.jpg">
Ha igen akkor javitsd ki oket ehhez hasonlora:
<img width="100px" style="width: 100px; height: 75px; margin-top: 12.5px; margin-left: 0px;" title="1" alt="1" src="http://vadaszfaragasz.neobase.hu/sites/vadaszfaragasz.neobase.hu/files/imagecache/gallery_assist-default-thumbnail-100/gallery_assist/1/gallery_assist3/1.jpg">
A lenyeg a style -ben van az a margin-left.
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
Ha drupalból akarsz civicrmel
Ha drupalból akarsz civicrmel egyszerűen beszélgetni, ajánlom magamat.
Ezzel kb ennyi lesz:
$events = civi_api('event', 'get', $params);
Ez addig működik, amíg max 100 eseményed van. Az $eventsben benne lesz az összes esemény, abból kivadászod a megfelelőt, és annak az 'available_places' elemében lesz a kívánt érték.
Sajna a civicrm apija nem biztosít egy esemény lekérdezésére felületet, és rendes db layert sem írtam még meg, úgyhogy a egy konkrét eseményhez a civicrm daoját kell használni, az meg nem egyszerű jószág. Ha sikerülne vele mégis elbánni, akkor örömmel beraknék egy event loadert a modulba, kb mint ez.
----
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.
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
Ez csak egy példa.
talán jobb lett volna ha az API függvényt linkelem be:
http://api.drupal.org/api/drupal/modules%21system%21system.api.php/funct...
A linkelt függvényből egy darab lehet csak a modulodban, viszont a függvényen belül akárhány menüpontod/útvonalad. Nézd meg a példákat.
function mymodule_menu() { $items['abc/def'] = array( 'page callback' => 'mymodule_abc_view', ); return $items; } function mymodule_abc_view($ghi = 0, $jkl = '') { // Amit a végén return-el visszaadsz, az jelenik meg az oldalon. }
szerk: A menü cache-t törölnöd kell, hogy az új menüpont látszódjon.
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
Kipróbáltam, jó
Na, most végre volt egy kis időm játszani ezzel.
Direkt a nálad problémás admin/people/permissions
útvonalon lévő checkboxokat próbáltam ki, és nálam egy modulból hozzáadva teljesen az elvártak szerint működik a kódod.
Ha jól értem, annyi a célod, hogy az input elemre is kerüljön egy checked
osztály, meg a közvetlen szülőelemére is, amennyiben checkboxról van szó, és bepipálod az elemet.
Screenshot:
Bekereteztem és aláhúztam a lényeget.
Nálam úgy van, hogy a modulom .info
fájljában van ez a sor:
scripts[] = js/testModule.behaviors.js
az előbb hivatkozott JS-fájlban meg tök ugyanaz van.
Most belekontárkodtam a Seven core theme-be is, amit ugyan elvileg nem szabad, de most nem volt kedvem emiatt subtheme-et létrehozni, mivel ez egy szemetelős Drupal, és ott is teljesen ugyanígy, elvileg jól működik, ahogy kéne neki.
Nálad akkor mi is van?
Bepipálod, de nem kerül rá a checked
osztály? Tehát nem úgy működik, ahogy én mutattam a screenshoton?
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
Google a barátod továbbra is. ;)
De, hogy ne kelljen keresni:
http://drupal.org/patch/apply
A lényeg:
1. Letöltöd a foltot(patch).
2. belépsz a Drupal gyökér könyvtárába.
3. path -p0 < útvonal/foltneve.patch
Windows alatt cgiwin-nél kb (mert nem ismerem) C:\\teljesútvonal\patch.exe -p0 < ...ugyanaz..
Mindenképpen parancssor kell neked és nézni mit ír ki. Ha nem megy valami akkor ezeket a sorokat másold ki és told ide be. (ne ide, hanem egy új témába, de ezt már tudod. ;)) Egy foltot csak egyszer alkalmaz, tehát ne add ki többször a parancsot. Újrapróbálkozni úgy kell, hogy újra kitömöríted(vagy hígítod..muhahaha) a Drupal-t és felülírod az ott lévő fájlokat. (vagy csak azokat amiket módosított a folt, ezeket ki fogja írni, tehát a legjobb, hogy ha ezt mindig figyeled, mert elég csak ezt a pár fájlt fel ftp-zni az éles rendszerre, és csak ezekről készíteni előtte biztonsági másolatot)
Figyelj oda, hogy frissítésnél nézned kell, hogy az adott verzió tartalmazza-e a foltot. Ha igen - wow, mosoly - csak frissítened kell a Drupalt. Ha nem akkor először mindenképpen próbáld ki, hogy a foltod alkalmazható-e a friss verzióra. Ha igen akkor még csinálnod kell egy update tesztet tutibizti és utána fel updatelni. Ha nem alkalmazható akkor javítani kell a foltot. Ha ezt meg tudod tenni akkor megteszed és megosztod a közösséggel. Ez azért is különösen fontos, mert akkor még át is nézik és ha vacak akkor szólnak. Ráadásul még hálásak is lesznek neked páran, ha jó a folt. Szóval csak nyerhetsz ezen, no meg így normális. Ha nem vagy rá képes, akkor várnod kell addig amíg valaki el nem készíti. Ha fontos akkor rászánhatsz egy tízest és megbízatsz valaki hozzáértőt, hogy csinálja már meg. (ekkor szintén megosztjuk)
Ajánlott nulla folttal foltozott Drupalt üzemeltetni, e fölött minden egyes folt duplázza az update-ek idejét. ;)
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu