Sziasztok! Megrendelő szeretne tőlem egy ilyet: adott egy oldal blokk, amit a views gerenál. Ez egy lista az adott típusú node-okkal, ahol látszódik a node címe és a benne lévő egyik feltöltött kép, ami fekete-fehérben jelenik meg. Tulajdonképpen egy tartalom lista, ami menüként funkcionál.
Eddig ok.
Olyat szeretnék elérni viszont, hogy az éppen olvasott node esetén, a blokkban lévő képek közül a hozzátartozónál ne fekete-fehérben jelenjen meg, hanem színesben.
Tehát minden f-f, kivéve az a sor a listában, amit pont néz a felhasználó.
Ötlet, hogy lehet ezt elérni? Köszi.
Taxonomy upgrade extras:
Melyik modulhoz, modulokhoz kapcsolódik a téma?:
Drupal verzió:
Fórum:
Ha jól értem
ilyet szeretnél:
A fenti ábrában B&W a bélyegkép akar lenni, a node/2x pedig a node címe.
Ha a node/21-et nézi bal oldalt, akkor jobb oldal a blokkban a node/21 címe előtti kép színes a többi cím előtti kép pedig fekete-fehér.
A fenti feladat megoldását így közelíteném meg:
-----
A tartalomtípushoz csatolt image-hez két bélyegkép preset-et készítenék, mindkettőt azonos méretben, pl. 50x50px, vagy amekkora a blokkban kell.
- Az egyik preset csak kicsinyíti a képet.
- A másik preset kicsinyíti a képet és fekete-fehérre is állítja.
Ezzel a modullal tudsz állítólag olyan kép effektet hozzáadni a preset-hez, ami átállítja fekete-fehérre.
http://drupal.org/project/imagecache_actions
-----
A block nézetben kiraknám minden egyes sorban a fekete-fehér kép és a cím elé (amik látszanak) rejtetten a node id-t és a színes képet.
-----
Ezután kell egy kicsit programozni. Vagy jquery-vel vagy egy views hook-ban (ami a views összerakása után, de még a megjelenítés előtt fut le) módosítani kell a blokk nézetben azt a sort, ami az oldal node id-jét tartalmazza. Itt eltünteted a fekete-fehér bélyegképet és kirakod helyette a színes képet.
-----
Optimalizálási lehetőség az előző pontban: csak a fekete-fehér bélyeképet rakod ki a két bélyegkép közül a blokk nézetben, és cseréled a kép url-jét ott, ahol színesnek kell lennie.
CSS egyedi osztály beszúrásával
Szöveges feladat értelmezés: 5 pont :-)
Na de viccet félre téve, valóban pontosan ezt akartam elérni.
Nagyon jó az ötlet amit adtál. Annyira kézenfekvő a dupla imagecahce, valszeg pont ezért nem jutott eszembe. Köszönet érte.
Én viszont egyszerű CSS alapon mennék tovább.
Ha egy "active-node" vagy valami hasonló osztályt bele tudnék varázsolni az éppen aktív listelembe, akkor már gyerekjáték lenne ezt megformázni.
Ezt tanulmányoztam:
How to create a menu using views and your theme in Drupal
Viszont az itt szereplő kód valamiért "Notice: Undefined variable: activepath include() függvényben" hibaüzit ad.
Nem túl stabil php tudásommal próbálom értelmezni, egyelőre nem sok sikerrel. Küzdök. De ha van ötlet, meghallgatom.
Köszi!
- ad astra per aspera -
Itt van egy
konkrét megoldás:
http://drupal.org/node/984442#comment-4060594
Határeset
Nem rossz, de nem pont arról szól, ami nekem kéne. Nézegettem hosszan, és ötletes a workaround, amit felvet. Viszont ő ezzel konkrét mezőket jelenít meg, míg nekem elég lenne, ha a blokk div-eibe (kb. mint egy lista elemnél) bele lehetne rakni az "active" osztályt.
Ugye az a link esetében megjelenik automatikusan, viszont a fölötte lévő div-ben nincs ilyen. Ezért aztán a linket lehet szépen formázni CSS-sel, de az egész div-et (és mindent, ami benne van) nem.
- ad astra per aspera -
jQuery
Az milyen, ha jQuery-vel a views-blockon belüli a.active parent divjére is rá-addClass-olsz egy active (vagy akármilyen) classot, és ahhoz a classhoz meg előkészíted a css szabályaidat?
Persze ez csak js-enabled böngészőkben menne...
nem látom
át, hogy tényleg elég-e, ha csak egy class-t raksz az aktív sorra?
Ha színesben és fekete fehérben is kell a kép akkor kell a két preset:
Pl. ilyenek lesznek a képek útvonalai a színes képekhez:
és ilyenek a fekete fehérhez:
Tehát nem elég ráraknod az active class-t a kép köré, hanem a kép url-jében is cserélned kell az útvonalat.
Persze, ha más a megközelítés, akkor elég lehet csak a CSS class önmagában is.
Szerk: Ha mindkét képet kirakod, akkor tényleg elég a CSS class, és attól függően, hogy van-e class, az egyik vagy a másik képet "nyomod el" css-el (display:none;), de a class feltételes hozzáadásához is szerintem egy views hook kell.
DAT ábra
Egy napja nézem, és nem bírom ki, hogy ne kommenteljek rá, még ha mínuszos is lesz...
Ámulatbaejt ez az ASCII art!
Csináltam neked érte mémet:
http://cdn.memegenerator.net/instances/400x/28988145.jpg
Thx!
http://www.asciiflow.com/
Az egyik kedvencem.
Először is köszönöm
Először is köszönöm mindkettőtöknek a segítő szándékot.
Másodsorban:
@eager
Valahogy stabilabbnak érzem a php+css megoldást. Első körben ebben gondolkodom, aztán majd meglátjuk meddig jutunk.
@aruna
Szerintem a +class megoldaná a kérdést. Az alap ötletet pont te adtad, és valóban igazad van, két imagecache kell.
A koncepcióm az, hogy a blokkban egyszerre jeleníteném meg mindkét képet (ff és színes) egymás mellett a Views-zal. Viszont az egyikre "display: none" lenne beállítva alapból css-sel. Ha megkapnám a parent div-re az "active" osztályt, akkor ott - szintén css-sel - a két kép közül pont a másik lenne megjelenítve, illetve elrejtve. (ez majd a hover-re is nagyon szépen fok működni elképzeléseim szerint, amihez viszont még az active osztály sem kell)
Részemről szeretem css-sel megoldani, amit csak lehet. Számos okból.
- ad astra per aspera -