Jag håller på att göra en nyhetsspalt och behöver tips på smartaste sättet att lösa en fråga (dvs finkod a lá "nivå 3")
Problemet är jätteenkelt men jag får inte till det som jag vill.
Jag använder tre fält i cck/views; Datum, rubrik(title) och nyhetstext(body/teaser) enligt:
2009-05-12
Jean Michelle Jarre spelar i Göteborg
Maecenas id quam porttitor ante dignissim
semper nec a lacus. In hac habitasse platea
dictumst. Duis quis sem sit amet mi posuere
euismod non vitae purus. Aliquam erat volutpat.
Jag skull nu vilja ha en "Läs mer..."-länk bredvid/under teaser-texten OM det finns mer innehåll, samt att den är länkad till själva noden.
Jag har löst detta genom att göra en egen modul (nivå 2) men vill nu veta det smartaste sättet att lösa detta med views/cck (nivå 3).
Har ngn ngt tips?
Comments
Follow up...
I php skulle jag villkorstyra utmatningen av "Läs mer..."-länk.
Alltså jämföra om body/teaser vara likadana eller ngt i den stilen.
Kanske den enklaste lösningen är att ha ett eget fält i den contenttypen som heter typ "newsflash" eller ingress. ?
Jag tyckte det vara rätt effektivt att bara använda sig av body och låta textdelaren styra vad som skall synas i spalten och vad som visas i nodens fulltextversion.
Eller kanske ska jag skapa en views-template som gör villkoren där?
Är jag på rätt spår? :-)
Drupal: http://drupal.org/user/398315
Klurade ut det...
oj vad enkelt det var.
Nod: länk (node view)
/ Shejken
Drupal: http://drupal.org/user/398315
Nej!
Nu visar den "Läs mer..." på ALLA nyheter (teaser), även de som inte har mer att säga...
Suck.
Finns det någor där ute som har brottas med samma fundamentala problem som kan ge tips?!
med venelig hils
/ Shejkn
Drupal: http://drupal.org/user/398315
Do it the Drupal way...
...or go to Drupal hell, som det så bekant heter :)
Lösning 1:
Brottas inte med ramverket, utan jobba med det istället... Antingen låter du "Läs mer"-länken ligga kvar. Eller så ser du till att länken behövs på alla nyheter genom att automatiskt korta av brödtexten till 200 - 300 tecken (då kommer nog majoriteten av dina nyheter kortas av). Det finns en smidig funktion för detta i Views -
Trim this field to a maximum length. Leta runt lite när du lägger till ett Views-fält så hittar du.Lösning 2:
Ett annat alternativ (kanske det bästa) är att du listar noderna med inställningen
Row stylesatt tillNodeistället förFields. Där efter kan du klicka iDisplay only teaser. På så vis använder Views mallennode.tpl.phpi teaser-läget. Om då inlägget är längre än vad du bestämt att en teaser ska vara dyker "Läs mer"-länken upp.Lösning 3:
Det sista alternativet är att du skriver en helt egen
field handlersom uppfyller dina önskemål. Enhandler(i Views) är en PHP-klass som definierar fält, argument, sortering, relationer eller annat som används när man skapar en View. Detta alternativ är ganska komplicerat och kräver god kunskap i om hur Views API fungerar.Hoppas detta hjälper dig... Om du nödvändigtvis måste använda
FieldssomRow styleoch måste få bort "Läs mer"-länken på hela inlägg är nummer 3 den enda lösningen. Det går säker "hacka" sig runt på nått annat sätt. Men jag jobbar inte så ;)--
It's all about simplicity - Senzilla
Theming då?
Tack Dixon_ för ditt utförliga svar och dina egna synpunkter på problemet !!
Min fråga är ju rätt specifik i det här fallet om "läs mer"-länk, men min smått sublima fråga som kanske är mer intressant är frågan om hur man generellt tänker när man vill presentera sitt innehåll på ett specifikt sätt.
Vad jag förstår kan man ju använda sig av views-template-filer eller egna content-type-template-filer.
Fråga: Är theming genom dessa också att betrakta som att "hacka sig runt ett problem" eller är det den vanligaste vägen som man går?
I mitt specifika fall ser jag flera olika lösningar förutom de Dixon_ nämner och den fungerande block-modul jag redan byggt:
SÅ:
Fråga: Vilken väg man generellt bör gå när man vill presentera sitt innehåll på ett specifikt sätt genom views ?
Då menar jag själva innehållets struktur och inte förändringar man kan göra med.css.
Här bjuder jag gärna in fler aktörer i frågan. Hur gör ni när ni vill ändra innehållets presentation i views?
mvh
/ Fredric Shejk Bergström
Drupal: http://drupal.org/user/398315
Det beror på hur mycket
Det beror på hur mycket struktur du måste ändra på. Att ändra på node-TYPE.tpl.php ska inte ses som ett "hack" så länge som du bara ändrar HTML-strukturen. Själva programmeringslogiken skall man alltid hålla undan från temafilerna, det hör hemma i hook_preprocess_node().
När det gäller att styla views så har jag aldrig stött på en situation där jag behöver mer flexibilitet än vad CSS och Views-funktionen
Rewrite the output of this fielderbjuder. Där kan du enkelt göraNode: Node title-fältet till en rubrik eller liknande. Försök använda den funktionen först, istället för att skapa en template för fältet.Om du fortfarande behöver ändra mer struktur och themeing i Views bör du nog fundera på din CCK-arkitektur. Kanske använder du fel typer av fält och måste normalisera datan mer?
--
It's all about simplicity - Senzilla