Frisch eingetroffen als CMS?

Ja, man kann den schließenden PHP-Tag auch weglassen. Das ist meiner Ansicht nach aber nicht sinnig. Es darf nur kein weiterer Inhalt, auch kein Whitespace danach auftauchen, also keine Leerzeichen, Tabs, Zeilenumbrüche etc.

so, diese Geschichte hatte ich zuerst mal links liegen lasse.
Nun rückt der Zeitpunkt des Online schalten immer näher, und leider habe ich noch keine Lösung für das Problem.

Das Modul ist in der neuesten Version 4.6.3 eingefügt.
Die php Datei des Moduls sieht wie folgt aus

<?php
class makeNewestAvailable extends makeNewestAvailable_parent {
    /**
    * Newest article list
    *
    * @var array
    */
    protected $_aNewArticleList = null;
    
    
    /**
    * Template variable getter. Returns newest article list
    *
    * @return array
    */
    public function getNewestArticles() {
        if($this->_aNewArticleList === null) {
            $this->_aNewArticleList = array();

            $oArtList = oxNew('oxarticlelist');
            $oArtList->loadNewestArticles();
            if($oArtList->count()) {
                $this->_aNewArticleList = $oArtList;
            }
        }
        return $this->_aNewArticleList; }
        }
?>

In der left.tpl (Ableger von Basic) habe ich folgendes eingefügt:

 [{foreach from=$oViewConf->getNewestArticles() item=actionproduct}]
    [{include file="inc/product.tpl" showMainLink=true product=$actionproduct size="small" testid="newArticle_"|cat:$actionproduct->oxarticles__oxid->value}]
[{/foreach}]

das ganze funktioniert fast…, leider wird irgend eine zweite “Preis-ähnliche Sache” die ich nicht erklären kann unterhalb des normalen Preis angezeigt.
Vielleicht könnt ihr mir helfen, ich würde mich sehr freuen.
Anbei ein Linkder Testinstallation

Guten Morgen zusammen,

ich erlaube mir mal meine Frage erneut zu stellen.
Hat keiner von euch eine logische Erklärung, bzw. einen Lösungsansatz womit ich vielleicht weiter kommen könnte?

könntest Du noch den Quellcode von inc/product.tpl hier posten?

gerne, es ist die originaldatei (unverändert) vom Basic

[{assign var=“currency” value=$oView->getActCurrency()}]
<div [{if $test_Cntr}]id=“test_cntr_[{$test_Cntr}]_[{$product->oxarticles__oxartnum->value}]”[{/if}] class=“product hproduct[{if $head}] head[{/if}] [{$size|default:‘’}] [{$class|default:‘’}]”>
[{if $showMainLink}]
[{assign var=‘_productLink’ value=$product->getMainLink()}]
[{else}]
[{assign var=‘_productLink’ value=$product->getLink()}]
[{/if}]

[{if $head}]
    &lt;strong id="test_smallHeader[{if $testHeader}]_[{$testHeader}][{/if}]" class="h4 [{$size|default:''}]"&gt;
        [{if $head_link}]&lt;a id="test_headerTitleLink_[{$testid}]" href="[{$head_link}]"[{if $oView-&gt;noIndex() }] rel="nofollow"[{/if}]&gt;[{/if}]
        [{$head}]
        [{if $head_link}]&lt;/a&gt;[{/if}]
        [{if $head_desc}] &lt;small id="test_headerDesc_[{$testid}]"&gt;[{ "$head_desc"|strip_tags}]&lt;/small&gt;[{/if}]
    &lt;/strong&gt;
[{/if}]
&lt;a id="test_pic_[{$testid}]" href="[{ $_productLink }]" class="picture url" rel="product[{if $oView-&gt;noIndex() }] nofollow[{/if}]"&gt;
  &lt;img class="photo" src="[{if $size=='big'}][{$product-&gt;getPictureUrl(1) }][{elseif $size=='thinest'}][{$product-&gt;getIconUrl() }][{else}][{ $product-&gt;getThumbnailUrl() }][{/if}]" alt="[{ $product-&gt;oxarticles__oxtitle-&gt;value|strip_tags }] [{ $product-&gt;oxarticles__oxvarselect-&gt;value|default:'' }]"&gt;
