Artikel Link bekommen?

Hallo liebe Community.

Ich baue gerade ein Modul wo ich Emails mit Artikeln verschicke. Ich benötige jedoch noch die dazugehörige Url vom Artikel und wollte fragen wie man diese bekommen kann?

Mir steht der Wert von OXID in OXARTICLE zur Verfügung, wodurch ich auch an alle anderen Werte für diesen Artikel kommen kann.

Ich habe die Methode [B]getLink() [/B]gefunden, jedoch bezweifle ich dass ich diese anwenden könnte, bzw weis ich nicht wie man diese anwendet.

Hi wo wird denn der Link benötigt? Im Template oder in einer php Klasse?

In den php Klassen sollte das funktionieren:


$oArticle = oxNew( 'oxArticle' );
$oArticle->load( $oxid);
$link = $oArticle->getLink();

Im Template kommt es darauf an wo du dich befindest,

Ja es soll in einer Klasse steht. Mein bisheriger Stand ist folgender:

class my_custemail{
    
    public function retrieveData() {
        
        // get Data
        
        $data_mail = $_GET['data_mail'];     // email adresse    
        
        $data_pic = $_GET['data_pic'];     // artikel bild
        
        $data_title = $_GET['data_title'];       // artikel titel

        $data_id = $_GET['data_id'];       // oxID
        
        $data_desc = $_GET['data_desc'];       // artikel kurzbeschreibung


               
        $oArticle = oxNew('oxArticle');
        $oArticle->load($data_id);
        $link = $oArticle->getLink();
        
        echo $link;
   }
}

Erhalte:

Fatal error: Call to undefined function oxNew()

PS: benutze CE 4.7.8

EDIT:

Da ich nicht durchblicke habe ich folgendes versucht:

foreach(glob("/www/home/meineurl/core/*.php") as $file){
        require $file;
        }

Bekomme:

Fatal error: Class ‘oxSuperCfg’ not found

??? oxSuperCfg ist in oxsupercfg.php deklariert, welches sich im selben Ordner befindet ???

Bin jetzt einfach der Reihe nach durchgegangen und hänge nun hier:

class my_custemail{
    
    public function retrieveData() 
    {
        
        require ("/www/home/myurl/core/oxfunctions.php");
        require ("/www/home/myurl/core/oxutilsobject.php");
        require ("/www/home/myurl/core/oxregistry.php");

        
        $data_id = $_GET['data_id'];
        
        $data_mail = $_GET['data_mail'];         
        
        $data_pic = $_GET['data_pic'];
        
        $data_title = $_GET['data_title'];       
        
        $data_desc = $_GET['data_desc'];
               
        // get Article Link

        $oArticle = oxNew('oxArticle');
        $oArticle->load($data_id);
        $link = $oArticle->getLink();
        
        
        echo $link;
    }
}

Erhalte einen Serverfehler 500.

In der Dokumentation steht:

Creates and returns new object. If creation is not available, dies and outputs error message.

Wieso mag mein Code den anderen Code nicht?^^ Kann es daran liegen dass es ein Modul für den Adminbereich ist?

[QUOTE=nosence;152993]Bin jetzt einfach der Reihe nach durchgegangen…[/QUOTE] Hatte das irgendwas mit dem Shop zutun?

Admin + Modul: http://forum.oxid-esales.com/showthread.php?t=25311&page=2#post152445

Mittlerweile ist es etwas komplizierter geworden.^^

Ist es möglich in einer datei1.php zu sagen dass datei2.php ausgeführt wird. Dabei sendet datei2.php eine Url mit Daten aus, welche in datei1.php per $_GET aufgerufen werden.

Oder sagen wir es so:

Ich habe in datei1.php ein

echo “<a href=“datei2.php?mit den Daten welche ich verschicke””."</a>";

Ich habe eine datei1.tpl wo ich datei1.php lade. Hier kann ich auf den Link klicken und erhalte die Daten in datei2.php wo ich schon die benötigten $_GET Befehle habe.

Das Problem ist dass ich Oxid-Funktionen benötige und diese aus irgendeinem Grund nicht funktionieren. Deswegen habe ich eine datei2.tpl wo ich datei2.php lade. Ich habe testweiße folgendes probiert…

$oArticle = oxNew(“oxArticle”);
$oArticle->load($data_id);
$link = $oArticle->getMainLink();

und davor $data_id mit einer OXID aus OXARTICLE händisch eingefügt… nur um zu sehen ob es klappt und das tut es.

Jetzt müsste ich nur noch die Daten aus datei1.php übergeben bekommen. Mit GET funktioniert es aber nur wenn der Link aufgerufen wird und dieser kann die Daten nicht an datei2.tpl? übergeben, sondern nur an datei2.php? (soweit ich GET verstanden habe).

Bin grade am Kopfschütteln^^

Das bist Du nicht der/die Einzige :wink:

Das sind überwiegend Fragen zu Grundlagen (php), die hier nichts zu suchen haben und ganz ehrlich: “Wer soll in obigem Text durchblicken?”

Warum nutzt du nicht einfach den in Oxid vorhanden Newsletter, bzw. schaust dir dort die benötigten Funktionalitäten ab?

Alternativ, bau doch nur ein Modul, mit dem man Artikel ordentlich einer Aktion zuordnen kann. Dann wäre bei einem Newsletter immerhin das unschöne Artikelzuordnen weg.

my5cents
cya

Hätte nur noch eine einzige Frage. Wie übergibt man Daten beim Funktionsaufruf (PHP 5.3)?