FYI: Entwickler-Workaround für die Ausgabe von Frontend-Links

ag-websolutions.de

Sehr aktives Mitglied
29. Dezember 2009
14.548
232
Der nachfolgende Workaround richtet sich ausschließlich an Plugin-Entwickler:

Wie sicherlich bereits festgestellt, werden bei Plugins, welche einen Frontend-Link verwenden, zwar der FE-Link im Shop integriert....allerdings erfolgt darüber keine Template-Ausgabe...weder als integriertes Template, noch als FullscreenTemplate.

Damit ist die Entwicklung von Plugins natürlich erschwert, da die Frontend-Ausgabe nicht getestet werden kann.

Andy vom JTL-Team hat daher...man beachte gestern noch um 22:30 Uhr, das nenne ich Service...einen Workaround geschaffen.

Achtung:
Dieser Workaround dient lediglich für die momentane Entwicklung von Plugins mit Frontendlinks. Plugins mit diesem Workaround sollten nicht(!!) in den produktiven Einsatz gelangen. JTL wird versuchen, mit einer der nächsten Updates eine Fehlerbehebung zu vollziehen, die den Einsatz des Workaround hinfällig macht!

Jetzt zum eigentlichen Workaround:

1.) In der info.xml ist unmittelbar vor dem Kind-Element < FrontendLink > folgendes Hook-Kind-Element einzufügen:

Code:
<Hooks>
<Hook id="99">[I]frontendphp-datei.php[/I]</Hook>
</Hooks>

Die Hooks-ID ist beizubehalten; "frontendphp-datei.php" ist mit dem tatsächlichen Namen der php-Datei für das Frontend zu ersetzen und muss identisch sein, mit der bei <FrontendLink><Filename> eingetragenen Dateinamen.

2.) Die Frontend-PHP muss auf folgender PHP-Datei aufbauen; der eigene (eigentliche) PHP-Code ist an gekennzeichneter Stelle (zwischen // dein Code hier ... und //Smarty Assigns) einzufügen:

Code:
<?php
/**
 *-------------------------------------------------------------
 * JTL-Erweiterung
 * File: main.php, php file
 * ------------------------------------------------------------
*/
global $kLink, $smarty;
setzeSeitenTyp(PAGE_PLUGIN);
if(isset($kLink) && $kLink > 0)
{
 $oPluginLinkDatei = $GLOBALS['DB']->executeQuery("SELECT * 
  FROM tpluginlinkdatei
  WHERE kLink = " . intval($kLink), 1);
 
 if(isset($oPluginLinkDatei->cDatei) && strlen($oPluginLinkDatei->cDatei) > 0)
 {
  $oPlugin = new Plugin($oPluginLinkDatei->kPlugin);
 
  // ... dein code hier ...
 
  // Smarty Assigns
  $smarty->assign("oPlugin", $oPlugin);
  $smarty->assign("cAnleitung", $cVartest);
 
 
  if(strlen($oPluginLinkDatei->cTemplate) > 0)
  {
   $smarty->assign("cPluginTemplate", $oPlugin->cFrontendPfad . PFAD_PLUGIN_TEMPLATE . $oPluginLinkDatei->cTemplate);
   $smarty->assign("nFullscreenTemplate", 0);
  }
  else
  {
   $smarty->assign("cPluginTemplate", $oPlugin->cFrontendPfad . PFAD_PLUGIN_TEMPLATE . $oPluginLinkDatei->cFullscreenTemplate);
   $smarty->assign("nFullscreenTemplate", 1);
  }
 }
}
?>

Nochmals vielen Dank an Andy und das JTL-Team!!
 

develonet

Aktives Mitglied
21. November 2010
23
0
AW: FYI: Entwickler-Workaround für die Ausgabe von Frontend-Links

der workaround bewirkt, dass der Link jetzt vorhanden ist, nachdem ich das Plugin installiert habe. Leider führt er immernoch nicht den passenden php-Code aus und zeigt auch nicht das angegebene Template...

und nachdem man einmal die CMS-Verwaltung für die Links geöffnet hat, muss man das Plugin deinstallieren, weil es anschließend als Fehlerhaft angezeigt wird...

so sieht meine info.xml aus

Code:
<Hooks>
            <Hook id="68">createFinderTable.php</Hook>
            <!--dieser Hook muss mit Beseitigung des "eigene Links"-Bug wieder raus -->
            <Hook id="99">frontend_link_wrapper.php</Hook>
            <!--  -->
        </Hooks>
        <!--Boxes>
        <Box>
        <Name>ArticleFinderBox ArticleDetails</Name>
        <Available>0</Available>
        <TemplateFile>box_finder.tpl</TemplateFile>
        </Box>
        </Boxes-->
        <FrontendLink>
          <Link>
                  <Filename>frontend_link_wrapper.php</Filename>
              <!--Filename>plugin_articlefinder_overview.php</Filename--> 
              <Name>Article Finder</Name> 
              <Template>plugin_articlefinder_overview.tpl</Template> 
              <VisibleAfterLogin>N</VisibleAfterLogin> 
              <PrintButton>N</PrintButton> 
              <LinkLanguage iso="GER">
                    <Seo>passende Artikel</Seo> 
                    <Name>passende Artikel</Name> 
                    <Title>passende Artikel</Title> 
                    <MetaTitle>Finden Sie passende Artikel</MetaTitle> 
                    <MetaKeywords>passende Artikel finden</MetaKeywords> 
                    <MetaDescription>passende Artikel finden</MetaDescription>
              </LinkLanguage>
          </Link>  
        </FrontendLink>
 
Ähnliche Themen

Ähnliche Themen