&lt;/a&gt;
&lt;strong class="h3"&gt;
    &lt;a id="test_title_[{$testid}]" class="fn" href="[{ $_productLink }]" rel="product[{if $oView-&gt;noIndex() }] nofollow[{/if}]"&gt;[{$product-&gt;oxarticles__oxtitle-&gt;value}] [{$product-&gt;oxarticles__oxvarselect-&gt;value}]&lt;/a&gt;
    &lt;br&gt;
    &lt;tt class="identifier" id="test_no_[{$testid}]"&gt;
        [{if $product-&gt;getPricePerUnit()}]
            &lt;div id="test_product_price_unit_[{$testid}]" class="pperunit"&gt;
                [{$product-&gt;oxarticles__oxunitquantity-&gt;value}] [{$product-&gt;getUnitName()}] | [{$product-&gt;getPricePerUnit()}] [{ $currency-&gt;sign}]/[{$product-&gt;getUnitName()}]
            &lt;/div&gt;
        [{elseif $product-&gt;oxarticles__oxweight-&gt;value  }]
            &lt;span class="type" title="weight"&gt;[{ oxmultilang ident="INC_PRODUCTITEM_ARTWEIGHT" }]&lt;/span&gt;
            &lt;span class="value"&gt;[{ $product-&gt;oxarticles__oxweight-&gt;value }] [{ oxmultilang ident="INC_PRODUCTITEM_ARTWEIGHT2" }]&lt;/span&gt;
        [{else}]
            &lt;span class="type" title="sku"&gt;[{ oxmultilang ident="INC_PRODUCTITEM_ARTNOMBER2" }]&lt;/span&gt;
            &lt;span class="value"&gt;[{ $product-&gt;oxarticles__oxartnum-&gt;value }]&lt;/span&gt;
        [{/if}]
    &lt;/tt&gt;
    [{if $size=='thin' || $size=='thinest'}]
    &lt;span class="flag [{if $product-&gt;getStockStatus() == -1}]red[{elseif $product-&gt;getStockStatus() == 1}]orange[{elseif $product-&gt;getStockStatus() == 0}]green[{/if}]"&gt; &lt;/span&gt;
    [{/if}]
&lt;/strong&gt;
[{if $recommid }]
  &lt;div id="test_text_[{$testid}]" class="desc"&gt;[{ $product-&gt;text }]&lt;/div&gt;
[{/if}]
[{oxhasrights ident="SHOWSHORTDESCRIPTION"}]
  [{if $size=='big' || $size=='thin'}]
    &lt;div id="test_shortDesc_[{$testid}]" class="desc description"&gt;[{ $product-&gt;oxarticles__oxshortdesc-&gt;value }]&lt;/div&gt;
  [{/if}]
[{/oxhasrights}]
&lt;div [{if $test_Cntr}]id="test_cntr_[{$test_Cntr}]"[{/if}] class="actions"&gt;
    &lt;a id="test_details_[{$testid}]" href="[{ $_productLink }]"[{if $oView-&gt;noIndex() }] rel="nofollow"[{/if}]&gt;[{ oxmultilang ident="INC_PRODUCTITEM_MOREINFO2" }]&lt;/a&gt;
    [{if $oViewConf-&gt;getShowCompareList()}]
        [{oxid_include_dynamic file="dyn/compare_links.tpl" testid="_`$testid`" type="compare" aid=$product-&gt;oxarticles__oxid-&gt;value anid=$altproduct in_list=$product-&gt;isOnComparisonList() page=$oView-&gt;getActPage() text_to_id="INC_PRODUCTITEM_COMPARE2" text_from_id="INC_PRODUCTITEM_REMOVEFROMCOMPARELIST2"}]
    [{/if}]
