OXID Community Forum

> German forum > Entwickler > Beliebige Objekte im Smarty Template laden
Login
FAQ Members List Calendar Search Today's Posts Mark Forums Read

Thread: Beliebige Objekte im Smarty Template laden


Reply
 
Thread Tools Search this Thread Display Modes
#Top   #1  
Old 06-15-2011, 12:46 PM
aggrosoft's Avatar
aggrosoft aggrosoft is offline
Senior Member
Join Date: Oct 2008
Location: Sparta
Posts: 2,093
aggrosoft is on a distinguished road
Send a message via Skype™ to aggrosoft
Default Beliebige Objekte im Smarty Template laden

Hallo liebe Gemeinde,

dieses Smarty Plugin ist bei uns relativ beliebt obwohl es so simpel ist, damit lassen sich beliebige Objekte anhand Ihrer OXID laden - also z.B. Kategorien, Artikel, User etc.
Das spart das eine oder andere Modul wenn man nur bestimmte Sachen statisch aus der DB ziehen möchte.

Neue Datei core/smarty/plugins/function.agload.php
PHP Code:
<?php
function smarty_function_agload$params, &$smarty )
{
    
$sType = isset( $params['type'] )?$params['type']:null;
    
$sOxid  = isset( $params['oxid'] )?$params['oxid']:null;
    
$sArtnum  = isset( $params['artnum'] )?$params['artnum']:null;
    
$sAssign  = isset( $params['assign'] )?$params['assign']:null;
    
    if ( 
$sType && ($sOxid || $sArtnum) && $sAssign ) {
        
$oObject oxNew$sType );
        if(!
$sOxid){
            
$oDb oxDb::getDb();
            
$sViewName getViewName('oxarticles');
            
$sOxid $oDb->GetOne("SELECT oxid FROM $sViewName WHERE oxartnum = " $oDb->quote($sArtnum));
        }
        
$blLoaded $oObject->load$sOxid );
        
        if ( 
$blLoaded ) {
            
$smarty->assign($sAssign$oObject);
        }else{
            return 
"could not load object of type $sType with oxid $sOxid";
        }
    }else{
        return 
"could not load object of type $sType with oxid $sOxid";
    }

}
Und dann im Template einfach, z.B. für einen beliebigen Artikel:

PHP Code:
[{agload oxid="DIEOXIDHIER" type="oxarticle" assign="oArticle"}]
[{
$oArticle->oxarticles__oxtitle->value}] 
Oder eine Kategorie:

PHP Code:
[{agload oxid="DIEOXIDHIER" type="oxcategory" assign="oCategory"}]
[{
$oCategory->oxcategories__oxtitle->value}] 
Erweitert für Laden nach Artikelnummer:
PHP Code:
[{agload artnum="DIEARTIKELNUMMERHIER" type="oxarticle" assign="oArticle"}]
[{
$oArticle->oxarticles__oxtitle->value}] 


Ist im Moment natürlich noch davon abhängig dass das Objekt nicht gelöscht wird, man könnte es erweitern um Artikel z.B. nach oxartnum oder ähnlichem zu laden.


Jetzt auch mit Artikelnummern laden.

