Ankündigung

Einklappen
Keine Ankündigung bisher.

Erweiterte tl_member Alias nutzen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Erweiterte tl_member Alias nutzen

    Wir haben mit CC diverse tl_member Tabellen erweitert und nutzen hier Listen/Leser.

    Mit dieser Konfiguration wird auf der Leserseite jedoch immer die Member ID als Alias verwendet.

    Besteht eine Möglichkeit hier ein eigenes Alias Feld zu nutzen, so wie es bei regulären CCs möglich ist?


  • #2
    Zitat von eblick Beitrag anzeigen
    Wir haben mit CC diverse tl_member Tabellen erweitert und nutzen hier Listen/Leser.

    Mit dieser Konfiguration wird auf der Leserseite jedoch immer die Member ID als Alias verwendet.

    Besteht eine Möglichkeit hier ein eigenes Alias Feld zu nutzen, so wie es bei regulären CCs möglich ist?
    Ich denke ja. Einfach ausprobieren.
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Ausprobiert habe ich es ja, ich kann zwar ein alias Feld ergänzen, aber ich habe keine Möglichkeit, es in der Konfiguration auszuwählen.
      Bei erweiterten Tabellen fehlen ja in der Konfiguration die Ausgabeeinstellungen.

      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Bildschirmfoto 2023-11-16 um 08.14.43.png