&lt;/div&gt;
&lt;form name="tobasket.[{$testid}]" action="[{ $oViewConf-&gt;getSelfActionLink() }]" method="post"&gt;
[{capture name=product_price}]
[{oxhasrights ident="SHOWARTICLEPRICE"}]
    &lt;div id="test_price_[{$testid}]" class="cost"&gt;
        [{if $product-&gt;getFTPrice() &gt; $product-&gt;getFPrice() && $size=='big' }]
            &lt;b class="old"&gt;[{ oxmultilang ident="DETAILS_REDUCEDFROM" }] &lt;del&gt;[{ $product-&gt;getFTPrice()}] [{ $currency-&gt;sign}]&lt;/del&gt;&lt;/b&gt;
            &lt;span class="desc"&gt;[{ oxmultilang ident="DETAILS_REDUCEDTEXT" }]&lt;/span&gt;&lt;br&gt;
            &lt;sub class="only"&gt;[{ oxmultilang ident="DETAILS_NOWONLY" }]&lt;/sub&gt;
        [{/if}]
        [{if $product-&gt;getFPrice()}]
          &lt;big class="price"&gt;[{ $product-&gt;getFPrice() }] [{ $currency-&gt;sign}]&lt;/big&gt;&lt;sup class="dinfo"&gt;&lt;a href="#delivery_link" rel="nofollow"&gt;[{ if !$product-&gt;isNotBuyable() && !$product-&gt;hasMdVariants() && !$blDisableToCart }]*[{/if}]&lt;/a&gt;&lt;/sup&gt;
        [{else}]
          &lt;big&gt; &lt;/big&gt;
        [{/if}]
    &lt;/div&gt;
[{/oxhasrights}]
[{/capture}]
[{if $size=='big'}][{$smarty.capture.product_price}][{/if}]
&lt;div class="variants"&gt;
[{ $oViewConf-&gt;getHiddenSid() }]
[{ $oViewConf-&gt;getNavFormParams() }]
&lt;input type="hidden" name="cl" value="[{ $oViewConf-&gt;getActiveClassName() }]"&gt;
[{if $owishid}]
  &lt;input type="hidden" name="owishid" value="[{$owishid}]"&gt;
[{/if}]
[{if $toBasketFunction}]
  &lt;input type="hidden" name="fnc" value="[{$toBasketFunction}]"&gt;
[{else}]
  &lt;input type="hidden" name="fnc" value="tobasket"&gt;
[{/if}]
&lt;input type="hidden" name="aid" value="[{ $product-&gt;oxarticles__oxid-&gt;value }]"&gt;
[{if $altproduct}]
    &lt;input type="hidden" name="anid" value="[{ $altproduct }]"&gt;
[{else}]
    &lt;input type="hidden" name="anid" value="[{ $product-&gt;oxarticles__oxnid-&gt;value }]"&gt;
[{/if}]
[{if $recommid}]
    &lt;input type="hidden" name="recommid" value="[{ $recommid }]"&gt;
[{/if}]
&lt;input type="hidden" name="pgNr" value="[{ $oView-&gt;getActPage() }]"&gt;
[{if $size!='thin' && $size!='thinest'}]
&lt;input id="test_am_[{$testid}]" type="hidden" name="am" value="1"&gt;
[{/if}]
[{if $product-&gt;getVariantList() && ($size!='thinest') }]
    &lt;label&gt;[{ $product-&gt;oxarticles__oxvarname-&gt;value }]:&lt;/label&gt;
    [{if $product-&gt;hasMdVariants() }]
        &lt;select id="mdVariant_[{$testid}]" name="mdVariant_[{$testid}]"&gt;
        [{if !$product-&gt;isParentNotBuyable() && $product-&gt;getFPrice() }]
          &lt;option value="[{$product-&gt;getLink()}]"&gt;[{ $product-&gt;oxarticles__oxvarselect-&gt;value }] [{oxhasrights ident="SHOWARTICLEPRICE"}] [{ $product-&gt;getFPrice() }] [{ $currency-&gt;sign|strip_tags}]* [{/oxhasrights}]&lt;/option&gt;
        [{/if}]
        [{foreach from=$product-&gt;getMdSubvariants() item=mdVariant}]
          &lt;option value="[{$mdVariant-&gt;getLink()}]?[{$oViewConf-&gt;getNavUrlParams()}]"&gt;[{ $mdVariant-&gt;getName() }] [{oxhasrights ident="SHOWARTICLEPRICE"}] [{if $mdVariant-&gt;getFPrice() }] [{ $mdVariant-&gt;getFPrice()|strip_tags }]* [{/if }] [{/oxhasrights}]&lt;/option&gt;
        [{/foreach}]
        &lt;/select&gt;
    [{else}]
        &lt;select id="varSelect_[{$testid}]" name="aid"&gt;
        [{ if !$product-&gt;isParentNotBuyable() && $product-&gt;getFPrice() }]
            &lt;option value="[{$product-&gt;getId()}]"&gt;[{ $product-&gt;oxarticles__oxvarselect-&gt;value }] [{oxhasrights ident="SHOWARTICLEPRICE"}] [{ $product-&gt;getFPrice() }] [{ $currency-&gt;sign|strip_tags}]* [{/oxhasrights}]&lt;/option&gt;
        [{/if}]
        [{foreach from=$product-&gt;getVariantList() item=variant}]
            &lt;option value="[{$variant-&gt;getId()}]"&gt;[{ $variant-&gt;oxarticles__oxvarselect-&gt;value }] [{oxhasrights ident="SHOWARTICLEPRICE"}] [{if $variant-&gt;getFPrice() }] [{ $variant-&gt;getFPrice() }] [{ $currency-&gt;sign|strip_tags}]* [{/if }] [{/oxhasrights}]&lt;/option&gt;
        [{/foreach}]
        &lt;/select&gt;
    [{/if}]
