Page 1 of 2

hoe beste wisselende content aan te pakken?

Posted: Fri Mar 08, 2013 1:04 pm
by timdebuurman
Hoi,

Het volgende wil ik graag:

Ik wil per dag laten zien wie er werkzaam is in een bedrijf.
Om het simpel te houden, eerst gewoon als tekst.
Bijv.

Vandaag aan het werk: Jan, Piet

Dan wil ik graag dat iedere dag de namen zichtbaar zijn die standaard staan ingesteld voor die dag.

Dus als je instelt dat dinsdag 'Jan' en 'Klaas' werken en iemand zou op dinsdag de website bezoeken, dan moet er staan:

Vandaag aan het werk: Jan, Klaas

Dan moet het ook nog mogelijk zijn om hier makkelijk in te wijzigen, voor het geval iemand vrij neemt die dag.

Dus als er niets gewijzigd is, moet het gebruikelijke schema gebruikt worden, maar als er een wijziging is, dat die zichtbaar is.

Ik hoop dat ik het goed uitleg zo..

Mijn vraag is hoe ik dit het beste zou kunnen aanpakken.

Re: hoe beste wisselende content aan te pakken?

Posted: Fri Mar 08, 2013 5:47 pm
by erpee
Lijkt me goed te realiseren in ListIt2 ...

Re: hoe beste wisselende content aan te pakken?

Posted: Fri Mar 08, 2013 9:04 pm
by timdebuurman
Ik zie even niet voor me hoe je dat bedoelt.

Even hardop denken..:

- 6 velden maken voor iedere dag 1
- bij ieder veld invoeren wie er werkt
- in de sjabloon een soort if-structuur maken, waarbij als het maandag is, het veld van maandag wordt getoond enz.

zoiets?


aangeven wat er op welke dag getoond moet worden zou ik niet weten hoe dat moet, maar heb ik ook nog niet naar gezocht..

Dan nog het punt van het makkelijk aanpassen als er bijv. iemand vrij is die dag.
Om dan dat item/veld aan te passen kan wel, maar dan moet het na die dag ook weer terug aangepast worden, anders klopt de week erna niet meer.

Dat is eigenlijk alweer teveel werk..

Re: hoe beste wisselende content aan te pakken?

Posted: Fri Mar 08, 2013 10:10 pm
by timdebuurman
Na wat zoeken op internet, heb ik deze gevonden:

Code: Select all

{if $smarty.now|date_format:"%w" == 0}
  Show Content of Sunday
{elseif $smarty.now|date_format:"%w" == 1}
  Show Content of Monday
{elseif $smarty.now|date_format:"%w" == 2}
  Show Content of Tuesday
{elseif $smarty.now|date_format:"%w" == 3}
  Show Content of Wednesday
{elseif $smarty.now|date_format:"%w" == 4}
  Show Content of Thursday
{elseif $smarty.now|date_format:"%w" == 5}
  Show Content of Friday
{elseif $smarty.now|date_format:"%w" == 6}
  Show Content of Saturday
{/if}
Ziet er heel logisch uit..

Dit zou natuurlijk prima in een sjabloon van een module kunnen.

Kan iemand me wat verder helpen, door mee te denken over hoe de output het gemakkelijkst tijdelijk gewijzigd zou kunnen worden?

Re: hoe beste wisselende content aan te pakken?

Posted: Sat Mar 09, 2013 7:10 am
by erpee
Wat je ook zou kunnen proberen is Cataloger.

De code die je hebt gevonden is weel in een template van Cataloger te plaatsten.

Het feit dat er mensen op een dag kunnen wisselen vraagt toch een actiever onderhoud ... Toch is het wel zo dat de personeelsbezetting redelijk hetzelfde is op de dagen? Tsja dat vraagt dan van de a.s. webmaster even wat oplettendheid ...

Voor jou lijkt me Cataloger een mooie oplossing. Je hoeft zelf geen module te maken en je hebt het snel staan.

Re: hoe beste wisselende content aan te pakken?

