Ergebnis 1 bis 6 von 6

Thema: PHP-Frage - Linkbezeichnung

  1. #1
    Contao-Nutzer
    Registriert seit
    15.03.2010.
    Beiträge
    28

    Standard PHP-Frage - Linkbezeichnung

    Hallo zusammen

    Ich habe es mit php (noch) nicht so drauf. Daher meine Frage. Ich habe in einem Template folgenden Code:

    PHP-Code:
    <?php echo $this->text $this->linkHeadline $this->newsHeadline?>
    Das funktioniert bestens. Nun sollte ich den Bezeichnung des Links mit "Projekt ansehen" ersetzen.

    Kann mit jemand mitteilen, wie ich das lösen kann?

    Vielen herzlichen Dank.

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

    Standard

    Hier fehlt ein wenig der Kontext: in welchem Template?, Steht der Code innerhalb einer Schleife?, ...

    Ansonsten: der Code generiert einen Text. Lösch ihn mal raus und schreibe Deinen gewünschten Text stattdessen direkt hin. Wenn Dein neuer Text jetzt an Stellen auftaucht, wo Du es nicht haben willst, war es zuviel des Guten und Du machst die Änderung wieder rückgängig.

    Mehr kann man Dir aktuell mangels Kontext nicht sagen.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  3. #3
    Contao-Nutzer
    Registriert seit
    15.03.2010.
    Beiträge
    28

    Standard

    Es handelt sich um diese Seite: https://webseite.protexon.ch/referenzen.html

    Es ist ein Newsmodul, welches korrekterweise den Titel der Nachricht übernimmt. Den untenstehenden PHP-Code habe ich aus aus dem Template kopiert und weiter unten im Template wieder eingesetzt. Nun soll der zweite Link aber nicht mehr "Berufsfachschule Winterthur" heissen, sondern "Zum Projekt".

    Anbei noch der komplette PHP Code.

    PHP-Code:
    <div class="newslist-v2 autogrid_wrapper block <?php echo $this->class?>" itemscope itemtype="http://schema.org/Article">
        <div class="autogrid one_third block news-image-v2">
            <div class="image_container<?php echo $this->floatClass?>"<?php if ($this->margin || $this->float): ?> style="<?php echo trim($this->margin $this->float); ?>"<?php endif; ?>>
                <?php if ($this->hasText): ?><a href="<?php echo $this->link?><?php echo $this->attributes?> title="<?php echo $this->alt?><?php if($this->target): ?>target="_blank"<?php endif; ?>><?php endif; ?>
                <?php if ($this->picture): ?><?php $this->insert('picture_default'$this->picture); ?><?php endif; ?>
                <?php if ($this->hasText): ?></a><?php endif; ?>
            </div>
        </div>
        <div class="news-content-v2 autogrid two_third block">
            <?php if ($this->commentCount): ?>
                <div class="comments-v2"><?php echo $this->numberOfComments?></div>
            <?php endif; ?>
            
            <?php if ($this->hasSubHeadline): ?>
            <div class="subheadline-v2"><?php echo $this->subHeadline?></div>
            <?php endif; ?>
            <h4><?php echo $this->text $this->linkHeadline $this->newsHeadline?></h4>

            <div class="info">
                <?php if ($this->date): ?>
                <span class="news-date-v2" itemprop="datePublished"><?php echo $this->parseDate("d"$this->timestamp);?><?php echo $this->parseDate("M"$this->timestamp);?> <?php echo $this->parseDate("Y"$this->timestamp);?> /</span>
                <?php endif; ?>
                <?php if ($this->author): ?>
                <span class="author-v2"><?php echo $this->author?></span>
                <?php endif; ?>
            </div>
            
            <div class="teaser-v2" itemprop="description"><?php echo $this->teaser?></div>
    <br>
    <p><?php echo $this->text $this->linkHeadline $this->newsHeadline?></p>


        </div>
    </div>

    Try and error habe ich schon versucht und bin nicht weitergekommen. Vielen Dank für die Hilfe.

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

    Standard

    Zitat Zitat von schufter Beitrag anzeigen
    Es handelt sich um diese Seite: https://webseite.protexon.ch/referenzen.html

    Es ist ein Newsmodul, welches korrekterweise den Titel der Nachricht übernimmt. Den untenstehenden PHP-Code habe ich aus aus dem Template kopiert und weiter unten im Template wieder eingesetzt. Nun soll der zweite Link aber nicht mehr "Berufsfachschule Winterthur" heissen, sondern "Zum Projekt".
    Und der Link bei "CURABITUR" soll dann auch nicht "Curabitur" heißen, sondern ebenfalls "Zum Projekt"? Und bei den weiteren Punkten genauso?

    Wenn ich das Template richtig gelesen und mit dem erzeugten Output vergleichen habe, erzeugt (wie Du geschrieben hast)

    PHP-Code:
    <p><?php echo $this->text $this->linkHeadline $this->newsHeadline?></p>
    z.B. dieses HTML

    HTML-Code:
      <p>
        <a href="details-zum-projekt/berufsfachschule-winterthur.html" title="Den Artikel lesen: Berufsfachschule Winterthur" itemprop="url">
          <span itemprop="headline">Berufsfachschule Winterthur</span>
        </a>
      </p>
    Das heißt, der HTML-Code für den Link (inkl. href-Attribut und verlinktem Text) ist bereits generiert und in $this->linkHeadline abgespeichert. Damit kannst Du es nicht durch eine einfache Änderung an der betreffenden PHP-Zeile umbauen.

    Quick and dirty könnte vielleicht funktionieren, per preg_replace() den Text zwischen <span> und </span> durch "Zum Projekt" zu ersetzen.


    Try and error habe ich schon versucht und bin nicht weitergekommen.
    Was heißt das: Es ist gar nichts passiert? Der neue Text war da, aber nicht mehr als Link? ...
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  5. #5
    Contao-Nutzer
    Registriert seit
    15.03.2010.
    Beiträge
    28

    Standard

    Zitat Zitat von fiedsch Beitrag anzeigen
    Und der Link bei "CURABITUR" soll dann auch nicht "Curabitur" heißen, sondern ebenfalls "Zum Projekt"? Und bei den weiteren Punkten genauso?
    Richtig, genau so ist es gedacht.

    Zitat Zitat von fiedsch Beitrag anzeigen
    Wenn ich das Template richtig gelesen und mit dem erzeugten Output vergleichen habe, erzeugt (wie Du geschrieben hast)

    PHP-Code:
    <p><?php echo $this->text $this->linkHeadline $this->newsHeadline?></p>
    z.B. dieses HTML

    HTML-Code:
      <p>
        <a href="details-zum-projekt/berufsfachschule-winterthur.html" title="Den Artikel lesen: Berufsfachschule Winterthur" itemprop="url">
          <span itemprop="headline">Berufsfachschule Winterthur</span>
        </a>
      </p>
    Das heißt, der HTML-Code für den Link (inkl. href-Attribut und verlinktem Text) ist bereits generiert und in $this->linkHeadline abgespeichert. Damit kannst Du es nicht durch eine einfache Änderung an der betreffenden PHP-Zeile umbauen.
    Ok, jetzt verstehe ich langsam.

    Quick and dirty könnte vielleicht funktionieren, per preg_replace() den Text zwischen <span> und </span> durch "Zum Projekt" zu ersetzen.
    Dann werde ich das mal so versuchen. Das wird mich Stunden kosten für eine kleine Veränderung. Aber so lernt man...


    Was heißt das: Es ist gar nichts passiert? Der neue Text war da, aber nicht mehr als Link? ...
    Ja, Text konnte ich einfach einfügen, aber das war dann (natürlich) nicht mehr verlinkt. Ich mach mich mal ran...

    Tausend Dank für deine Hilfsbereitschaft.

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.109
    Partner-ID
    10107

    Standard

    $this->text sollte nicht in einer Kondition benutzt werden. Siehe dazu auch https://community.contao.org/de/show...l=1#post536264

    $this->hasText sollte auch nur einmal pro Template benutzt werden. Wenn man es mehrmals benötigt, dann als separate Variable zwischenspeichern.

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
  •