Das Plugin steht unter der WTFPL (http://sam.zoy.org/wtfpl/) - also "You just DO WHAT THE FUCK YOU WANT TO."

Last edited by aggrosoft; 11-22-2011 at 01:23 PM. Reason: Erweitert für Artikelnummern laden
Reply With Quote
#Top   #2  
Old 06-15-2011, 03:37 PM
beme's Avatar
beme beme is offline
Senior Member
Join Date: Dec 2009
Location: Hamburg Germany
Posts: 170
beme is on a distinguished road
Default Re: Beliebige Objekte im Smarty Template laden

Besten Dank
__________________
Gruß, René

Want to build a real driving motion simulator?
www.x-simulator.de
Reply With Quote
#Top   #3  
Old 06-15-2011, 04:34 PM
leofonic's Avatar
leofonic leofonic is offline
Moderator
Join Date: Oct 2009
Posts: 3,788
leofonic is on a distinguished road
Default AW: Beliebige Objekte im Smarty Template laden

Jo, nettes Snippet!
__________________
Frank

www.zunderweb.de - Zunderweb IT Beratung - Templates und Module für Oxid eShop
Theme "EXP TWO" für 4.9.x - 2-spaltiges OXID 4.9 Theme mit 8 Farbschemata
Ajax Multifilter XL - Turbo für den Attributfilter
Reply With Quote
#Top   #4  
Old 11-13-2011, 09:56 PM
semperfield semperfield is offline
Junior Member
Join Date: Oct 2010
Posts: 4
semperfield is on a distinguished road
Default AW: Beliebige Objekte im Smarty Template laden

Quote:
Originally Posted by aggrosoft View Post
[...] man könnte es erweitern um Artikel z.B. nach oxartnum oder ähnlichem zu laden.
Hallo lieber aggrosoft und Mitleser,

auch ich finde das plugin hervorragend. Zu allem Überfluss brauche ich tatsächlich die Möglichkeit, dass man einen Artikel per oxartnum laden kann. Ist das schon irgendwo gelöst? Ich schaffe es nicht alleine.

Viele Grüße
Tobias
Reply With Quote
#Top   #5  
Old 11-14-2011, 12:04 AM
vanilla thunder's Avatar
vanilla thunder vanilla thunder is online now
Marco's Sidekick
Join Date: Nov 2010
Posts: 6,158
vanilla thunder is on a distinguished road
Default Re: Beliebige Objekte im Smarty Template laden

dickes +1!
Reply With Quote
#Top   #6  
Old 11-15-2011, 10:31 AM
aggrosoft's Avatar
aggrosoft aggrosoft is offline
Senior Member
Join Date: Oct 2008
Location: Sparta
Posts: 2,093
aggrosoft is on a distinguished road
Send a message via Skype™ to aggrosoft
Default Re: AW: Beliebige Objekte im Smarty Template laden

Habe es erweitert für laden nach Artikelnummer
Reply With Quote
#Top   #7  
Old 11-19-2011, 03:41 PM
semperfield semperfield is offline
Junior Member
Join Date: Oct 2010
Posts: 4
semperfield is on a distinguished road
Default AW: Re: AW: Beliebige Objekte im Smarty Template laden

Wow, großartig. Vielen lieben Dank aggrosoft :-)

gr
Tobias
Reply With Quote
#Top   #8  
Old 11-22-2011, 07:46 AM
Stefan1904 Stefan1904 is offline
Senior Member
Join Date: Apr 2011
Posts: 102
Stefan1904 is on a distinguished road
Default AW: Beliebige Objekte im Smarty Template laden

Ich bekomme leider einen 500 Internal Server Error, wenn ich einen der obigen drei Codes in ein Template einbaue (mit richtiger ID oder Artikelnummer). Die Datei habe ich 1:1 von oben kopiert. Ich nutze Oxid CE 4.5.0. Views und Tmp habe ich gelöscht.
Reply With Quote
#Top   #9  
Old 11-22-2011, 09:57 AM
aggrosoft's Avatar
aggrosoft aggrosoft is offline
Senior Member
Join Date: Oct 2008
Location: Sparta
Posts: 2,093
aggrosoft is on a distinguished road
Send a message via Skype™ to aggrosoft
Default Re: AW: Beliebige Objekte im Smarty Template laden

Hast du das Smarty plugin überhaupt auf deinen server gelegt? Wenn ja dann würde eine Fehlermeldung helfen etwas dazu zu sagen.
Reply With Quote
#Top   #10  
Old 11-22-2011, 10:16 AM
Stefan1904 Stefan1904 is offline
Senior Member
Join Date: Apr 2011
Posts: 102
Stefan1904 is on a distinguished road
Default AW: Beliebige Objekte im Smarty Template laden

Es ist eine lokale Testinstallation mit ZendServer. Das Plugin habe ich in core/smarty/plugins/ gelegt.
Der Server-Errorlog zeigt keinen Fehler an, im Access-Log steht Folgendes:
127.0.0.1 - - [22/Nov/2011:11:15:15 +0100] "GET / HTTP/1.1" 500 537
Reply With Quote
Reply

Bookmarks

Tags
beliebige, laden, objekte, smarty, template

« Previous Thread | Next Thread »
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Nicht Sichtbar
Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Ausgabe von Smarty Array in Template AlexWeedy Entwickler 5 05-26-2011 09:47 AM
Nach Update: /core/smarty/Smarty.class.php) [function.require-once]: failed to open stream: No such file or directo jschma Allgemeines 6 03-27-2011 07:33 PM
Modul für beliebige (externe) Produkte möglich? MPCube Module 4 02-25-2011 01:29 PM
Screencast: New handling of Smarty template inheritance Marco Steinhaeuser Developers 0 01-21-2011 10:33 AM
Template override - Smarty compiled template filename avenger Feature requests 0 11-16-2009 05:29 AM

All times are GMT +1. The time now is 11:58 AM.