Posted: Sat Mar 09, 2013 8:21 am
by timdebuurman
Ik zal Cataloger eens proberen.
Ik heb er nog nooit mee gewerkt, dus ik weet ook niet goed wat nu het verschil is met ListIt.

Ik dacht dat het misschien mogelijk moest zijn om zoiets in te stellen dat als je iets ergens invoert, dat dat dan wordt weergegeven.

Als je niets invoert, dat dan het gebruikelijke schema er staat.

Re: hoe beste wisselende content aan te pakken?

Posted: Sat Mar 09, 2013 9:34 am
by Rolf

Re: hoe beste wisselende content aan te pakken?

Posted: Sat Mar 09, 2013 9:41 am
by janvl
Kijk eens naar Advanced content.

Daar kun je net als in nieuws start en eind-datum aangeven.

m.vr.gr.
Jan

Re: hoe beste wisselende content aan te pakken?

Posted: Sat Mar 09, 2013 10:27 pm
by timdebuurman
Hoi,

Custom GS ga ik eens mee aan de gang.
Ik heb de wiki eens doorgenomen en ik denk dat ik de vaste dagen kan invoeren in bijv. een GCB.

Dan met Custom GS een veld maken om de werknemers van bepaalde dagen in te voeren, inclusief een tijdsbeheer, zodat bijv. nu al ingevoerd kan worden wat de werknemers van woensdag zijn.

Dan in de sjabloon een if-constructie dat als de Custom GS is ingevoerd, dat deze getoond word, is de Custom GS niet ingevoerd, dan word de standaard getoond.

Zodra ik dit uitgewerkt en werkend heb, zal ik hier nog een eind conclusie over plaatsen.

@janvl Ik had eens een website waarin ik 'Advanced Content' gebruikte en dat liep helemaal mis bij een upgrade. Sindsdien ben ik een beetje huiverig om die module te gebruiken.

Re: hoe beste wisselende content aan te pakken?

Posted: Sat Mar 09, 2013 10:40 pm
by janvl
De ontwikkelaar van advanced content heeft inmiddels de module ge-update. Dat was ongeveer een maand geleden.

Naar het schijnt werkt hij nu weer stabiel, ik kan het echter niet uit eigen ervaring bevestigen, alleen aan da hand van meldingen van de duitse site.

m.vr.gr.
Jan

Re: hoe beste wisselende content aan te pakken?

Posted: Sat Apr 20, 2013 9:49 pm
by timdebuurman
Hoi,

Het is me uiteindelijk gelukt met de ListIt2 module i.c.m. een HTML-blok.

In ListIt2 heb ik 6 tekstinvoer velden gemaakt, genaamd Maandag t/m Zaterdag.

In ListIt2 heb ik een samenvattings sjabloon gemaakt met dit:

Code: Select all

{foreach from=$items item=item}
{if $smarty.now|date_format:"%w" == 0} Vandaag zijn we gesloten 
{elseif $smarty.now|date_format:"%w" == 1} 
Vandaag aan het werk: <strong>{$item->fielddefs.maandag.value|cms_escape}</strong>
{elseif $smarty.now|date_format:"%w" == 2} 
Vandaag aan het werk: <strong>{$item->fielddefs.dinsdag.value|cms_escape}</strong>
{elseif $smarty.now|date_format:"%w" == 3} 
Vandaag aan het werk: <strong>{$item->fielddefs.woensdag.value|cms_escape}</strong>
{elseif $smarty.now|date_format:"%w" == 4} 
Vandaag aan het werk: <strong>{$item->fielddefs.donderdag.value|cms_escape}</strong> 
{elseif $smarty.now|date_format:"%w" == 5} 
Vandaag aan het werk: <strong>{$item->fielddefs.vrijdag.value|cms_escape}</strong>
{elseif $smarty.now|date_format:"%w" == 6}
Vandaag aan het werk: <strong>{$item->fielddefs.zaterdag.value|cms_escape}</strong>
{/if}
{/foreach}
In ListIt2 heb ik een item gemaakt, genaamd 'normaal' met daar per dag ingevoerd wie er werkt.

