Willkommen, Gast ( Anmelden | Registrierung )     [ Hilfe | Mitglieder | Suche ]

 
Reply to this topicStart new topic
> idcat/idcatside Child-Prüfung
Chregu
Beitrag Thu. 17. July 2008, 09:58
Beitrag #1


Advanced Member
*******

Gruppe: AdvancedMembers
Beiträge: 334
Mitglied seit: 10.07.2006
Wohnort: luzern (Schweiz)
Mitglieds-Nr.: 128



Hallo Zusammen

Ich erstelle gerade eine neue Modulversion des Random Image. Nun habe ich eine Frage.

Suche ich eine Methode um zu prüfen ob eine aktuelle idcat bzw. idcatside ein Child einer bestimmt idcat (auch über mehrere Stufen!) ist.
Gibt es dazu eine Methode in der API? Oder muss ich von der aktuellen idcat bzw. idcatside jeweils den Parent abfragen
und prüfen bis die Routine im Root angelangt ist?

Danke für eure Hilfe.

Gruss
Chris
Go to the top of the page
 
+Quote Post
andi
Beitrag Thu. 17. July 2008, 11:09
Beitrag #2


purist
********

Gruppe: AdvancedMembers
Beiträge: 1.525
Mitglied seit: 30.06.2006
Wohnort: luzern (schweiz)
Mitglieds-Nr.: 16



hallo chris

bin mir unsicher, aber vielleicht hilft dir dies?


gruss andi


--------------------
Go to the top of the page
 
+Quote Post
bjoern
Beitrag Thu. 17. July 2008, 11:27
Beitrag #3


Administrator
********

Gruppe: Members
Beiträge: 1.092
Mitglied seit: 16.06.2006
Wohnort: Köln
Mitglieds-Nr.: 1



Gibt es so bei den Cat- und Pageinfos meines Wissens noch nicht. Was es bei der 1.4.1 geben wird ist die Methode "getIdcatsidesByIdcat", also alle Idcatsides, die zu einer Idcat gehören. Ich hänge Dir die beiden Klassen mal als aktuellste Version an. Wenn Du die für das Modul entsprechend erweitern willst, kannst Du das gerne tun. Ich prüf das dann kurz und wenns OK ist, dann kommts in die 1.4.1 .


Angehängte Datei(en)
Angehängte Datei  class.SF_PAGE_Pageinfos.zip ( 2.9KB ) Anzahl der Downloads: 12
Angehängte Datei  class.SF_PAGE_Catinfos.zip ( 2.86KB ) Anzahl der Downloads: 5
 


--------------------
Es wird, es wird...
Go to the top of the page
 
+Quote Post
Chregu
Beitrag Thu. 17. July 2008, 12:17
Beitrag #4


Advanced Member
*******

Gruppe: AdvancedMembers
Beiträge: 334
Mitglied seit: 10.07.2006
Wohnort: luzern (Schweiz)
Mitglieds-Nr.: 128



Danke für eure Infos...

Habe mir jetzt das ganze angesehen. Aus meiner Sicht wäre es am am besten auf einer Klasse SF_PAGE_Page eine Methode isChildOf( $idcat ) zu realisieren.
Falls nicht angedacht ist so eine Klasse zu erstellen müsste dies auf der Klasse SF_PAGE_Pageinfos was aus meiner Sicht nicht ganz korrekt ist...

Was meint Ihr?

Gruss
Chris
Go to the top of the page
 
+Quote Post
bjoern
Beitrag Thu. 17. July 2008, 14:10
Beitrag #5


Administrator
********

Gruppe: Members
Beiträge: 1.092
Mitglied seit: 16.06.2006
Wohnort: Köln
Mitglieds-Nr.: 1



Bitte in die Pageinfos packen. Das ist die Klasse, die für die schnelle Abfrage von Werten in Navigationsmodulen, etc. gedacht ist.


--------------------
Es wird, es wird...
Go to the top of the page
 
+Quote Post
Chregu
Beitrag Mon. 21. July 2008, 13:03
Beitrag #6


Advanced Member
*******

