Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 14. September 2013 20:20
- altermac
- hat von CMS/ms gehört
- Registriert: 14. September 2013
- Beiträge: 3
[GELÖST] Menuetext in Suchergebnis anzeigen
Hallo zusammen!
Ich möchte für die Suche das Ergebnistemplate in dieser Zeile anpassen:
<li><a href="{$entry->url}">{$entry->title} - {$entry->urltxt}</a> ({$entry->weight}%)</li>
Ich suche nach einen Tag, mit dem ich bei einer gefundenen Seite den Menuetext der Seite im Suchergebnis einblenden kann. Einen {title} verwende ich leider in meiner Website immer für einen Gruppe von Seiten gleich. Leider steht in urltxt dann der gleiche Inhalt. Ich möchte hier den Inhalt von {menu_text} der jeweiligen Seite anzeigen. Bin etwas ratlos ...
Was muss ich anstelle von {$entry->urltxt} eintragen?
Gruß
altermac
Offline
#2 15. September 2013 22:35
- Klenkes
- Server-Pate
- Ort: 89428 Syrgenstein
- Registriert: 17. Dezember 2010
- Beiträge: 1.437
Re: [GELÖST] Menuetext in Suchergebnis anzeigen
Willkommen im Forum!
Was muss ich anstelle von {$entry->urltxt} eintragen?
Ganz so einfach ist es nicht.
Du brauchst dazu das Modul Toolbox
Dann musst du einen UDT(Benutzerdefinierter Tag) anlegen mit dem Namen get_alias
Inhalt:
/** Get page alias from url
* @params string $params['url']
*/
$gCms = cmsms();
$cntnt = cmsms()->GetContentOperations();
foreach ($cntnt->GetAllContent() as $page)
{if ($page->GetURL() == $params['url']) {
$return = $page->Alias();
break;}}
if(!empty($params['assign'])){
$smarty = cmsms()->GetSmarty();
$smarty->assign(trim($params['assign']), $return);
}
else
{
return $return;
}
In deiner Resulttemplate dann dort wo der Link erscheinen soll:
{* Mit UDT den Seitenalias durch $entry-url holen *}
{get_alias url=$entry->url assign='set_alias'}
{* dann mit diesem Alias den Menütext holen, $menutext zuweisen *}
{tbtools::getPageMenutext($set_alias, 'menutext')}
<li><a href="{$entry->url}">{$menutext}</a> ({$entry->weight}%)</li>
Wie auch kommentiert muss zuerst der Alias deiner Trefferseite festgestellt werden. Erst mit diesem Alias kann über das Modul Toolbox der Menütext geholt werden.
(Samstag abend ungetestet... sollte aber funktionieren)
Offline
#3 15. September 2013 10:55
- altermac
- hat von CMS/ms gehört
- Registriert: 14. September 2013
- Beiträge: 3
Re: [GELÖST] Menuetext in Suchergebnis anzeigen
Danke für die schnelle Antwort, Lösung ist dann doch etwas anders geworden, da tbtools::getPageMenutext nicht richtig wollte. Ausgehend von Deinem Code im UDT hab ich den Menutext direkt aus dem Benutzerdefiniertem Tag geholt:
[== PHP ==]
/** Get page Menutext from url
* @params string $params['url']
*/
$gCms = cmsms();
$cntnt = cmsms()->GetContentOperations();
foreach ($cntnt->GetAllContent() as $page)
{if ($page->GetURL() == $params['url']) {
$return = $page->menutext();
break;}}
if(!empty($params['assign'])){
$smarty = cmsms()->GetSmarty();
$smarty->assign(trim($params['assign']), $return);
}
else
{
return $return;
}
Das Suchergebnis-Template sieht jetzt so aus:
[== Smarty ==]
<h3>{$searchresultsfor} "{$phrase}"</h3>
{if $itemcount > 0}
<ul>
{foreach from=$results item=entry}
{* Mit UDT den Menuetext durch $entry-url holen *}
{get_menutext url=$entry->url assign='menutext'}
<li>{$entry->title} - <a href="{$entry->url}"> {$menutext}</a> ({$entry->weight}%)</li>
{/foreach}
</ul>
<p>{$timetaken}: {$timetook}</p>
{else}
<p><strong>{$noresultsfound}</strong></p>
{/if}
Mein Problem ist gelöst. Vielen Dank!
Offline
Seiten: 1