typisches echo-Problem (Anführungszeichen)

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

  • #16
    Zitat von h3ll Beitrag anzeigen
    Ein fopen hat in einem View nix verloren! Das gehört zur Verarbeitung und nicht zur Ausgabe.
    Herrgott, das war nur ein Beispiel!!!
    Zitat von h3ll Beitrag anzeigen
    Und Anfänger verhaspeln sich ständig mit irgendwelchen gigantischen echo-Kontruktionen, wie man hier und in anderen Foren sieht. Also würd ich gern wissen, wo der Mehrwert von echo für Anfänger liegen soll.
    Weil ein
    PHP-Code:
    <?php
      
    if ($bla == $blubb)
      {
        echo 
    '<strong>irgendwas</strong>';
      }
      else
      {
        echo 
    '<strong>sonstwas</strong>';
      }
    ?>
    viel einfacher zu überblicken ist als ein
    PHP-Code:
    <?php
      
    if ($bla == $blubb)
      {
    ?>
      <strong>irgendwas</strong>
    <?php
      
    }
      else
      {
    ?>
      <strong>sonstwas</strong>
    <?php
      
    }
    ?>
    Und jetzt sag bitte nicht, dass Logik im View nichts zu suchen hat. Das weiß ich, das weißt du, aber Anfänger vor allem Autodidakten wissen das nicht. Und immer daran denken. Nicht jeder studiert Informatik. Und ist Zend-geschädigt .

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #17
      Zitat von sAks Beitrag anzeigen
      Hallo,
      habe ein kleines Problemchen:

      in diesem Bereich gehören normal einfache Anführungszeichen, aber da ich sie als echo-Klammern nutze, geht das nicht. Abhilfe?
      PHP-Code:
      ("edit.php","MyWindow","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=675,height=400"
      Danke im Voraus.
      sAks
      Also mein Rat wäre:
      a) die einfachen Anführungszeichen maskieren \'
      oder
      b) alles umdrehen und doppelte Anführungszeichen fürs echo nehmen.

      Kommentar


      • #18
        PHP-Code:
        <?php if ($bla == $blubb): ?>
            <strong>irgendwas</strong>
        <?php else: ?>
            <strong>sonstwas</strong>
        <?php endif; ?>
        PHP-Code:
        <strong><?= ($bla == $blubb) ? 'irgendwas' 'sonstwas' ?></strong>

        Kommentar


        • #19
          Zitat von h3ll Beitrag anzeigen
          PHP-Code:
          <?php if ($bla == $blubb): ?>
              <strong>irgendwas</strong>
          <?php else: ?>
              <strong>sonstwas</strong>
          <?php endif; ?>
          PHP-Code:
          <strong><?= ($bla == $blubb) ? 'irgendwas' 'sonstwas' ?></strong>
          Gibt spätestens bei zusätzlichen Verschachtelungen Probleme. Und wie gesagt, immer an open_short_tags denken.

          Peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #20
            Zitat von Kropff Beitrag anzeigen
            Gibt spätestens bei zusätzlichen Verschachtelungen Probleme. Und wie gesagt, immer an open_short_tags denken.
            h3ll hat zwei Beispiele gepostet. Würde persönlich auch das obere vorziehen, da gibt es auch kein Problem mit short_open_tags (so heißt die Einstellung ).

            Dein Beispiel mit dem fopen verstößt natürlich gegen jedes EVA-Prinzip und MVC. Nur weil jeder Anfänger mit einfachen echos anfängt, muss dies nicht auf ewig so bleiben. Gerade in so einfachen Fällen sollte wenigstens einmal die "schöne" Lösung gezeigt werden, wenn es hier schon um so grundlegendes wie einfache, doppelte Anführungszeichen sowie korrekte Stringverkettung geht.

            Kommentar


            • #21
              Zitat von PHP-Desaster Beitrag anzeigen
              h3ll hat zwei Beispiele gepostet. Würde persönlich auch das obere vorziehen, da gibt es auch kein Problem mit short_open_tags (so heißt die Einstellung ).
              Er ist halt nicht mehr der Jüngste, lass ihn
              [FONT="Helvetica"]twitter.com/unset[/FONT]

              Shitstorm Podcast – Wöchentliches Auskotzen

              Kommentar


              • #22
                Zitat von unset Beitrag anzeigen
                Er ist halt nicht mehr der Jüngste, lass ihn
                Ok, wollen wir mal nicht so sein ^^ Sei dem Kropff verziehen.

                Kommentar


                • #23
                  Zitat von unset Beitrag anzeigen
                  Er ist halt nicht mehr der Jüngste, lass ihn
                  Dafür bin ich der Anfängerversteher.
                  Zitat von PHP-Desaster Beitrag anzeigen
                  Dein Beispiel mit dem fopen verstößt natürlich gegen jedes EVA-Prinzip und MVC.
                  Ich habe doch gesagt, dass das nur irgendein Beispiel war. Was die Schreibweise von h3ll angeht, mal ein Beispiel-Template aus dem Magento-Shop. Also wer das übersichtlich findet, naja. Ich finde es einfach nur grauenhaft.
                  PHP-Code:
                  <?php $_product $this->getProduct() ?>
                  <?php 
                  list($_minimalPrice$_maximalPrice) = $_product->getPriceModel()->getPrices($_product?>
                  <?php $_id 
                  $_product->getId() ?>

                  <?php $_minimalPriceTax Mage::helper('tax')->getPrice($_product$_minimalPrice); ?>
                  <?php $_minimalPriceInclTax 
                  Mage::helper('tax')->getPrice($_product$_minimalPricetrue); ?>

                  <div class="price-box">
                    <?php if ($_product->getPriceView()): ?>
                      <p class="minimal-price">
                        <span class="price-label"><?php echo $this->__('As low as'?>:</span>
                        <?php if ($this->helper('tax')->displayBothPrices() && $this->isRatesGraterThenZero()): ?>
                          <span class="price-excluding-tax">
                            <span class="label"><?php echo Mage::helper('tax')->__('Excl. Tax:'?></span>
                            <?php echo Mage::helper('core')->currency($_minimalPriceTax?>
                          </span>
                          <span class="price-including-tax">
                            <span class="label"><?php echo Mage::helper('tax')->__('Incl. Tax:'?></span>
                             <?php echo Mage::helper('core')->currency($_minimalPriceInclTax?>
                          </span>
                      </p>
                      <?php else: ?>
                      <?php echo Mage::helper('core')->currency($_minimalPriceTax?>
                      </p>
                    <?php endif; ?>
                    <?php else: ?>
                      <?php if ($_minimalPrice <> $_maximalPrice): ?>
                      <p class="price-from">
                          <span class="price-label"><?php echo $this->__('From'?>:</span>
                          <?php if ($this->helper('tax')->displayBothPrices() && $this->isRatesGraterThenZero()): ?>
                            <span class="price-excluding-tax">
                              <span class="label"><?php echo Mage::helper('tax')->__('Excl. Tax:'?></span>
                              <?php echo Mage::helper('core')->currency($_minimalPriceTax?>
                            </span>
                            <span class="price-including-tax">
                              <span class="label"><?php echo Mage::helper('tax')->__('Incl. Tax:'?></span>
                               <?php echo Mage::helper('core')->currency($_minimalPriceInclTax?>
                            </span>
                          <?php else: ?>
                            <?php echo Mage::helper('core')->currency($_minimalPriceTax?>
                          <?php endif; ?>
                      </p>
                      <?php $_maximalPriceTax Mage::helper('tax')->getPrice($_product$_maximalPrice); ?>
                      <?php $_maximalPriceInclTax Mage::helper('tax')->getPrice($_product$_maximalPricetrue); ?>
                      <p class="price-to">
                        <span class="price-label"><?php echo $this->__('To'?>:</span>
                        <?php if ($this->helper('tax')->displayBothPrices() && $this->isRatesGraterThenZero()): ?>
                          <span class="price-excluding-tax">
                            <span class="label"><?php echo Mage::helper('tax')->__('Excl. Tax:'?></span>
                            <?php echo Mage::helper('core')->currency($_maximalPriceTax?>
                          </span>
                          <span class="price-including-tax">
                            <span class="label"><?php echo Mage::helper('tax')->__('Incl. Tax'?></span>
                            <?php echo Mage::helper('core')->currency($_maximalPriceInclTax?>
                          </span>
                        <?php else: ?>
                            <?php echo Mage::helper('core')->currency($_maximalPriceTax?>
                        <?php endif; ?>
                      </p>
                      <?php else: ?>
                          <?php if ($this->helper('tax')->displayBothPrices() && $this->isRatesGraterThenZero()): ?>
                            <span class="price-excluding-tax">
                              <span class="label"><?php echo Mage::helper('tax')->__('Excl. Tax:'?></span>
                              <?php echo Mage::helper('core')->currency($_minimalPriceTax?>
                            </span>
                            <span class="price-including-tax">
                              <span class="label"><?php echo Mage::helper('tax')->__('Incl. Tax:'?></span>
                              <?php echo Mage::helper('core')->currency($_minimalPriceInclTax?>
                            </span>
                          <?php else: ?>
                              <?php echo Mage::helper('core')->currency($_minimalPriceTax?>
                          <?php endif; ?>
                      <?php endif; ?>
                    <?php endif; ?>
                  </div>
                  Peter
                  Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                  Meine Seite

                  Kommentar


                  • #24
                    Ich sagte doch, du hast bis jetzt wohl nur Schrott-Code gesehen.

                    Das von die gepostete Beispiel ist sehr mies. 50% der PHP-Tags ließen sich locker einsparen und man kann es auch sauberer einrücken. Außerdem sind viele Code-Stellen unnötigerweise kopiert. Hier würde man vermutlich mit Schleifen auch deutlich Code einsparen und Übersicht gewinnen.
                    Zuletzt geändert von h3ll; 16.07.2009, 08:56.

                    Kommentar


                    • #25
                      Zitat von h3ll Beitrag anzeigen
                      Ich sagte doch, du hast bis jetzt wohl nur Schrott-Code gesehen.
                      Stimmt. Aber ich denke, das so was sehr leicht dabei herauskommen kann. Btw: formatier das doch mal um. Vielleicht kannst du mich ja vom Gegenteil überzeugen.

                      Peter
                      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                      Meine Seite

                      Kommentar


                      • #26
                        Zitat von Kropff Beitrag anzeigen
                        Stimmt. Aber ich denke, das so was sehr leicht dabei herauskommen kann. Btw: formatier das doch mal um. Vielleicht kannst du mich ja vom Gegenteil überzeugen.
                        Ich hab versucht so gut es geht die Logik vom HTML-Code zu trennen, damit man überhaupt mal erkennt, was da eigentlich passiert in dem Code. Wobei ich der Meinung bin, dass die Logik in dem View schlecht aufgehoben ist, sondern eher in den Controller gehört, aber darüber lässt sich streiten.

                        PHP-Code:
                        <?php
                            $_product 
                        $this->getProduct();
                            list(
                        $_minimalPrice$_maximalPrice) = $_product->getPriceModel()->getPrices($_product);

                            
                        $_minimalPriceTax Mage::helper('tax')->getPrice($_product$_minimalPrice);
                            
                        $_minimalPriceInclTax Mage::helper('tax')->getPrice($_product$_minimalPricetrue);
                            
                            
                        $_maximalPriceTax Mage::helper('tax')->getPrice($_product$_maximalPrice);
                            
                        $_maximalPriceInclTax Mage::helper('tax')->getPrice($_product$_maximalPricetrue);
                            
                            
                        $prices = array();
                            
                            if (
                        $_product->getPriceView()) {
                                
                        $prices[] = array(
                                    
                        'class'   => 'minimal-price'
                                    'label'   
                        => $this->__('As low as'),
                                    
                        'exclTax' => $_minimalPriceTax,
                                    
                        'inclTax' => $_minimalPriceInclTax
                                
                        );
                            } elseif (
                        $_minimalPrice != $_maximalPrice) {
                                
                        $prices[] = array(
                                    
                        'class'   => 'price-from',
                                    
                        'label'   => $this->__('From'),
                                    
                        'exclTax' => $_minimalPriceTax,
                                    
                        'inclTax' => $_minimalPriceInclTax
                                
                        );
                                
                        $prices[] = array(
                                    
                        'class'   => 'price-to',
                                    
                        'label'   => this->__('To'),
                                    
                        'exclTax' => $_maximalPriceTax,
                                    
                        'inclTax' => $_maximalPriceInclTax
                                
                        );
                            } else {
                                
                        $prices[] = array(
                                    
                        'exclTax' => $_minimalPriceTax,
                                    
                        'inclTax' => $_minimalPriceInclTax
                                
                        );
                            }
                        ?>
                        <div class="price-box">
                            
                        <?php foreach ($prices as $price): ?>    

                            <?php if (isset($price['class'])): ?>
                                <p class="<?= $price['class'?>">
                            <?php endif; ?>

                            <?php if (isset($price['label'])): ?>
                                    <span class="price-label"><?= $price['label'?>:</span>
                            <?php endif; ?>
                            
                            <?php if ($this->helper('tax')->displayBothPrices() && $this->isRatesGraterThenZero()): ?>
                                    <span class="price-excluding-tax">
                                        <span class="label"><?= Mage::helper('tax')->__('Excl. Tax:'?></span>
                                        <?= Mage::helper('core')->currency($price['exclTax']) ?>
                                    </span>
                                    <span class="price-including-tax">
                                        <span class="label"><?= Mage::helper('tax')->__('Incl. Tax'?></span>
                                        <?= Mage::helper('core')->currency($price['inclTax']) ?>
                                    </span>
                            <?php else: ?>
                                    <?= Mage::helper('core')->currency($price['exclTax']) ?>
                            <?php endif; ?>
                            
                            <?php if (isset($price['class'])): ?>
                                </p>
                            <?php endif; ?>

                        <?php endforeach; ?>

                        </div>
                        Zuletzt geändert von h3ll; 16.07.2009, 09:26.

                        Kommentar


                        • #27
                          dass die Logik in dem View schlecht aufgehoben ist, sondern eher in den Controller gehört, aber darüber lässt sich streiten.
                          Stimmt. Btw: Mit deinem Code könnte ich sogar leben . Wenn ich nicht XSLT bevorzugen würde.

                          Peter
                          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                          Meine Seite

                          Kommentar


                          • #28
                            OffTopic:
                            list($_minimialPrice, $_maximalPrice) = $this->getProduct()->getPriceModel()->getPrices($this->getProduct()) !?!
                            Das ist kein Template, das ist ein View.

                            Kommentar


                            • #29
                              Zitat von onemorenerd Beitrag anzeigen
                              OffTopic:
                              list($_minimialPrice, $_maximalPrice) = $this->getProduct()->getPriceModel()->getPrices($this->getProduct()) !?!
                              Das ist kein Template, das ist ein View.
                              OffTopic:
                              Beim Magento-Shop ist die Logik ein wenig anders als z.B. im Zend Framework. Auch wenn es darauf aufbaut.

                              Peter
                              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                              Meine Seite

                              Kommentar


                              • #30
                                Zitat von PHP-Desaster Beitrag anzeigen
                                Afaik sollte das ganze ordentlich im View erledigt werden:


                                Noch schicker natürlich mit short_open_tags bzw. mit Zend_View und aktiviertem Streamwrapper:
                                PHP-Code:
                                <a href="example.php?id=<?=$id ?>" class="<?=$links1 ?>">example</a>
                                sofern die server künftig short_open_tags unterstützen !
                                und ich hab ich hier nicht irgendwo gelesen, dass dieses "<?=" eventuell ab php6 flöten geht ? was dann....
                                Coder never die, they just GOSUB without RETURN

                                Mein System

                                Kommentar

                                Lädt...
                                X