Ansichten: 22
Größe: 55,2 KB
ID: 28183

      Kommentar


      • #4
        Stimmt. Dann geht es nicht out of the box. Kannst versuchen es auszutricken und setzt in der DB ein Alias-Feld ein - so dass das Feld quasi gefüllt ist.
        http://www.premium-contao-themes.com

        Kommentar


        • #5
          Das verstehe ich nicht ganz. "setzt in der DB ein Alias-Feld ein".
          Was passiert denn bei der Routine der Ausgabe Einstellungen?
          Kann das nicht über die config eingestellt werden oder evtl. auch bei erweiterten Tabellen über CC eingerichtet werden?

          Kommentar


          • #6
            Zitat von eblick Beitrag anzeigen
            Das verstehe ich nicht ganz. "setzt in der DB ein Alias-Feld ein".
            Was passiert denn bei der Routine der Ausgabe Einstellungen?
            Kann das nicht über die config eingestellt werden oder evtl. auch bei erweiterten Tabellen über CC eingerichtet werden?
            Setz dir das Feld über die dcaconfig.php (oder vergleichbar) ein oder in PHPmyadmin einfach zum Test in diesem Datensatz das Feld mit der ID des passenden Alias-Feldes einfach ausfüllen.
            http://www.premium-contao-themes.com

            Kommentar


            • #7
              Sorry, ich verstehe immer noch nicht was du genau meinst.

              Ich habe ein Alias Feld bereits über die DCA angelegt und es ist auch grundsätzlich verfügbar und gefüllt.
              Wie kann dieses in der Ausgabe im Leser Modul für die URL herangezogen werden anstelle der ID?

              also domain.de/member/hans-wurst.html statt domain.de/member/2.html

              das Feld mit der ID des passenden Alias-Feldes einfach ausfüllen.
              das verstehe ich an der Stelle ebenfalls nicht. Was ist die ID des passenden Alias Feldes?

              Kommentar


              • #8
                Du kannst in dem Modus Erw. Tabelle standardmäßig kein Alias-Feld wählen. Das musst du dir via dcaconfig anzeigen lassen oder halt zum Test einfach in der DB einmal direkt einsetzen.

                Die Liste dieser Erw. Tabelle wird daraufhin den Weiterlesen-Link mit Alias anstelle von ID bilden (falls es klappt)
                http://www.premium-contao-themes.com

                Kommentar


                • #9
                  zum Test einfach in der DB einmal direkt einsetzen
                  Dann nochmal dazu. Was soll ich hier wo in die Datenbank eintragen?
                  den Alias in das ID Feld?

                  Kommentar


                  • #10
                    Alias-Auswahlfeld einfach via dcaconfig im Backend anzeigen lassen für Modus Erw. Tabellen:

                    dcaconfig.php
                    Code:
                    $GLOBALS['TL_DCA']['tl_pct_customcatalog']['palettes']['existing'] .= ';aliasField';
                    Dann alles Bordmittel ab hier:
                    • Ein Alias-Attribut anlegen lassen in tl_member
                    • In der CC Konfig für tl_member auswählen (Ja, das Feld wird 2x angezeigt, aufgrund von Ladereihenfolgen, ist aber technisch nicht ausschlaggebend, einfach das untere Feld nutzen) -> Alias-Attribut auswählen
                    • (Alias in den Mitglieder-Datensätzen ergänzen)
                    • CC Liste für die tl_member Erw. Tabelle
                    • CC Leser passend dazu
                    Weiterlesen-Link wird nun mit Alias gebildet. Liste und Leser arbeiten wie gewohnt.

                    https://dev4-13.premium-contao-theme...tl-member.html
                    Angehängte Dateien
                    Zuletzt geändert von Tim; 16.11.2023, 08:49.
                    http://www.premium-contao-themes.com

                    Kommentar


                    • #11
                      Works perfect! Danke.

                      Eine Frage dazu allerdings noch. Aktuell sind die Datensätze sowohl mit der ID als auch dem Alias erreichbar.
                      Wie kann man den Zugriff über die ID ausschließen?

                      Kommentar


                      • #12
                        Zitat von eblick Beitrag anzeigen
                        Works perfect! Danke.

                        Eine Frage dazu allerdings noch. Aktuell sind die Datensätze sowohl mit der ID als auch dem Alias erreichbar.
                        Wie kann man den Zugriff über die ID ausschließen?
                        Der Alias könnte auch eine Zahl sein.

                        Du kannst oben im Leser-Template eine Abfrage ergänzen und die gesetzten Alias aus der Url gegen den geöffneten Datensatz und dessen ID prüfen. Darauhin quasi 404 umleiten oder halt die Ausgabe unterdrücken.
                        http://www.premium-contao-themes.com

                        Kommentar


                        • #13
                          Wäre eine Idee, mit {{page::alias}} erhalte ich bei Leserseiten nur leider dein Seitenalias und nicht die ID (also z.B. "member") und mit {{env::request}} erhalte ich den kompletten String -> d.h. man müsste hier die einzelne ID hier herauscrawlen...

                          Kommentar


                          • #14
                            ? der Alias der Seite? Crawlen?

                            Auf dem Leser geht direkt das autoitem Inserttag

                            ID= {{customcatalog::tl_member::autoitem::id}}
                            Alias= {{customcatalog::tl_member::autoitem::alias}} (Falls Alias-Feld "alias" heisst.

                            In der Url ist des auto_item Paramter, wie bei den News oder direkt über den internen von CC ansprechen.
                            \Contao\Input::get('auto_item')

                            https://forum.premium-contao-themes....0730#post20730
                            https://forum.premium-contao-themes....3363#post13363

                            Der autoitem Parameter ist im Falle von einer Zahl/Id in der Url hier auch leer, weil der bei aktiven Alias-Feld strikt einen Alias sucht.

                            Code:
                            <?php
                            $id = \Contao\Controller::replaceInsertTags('{{customcatalog::tl_member::autoitem::id}}');
                            $alias = \Contao\Controller::replaceInsertTags('{{customcatalog::tl_member::autoitem::alias}}');
                            
                            if( empty($alias) || \Contao\Input::get( $GLOBALS['PCT_CUSTOMCATALOG']['urlItemsParameter'] ) == $id )
                            {
                            echo 'Id ist hier nicht erwünscht';
                            return;
                            }
                            ?>
                            Zuletzt geändert von Tim; 16.11.2023, 10:31.
                            http://www.premium-contao-themes.com

                            Kommentar


                            • #15
                              Das hat so ähnlich funktioniert. Hier unsere Umsetzung.

                              Code:
                              <?php $alias = pathinfo(basename($this->replaceInsertTags('{{env::request}}')), PATHINFO_FILENAME); ?>
                              <?php if($alias == $this->field('id')->value()): ?>
                              <?php $objHandler = new $GLOBALS['TL_PTY']['error_404']();
                              $objHandler->generate($objPage->id);
                              ?>
                              <?php else: ?>
                              <?php echo // alle weiteren Inhalte ?>
                              <?php endif; ?>
                              Es schließt sich daran gleich eine weitere Herausforderung an.

                              Das unveröffentlichen eines Mitglieds über die Mitgliederverwaltung führt nicht dazu, dass es in einer CC Liste unveröffentlicht ist.

                              Der in der Mitgliederverwaltung verfügbare Veröffentlichungsbutton funktioniert umgekehrt zur CC Logik.

                              Ich habe nach dem Schema oben
                              Code:
                              $GLOBALS['TL_DCA']['tl_pct_customcatalog']['palettes']['existing'] .= ';publishedField';
                              in der dcaconfig ergänzt. Damit kann ich ein Feld für die Veröffentlichung auswählen.

                              Der Effekt ist allerdings, dass der Button in der Mitgliederverwaltung nicht mehr sichtbar ist und wie beschrieben, ein "disabled" Mitglied in der CC Liste sichtbar ist und die veröffentlichten nicht.

                              Ich nehme mal an, dass sich diese Logik in CC nicht einfach umdrehen lässt.

                              Und für die Listen müsste wohl ein eigenes "aktive" Feld angelegt werden mit der Konsequenz, dass die Mitglieder nicht über die Buttons verwaltet werden können.

                              niwwor?

                              Kommentar

                              Lädt...
                              X