[{elseif $product-&gt;getDispSelList()}]
    [{foreach key=iSel from=$product-&gt;getDispSelList() item=oList}]
    &lt;label&gt;[{ $oList.name }] :&lt;/label&gt;
    &lt;select id="selectList_[{$testid}]_[{$iSel}]" name="sel[[{$iSel}]]" onchange="oxid.sellist.set(this.name,this.value);"&gt;
      [{foreach key=iSelIdx from=$oList item=oSelItem}]
        [{ if $oSelItem-&gt;name }]
          &lt;option value="[{$iSelIdx}]"[{if $oSelItem-&gt;selected }]SELECTED[{/if }]&gt;[{ $oSelItem-&gt;name }]&lt;/option&gt;
        [{/if}]
      [{/foreach}]
    &lt;/select&gt;
    [{/foreach}]
[{/if}]
&lt;/div&gt;
[{if $size!='big'}] [{$smarty.capture.product_price}] [{/if}]
[{oxhasrights ident="TOBASKET"}]
    [{ if !$product-&gt;isNotBuyable() && !$product-&gt;hasMdVariants() && !$blDisableToCart }]
    [{if $size=='thin' || $size=='thinest'}]
    &lt;div class="amount"&gt;
        &lt;label&gt;[{ oxmultilang ident="DETAILS_QUANTITY" }]&lt;/label&gt;&lt;input id="test_am_[{$testid}]" type="text" name="am" value="1" size="3"&gt;
    &lt;/div&gt;
    [{/if}]
    &lt;div class="tocart"&gt;&lt;input id="test_toBasket_[{$testid}]" type="submit" value="[{if $size=='small'}][{oxmultilang ident="INC_PRODUCTITEM_ADDTOCARD3" }][{else}][{oxmultilang ident="INC_PRODUCTITEM_ADDTOCARD2"}][{/if}]" onclick="oxid.popup.load();"&gt;&lt;/div&gt;
    [{/if}]
[{/oxhasrights}]

Fortsetzung…

[{if $product-&gt;hasMdVariants() || $blDisableToCart }]
&lt;span class="btn moreinfo"&gt;
    &lt;a id="test_variantMoreInfo_[{$testid}]" class="" href="[{ $_productLink }]" onclick="oxid.mdVariants.getMdVariantUrl('mdVariant_[{$testid}]'); return false;"&gt;[{ oxmultilang ident="INC_PRODUCT_VARIANTS_MOREINFO" }]&lt;/a&gt;
&lt;/span&gt;
[{/if}]
&lt;/form&gt;
[{if $removeFunction && (($owishid && ($owishid==$oxcmp_user-&gt;oxuser__oxid-&gt;value)) || (($oView-&gt;getWishlistUserId()==$oxcmp_user-&gt;oxuser__oxid-&gt;value))) }]
&lt;form action="[{ $oViewConf-&gt;getSelfActionLink() }]" method="post"&gt;
  &lt;div&gt;
      [{ $oViewConf-&gt;getHiddenSid() }]
      &lt;input type="hidden" name="cl" value="[{ $oViewConf-&gt;getActiveClassName() }]"&gt;
      &lt;input type="hidden" name="fnc" value="[{$removeFunction}]"&gt;
      &lt;input type="hidden" name="aid" value="[{$product-&gt;oxarticles__oxid-&gt;value}]"&gt;
      &lt;input type="hidden" name="am" value="0"&gt;
      &lt;input type="hidden" name="itmid" value="[{$product-&gt;getItemKey()}]"&gt;
  &lt;/div&gt;
  &lt;div class="fromlist"&gt;
      &lt;input id="test_remove_[{$testid}]" type="submit" value="[{ oxmultilang ident="INC_NOTICE_PRODUCT_ITEM_REMOVE" }]"&gt;
  &lt;/div&gt;
