Contao-Camp 2024
Ergebnis 1 bis 31 von 31

Thema: Filtermöglichkeit im FE einbauen

  1. #1
    Contao-Nutzer
    Registriert seit
    15.02.2014.
    Beiträge
    196

    Standard Filtermöglichkeit im FE einbauen

    Hallo!
    Ich bin leider keine HTML & PHP Experte und hoffe, dass mir hier geholfen wird.
    Allerdings habe ich es geschafft mir ein erstes eigenens RSCE zu erstellenund das nur an Hand der beiden Beispiel-Dateien von RSCE.

    Wo ich nun allerdings anstehe, ist genau das Thema wie oben im Titel erfasst.
    Ich möchte im FE zwischen der Überschrift und den 'Datensätzen' die Felder:
    -> Name
    -> Methode
    -> Standort
    filtern können und zwar auch in Kombination.

    Je nachdem ob die 'Filter-Felder' befüllt werden oder nicht, ändert sich darunter die Anzahl der Datensätze.
    Ich hoffe ich habe mich verständlich ausgedrückt.

    So sehen meine beiden Dateien aus:
    PHP-Code:
    <?php

    return array(
        
    'label' => array('Humanenergetiker''Liste der Humanenergetiker'),
        
    'types' => array('content'),
        
    'contentCategory' => 'texts',
        
    'standardFields' => array('headline''cssID'),
        
    'fields' => array(
            
    'mitglieder' => array(
                
    'label' => array('Namen''Fügen Sie eine beliebige Anzahl von Anbietern ein.'),
                
    'elementLabel' => 'Anbieter %s',
                
    'inputType' => 'list',
                
    'fields' => array(
                    
    'name' => array(
                        
    'label' => array('Name''Name des Anbieters'),
                        
    'inputType' => 'text',
                        
    'eval' => array('tl_class' => 'w50'),
                    ),
                    
    'standort' => array(
                        
    'label' => array('Standort''Stadt oder Ort des Anbieters'),
                        
    'inputType' => 'text',
                        
    'eval' => array('tl_class' => 'w50'),
                    ),
                    
    'url' => array(
                        
    'label' => array('Link''URL zum Anbieter'),
                        
    'inputType' => 'text',
                        
    'eval' => array('tl_class' => 'w50'),
                    ),
                    
    'methode' => array(
                        
    'label' => array('Humanenergetik-Methode''Wählen Sie die Humanenergetik-Methode (Mehrfachnennung möglich).'),
                        
    'elementLabel' => '%s. Methode',
                        
    'inputType' => 'list',
                        
    'fields' => array(
                            
    'typmethode' => array(
                                
    'label' => array('Typ Humanenergetik-Methode'''),
                                
    'inputType' => 'select',
                                
    'options' => array(
                                    
    'Methode1' => 'Methode 1',
                                    
    'Methode2' => 'Methode 2',
                                    
    'Methode3' => 'Methode 3',
                                    
    'Methode4' => 'Methode 4',
                                    
    'Methode5' => 'Methode 5',
                                    
    'Methode6' => 'Methode 6',
                                ),
                                
    'eval' => array('tl_class' => 'w50'),
                            ),
                        ),
                    ),
                ),
            ),
        ),
    );
    HTML-Code:
    <div class="<?php echo $this->class ?> block"<?php echo $this->cssID ?>>
    
    	<<?php echo $this->hl ?>><?php echo $this->headline ?></<?php echo $this->hl ?>>
    
    <!-- Hier muss was rein - oder? -->
    	<?php foreach ($this->mitglieder as $mitglied): ?>
    		<div>
    
    			<h2><a href="<?php echo $mitglied->url ?>"><?php echo $mitglied->name ?></a>  /
    			<?php echo $mitglied->standort ?>  /
    			Methode(n):
    				<?php foreach ($mitglied->methode as $methode): ?>
    				<?php echo $methode->typmethode ?> [nbsp]
    				<?php endforeach ?>
    			</h2>
    		</div>
    
    	<?php endforeach ?>
    
    </div>
    Ich vermute einmal, dass ich beim gekennzeichneten Punkt etwas eintragen muss - aber was.
    Könnte mir hier wer weiterhelfen - Danke!
    Bernhard

  2. #2
    Contao-Fan Avatar von Ainschy
    Registriert seit
    24.06.2009.
    Ort
    Wenden
    Beiträge
    788
    Partner-ID
    5666
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Du könntest die Filterung auf über JS regeln. Schau dir z.B. https://isotope.metafizzy.co/ dazu an.

    Gern kannst du jemanden beauftragen der den Filter für dich umsetzt, wir haben hierzu einen eigenen Bereich im Forum -> https://community.contao.org/de/foru...Auftr%C3%A4ge)

    oder du beißt dich durch HTML, PHP und JS

  3. #3
    Contao-Nutzer
    Registriert seit
    15.02.2014.
    Beiträge
    196

    Standard

    Danke Ainschy
    Ich möchte mich gerne 'durchbeißen' und lernen für die Zukunft - sonst macht's ja keinen Spaß oder?
    Bin ja auch schon hier unterwegs und versuch mich weiterzubilden.
    Kannst mir eventuell verraten (kostenfrei ) ob die Spur heiß ist oder ob ich komplett falsch bin - Danke.

  4. #4
    Contao-Fan Avatar von PaddySD
    Registriert seit
    26.10.2016.
    Ort
    Andechs
    Beiträge
    656

    Standard

    Komplett falsch auf keinen Fall, aber der Link von Ainschy zu isotope ist schon recht gut. Das lässt sich sehr leicht einbauen, und funktioniert recht gut.

  5. #5
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Zitat Zitat von Ainschy Beitrag anzeigen
    Du könntest die Filterung auf über JS regeln. Schau dir z.B. https://isotope.metafizzy.co/ dazu an.
    Weitere Alternative hierzu wäre z.B. https://www.kunkalabs.com/mixitup/. Bei beiden dann aber die Lizenz checken.
    Anders dann http://yiotis.net/filterizr/ - MIT Lizenz - also inkl. Nutzung in kommerziellen Projekten ...
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  6. #6
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.674
    User beschenken
    Wunschliste

    Standard

    ist zwar unschöner hack aber i.E. so

    PHP-Code:
    <div class="<?php echo $this->class ?> block"<?php echo $this->cssID ?>>

        <<?php echo $this->hl ?>><?php echo $this->headline ?></<?php echo $this->hl ?>>

        <?php foreach ($this->mitglieder as $mitglied): ?>
            <?php if(--hier-die-Filterung--): ?>
            <div>

                <h2><a href="<?php echo $mitglied->url ?>"><?php echo $mitglied->name ?></a>  /
                <?php echo $mitglied->standort ?>  /
                Methode(n):
                <?php foreach ($mitglied->methode as $methode): ?>
                    <?php echo $methode->typmethode ?> [nbsp]
                <?php endforeach ?>
                </h2>
            </div>
            <?php endif; ?>
        <?php endforeach ?>

    </div>
    ansonsten benötigst Du noch einen Filter, der Deine Filterparameter als Get oder Post setzt und einen Reload macht - das musst Du in Deiner Filterung abfangen (ist gesetzt, und wenn ja, Filterwert) und Filtern...

    Ohne Programmierung wäre das z.B. mit MetaModels machbar.

  7. #7
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.705
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Auf die Möglichkeit dafür MetaModels oder Catalog Manager einzusetzen wurde schon im zweiten Thread zu diesem Thema hingewiesen https://community.contao.org/de/show...n-wie-umsetzen
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  8. #8
    Contao-Nutzer
    Registriert seit
    15.02.2014.
    Beiträge
    196

    Standard

    Hallo und Danke für eure Antworten und Hilfestellungen!
    Ihr werdet mich jetzt wahrscheinlich steinigen, aber ich möchte es trotzdem ohne Zusatzerweiterungen umsetzen.

    Ich bin jetzt schon so weit, dass ich die Suchfelder sehe und auch die zu filternden Datensätze darunter.
    Auch habe ich eine JS erstellt und eingebunden.
    Leider habe ich noch das Problem, dass ich es nicht schaffe, die 'Felder' korrekt in den JS einzubauen.
    Jedesmal, wenn ich einen Buchstabe in ein Suchfeld eintippe, kommt der Alert 'Hallo'.

    Darf ich nochmal um einen Blick auf meine drei Dateien bitten ... vielleicht springt einem ja der Fehler gleich ins Auge.
    Danke schon vorweg!

    Code:
    function search(){
    	var searchName=document.getElementById('txtName').value;
    	var searchStandort=document.getElementById('txtStandort').value;
    	var searchMethode=document.getElementById('txtMethode').value;
    	var mitglieder="<?php echo $mitglied ?>";
    	
    //	alert("Hallo");
    	
    		for (i = 0; i < mitglieder.length; i++) {
    		a = mitglieder[i].getElementById("txtName")[0];
    		if (a.innerHTML.toUpperCase().indexOf(filter) > -1) {
    		mitglieder[i].style.display = "";
    		} else {
    		mitglieder[i].style.display = "none";
    		}
    	}
    }
    HTML-Code:
    <style>
    #txtName {
    	width: 30%;
    	}
    #txtStandort, #txtMethode {
    	margin-left: 4.5%;
    	width: 30%;
    	}
    </style>
    
    <script src="/files/opensauce/js/mg_script.js"></script>
    
    <div class="<?php echo $this->class ?> block"<?php echo $this->cssID ?>>
    	<<?php echo $this->hl ?>><?php echo $this->headline ?></<?php echo $this->hl ?>>
    
    	<input type="text" id="txtName" placeholder="Name" onkeyup="search()">
    	<input type="text" id="txtStandort" placeholder="Standort" onkeyup="search()">
    	<input type="text" id="txtMethode" placeholder="Methode" onkeyup="search()">
    	<button onclick="search()">Suchen</button>
    		
    	<?php foreach ($this->mitglieder as $mitglied): ?>
    		<div>
    
    			<h2><a href="<?php echo $mitglied->url ?>"><?php echo $mitglied->name ?></a>  /
    			<?php echo $mitglied->standort ?>  /
    			Methode(n):
    				<?php foreach ($mitglied->methode as $methode): ?>
    				<?php echo $methode->typmethode ?> [nbsp]
    				<?php endforeach ?>
    			</h2>
    		</div>
    	<?php endforeach ?>
    </div>
    PHP-Code:
    <?php

    return array(
        
    'label' => array('Humanenergetiker''Liste der Humanenergetiker'),
        
    'types' => array('content'),
        
    'contentCategory' => 'texts',
        
    'standardFields' => array('headline''cssID'),
        
    'fields' => array(
            
    'mitglieder' => array(
                
    'label' => array('Namen''Fügen Sie eine beliebige Anzahl von Anbietern ein.'),
                
    'elementLabel' => 'Anbieter %s',
                
    'inputType' => 'list',
                
    'fields' => array(
                    
    'name' => array(
                        
    'label' => array('Name''Name des Anbieters'),
                        
    'inputType' => 'text',
                        
    'eval' => array('tl_class' => 'w50'),
                    ),
                    
    'standort' => array(
                        
    'label' => array('Standort''Stadt oder Ort des Anbieters'),
                        
    'inputType' => 'text',
                        
    'eval' => array('tl_class' => 'w50'),
                    ),
                    
    'url' => array(
                        
    'label' => array('Link''URL zum Anbieter'),
                        
    'inputType' => 'text',
                        
    'eval' => array('tl_class' => 'w50'),
                    ),
                    
    'methode' => array(
                        
    'label' => array('Humanenergetik-Methode''Wählen Sie die Humanenergetik-Methode (Mehrfachnennung möglich).'),
                        
    'elementLabel' => '%s. Methode',
                        
    'inputType' => 'list',
                        
    'fields' => array(
                            
    'typmethode' => array(
                                
    'label' => array('Typ Humanenergetik-Methode'''),
                                
    'inputType' => 'select',
                                
    'options' => array(
                                    
    'Methode1' => 'Methode 1',
                                    
    'Methode2' => 'Methode 2',
                                    
    'Methode3' => 'Methode 3',
                                    
    'Methode4' => 'Methode 4',
                                    
    'Methode5' => 'Methode 5',
                                    
    'Methode6' => 'Methode 6',
                                ),
                                
    'eval' => array('tl_class' => 'w50'),
                            ),
                        ),
                    ),
                ),
            ),
        ),
    );
    Geändert von bteppan (26.11.2018 um 13:24 Uhr)

  9. #9
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Wie möchtest du es denn haben?
    Dass bei jedem Tastendruck die Suchfunktion aufgerufen wird, hast du ja selbst definiert:
    HTML-Code:
        <input type="text" id="txtName" placeholder="Name" onkeyup="search()">
        <input type="text" id="txtStandort" placeholder="Standort" onkeyup="search()">
        <input type="text" id="txtMethode" placeholder="Methode" onkeyup="search()">

  10. #10
    Contao-Nutzer
    Registriert seit
    15.02.2014.
    Beiträge
    196

    Standard

    Ja, das passt schon so, nur kann ich nicht auf die Daten meines Custom Elements zugreifen weil ich anscheinend die PHP-Eingaben falsch gemacht habe.

  11. #11
    Contao-Urgestein Avatar von folkfreund
    Registriert seit
    09.04.2010.
    Beiträge
    1.928

    Standard

    Ich glaube du bringst da was durcheinander - oder ich hab dich noch nicht verstanden.

    Das PHP wird vom Server ausgeführt bevor er die Seite an den Browser ausliefert. Javascript läuft dann im Browser.
    Code:
    onkeyup="search()
    besagt, dass die JS-Funktion search() im Browser bei jedem Tastendruck aufgerufen werden soll.

    Eine reine JS-Lösung bedingt also, dass der Server zunächst alle Datensätze ausliefert, die dann im Browser gefiltert werden (z.B. ein-/Ausblenden per CSS). Das ist ok, wenn es sich nicht um viele Daten handelt und du den Overhead verschmerzen kannst.

    Alternativ kannst du durch JS weitere Inhalte vom Server nachladen (AJAX).

    Jedenfalls kannst du nicht PHP-Funktionen in deinem Javascript ausführen lassen.

  12. #12
    Contao-Nutzer
    Registriert seit
    15.02.2014.
    Beiträge
    196

    Standard

    Okay - ich bin zwar schon fast am Aufgeben , will es aber irgendwie nicht wahrhaben, dass ich für eine simple Filterung von ein paar Datensätzen, die schon auf der Seite aufgelistet sind, eine separate Erweiterung wie MetaModels, die noch nicht mal für Contao 4.x zur Verfügung steht oder Catalog Manager, die kostenpflichtig ist, benötige!

    Nochmal anders erklärt:

    Die Daten sind via RockSolid-CustomElements erfasst und werden auf der Website aufgelistet - schön ein Datensatz nach dem anderen untereinander.
    Auf der selben Seite steht zwischen der Überschrift und den Datensätzen eine Suchleiste mit den drei Feldern Name - Standort - Methode und darunter die Schaltfläche Suchen.

    Nun kann der Besucher der Website entweder ein oder mehrere Suchfelder befüllen und auf die Schaltfläche 'Suchen' klicken. (onklick habe ich einstweilen ausgebaut!)
    Danach werden nur mehr jene Datensätze auf der gleichen Seite angezeigt, die den 'Filterkriterien' entsprechen.

    Derzeit wird jedoch leider nicht gefiltert und in der Konsole folgende Fehlermeldung ausgegeben:
    [I]TypeError: mitglieder.getElementById is not a function

    Daraus schließe ich, dass im Script oder HTML5-Datei etwas falsch 'definiert' ist!?
    Leider bin ich kein 'Programmierer' und daher meine einzige Hoffnung: Den entscheidenden Hinweis hier zu erhalten.

    Im Endausbau werden ca 100 'Datensätze' zu filtern sein - also nicht wirklich viele.

  13. #13
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo bteppan,
    du hast recht: eine simple Filerung von Einträgen geht auch ohne Erweiterung. Möglichkeiten wurden ja schon genannt (z.b. das zweite von hier https://community.contao.org/de/show...l=1#post487781 ).
    Wenn man mehr möchte geht das gut mit MM oder einer anderen Erweiterung (und MM ist unter Contao 4.4 lauffähig!!!).
    Was genau das Problem bei dir ist kann ich so nicht sagen. Du solltest uns 1. einen Link zur Seite mit dem Problem geben und 2. eventuell mal genau beschreiben, was du gemacht hast.
    Aber da es ja eine simple Filterung ist, solltest du das eventuell auch ohne Hilfe hinbekommen, ist ja simpel ;-)

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  14. #14
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.705
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Für eine simple Filterung wurden auch schon mal die News mit der Erweiterung [tags] in die Waagschale geworfen.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  15. #15
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Mal eine generelle Frage zum Umgang mit Data-Attributen.
    Die meisten jQuery Plugins - so auch die hier vorgestellten Filter-Plugins - nutzen/reagieren ja auf data-attribute und nicht auf normale CSS-Klassen.

    Wie löst Ihr das mit Contao Templates, sodaß z.B. aus einer im Backend eingegebenen CSS Klasse "data-xyz" im Template eine Ausgabe wie data-filter=".xyz" (Sample für MixItUp) erfolgt ...
    Danke
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  16. #16
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von Franko Beitrag anzeigen
    Mal eine generelle Frage zum Umgang mit Data-Attributen.
    Die meisten jQuery Plugins - so auch die hier vorgestellten Filter-Plugins - nutzen/reagieren ja auf data-attribute und nicht auf normale CSS-Klassen.

    Wie löst Ihr das mit Contao Templates, sodaß z.B. aus einer im Backend eingegebenen CSS Klasse "data-xyz" im Template eine Ausgabe wie data-filter=".xyz" (Sample für MixItUp) erfolgt ...
    Danke
    Wenn du das im Template nicht anpassen möchtest/willst/kannst, dann könntest du das auch per JS (bevor das andere Script ausgeführt wird) lösen und diese Klassen ins data-Attribute umwandeln ;-)

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  17. #17
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Zitat Zitat von MacKP Beitrag anzeigen
    Wenn du das im Template nicht anpassen möchtest/willst/kannst, dann könntest du das auch per JS (bevor das andere Script ausgeführt wird) lösen und diese Klassen ins data-Attribute umwandeln ;-)

    Viele Grüße
    Hi, möchte das ja über ein custom Template lösen - bin nur nicht so versiert in PHP.
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  18. #18
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von Franko Beitrag anzeigen
    Hi, möchte das ja über ein custom Template lösen - bin nur nicht so versiert in PHP.
    Das kommt darauf an... am einfachsten: einfach class=<?php blabla ?>
    kopieren und das class= durch data-attribute= ersetzen

    ;-)

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  19. #19
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Zitat Zitat von MacKP Beitrag anzeigen
    Das kommt darauf an... am einfachsten: einfach class=<?php blabla ?>
    kopieren und das class= durch data-attribute= ersetzen

    ;-)

    Viele Grüße
    Naja, hänge gerade an $this->class (beinhaltet z.B. sowas wie: ce_text data-aaa aaa-111 bbb-111 ccc first last).
    Wie komme ich am elegantesten an "aaa" aus "data-aaa" ...
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  20. #20
    Contao-Nutzer
    Registriert seit
    15.02.2014.
    Beiträge
    196

    Standard

    Zitat Zitat von MacKP Beitrag anzeigen
    Hallo bteppan,
    du hast recht: eine simple Filerung von Einträgen geht auch ohne Erweiterung. Möglichkeiten wurden ja schon genannt (z.b. das zweite von hier https://community.contao.org/de/show...l=1#post487781 ).
    Wenn man mehr möchte geht das gut mit MM oder einer anderen Erweiterung (und MM ist unter Contao 4.4 lauffähig!!!).
    Was genau das Problem bei dir ist kann ich so nicht sagen. Du solltest uns 1. einen Link zur Seite mit dem Problem geben und 2. eventuell mal genau beschreiben, was du gemacht hast.
    Aber da es ja eine simple Filterung ist, solltest du das eventuell auch ohne Hilfe hinbekommen, ist ja simpel ;-)

    Viele Grüße
    Danke für das Feedback!
    1.) Mit dem Zweiten meinst Du: Filterizr ?
    2.) Hier der LINK zur 'Testseite' ... mehr ist es nicht.
    3.) MM ist unter Contao 4.4 lauffähig? Ich kann es über den Contao-Manager aber nicht installieren oder?
    4.) Ich möchte nicht nerven oder ungut rüberkommen! Wenn das der Eindruck ist, dann entschuldige ich mich dafür.

    Velleicht noch zur Erklärung: Ich bin ein EPU (EinPersonenUnternehmer) im 3. Jahr und mache hin und wieder auch kleinere Websites für meine Kunden und kann schon aus zeitlichen Gründen nicht überall perfekt sein und alles wissen. Daher finde ich es auch so toll, dass es solche Foren gibt und Menschen wie Euch, die einem trotz blöder und laienhafter Fragen weiterhelfen möchten.
    Daher auch an dieser Stelle vielen Dank an Alle!

    Bei diesem konkreten Projekt wird höchstwahrscheinlich diese 'simple Filterung' darüber entscheiden, ob ich den Auftrag bekomme oder nicht.

    Bernhard

  21. #21
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von Franko Beitrag anzeigen
    Naja, hänge gerade an $this->class (beinhaltet z.B. sowas wie: ce_text data-aaa aaa-111 bbb-111 ccc first last).
    Wie komme ich am elegantesten an "aaa" aus "data-aaa" ...
    Du kannst schon mal die einzelnen Klassen auseinandernehmen. Im Grunde wie hier gemacht: https://de.contaowiki.org/Eigene_Tem...C3%B6glichkeit
    Also mit explode(' ', $this->class)
    Danach musst du dann abfragen, welche Klasse da schon data- am Anfang hat und die dann nehmen und dann in data-attribute ausgeben. (mit einer for-Schleife sollte das ganz gut klappen, für eben alle data- hier ausgeben).
    Tut mir leid, das sich dir das gerade nur so in der Grundstruktur aufschreiben kann. Ich hab gerade kein Testsystem zur Hand. Aber eventuell hilft dir das schon mal weiter ;-)

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  22. #22
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von bteppan Beitrag anzeigen
    Danke für das Feedback!
    1.) Mit dem Zweiten meinst Du: Filterizr ?
    2.) Hier der LINK zur 'Testseite' ... mehr ist es nicht.
    3.) MM ist unter Contao 4.4 lauffähig? Ich kann es über den Contao-Manager aber nicht installieren oder?
    4.) Ich möchte nicht nerven oder ungut rüberkommen! Wenn das der Eindruck ist, dann entschuldige ich mich dafür.

    Velleicht noch zur Erklärung: Ich bin ein EPU (EinPersonenUnternehmer) im 3. Jahr und mache hin und wieder auch kleinere Websites für meine Kunden und kann schon aus zeitlichen Gründen nicht überall perfekt sein und alles wissen. Daher finde ich es auch so toll, dass es solche Foren gibt und Menschen wie Euch, die einem trotz blöder und laienhafter Fragen weiterhelfen möchten.
    Daher auch an dieser Stelle vielen Dank an Alle!

    Bei diesem konkreten Projekt wird höchstwahrscheinlich diese 'simple Filterung' darüber entscheiden, ob ich den Auftrag bekomme oder nicht.

    Bernhard
    1.) Ja, meine ich
    2.)Hmm sehe ich es richtig, dass du in der js-Datei versuchst eine PHP-Ausgabe zu machen? -> <?php echo $mitglied ?>
    Das wird so nicht funktionieren, da php die .js-Datei ja nicht verarbeitet. Du hast also da nur diese Zeichen stehen.. das funktioniert also schon mal von der Grundlage nicht.
    Versuch eventuell das ganze erst mal direkt im Template (auslagern kannst du, falls es nötig und sinnig ist immer noch).
    Dann schreib dir erst mal das Array einfach so hin. Die 'echten' Daten kannst du dann immer noch per PHP rein bringen, wenn das funktioniert, was du da machen willst.
    3.) ja, das wird noch kommen. Das Fundraising wurde vor kurzem beendet. Wenn du MM einsetzen willst, dann eventuell mal das MM-Team kontaktieren über die Seite.
    4.) OK

    EPU: Klar, keiner kann alles. Deswegen gibt es hier den Bereich für Kleinstaufträge. Das wäre genau richtig für so etwas. Du bezahlst einfach jemanden, der das für dich macht. Dann hast du innerhalb kurzer Zeit was du brauchst, es funktioniert und du hast keine Zeit investiert (sondern eben ein wenig Geld). Schwierig wird es, wenn du (wie du schreibst) ja schon arbeiten sollst, bevor du überhaupt einen Auftrag hast.. ich Persönlich würde von so etwas die Finger lassen.. Aber das ist Geschmackssache.

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  23. #23
    Contao-Nutzer
    Registriert seit
    15.02.2014.
    Beiträge
    196

    Standard

    Danke für Dein Feedback!

    Zitat Zitat von MacKP Beitrag anzeigen
    ... Schwierig wird es, wenn du (wie du schreibst) ja schon arbeiten sollst, bevor du überhaupt einen Auftrag hast..
    Nein, so schlimm ist es nicht. Aber ich sollte zumindest im Zuge der 'Angebotslegung' schon wissen, ob ich es realisieren kann - sonst wäre es unseriös!

    Zitat Zitat von MacKP Beitrag anzeigen
    Versuch eventuell das ganze erst mal direkt im Template (auslagern kannst du, falls es nötig und sinnig ist immer noch).
    Dann schreib dir erst mal das Array einfach so hin. Die 'echten' Daten kannst du dann immer noch per PHP rein bringen, wenn das funktioniert, was du da machen willst.
    Und das sind dann halt die Dinge, die ich nicht immer sofort verstehe und nachfragen muss - sorry.
    Mit direkt im Template meinst Du die Datei 'rsce_opensauce_team.html5' und dort die Code-Zeilen aus der 'mg_script.js' integrieren - richtig?

  24. #24
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ja, genau. Da hast du dann auch die Möglichkeit PHP zu nutzen und kannst dann (wenn es erst mal geht) die Ausgabe so anpassen, wie du es dann in js brauchst.

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  25. #25
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.674
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von bteppan Beitrag anzeigen
    3.) MM ist unter Contao 4.4 lauffähig? Ich kann es über den Contao-Manager aber nicht installieren oder?
    ... ist es - seit November 2017 - Plan ist, noch dieses Jahr den "roll back" zum öffentlichen Github zu schaffen und dann ist es zumindest frei über die Konsole installierbar (über Manager dann sicher in Kürze auch)

  26. #26
    Contao-Nutzer
    Registriert seit
    15.02.2014.
    Beiträge
    196

    Standard

    @MacKP:
    Danke - dann werd ich mal probieren ob das bisher angesammelte 'Programmier-Wissen' schon ausreicht.

    @Zonky:
    Zitat Zitat von zonky Beitrag anzeigen
    ... ist es - seit November 2017 - Plan ist, noch dieses Jahr den "roll back" zum öffentlichen Github zu schaffen und dann ist es zumindest frei über die Konsole installierbar (über Manager dann sicher in Kürze auch)
    Leider wieder blöde Frage von mir:
    Wie kann ich es dann unter Contao 4.4.x installieren, wenn nicht über Composer oder Manager?
    Ich kenne bisher nur die zwei Varianten unter Contao 4 - sorry.

  27. #27
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Zitat Zitat von MacKP Beitrag anzeigen
    Du kannst schon mal die einzelnen Klassen auseinandernehmen. ...
    Hi, habe es jetzt so gelöst (PHP 7.x):

    PHP-Code:
    <?php 

    // Get data-attribute values from CSS-Class using a specified Delimiter
    $delimiter   'data-';

    $hasDataAttribute strpos($this->class$delimiter);
    $strDataAttribute "";

    // only if there is at least one value with delimiter
    if (!$hasDataAttribute === false) {

      
    // find all values between Delimiter and blank space
      // see: http://php.net/manual/de/function.preg-match-all.php
      
    preg_match_all('/'.$delimiter.'([^ ]+)/'$this->class$output_arrayPREG_SET_ORDER);
        
      foreach(
    $output_array as $value) {
       
    // last value in array or only one value 
       
    if ($value === end($output_array)) {
          
    $strDataAttribute .= $value[1];
        } else {
          
    $strDataAttribute .= $value[1] . ', ';
        }
      }
    }
    ?>
    Und dann für z.B.: http://yiotis.net/filterizr/ entsprechend im jeweiligen Template die Ausgabe wie:

    PHP-Code:
    <?php if (!$hasDataAttribute === false): ?>data-category="<?= $strDataAttribute ?>"<?php endif; ?>
    Generiert bei $this->class wie: "meinCss1 meinCss2 data-filter1 meinCss3 data-filter2" eine Ausgabe wie: data-category="filter1, filter2"

    Falls es eine elegantere Möglichkeit gibt ...
    Geändert von Franko (27.11.2018 um 14:21 Uhr)
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  28. #28
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.674
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von bteppan Beitrag anzeigen
    @Zonky:


    Leider wieder blöde Frage von mir:
    Wie kann ich es dann unter Contao 4.4.x installieren, wenn nicht über Composer oder Manager?
    z.Z. über Composer... später über Manager

    (über Composer aktuell nur über "mich")

  29. #29
    Contao-Nutzer
    Registriert seit
    15.02.2014.
    Beiträge
    196

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    z.Z. über Composer... später über Manager

    (über Composer aktuell nur über "mich")
    Aha! Und dieser Aufruf ist nur für Contao 3 oder --> composer require metamodels/core
    Verrätst Du mir den richtigen Aufruf?

  30. #30
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.674
    User beschenken
    Wunschliste

    Standard

    MM 2.0 für Contao 3 - für alle verfügbar ... Install siehe Handbuch https://metamodels.readthedocs.io/de...l/install.html

    MM 2.1 für Contao 4 - z.Z. nur gegen Spende verfügbar ... ab Ende (wahrs.) Dezember wieder für alle verfügbar

    mehr dazu im MM-Forum

  31. #31
    Contao-Nutzer
    Registriert seit
    15.02.2014.
    Beiträge
    196

    Standard

    Okay - Alles klar

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •