Neu Link auf eigene Seite

  • Ersteller des Themas Ersteller des Themas dane
  • Erstellungsdatum Erstellungsdatum

dane

Aktives Mitglied
10. Juni 2015
16
0
Hallo zusammen,

manchmal möchte ich im Template einen Link anhand der Seiten-ID setzen. Habe dafür keine fertige Funktion gefunden. Das müsste es doch geben, oder?

Meine Funktion, die ich mir selber zusammengeschnipselt habe, sieht jetzt so aus:

Code:
$smarty->register_function("getPageLink", "getPageLink");

function getPageLink($pageUid, $full = false) {

  $oLink = Shop::DB()->select('tlink', 'kLink', $pageUid);

  if (isset($oLink->kLink)) {
      $Link       = new stdClass();
      $linkHelper = LinkHelper::getInstance();

      $Link = $linkHelper->getPageLink($oLink->kLink);
      $requestURL    = baueURL($Link, URLART_SEITE, $row = 0, $bForceNonSeo = false, $bFull = $full);


      return $requestURL;
  }

  return false;

}

So bekomme ich aber nur die URL. Am liebsten wäre mir das komplette $Link-Objekt, welches ja auch den Namen der Seite, Language-URL etc enthält. Allerdings sind bei mir da die URL-Felder leider leer. Nur mit dem baueURL funktioniert es.
Habt ihr einen Tipp für mich?
 

martinwolf

Offizieller Service Partner
SPBanner
6. September 2012
3.724
355
Am Einfachsten ist es die bestehende Funktion get_cms_content in der functions.php (aber via Child) zu ändern. Siehe:
Code:
function get_cms_content($params, &$smarty)
{
    if (isset($params['kLink']) && (int)$params['kLink'] > 0) {
        $kLink          = (int)$params['kLink'];
        $linkHelper     = LinkHelper::getInstance();
        $oLink          = $linkHelper->getPageLink($kLink);
        $oLink->Sprache = $linkHelper->getPageLinkLanguage($oLink->kLink);
        if (isset($params['assign'])) {
            $smarty->assign($params['assign'], $oLink);//ANSTATT $smarty->assign($params['assign'], $oLink->Sprache->cContent);
        } else {
            return $oLink->Sprache->cContent;
        }
    }

    return null;
}
Im Template dann
Code:
{get_cms_content kLink=ID assign=meinLinkObjekt}
{$meinLInkObjekt} enthält dann alle Infos der CMS Seite.
 

Ähnliche Themen