Nieuwssamenvatting doorlinken naar een bestaande pagina.

Een board om T&T's te plaatsen m.b.t. CMSMS, PHP of Smarty

Moderator: velden

Post Reply
User avatar
Rolf
Dev Team Member
Dev Team Member
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Nieuwssamenvatting doorlinken naar een bestaande pagina.

Post by Rolf »

Hallo allemaal,

Dit artikel heb ik gemaakt na aanleiding van http://forum.cmsmadesimple.org/index.ph ... 135.0.html

Als je gebruik maakt van de nieuwsmodule dan kun je een samenvatting maken op je homepage, waarin ook een link is opgenomen naar een automatisch gegenereerde pagina waar het gehele artikel staat.
Maar het is nog niet -standaard- mogelijk om vanuit de samenvatting een verwijzing te maken naar een bestaande normale pagina op je website. Bijv. een fotoalbum, gastenboek of de contactpagina.

Er zijn een aantal manieren om dit op te lossen:

- {redirect_page page='pagina-alias'} tag in het artikelveld plaatsen, wat niet erg gebruiksvriendelijk is...
- het samenvattingssjabloon aanpassen, zie o.a. http://forum.cmsmadesimple.org/index.ph ... 135.0.html , wat uit eigen ervaring niet goed werkt in combinatie met de zoekmachines.

Heb nu een eenvoudige combinatie gemaakt van de genoemde oplossingen, die gebruiks- én Google-vriendelijk is.

