Contao-Camp 2024
Ergebnis 1 bis 20 von 20

Thema: Bestimmten Mitgliedergruppen ein Icon geben

  1. #1
    Contao-Fan
    Registriert seit
    15.12.2011.
    Beiträge
    811

    Standard Bestimmten Mitgliedergruppen ein Icon geben

    Guten Tag zusammen,

    ich habe zwei Mitglieder-Gruppen in Contao. Bei einer mit der ID 3 möchte ich gerne ein Icon (quasi ein Sigel) als Grafik mitgeben.
    Die Auflistung der Mitglieder erfolgt via Auflistungsmodul.

    Hat jemand eine Idee, wie ich das realisieren kann?

    Danke,
    Preetz

  2. #2
    Contao-Nutzer Avatar von Black Pirate
    Registriert seit
    10.02.2015.
    Beiträge
    224

    Standard

    Ich würde hier wohl eine einfache Abfrage ins Template einbauen.

    So ungefähr if member group id 3, dann css::before Icon setzen

  3. #3
    Contao-Fan
    Registriert seit
    05.05.2011.
    Beiträge
    860

    Standard

    So ungefähr if member group id 3, dann css::before Icon setzen
    Sehr schönes denglisch aber, ja, so könnte man das machen

  4. #4
    Contao-Fan
    Registriert seit
    15.12.2011.
    Beiträge
    811

    Standard


    Danke. Habe ich mir fast gedacht. Da ich aber nur mal in bestehendem Code herumspielen kann, fällt es mir schwer da selbst etwas zu schreiben.

    Könntet ihr mir helfen da ans Ziel zu kommen?
    Geändert von Preetz (03.03.2021 um 09:21 Uhr)

  5. #5
    Contao-Nutzer Avatar von Black Pirate
    Registriert seit
    10.02.2015.
    Beiträge
    224

    Standard

    Am besten du postet mal dein bisheriges Template, dann kann man dir besser weiter helfen.

  6. #6
    Contao-Fan
    Registriert seit
    15.12.2011.
    Beiträge
    811

    Standard

    sehr gerne:

    PHP-Code:
    <div class="<?= $this->class ?> ce_table listing block"<?= $this->cssID ?><?php if ($this->style): ?> style="<?= $this->style ?>"<?php endif; ?>>

      <?php if ($this->headline): ?>
        <<?= $this->hl ?>><?= $this->headline ?></<?= $this->hl ?>>
      <?php endif; ?>

      <?php if ($this->searchable): ?>
        <div class="list_search">
          <form method="get">
            <div class="formbody">
              <input type="hidden" name="order_by" value="<?= $this->order_by ?>">
              <input type="hidden" name="sort" value="<?= $this->sort ?>">
              <input type="hidden" name="per_page" value="<?= $this->per_page ?>">
              <div class="widget widget-select">
                <label for="ctrl_search" class="invisible"><?= $this->fields_label ?></label>
                <select name="search" id="ctrl_search" class="select">
                  <?= $this->search_fields ?>
                </select>
              </div>
              <div class="widget widget-text">
                <label for="ctrl_for" class="invisible"><?= $this->keywords_label ?></label>
                <input type="text" name="for" id="ctrl_for" class="text" value="<?= $this->for ?>">
              </div>
              <div class="widget widget-submit">
                <button type="submit" class="submit"><?= $this->search_label ?></button>
              </div>
            </div>
          </form>
        </div>
      <?php endif; ?>

      <?php if ($this->per_page): ?>
        <div class="list_per_page">
          <form method="get">
            <div class="formbody">
              <input type="hidden" name="order_by" value="<?= $this->order_by ?>">
              <input type="hidden" name="sort" value="<?= $this->sort ?>">
              <input type="hidden" name="search" value="<?= $this->search ?>">
              <input type="hidden" name="for" value="<?= $this->for ?>">
              <div class="widget widget-select">
                <label for="ctrl_per_page" class="invisible"><?= $this->per_page_label ?></label>
                <select name="per_page" id="ctrl_per_page" class="select">
                  <option value="10"<?php if (10 == $this->per_page): ?> selected<?php endif; ?>>10</option>
                  <option value="20"<?php if (20 == $this->per_page): ?> selected<?php endif; ?>>20</option>
                  <option value="30"<?php if (30 == $this->per_page): ?> selected<?php endif; ?>>30</option>
                  <option value="50"<?php if (50 == $this->per_page): ?> selected<?php endif; ?>>50</option>
                  <option value="100"<?php if (100 == $this->per_page): ?> selected<?php endif; ?>>100</option>
                  <option value="250"<?php if (250 == $this->per_page): ?> selected<?php endif; ?>>250</option>
                  <option value="500"<?php if (500 == $this->per_page): ?> selected<?php endif; ?>>500</option>
                </select>
              </div>
              <div class="widget widget-submit">
                <button type="submit" class="submit"><?= $this->per_page_label ?></button>
              </div>
            </div>
          </form>
        </div>
      <?php endif; ?>

      <?php if ($this->searchable && $this->for && empty($this->tbody)): ?>
        <?= $this->no_results ?>
      <?php else: ?>
        <table class="all_records">
        <thead>
          <tr>
            <?php foreach ($this->thead as $col): ?>
              <th class="head<?= $col['class'?>"><a href="<?= $col['href'?>" title="<?= $col['title'?>"><?= $col['link'?></a></th>
            <?php endforeach; ?>
            <?php if ($this->details): ?>
              <th class="head col_last">&nbsp;</th>
            <?php endif; ?>
          </tr>
        </thead>
        <tbody>
          <?php foreach ($this->tbody as $class => $row): ?>
            <tr class="<?= $class ?>">
              <?php foreach ($row as $col): ?>
                <td class="body <?= $col['class'?>"><?= $col['content'?></td>
              <?php endforeach; ?>
              <?php if ($this->details && isset($col)): ?>
                <?php if ($col['details']): ?>
                  <td class="body <?= $this->col_last ?> col_last"><a href="<?= $col['url'?>"><?= Contao\Image::getHtml('assets/contao/images/info.svg'?></a></td>
                <?php else: ?>
                  <td class="body <?= $this->col_last ?> col_last">&nbsp;</td>
                <?php endif; ?>
              <?php endif; ?>
            </tr>
          <?php endforeach; ?>
        </tbody>
        </table>
      <?php endif; ?>

      <?= $this->pagination ?>

    </div>
    Vielen Dank :-)

  7. #7
    Contao-Fan Avatar von fusch
    Registriert seit
    25.03.2012.
    Ort
    München
    Beiträge
    498
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo,

    spannend wäre auch zu wissen, was passieren soll, wenn der User Mitglied in mehreren Gruppen ist. Gibt es dann mehrere Icons?

    Gruß
    Hella
    Mitglied des Contao User Treffen München
    Aktuelle Termine erfährst Du immer unter www.contao-bayern.de
    Komm' doch mal vorbei!

  8. #8
    Contao-Fan
    Registriert seit
    15.12.2011.
    Beiträge
    811

    Standard

    Hallo,

    in meinem Fall wäre nur die Gruppe mit der ID=3 notwendig. Aber es könnte sich natürlich ändern.

    danke,
    Preetz

  9. #9

  10. #10
    Contao-Fan
    Registriert seit
    15.12.2011.
    Beiträge
    811

    Standard

    bitte was? ^^

    Ich bin schon 40 ich kann kein Jugendslang ^^

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

    Standard

    Zitat Zitat von Preetz Beitrag anzeigen
    bitte was? ^^

    Ich bin schon 40 ich kann kein Jugendslang ^^
    ich nehms mal als Kompliment - meine 40 ist schon etwas her ;-)

    aus

    PHP-Code:
    <?php foreach ($row as $col): ?>
    ein

    PHP-Code:
    <?php foreach ($row as $col): dump($row); ?>
    im BE den Debugmodus anschalten und in der Symfony-Toolbar (FE) auf das Fadenkreuz klicken ... dann die Daten des ersten Datensatzes hier posten

  12. #12
    Contao-Nutzer Avatar von Black Pirate
    Registriert seit
    10.02.2015.
    Beiträge
    224

    Standard

    Hab da mal was einfaches zusammen geschustert. Sollte selbsterklärend sein und auch ausbaufähig

    Code:
    $sortMembers = [
    	'order' => 'firstname ASC'
    ];
    
    $allMembers = \MemberModel::findAll($sortMembers);
    
        if ($allMembers > 0)
        {
            // Counter
            $elementCounter = 1;
            
            echo('<table>');
    		echo('<thead>');
    		echo('<th>Spalte 1</th>');
    		echo('<th>Spalte 2</th>');
    		echo('<th>Spalte 3</th>');
    		echo('</thead>');
    		echo('<tbody>');
    		
            while($allMembers->next())
            {
    			// ist Mitglied aktiv ?
    			if($allMembers->disable != '1'):
    			
    				// Daten zum Member
    				echo('<tr>');
    			
    					$groupID = implode(deserialize($allMembers->groups)); 
    			
    					// Spalte 1
    					echo('<td>');
    					
    						// ist Member in Gruppe 3 ?
    						 if($groupID == '3'):
    						 
    							echo('ja');
    			
    						 endif;
    						 
    					echo($allMembers->firstname . ' ' . $allMembers->lastname . '</td>');
    					
    					// Spalte 2
    					echo('<td>' . $allMembers->street . '</td>');
    					
    					// Spalte 3
    					echo('<td>' . $allMembers->zipcode . ' ' . $allMembers->city . '</td>');
    
    				echo('</tr>');
    			
    			endif;
                
                // Counter
                $elementCounter++;
            }
            echo('</tbody>');
    		echo('</table>');
        } else {
            echo('<p>Keine Daten vorhanden.</p>');	
        }

  13. #13
    Contao-Fan
    Registriert seit
    15.12.2011.
    Beiträge
    811

    Standard

    Vielen Dank. Aber der Code sieht jetzt irgendwie komplett anders aus als der im Template.

    Ich gehe mal davon aus, dass dein Beispiel eine Ergänzung sein soll und nicht alles ausgetauscht werden muss.
    An welche Stelle kommt dein Teil im Template?

  14. #14

  15. #15
    Contao-Fan
    Registriert seit
    15.12.2011.
    Beiträge
    811

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    ich nehms mal als Kompliment - meine 40 ist schon etwas her ;-)

    aus

    PHP-Code:
    <?php foreach ($row as $col): ?>
    ein

    PHP-Code:
    <?php foreach ($row as $col): dump($row); ?>
    im BE den Debugmodus anschalten und in der Symfony-Toolbar (FE) auf das Fadenkreuz klicken ... dann die Daten des ersten Datensatzes hier posten
    Das würde glaube ich bedeuten ich würde Personen Bezogene Daten posten oder?

  16. #16
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.935

    Standard

    Die kannst Du ja anonymisierten. Es geht hier wahrscheinlich nur um die Struktur der Daten.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  17. #17
    Contao-Fan
    Registriert seit
    15.12.2011.
    Beiträge
    811

    Standard

    habe jetzt das erste Mal diesen Debug-Modus angeschaltet und das Template angepasst.
    Ein Fadenkreuz im FE habe ich allerdings nicht finden können.

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

    Standard

    korrekt - es geht nur um die Struktur der Daten! - da reicht ein Datensatz, wie geschrieben

  19. #19
    Contao-Nutzer Avatar von Black Pirate
    Registriert seit
    10.02.2015.
    Beiträge
    224

    Standard

    Zitat Zitat von Preetz Beitrag anzeigen
    Vielen Dank. Aber der Code sieht jetzt irgendwie komplett anders aus als der im Template.

    Ich gehe mal davon aus, dass dein Beispiel eine Ergänzung sein soll und nicht alles ausgetauscht werden muss.
    An welche Stelle kommt dein Teil im Template?

    Nein, das Beispiel hat nichts mehr mit dem Auflistungsmodul zu tun. Das funktioniert ganz alleinstehend.

    Du kannst den Code speichern im Ordner templates - zb. als "meineListe.php" und dann im BE, dort wo du das Inhaltselement Auflistung hast - ein Inhaltselement HTML machen mit der Zeile: {{file::meineListe.php}}
    Dann zeigts dir die Memberliste an.

    Ich dachte, dass du damit schneller ans Ziel kommst, als das Auflistungsmodul so umgestalten damit es deine Wünsche erfüllt.
    Problem ist ja, das du beim Auflistungsmodul im BE die Spalten definieren musst, die angezeigt werden sollen - somit müsstest du die Spalte groups mit einlesen - diese aber nicht anzeigen lassen... usw.

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

    Standard

    Zitat Zitat von Black Pirate Beitrag anzeigen
    Ich dachte, dass du damit schneller ans Ziel kommst, als das Auflistungsmodul so umgestalten damit es deine Wünsche erfüllt.
    Ich würde eher am Original bleiben - das sollte ein "Einzeiler" sein... man müsste nur mal sehen, wie die Daten aussehen, die da ankommen

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
  •