Gruppe: AdvancedMembers
Beiträge: 334
Mitglied seit: 10.07.2006
Wohnort: luzern (Schweiz)
Mitglieds-Nr.: 128



Hallo Bjoern

Hier die beiden Methoden. Habe diese soweit Möglich getestet. War nicht ganz so einfach...

SF_PAGE_Catinfos
QUELLTEXT
    function isChildOf($idcatChild, $idcat){
        $_cat =& sf_factoryGetObject('PAGE', 'Cat');
        $_cat->loadByIdcatIdlang($idcatChild, $this->config['idlang']);

        if( $_cat->getIdcat() == $idcat ||
            $_cat->getParent() == $idcat ||
            $_cat->getRootparent() == $idcat ){
            return true;
        }
        else if( $_cat->getIdcat() == $_cat->getRootparent() || $_cat->getRootparent() != 0 ){
            return false;
        }
        else{
            return $this->isChildOf($_cat->getIdcat(), $idcat);
        }
    }



SF_PAGE_Pageinfos
QUELLTEXT
    function isChildOf($idcatChild, $idcat){
        $_cat =& sf_factoryGetObject('PAGE', 'Cat');
        $_cat->loadByIdcatIdlang($idcatChild, $this->config['idlang']);

        if( $_cat->getIdcat() == $idcat ||
            $_cat->getParent() == $idcat ||
            $_cat->getRootparent() == $idcat ){
            return true;
        }
        else if( $_cat->getIdcat() == $_cat->getRootparent() || $_cat->getRootparent() != 0 ){
            return false;
        }
        else{
            $_catsides =& sf_factoryGetObject('PAGE', 'Catinfos');
            $_catsides->setIdlang($this->config['idlang']);
            $_catsides->generate();
            return $_catsides->isChildOf($_cat->getIdcat(), $idcat);
        }
    }


Hoffe Sie können genutzt werden.

Gruss
Chris
Go to the top of the page
 
+Quote Post
bjoern
Beitrag Mon. 21. July 2008, 15:42
Beitrag #7


Administrator
********

Gruppe: Members
Beiträge: 1.092
Mitglied seit: 16.06.2006
Wohnort: Köln
Mitglieds-Nr.: 1



Ist schon mal ein Ansatz. Generell verstehe ich nicht, warum Du bei SF_PAGE_Catinfos ein CatObjekt erzeugst und nicht einfach mit $this die vorhandenen Methoden ansprichst. Also $this->getParent(), $this->getRootParent() .

Bei den Pageinfos ist ein catinfoobjekt schon initialisiert. Du erreichst es mit $this->catinfos, daher habe ich mal den Code da schon mal angepasst.

Generell bin ich der meinung, das Du an alle Daten kommst, ohne neue Objekte zu initialisieren.

Normale Variablen bitte $min_unterstrich und nich als Kamelhöckernotation, das wird nur bei Klassen und Methoden gemacht.

Ein phpdoc Kopf für die Methoden fehlt noch, also

/**
* DESCRIPTION
*
* @param datatype name descriptiom
* @return datatype descriptiom
*/

SF_PAGE_Pageinfos
QUELLTEXT
    function isChildOf($idcatChild, $idcat){
        $_cat =& sf_factoryGetObject('PAGE', 'Cat');
        $_cat->loadByIdcatIdlang($idcatChild, $this->config['idlang']);

        if( $_cat->getIdcat() == $idcat ||
            $_cat->getParent() == $idcat ||
            $_cat->getRootparent() == $idcat ){
            return true;
        }
        else if( $_cat->getIdcat() == $_cat->getRootparent() || $_cat->getRootparent() != 0 ){
            return false;
        }
        else{
            $this->catinfos->isChildOf($_cat->getIdcat(), $idcat);
        }
    }


--------------------
Es wird, es wird...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 Besucher lesen dieses Thema (Gäste: 1 | Anonyme Besucher: 0)
0 Mitglieder:

 



RSS Vereinfachte Darstellung Aktuelles Datum: 27.4.24 - 12:20

Sefrengo ist ein eingetragenes Markenzeichen und urheberrechtlich geschützt.
Copyright 2009 Design & Daten, Alle Rechte vorbehalten.