Subversion-Projekte lars-tiefland.content-management

Revision

Blame | Letzte Änderung | Log anzeigen | RSS feed

<?php
    /**
     * @name ebay_bewertungsmodul.functions.includes.php
     * @description This file includes the functions for '../ebay_bewertungsmodul.php'.
     * 
     * @author Patrick Lautsch
     * @copyright 2011 Webagentur Niewerth
     * @package Content-management
     * @version 
     * @license propietary
     */
     
     
     /**
      * Setzt eine Positive Bewertung bei eBay.
      * 
      * @param array
      * @param EbatNs_ServiceProxy-Object
      * @return array
      *  
      */
     function leaveFeedback($positveBewertungen, $sp)
     {   
        for ( $i=0; $i<count($positveBewertungen); $i++ )
        {
            $req = new LeaveFeedbackRequestType();
            
            $req->ItemID = $positveBewertungen[$i]['ItemID'];
            $req->CommentText = getCommentText();
            $req->CommentType = 'Positive';
            $req->TransactionID = $positveBewertungen[$i]['TransactionID'];
            $req->TargetUser = $positveBewertungen[$i]['UserID'];
            
            //$res = $sp->LeaveFeedback($req);
            //errorDetection($res);
            setFeedbackInDB( $req->ItemID, $req->TransactionID, $req->CommentText, $req->CommentType );
        }
     }
     
     /**
      * Setzt in der Datenbank den abgegebnen Kommentar
      * 
      * @param int
      * @param int
      * @param string
      * @param string
      * 
      */
     function setFeedbackInDB( $ItemID, $TransactionID, $CommentText, $CommentType )
     {
        // Parameter korrekt?
        if ( empty( $ItemID ) || empty( $TransactionID ) || empty( $CommentText ) || empty( $CommentType ) )
            die();
        
        // QUERY: Setzte in der Datenbank den Kommentar und den Kommentar Typ.
        // Die Identifikation der Transaction findet über das "Paar" $ItemID und $Tran$TransactionID statt.
        $sql = '
            INSERT INTO
              eBay_Feedback
                (ItemID, TransactionID, CommentText, CommentType, FeedbackReceivedCommentType)
            VALUES
                ("'.$ItemID.'", "'.$TransactionID.'", "'.$CommentText.'", "'.$CommentType.'", "Positive")              
        ';
        mysql_query( $sql ) or die( mail("info@weban.de", "eBay-Bewertungsmodul Fehler", mysql_errno() . ': ' . mysql_error() . '<hr />' . $sql) );
     }
     
     /**
      * Holt per Zufall einen Bewertungstext aus der Datenbank
      * 
      * @return string
      */
     function getCommentText()
     {    
        // QUERY: Hole aus der Tabelle eBay_settings,
        // alle Kommentare die eine ID haben die >=179 und <= 199 ist.
        $sql = '
            SELECT
                Inhalt AS feedback
            FROM
                eBay_settings
            WHERE
                (ID BETWEEN 179 AND 199)
                 AND Inhalt != ""
                 AND shops_id = '.$_GET['shops_id'].'
        ';
        $result = mysql_query( $sql ) or die( mail("info@weban.de", "eBay-Bewertungsmodul Fehler", mysql_errno() . ': ' . mysql_error() . '<hr />' . $sql) );
        $i=0;
        while ( $row = mysql_fetch_assoc($result) )
        {
            $feedback_array[$i] = $row['feedback'];
            $i++;
        }
        
        // Anzahl der Zufallszahlen ist die Anzahl der abgefragten Kommentare
        $zufallszahl = rand( 0, ($i-1) );
        
        // Auswahl eines Kommentars auf Basis der Zufallszahl
        $feedback = $feedback_array[$zufallszahl];
        
        // Rückgabe des Kommentars
        return $feedback;
     }
     
     /**
      * Returns the Path of the 'ConfDatei', which is needed for the constructor of the 
      * 'EbatNs_Session'-Class
      * 
      * @param int
      * @return string
      **/
     function getConfDateiPath($shops_id)
     {
        // Param. correct?
        if ( !is_int($shops_id) || $shops_id == 0 )
        {
            die('getConfDateiPath(): Variable \'shops_id\' is not int.');
        }
        
        // the select-statement to get the path of the 'confDatei'
        $sql = "
            SELECT
                Inhalt
            FROM
                eBay_settings
            WHERE
                Typ = 'confDatei'
                AND shops_id = '" . $shops_id . "'
        ";
        
        // execute the query
        $result = mysql_query( $sql ) or die( mail("info@weban.de", "eBay-Bewertungsmodul Fehler", mysql_errno() . ': ' . mysql_error() . '<hr />' . $sql) );
        
        // create an asso. array of the result
        $row = mysql_fetch_assoc( $result );
        
        // return the path of the 'confDatei'
        return (string)$row['Inhalt'];
    }
    
    /**
     * Überprüft die "Response" auf Fehler
     * 
     * @param mixed-Object
     **/
    function errorDetection($res)
    {
        if (!isset($res)) die ('errorDetection: $res wurde nicht gesetzt!');
        
        if ( !($res->getAck() == 'Success') )
        {
            foreach ($res->getErrors() as $error)
            {
                die("#" . $error->getErrorCode() . " " . htmlentities($error->getShortMessage()) . "/" . htmlentities($error->getLongMessage()) . "<br>");
            }
        }
    }
    
    /**
     * Holt das Transaktions-Array.
     * 
     * @param object
     * @return object
     */
    function getTransactionArray($res)
    {
        return $res->ItemsAwaitingFeedback->TransactionArray;
    }
    
    /**
     * Holt alle Positven Bewertungen aus dem Transaktions-Array,
     * in dem kein 'Seller' existiert (Nur Käufer werden bewertet, nicht Verkäufer!)
     * Des Weiteren erstellt diese Funktion einen Eintrag in 'eBay_Feedback',
     * wenn der Kommentar des Käufers nicht positiv ist.
     * 
     * @param array
     * @return array
     */
    function getTransactionWithPositiveFeedback($transactionArray)
    {
        $i = 0;
        foreach ($transactionArray as $taa)
        {
            if ( $taa->FeedbackReceived->CommentType == 'Positive' && !isset($taa->Item->Seller) )
            {
                $transaction[$i]['ItemID'] = $taa->Item->ItemID;
                $transaction[$i]['TransactionID'] = $taa->TransactionID;
                $transaction[$i]['UserID'] = $taa->Buyer->UserID;
                $i++;
            }
            
            if ( ($taa->FeedbackReceived->CommentType == 'Neutral' || $taa->FeedbackReceived->CommentType == 'Negative') && !isset($taa->Item->Seller) )
            {
                $sql = '
                    INSERT INTO
                        eBay_Feedback
                    (
                        ItemID,
                        TransactionID,
                        FeedbackReceivedCommentType
                    )
                    VALUES
                    (
                        '.$taa->Item->ItemID.',
                        '.$taa->TransactionID.',
                        "'.$taa->FeedbackReceived->CommentType.'"
                    )
                ';
                
                 // execute the query
                 $result = mysql_query( $sql ) or die( mail("info@weban.de", "eBay-Bewertungsmodul Fehler", mysql_errno() . ': ' . mysql_error() . '<hr />' . $sql) );
            }
        }
        
        return $transaction;
    }
?>