[Opgelost] Laden van content tag's van alle pagina's

Nederlandse ondersteuning voor CMS Made Simple

Moderator: velden

Post Reply
realrock
Forum Members
Forum Members
Posts: 227
Joined: Tue Sep 04, 2007 8:14 pm

[Opgelost] Laden van content tag's van alle pagina's

Post by realrock »

Ik ben bezig met het maken van een javascript applicatie waarbij ik content van alle pagina's binnen CMSMS zou willen weergegeven op één pagina. Bijvoorbeeld als ik een CMS heb met de pagina's "home", "over ons" en "contact" dan zou ik alle content van deze pagina's op willen halen om deze op één pagina weer te geven.

Weet iemand of daar een oplossing voor bestaat, het gaat enkel om de teksten niet om de layout, dus Iframes komen niet in aanmerking.

Voorbaat dank!,
Peter
Last edited by realrock on Thu Apr 22, 2010 9:57 am, edited 1 time in total.
Jos
Support Guru
Support Guru
Posts: 4019
Joined: Wed Sep 05, 2007 8:03 pm
Location: The Netherlands

Re: Laden van content tag's van alle pagina's

Post by Jos »

Ik denk dat dit goed mogelijk is met een menu template waarin je CGSimpleSmarty aanroept

In de menu template heb je de $node->alias nodig

Bij CGSimpleSmarty kun je aan de hand van die alias met get_page_content de inhoud ophalen.

Tot slot roep je in een pagina of paginasjabloon dat menu met die specifieke menutemplate aan.  8)
Jos
Support Guru
Support Guru
Posts: 4019
Joined: Wed Sep 05, 2007 8:03 pm
Location: The Netherlands

Re: Laden van content tag's van alle pagina's

Post by Jos »

Voorgaande suggestie vergt wel heel veel queries op de database

Ik vond het wel leuk om wat te stoeien met een UDT om hetzelfde met slechts één query te bereiken. Dat bleek nog wel een heel gedoe, maar volgens mij ben ik eruit gekomen.

Maak een UDT genaamd allcontent

Code: Select all

global $gCms;
$db =& $gCms->GetDB();


$query = "SELECT 
	c.content_id, 
	c.content_name, 
	c.menu_text, 
	c.content_alias,
	cp.content
FROM 
	".cms_db_prefix()."content c, 
	".cms_db_prefix()."content_props cp
WHERE 
	c.content_id=cp.content_id
	AND cp.prop_name='content_en'
	AND c.active=1
	AND c.show_in_menu=0
ORDER BY
	c.hierarchy ASC
";

$str = '';
$result = $db->Execute($query);
if ( $result && $result->RecordCount() > 0 )
{
  while ( $row=$result->FetchRow() )
  {
    $str .= '<div id="page' . $row['content_id'] . '">';
    $str .= '<h1>' . $row['content_name'] . '</h1>';
    $str .= '<div>' . $row['content'] . '</div>';
    $str .= '</div>';
  }
}
$smarty->assign('showallcontent',$str);
Deze UDT roept alle content op van de pagina's die èn actief zijn èn NIET in het menu worden getoond.
Via één bulkbewerkingsactie kun (moet) je alle pagina's dus eerst uit het menu halen. Dit is nodig omdat je anders in een oneindige loop belandt.

Maak vervolgens een nieuwe pagina aan die wel in het menu getoond wordt. Zet in het content veld:

Code: Select all

{allcontent}
{eval var=$showallcontent}
De eval is nodig om module- en tag-aanroepen te laten werken.

Volgens mij heb je dan wat je wilt (al zit er geen garantie op)   8)
Last edited by Jos on Fri Apr 16, 2010 10:27 pm, edited 1 time in total.
realrock
Forum Members
Forum Members
Posts: 227
Joined: Tue Sep 04, 2007 8:14 pm

Re: Laden van content tag's van alle pagina's

Post by realrock »

Super bedankt voor het uitpluizen van de juiste code, ik heb het getest en het werkt perfect. Alleen nou moet ik eigenlijk nog iets met de active menu items.. ;)

Ik begrijp dat het lastig is om alle active items te tonen. Is het misschien mogelijk om in de query te specificeren welke wel active menu items getoond moeten worden?
Jos
Support Guru
Support Guru
Posts: 4019
Joined: Wed Sep 05, 2007 8:03 pm
Location: The Netherlands

Re: Laden van content tag's van alle pagina's

Post by Jos »

Ja, alles is mogelijk. Ik weet alleen niet hoe flexibel je het wilt hebben.

Het deel in de query waar je mee kan spelen is

Code: Select all

	AND c.active=1
	AND c.show_in_menu=0
Al het andere is nodig om het juiste resultaat te krijgen.

Je zou in plaats van (of aanvullend op) bovenstaande kunnen gebruiken:

Code: Select all

	AND c.content_id IN(2,5,8,29)
De getallen zijn dan de content_id's, die zie je in de url als je de betreffende pagina bewerkt.

Of

Code: Select all

	AND c.content_alias IN('intro','producten','diensten','contact')
Waar je de aliasnamen plaatst van de pagina's die je wil tonen.
Last edited by Jos on Thu Apr 22, 2010 10:21 am, edited 1 time in total.
realrock
Forum Members
Forum Members
Posts: 227
Joined: Tue Sep 04, 2007 8:14 pm

Re: Laden van content tag's van alle pagina's

Post by realrock »

Het was even puzzelen want ik kreeg het niet helemaal voor elkaar met die content_id's.  Met de aliassen werkte het wel door het gebruik van de onderstaande code.

Code: Select all

AND c.content_alias
Bedankt voor je hulp Jos!, ik zal binnenkort een tutorial maken met de applicatie waar ik mee bezig ben.
Jos
Support Guru
Support Guru
Posts: 4019
Joined: Wed Sep 05, 2007 8:03 pm
Location: The Netherlands

Re: [Opgelost] Laden van content tag's van alle pagina's

Post by Jos »

Leuk!  Ik zie dat ik inderdaad met kopieren/plakken iets vergeten ben aan te passen... ik zal het nog even bewerken..

Om het iets dynamischer te maken, zou je qua selectie in plaats van het opgeven van de aliasnamen, ook iets kunnen doen met de extra1 velden. Ik heb het zo even niet bij de hand, maar ik meen me te herinneren dat die in dezelfde tabel/record zijn opgeslagen als content alias, menutext etc.
Last edited by Jos on Thu Apr 22, 2010 10:24 am, edited 1 time in total.
jeroenb
Forum Members
Forum Members
Posts: 27
Joined: Wed Jan 13, 2010 1:00 pm

Re: [Opgelost] Laden van content tag's van alle pagina's

Post by jeroenb »

Is het hier ook mogelijk dat de id niet de pagina alias wordt,
maar automatisch wordt aan gemaakt als:
    div1
    div2
    div3
    div4
Post Reply

Return to “Dutch - Nederlands”