Ook heb ik een item gemaakt genaamd 'anders' voor het geval het een keer een dagje afwijkt.

Als er dan een korte/tijdelijk wijziging is, kan iemand even maar ListIt2, bij het item 'anders' de juiste medewerker invoeren bij de dag en het item met het vinkje activeren.
(wel opletten dat het item weer ge-deactiveerd wordt later, maar dit is vollgens mij een best eind-gebrukersvriendeljke opossing)

Als je een hele week wilt inrichten (of merdere weken), dan kan een nieuw item gemaakt worden, met als alias 'w'en het weeknummer, bijv. 'w16'

Zo kunnen in bijv. een vakantieperiode meerdere afwijkende weken ingevoerd worden.

In een HTML-blokl heb ik dit gezet:

Code: Select all

{ListIt2wiewerkt include_items='anders' assign='anders'}
{ListIt2wiewerkt include_items="w`$smarty.now|date_format:'%W'+1`" assign="w"}
{ListIt2wiewerkt include_items='normaal' assign='normaal'}
{if $anders}
{$anders}
{elseif $w}
{$w}
{else}
{$normaal}
{/if}
Oftewel, als het item 'anders' inhoud heeft/geactiveerd is, zal deze worden weergegeven.
Anders word gekeken of de huidige week een item heeft met hetzelfde weeknummer.
Anders wordt het item 'normaal' weergegeven.

Op de plek waar dit moet komen (in een pagina-inhoud of in een sjabloon) staat gewoon de tag naar het HTML-blok.

@velden bedankt voor een belangrijjk deel van de oplossing:

Code: Select all

{ListIt2wiewerkt include_items="w`$smarty.now|date_format:'%W'+1`" assign="w"}

Re: [opgelost] hoe beste wisselende content aan te pakken?

Posted: Sun Apr 21, 2013 11:15 am
by velden
Tip:

programmeer technisch is het niet zo handig om telkens opnieuw $smarty.now|date_format:"%w" aan te roepen.

Dat kost resources en de waarde verandert niet.

Ik zou die call buiten de foreach loop halen en aan een variabele assignen. Vervolgens die variabele checken.

Daarnaast zie ik ook in bijna elke regel 'vandaag aan het werk : <strong>VARIABELE</strong>'. Dat is beheer technisch ook niet zo efficient. Misschien iets om later naar te kijken.

Re: [opgelost] hoe beste wisselende content aan te pakken?

Posted: Sun Apr 21, 2013 3:12 pm
by timdebuurman
Hoe zou ik dat laatste anders kunnen doen?

(ik ben nog niet zo thuis in het programmeren/smarty)

Re: [opgelost] hoe beste wisselende content aan te pakken?

Posted: Sun Apr 21, 2013 3:22 pm
by janvl
Zo ongeveer

{assign var=jouwnaam value=[smarty-code zonder haken]}

[foreach lus]
if $jounaam == "0" etc. etc.

m.vr.gr.
Jan

Re: [opgelost] hoe beste wisselende content aan te pakken?

Posted: Sun Apr 21, 2013 4:38 pm
by velden
timdebuurman wrote:Hoe zou ik dat laatste anders kunnen doen?

(ik ben nog niet zo thuis in het programmeren/smarty)
Mogelijk met string_format, maar ik moet toegeven dat ik dat zo 1,2,3 niet voor elkaar krijg met die <strong> tags erin:

Code: Select all

{assign var='format' value="Vandaag aan het werk: %s"}

{foreach from=$items item=item}
{if $smarty.now|date_format:"%w" == 0} Vandaag zijn we gesloten
{elseif $smarty.now|date_format:"%w" == 1}
{$item->fielddefs.maandag.value||string_format:$format}
{elseif $smarty.now|date_format:"%w" == 2}
{$item->fielddefs.dinsdag.value||string_format:$format}
...
Die <strong> tags worden auto escaped kennelijk en ik krijg het niet uitgeschakeld met 'nofilter'. Het maakt ook niet zoveel uit natuurlijk maar als je een keer de tekst wilt wijzigen is het zo wel makkelijker om te doen.