&lt;/form&gt;
[{/if}]
[{if $removeFunction && $recommid }]
&lt;form action="[{ $oViewConf-&gt;getSelfActionLink() }]" method="post"&gt;
  &lt;div&gt;
      [{ $oViewConf-&gt;getHiddenSid() }]
      &lt;input type="hidden" name="cl" value="[{ $oViewConf-&gt;getActiveClassName() }]"&gt;
      &lt;input type="hidden" name="fnc" value="[{$removeFunction}]"&gt;
      &lt;input type="hidden" name="aid" value="[{$product-&gt;oxarticles__oxid-&gt;value}]"&gt;
      &lt;input type="hidden" name="recommid" value="[{$recommid}]"&gt;
  &lt;/div&gt;
  &lt;div class="fromlist"&gt;
      &lt;input id="test_remove_[{$testid}]" type="submit" value="[{ oxmultilang ident="INC_RECOMM_PRODUCT_ITEM_REMOVE" }]"&gt;
  &lt;/div&gt;
&lt;/form&gt;
[{/if}]

</div>

Konntest du ein Fehler entdecken??

ich habe eine dunkle Ahnung, ändere mal probeweise den Preis von dem "Druckregler mit Reifenfüllanschluss " auf 66,66 € (oder eine andere auffällige Zahl)

edit: bin mir jetzt bezüglich meiner dunklen Ahnung ziemlich sicher :smiley:
in der basic/tpl/page/details/details.tpl (oder so) gibts in der Zeile 252 (oder irgendwo in der Nähe) das hier:

[{if $size!='big'}] [{$smarty.capture.product_price}] [{/if}]

mach das weg.

könnte man zwar als Bug melden, aber lohnt sich nicht, da Basic bald eh abgeschoben wird.

Getan…wird dann im anderen Artikel übernommen… ich verstehe nur Bahnhof…

hab wohl zu lange getippt, guck mal oben, hab den vorherigen Post bearbeitet.

das gibt´s doch nicht…vielen vielen lieben Dank… ich wäre alleine niemals drauf gekommen

DANKE DANKE DANKE

gern doch,
es war aber auch ein sehr seltener Zufall, dass der Preis rüberwandert.

Vielen vielen Dank für diesen Thread, der mich bei einem von Azure abgeleiteten eigenen Theme bis kurz vors Ziel gebracht hat. Woran es jetzt zu scheitern scheint, ist das include-File auf der CMS-Seite bzw. im eigenen tpl. Herausgefunden habe ich, dass inc/product.tpl von Basic wohl durch widget/product/listitem_infogrid.tpl von Azure zu ersetzen ist. Aber wie sehen die Aufrufparameter aus? Kann dazu leider nichts finden. Eigentlich hätte ich vermutet, dass es in irgendeiner der list.tpl eingebunden wird und ich dort spickeln kann, aber dem ist leider nicht so.
Ich bin sehr dankbar, wenn mir jemand weiter hilft.

Damit tut es:

[{if $oViewConf->getNewestArticles()}] 
[{include file="widget/product/list.tpl" type=$oViewConf->getViewThemeParam('sStartPageListDisplayType') head="PAGE_SHOP_START_JUSTARRIVED"|oxmultilangassign listId="newItems" products=$oViewConf->getNewestArticles() rsslink=$rsslinks.newestArticles rssId="rssNewestProducts" showMainLink=true}]
[{else}] 
<div>Zur Zeit gibt es keine aktuellen Angebote.</div>
[{/if}] 

(aus originalem start.tpl von Azure)

Zu früh gefreut: Nach dem Ausloggen aus dem Backend erscheint eine weiße Seite und eine Neuanmeldung ist erst wieder möglich, wenn ich das Modul per ftp gelöscht habe :frowning:

Hat vielleicht zufällig noch jemand eine Idee, woran das liegen könnte?