Zum Inhalt springen

Variable in Typoscript select einfügen klappt einfach nicht

Erstellt am 6. Februar 2016 · Noch keine Antworten

Tags: Frage

neuz8 ·

Typo3 7.5

Hi,

ich versuche mir den Autor einer Seite zu holen und dann daraufhin ein select zu füllen, dass mit entsprechende IDs zurückgibt.
Ansich geht es aber (auch an vielen anderen Stellen mit ähnlichen Selects) komme ich nicht weiter wenn ich nun 2 Selects aufeinander aufbauen will oder aus anderen Datenquellen das Select bearbeiten will.

Ich habe versucht mit LOAD_REGISTER zu arbeiten, ich habe versucht mit markern zu arbeiten. Klappt alles irgendwie nicht. Aber es muss doch irgendwie möglich sein ein Typoscript Select so anzupassen, dass es mit einer "Variable" funktioniert.

Hier mein code:

// Das gibt mir im Template erfolgreich "neuz8" aus
lib.author = TEXT
lib.author.data = page:author

lib.Authornavigation = CONTENT
lib.Authornavigation {
    stdWrap.required = 1
    table = be_users
    select {
        uidInList = 0
        pidInList = root
        selectFields = be_users.uid as id, be_users.realName as rn, be_users.profile_pid as prid
        where = be_users.profile_pid != '0'
        andWhere =  be_users.realName={lib.author} // Hier gehts nicht...
        // Ausprobiert habe ich alle Kombis mit andWhere.data oder lib.author.data, 
        // mit und ohne geschweifte Klammern, 
        // mit einem LOAD_REGISTER als Autor, 
        // mit den unten ausprobierten "markers", 
        // es will einfach nicht gehen und ich bin mir sicher dass ich einfach nen sau dummen Fehler mache, der total simpel ist weil es gehen müsste

        //andWhere =  be_users.realName='neuz8' < Das hier funktioniert und gibt mir einkommentiert erfolgreich "39" aus, also die ID
        andWhere.wrap =
        markers {
            //author.data = {page:author}
        }
    }
    renderObj = COA
    renderObj {
        10 = TEXT
        10.field = prid
        10.wrap2  =  ###SPLITTER### |
    }
    // Das ist nur dazu da das letzte Komma zu verwerfen, manchmal brauch ich daten in einem "SQL IN(...)"
    stdWrap.split {
        token = ###SPLITTER###
        cObjNum = 1 |*| 2 |*| 1
        1.current = 1
        2.current = 1
        2.wrap = |,
    }
}

Noch eine Frage, damit ich in Zukunft besser klar komme:
Woher sehe ich z.B. ob ich blub = bla oder blub.cObject = bla.data oder Ähnliches machen muss. Wo kann ich sowas dokumentiert nachlesen ob gewisse Objekte/Eigenschaften/Zeug vorhanden ist, also es durchbrowsen oder so...

Und: Wenn ich so ein select mache und dann z.B. einen String statt nem Int habe und aus versehen merk ichs nicht und dadurch ist die SQL leer oder so. Wie kann ich die ausgeführte SQL z.B. sehen und somit besser debuggen?

------------ Anderes, aber gleiches Beispiel-------------

select {
        //uidInList.cObject < lib.ThisNewsID
        pidInList = 1
        pidInList.field = pages
        # set the recursion level
        recursive = 250
        selectFields = pages.uid pageId
        join = sys_category_record_mm ON pages.uid = sys_category_record_mm.uid_foreign
        where = sys_category_record_mm.tablenames = 'pages'
        andWhere = sys_category_record_mm.uid_local IN (###listofcategories###)
        andWhere.insertData=1
        markers {
            //listofcategories.value = {lib.AlleCategorieIdsDieserNews}
            listofcategories.commaSeparatedList = 1
            listofcategories.value = 11,12,13,19,5
        }
        //andwhere = sys_category_record_mm.uid_local IN (11,12,13,19,5) // andwhere kann mit typoscript variablen, where nicht
        //andwhere = sys_category_record_mm.uid_local IN ({lib.AlleCategorieIdsDieserNews}) // andwhere kann mit typoscript variablen, where nicht
    }

Die auskommentieren Stellen gehen nicht obwohl ich eigentlich dachte so müsste es gehen. {lib.AlleCategorieIdsDieserNews} z.B. gibt genau diese Liste aus Zeile 15 aus, die ich aber damit es funktioniert manuell setze, Aber ich fülle es eben dynamisch um alle Kategorien der grade angezeigten News zu bekommen...