In plaats van de [title] en [meer...] link door te sturen, heb ik nu een doorverwijzing gezet in het artikelsjabloon.
Bij het artikelformulier is onderaan een veld toegevoegd genaamd 'cms_selflink'.
Als er in dit veld een alias van een pagina (zie tab opties bij pagina's) staat ingevuld dan ga je na het klikken op de link in de samenvatting, automatisch daar deze (normale) pagina toe, staat er niets ingevuld dan wordt het normale artikelsjabloon getoond.

Werkwijze:

1. Open in de nieuws module de tab 'Velddefinities'.
   Maak een velddefinitie aan genaamd 'cms_selflink' (of een eigen naam, maar dan wel even aanpassen in de code!)
   Type: Tekstinvoer
   *Publiek (openbaar) aanvinken.

2. Wijzig het samenvattingssjabloon.
   Zet onderin het sjabloon de volgende regel buiten werking door het plaatsen van {* en *}:

Code: Select all

...
{if isset($entry->fields)}
  {foreach from=$entry->fields item='field'}
     <div class="NewsSummaryField">
        {if $field->type == 'file'}
          <img src="{$entry->file_location}/{$field->value}"/>
        {else}
{*                < ----------------------------------------------
          {$field->name}: {eval var=$field->value}
*}                < ----------------------------------------------
        {/if}
     </div>
  {/foreach}
{/if}

</div>
{/foreach}
<!-- End News Display Template -->
3. Wijzig het artikelsjabloon:

Plaats voor de bestaande code:

  {if isset($entry->fields.cms_selflink->value)}
     {redirect_page page=$entry->fields.cms_selflink->value}
  {else}

en na de bestaande code:

  {/if}

De totale nieuwe code wordt dan:

Code: Select all


   {if isset($entry->fields.cms_selflink->value)}
      {redirect_page page=$entry->fields.cms_selflink->value}
   {else}

{* --- Begin standaard artikelsjabloon --- *}

{if $entry->postdate}
	<div id="NewsPostDetailDate">
		{$entry->postdate|cms_date_format}
	</div>
{/if}
<h3 id="NewsPostDetailTitle">{$entry->title}</h3>

<hr id="NewsPostDetailHorizRule" />

{if $entry->summary}
	<div id="NewsPostDetailSummary">
		<strong>
			{eval var=$entry->summary}
		</strong>
	</div>
{/if}

{if $entry->category}
	<div id="NewsPostDetailCategory">
		{$category_label} {$entry->category}
	</div>
{/if}
{if $entry->author}
	<div id="NewsPostDetailAuthor">
		{$author_label} {$entry->author}
	</div>
{/if}

<div id="NewsPostDetailContent">
	{eval var=$entry->content}
</div>

{if $entry->extra}
	<div id="NewsPostDetailExtra">
		{$extra_label} {$entry->extra}
	</div>
{/if}

<div id="NewsPostDetailPrintLink">
	{$entry->printlink}
</div>
{if $return_url != ""}
<div id="NewsPostDetailReturnLink">{$return_url}</div>
{/if}

{if isset($entry->fields)}
  {foreach from=$entry->fields item='field'}
     <div class="NewsDetailField">
        {if $field->type == 'file'}
	  {* this template assumes that every file uploaded is an image of some sort, because News doesn't distinguish *}
          <img src="{$entry->file_location}/{$field->value}"/>
        {else}
          {$field->name}: {eval var=$field->value}
        {/if}
     </div>
  {/foreach}
{/if}

{* --- Einde standaard artikelsjabloon --- *}

{/if}


Deze werkwijze heb ik op verschillende manieren getest en werkt goed.

Groet, Rolf
Last edited by Rolf on Thu Aug 06, 2009 5:46 pm, edited 1 time in total.
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
User avatar
erpee
Power Poster
Power Poster
Posts: 771
Joined: Sat Jul 07, 2007 9:22 am
Location: Almelo, The Netherlands

Re: Nieuwssamenvatting doorlinken naar een bestaande pagina.

Post by erpee »

Geprobeerd .... en er gebeurt  niet zoveel. Het kan zijn dat ik in het veld "cms_selflink" niet de juiste code plaats.

Ik heb er neergezet:

Code: Select all

cms_selflink page="uitgebreide-aanvraag"
Wat moet anders?
Waarom zou het direct goed moeten gaan? Dan is alle lol weg ...
User avatar
Rolf
Dev Team Member
Dev Team Member
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Nieuwssamenvatting doorlinken naar een bestaande pagina.

Post by Rolf »

Hallo Erpee,
Rolf wrote: Als er in dit veld een alias van een pagina (zie tab opties bij pagina's) staat ingevuld dan ga je na het klikken op de link in de samenvatting, automatisch daar deze (normale) pagina toe, staat er niets ingevuld dan wordt het normale artikelsjabloon getoond.
In het veld moet je alleen de alias plaatsen, dus in jouw geval alleen: uitgebreide-aanvraag.
Hoop dat het nu wel lukt.

Groet, Rolf  :D
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
(M)
Forum Members
Forum Members
Posts: 118
Joined: Tue Mar 18, 2008 11:43 pm

Re: Nieuwssamenvatting doorlinken naar een bestaande pagina.

Post by (M) »

Het doorlinken werkt bij mij alleen als *Publiek aangevinkt is bij de Velddefinitie "cms_selflink".
Maar dan krijg ik overal de code van de link zelf ("cms_selflink: pagina..." ) in beeld en dat wil ik niet. Het lijkt mij ook niet de bedoeling.
Als ik *Publiek uitvink werkt het niet meer.

Wat doe ik verkeerd?

[versie 1.5.4 "Carolina"]
Last edited by (M) on Mon Aug 03, 2009 1:02 pm, edited 1 time in total.
User avatar
Rolf
Dev Team Member
Dev Team Member
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Nieuwssamenvatting doorlinken naar een bestaande pagina.

Post by Rolf »

Hallo (M)

Er schijnt wat gewijzigd te zijn in de laatste versies.
Ik ga dit even uit testen op mijn eigen sites, waar dit ook draait.

Kom hier zsm op terug!

Grt. Rolf
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
User avatar
Rolf
Dev Team Member
Dev Team Member
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Nieuwssamenvatting doorlinken naar een bestaande pagina.

Post by Rolf »

Hallo (M)

Het samenvattingsssjabloon is gewijzigd ten opzichte van de versie waarop ik dit artikel heb gemaakt. Vandaar de verkeerde weergave.

Wijzig jouw samenvattingssjabloon:
Zet onderin het sjabloon de volgende regel buiten werking door het plaatsen van {* en *}
De regel geeft een opsomming van de velddefinitie velden.  ???

Code: Select all

...
{if isset($entry->fields)}
  {foreach from=$entry->fields item='field'}
     <div class="NewsSummaryField">
        {if $field->type == 'file'}
          <img src="{$entry->file_location}/{$field->value}"/>
        {else}
{*                < ----------------------------------------------
          {$field->name}: {eval var=$field->value}
*}                < ----------------------------------------------
        {/if}
     </div>
  {/foreach}
{/if}

</div>
{/foreach}
<!-- End News Display Template -->
Of dit de netste manier is moet blijken, maar het werkt in ieder geval weer...  ;)

Heb dit in het eerste artikel ook aangepast.

Rolf  :D
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
(M)
Forum Members
Forum Members
Posts: 118
Joined: Tue Mar 18, 2008 11:43 pm

Re: Nieuwssamenvatting doorlinken naar een bestaande pagina.

Post by (M) »

Beste Rolf,

Geweldig! Het werkt nu.

Zeer bedankt.
User avatar
erpee
Power Poster
Power Poster
Posts: 771
Joined: Sat Jul 07, 2007 9:22 am
Location: Almelo, The Netherlands

Re: Nieuwssamenvatting doorlinken naar een bestaande pagina.

Post by erpee »

Ik werk nu met 1.6.6 van CMSms Heb alle aanpassingen doorgevoerd. Eerst werkte het wel ... nu niet meer  :'(
Waarom zou het direct goed moeten gaan? Dan is alle lol weg ...
User avatar
Rolf
Dev Team Member
Dev Team Member
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Nieuwssamenvatting doorlinken naar een bestaande pagina.

Post by Rolf »

Erpee,

Heb je deze goed staan?
Werkwijze:
1. Open in de nieuws module de tab 'Velddefinities'.
    Maak een velddefinitie aan genaamd 'cms_selflink' (of een eigen naam, maar dan wel even aanpassen in de code!)
    Type: Tekstinvoer
    *Publiek (openbaar) aanvinken.
Grt. Rolf
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
User avatar
erpee
Power Poster
Power Poster
Posts: 771
Joined: Sat Jul 07, 2007 9:22 am
Location: Almelo, The Netherlands

Re: Nieuwssamenvatting doorlinken naar een bestaande pagina.

Post by erpee »

:'( :'( :'( :'( :'(

Jeej, mijn niveau van begrijpend lezen is bedroevend ....

Dank je Rolf ... dat was 'm
Waarom zou het direct goed moeten gaan? Dan is alle lol weg ...
(M)
Forum Members
Forum Members
Posts: 118
Joined: Tue Mar 18, 2008 11:43 pm

Re: Nieuwssamenvatting doorlinken naar een bestaande pagina.

Post by (M) »

Beste Rolf,

Je hebt mij eerder prima geholpen om het doorlinken voor elkaar te krijgen. Sinds een update 1.9.4.2 naar 1.10.3 werkt het niet meer.
Werkt het op jouw site nog wel?

In dit draadje http://forum.cmsmadesimple.org/viewtopi ... =7&t=58277 kun je de foutmelding zien die ontstaat als je klikt op een link op de site.

Ik heb de workaround die hier staat http://forum.cmsmadesimple.org/viewtopi ... =57764&f=3 al geprobeerd maar die werkt niet.

Hopelijk heb jij een oplossing
User avatar
Rolf
Dev Team Member
Dev Team Member
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Nieuwssamenvatting doorlinken naar een bestaande pagina.

Post by Rolf »

Zal het binnenkort even testen

grt. Rolf
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
User avatar
Rolf
Dev Team Member
Dev Team Member
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Nieuwssamenvatting doorlinken naar een bestaande pagina.

Post by Rolf »

Voor werking in CMSMS 1.10+ wijzig in de detail template:

Code: Select all

{if isset($entry->cms_selflink)}
{redirect_page page=$entry->cms_selflink}
{else}
In:

Code: Select all

{if isset($entry->fields.cms_selflink->value)}
{redirect_page page=$entry->fields.cms_selflink->value}
{else}
Is al aangepast in het eerste artikel.

Groet, Rolf
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
(M)
Forum Members
Forum Members
Posts: 118
Joined: Tue Mar 18, 2008 11:43 pm

Re: Nieuwssamenvatting doorlinken naar een bestaande pagina.

Post by (M) »

Bedankt!
Maar in de tussentijd heb ik alle content verplaatst naar het artikel gedeelte in de News Module zelf. Met het tegenwoordig opgeven van een specifieke URL aan een News item is de SEO wens ook in vervulling gegaan. Daarnaast is het voor de editor minder omslachtig geworden en kan alles binnen de News Module gebeuren.
Post Reply

Return to “Tips en Trucs”