Sign in to follow this  
Followers 0
vanyaner

Produktbeschreibung kürzen funktioniert nicht

12 posts in this topic

Hallo !

Habe mit der Suchfunktion die Sache mit Trauncate gefunden, auch eingebunden aber das klappte nicht, entweder bekam ich nen Fehler oder er hat die Beschreibung gar nicht mehr angezeigt...

Mein Problem:

Ich möchte auf der Startseite die neuen Artikel mit Kurzbeschreibung anzeigen lassen. Da die Boxen aber gleichgroß sein sollen, will ich die Kurzbeschreibung nach XXX Zeichen kürzen und durch ... ersetzen.

Das Problem tauchte hier im Board schonmal auf, aber ich habe dazu keine Lösung gefunden.

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns="http://www.w3.org/TR/REC-html40">

{config_load file="$language/lang_$language.conf" section="new_products"}

<table width="100%" border="0" cellpadding="0" cellspacing="0">

<tr>

<td class="infoBoxHeading">{#heading_text#} </td>

</tr>

</table>

<br />

<br />

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

{foreach name=aussen item=module_data from=$module_content}

{php} $col++;

{/php}

<td class="main">

<table border="0" cellpadding="0" cellspacing="4" style="border-collapse: collapse" bordercolor="#111111">

<tr>

<td rowspan="2" >{if $module_data.PRODUCTS_IMAGE}<a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME}" /></a>{/if}</td>

<td class="main"><strong><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></strong></td>

</tr>

<tr>

<td class="main">{$module_data.PRODUCTS_SHORT_DESCRIPTION}<br />

<strong>{$module_data.PRODUCTS_PRICE}</strong><br />

{if $module_data.PRODUCTS_VPE}{$module_data.PRODUCTS_VPE}<br />{/if}

{$module_data.PRODUCTS_TAX_INFO}{$module_data.PRODUCTS_SHIPPING_LINK}<br />

{$module_data.PRODUCTS_BUTTON_BUY_NOW}<br />

</td>

</tr>

</table>

</td>

{php}

if ($col>=2) {

$col=0;

echo '</tr><tr>';

}

{/php}

{/foreach}

</tr>

</table>

So siehts jetzt aus, ich wäre sehr dankbar wenn mir da wer helfen könnte, so dass es funktioniert. Einfach das Truncate Ding da einfügen wie schon mal beschrieben klappt nicht !

mfg

Thomas

Share this post


Link to post
Share on other sites

Smartycode Beispiele: ($articleTitle mit $module_data.PRODUCTS_SHORT_DESCRIPTION ersetzen)

{$articleTitle}

{$articleTitle|truncate}

{$articleTitle|truncate:30}

{$articleTitle|truncate:30:""}

{$articleTitle|truncate:30:"---"}

{$articleTitle|truncate:30:"":true}

{$articleTitle|truncate:30:"...":true}

This will output:

Two Sisters Reunite after Eighteen Years at Checkout Counter.

Two Sisters Reunite after Eighteen Years at Checkout Counter.

Two Sisters Reunite after...

Two Sisters Reunite after

Two Sisters Reunite after---

Two Sisters Reunite after Eigh

Two Sisters Reunite after E...

Share this post


Link to post
Share on other sites

danke für die Antwort, aber...

es geht nicht

Kommt entweder nix oder der fehler hier

document.write('Versandkosten');

:(

hab natürlich alles so gemacht mit product_short... also das schon alles richtig... aber klappt absolut nicht er kürzt es einfach nicht

Share this post


Link to post
Share on other sites

na dann besorg dir als erstes mal einen vernünftigen html editor, denn der coder hier hat in der datei nichts verloren:

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns="http://www.w3.org/TR/REC-html40">[/CODE]

hier hat du auch einen Fehler:

{$module_data.PRODUCTS_SHORT_DESCRIPT ION}

da ist vor dem ION ein leerzeichen was da nicht hingehört

wenn du in der new_products_default.html folgendes änderst geht es auch:

{$module_data.PRODUCTS_SHORT_DESCRIPTION}

zu

{$module_data.PRODUCTS_SHORT_DESCRIPTION|truncate:30:"...":true}

und nicht vergessen den templates_c Ordner leeren

Share this post


Link to post
Share on other sites

Funktioniert 100% also erzähl nicht, dass es nicht geht.

{$module_data.PRODUCTS_SHORT_DESCRIPTION|truncate:30:"---"}

erzeugt

anstatt:

Um den Text lesbarer und gegliedert zu gestalten, gibt es meist Zeichenkombinationen, die dem markierten Text eine Formatvorlage zuweisen.

das hier:

Um den Text lesbarer und---

Und wie Dukie sagt, wer Word als html Editor benutzt ist jegliche Hilfe viel zu spät.

Share this post


Link to post
Share on other sites

die leerzeile ist nur hier beim Zitat vorhanden im script ist die nicht drin...

na ich öffne das script eigentlich ja nur mit dem Windows-Editor ;)

na ok vielleicht nicht so praktisch ok ich habs geändert in

{config_load file="$language/lang_$language.conf" section="new_products"} 
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="infoBoxHeading">{#heading_text#} </td>
</tr>
</table>
<br />
<br />
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
{foreach name=aussen item=module_data from=$module_content}
{php} $col++;
{/php}
<td class="main">
<table border="0" cellpadding="0" cellspacing="4" style="border-collapse: collapse" bordercolor="#111111">
<tr>
<td rowspan="2" >{if $module_data.PRODUCTS_IMAGE}<a href="{$module_data.PRODUCTS_LINK}"><img src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME}" /></a>{/if}</td>
<td class="main"><strong><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></strong></td>
</tr>
<tr>
<td class="main">{$module_data.PRODUCTS_SHORT_DESCRIPTION|truncate: 30:"...":true}<br />
<strong>{$module_data.PRODUCTS_PRICE}</strong><br />
{if $module_data.PRODUCTS_VPE}{$module_data.PRODUCTS_VPE}<br />{/if}
{$module_data.PRODUCTS_TAX_INFO}{$module_data.PRODUCTS_SHIPPING_LINK}<br />
{$module_data.PRODUCTS_BUTTON_BUY_NOW}<br />
</td>
</tr>
</table>
</td>
{php}
if ($col>=2) {
$col=0;
echo '</tr><tr>';
}
{/php}
{/foreach}
</tr>
</table>[/PHP]

ABER ich bekomme nun diesen Fehler

[b]Fatal error: Smarty error: [in aquaristik-paradies/module/new_products_default.html line 21]: syntax error: unrecognized tag: $module_data.PRODUCTS_SHORT_DESCRIPTION|truncate: 30:"...":true (Smarty_Compiler.class.php, line 439) in /is/htdocs/wp1111543_2AT6SMT85K/www/paradies/includes/classes/Smarty_2.6.14/Smarty.class.php on line 1095[/b]

Template_C hab ich geleert...

ich würd nich 100 mal schreiben wenns gehen würde... danke trotzdem für die Mühe erstmal :(

und ich nutz eigentlich dreamweaver

noch was aufgefallen

lass ich eine leerzeile vor der truncate: 30 (also vor der 30) kommt der fehler

mach ich die weg also truncate:30 dann kommt KEINE Beschreibung sondern nur document.write oder nichts :(

Share this post


Link to post
Share on other sites

Hast Du etwas an der products_new.php geändert? Wenn nicht, dann heisst der variabel der von dort kommt $module_data.PRODUCTS_DESCRIPTION und NICHT $module_data.PRODUCTS_SHORT_DESCRIPTION

T

Share this post


Link to post
Share on other sites

nein an der habe ich nichts geändert

hier ist sie

<?php
/* -----------------------------------------------------------------------------------------
$Id: products_new.php 1292 2005-10-07 16:10:55Z mz $

XT-Commerce - community made shopping
http://www.xt-commerce.com

Copyright (c) 2003 XT-Commerce
-----------------------------------------------------------------------------------------
based on:
(c) 2000-2001 The Exchange Project (earlier name of osCommerce)
(c) 2002-2003 osCommerce(products_new.php,v 1.25 2003/05/27); www.oscommerce.com
(c) 2003 nextcommerce (products_new.php,v 1.16 2003/08/18); www.nextcommerce.org

Released under the GNU General Public License
-----------------------------------------------------------------------------------------
Third Party contributions:
Enable_Disable_Categories 1.3 Autor: Mikel Williams | mikel@ladykatcostumes.com

Released under the GNU General Public License
---------------------------------------------------------------------------------------*/

include ('includes/application_top.php');
// create smarty elements
$smarty = new Smarty;
// include boxes
require (DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/boxes.php');
// include needed function
require_once (DIR_FS_INC.'xtc_date_long.inc.php');
require_once (DIR_FS_INC.'xtc_get_vpe_name.inc.php');

$breadcrumb->add(NAVBAR_TITLE_PRODUCTS_NEW, xtc_href_link(FILENAME_PRODUCTS_NEW));

require (DIR_WS_INCLUDES.'header.php');

$products_new_array = array ();
$fsk_lock = '';
if ($_SESSION['customers_status']['customers_fsk18_display'] == '0') {
$fsk_lock = ' and p.products_fsk18!=1';
}
if (GROUP_CHECK == 'true') {
$group_check = " and p.group_permission_".$_SESSION['customers_status']['customers_status_id']."=1 ";
}
if (MAX_DISPLAY_NEW_PRODUCTS_DAYS != '0') {
$date_new_products = date("Y.m.d", mktime(1, 1, 1, date(m), date(d) - MAX_DISPLAY_NEW_PRODUCTS_DAYS, date(Y)));
$days = " and p.products_date_added > '".$date_new_products."' ";
}
$products_new_query_raw = "select distinct
p.products_id,
p.products_fsk18,
pd.products_name,
pd.products_short_description,
p.products_image,
p.products_price,
p.products_vpe,
p.products_vpe_status,
p.products_vpe_value,
p.products_tax_class_id,
p.products_date_added,
m.manufacturers_name
from ".TABLE_PRODUCTS." p
left join ".TABLE_MANUFACTURERS." m
on p.manufacturers_id = m.manufacturers_id
left join ".TABLE_PRODUCTS_DESCRIPTION." pd
on p.products_id = pd.products_id,
".TABLE_CATEGORIES." c,
".TABLE_PRODUCTS_TO_CATEGORIES." p2c
WHERE pd.language_id = '".(int) $_SESSION['languages_id']."'
and c.categories_status=1
and p.products_id = p2c.products_id
and c.categories_id = p2c.categories_id
and products_status = '1'
".$group_check."
".$fsk_lock."
".$days."
order
by
p.products_date_added DESC ";


$products_new_split = new splitPageResults($products_new_query_raw, $_GET['page'], MAX_DISPLAY_PRODUCTS_NEW, 'p.products_id');

if (($products_new_split->number_of_rows > 0)) {
$smarty->assign('NAVIGATION_BAR', '
<table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td class="smallText">'.$products_new_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS_NEW).'</td>
<td align="right" class="smallText">'.TEXT_RESULT_PAGE.' '.$products_new_split->display_links(MAX_DISPLAY_PAGE_LINKS, xtc_get_all_get_params(array ('page', 'info', 'x', 'y'))).'</td>
</tr>
</table>

');

}

$module_content = '';
if ($products_new_split->number_of_rows > 0) {
$products_new_query = xtc_db_query($products_new_split->sql_query);
while ($products_new = xtc_db_fetch_array($products_new_query)) {
$products_price = $xtPrice->xtcGetPrice($products_new['products_id'], $format = true, 1, $products_new['products_tax_class_id'], $products_new['products_price'], 1);
$vpePrice = '';
if ($products_new['products_vpe_status'] == 1 && $products_new['products_vpe_value'] != 0.0)
$vpePrice = $xtPrice->xtcFormat($products_price['plain'] * (1 / $products_new['products_vpe_value']), true).TXT_PER.xtc_get_vpe_name($products_new['products_vpe']);
$buy_now = '';
if ($_SESSION['customers_status']['customers_fsk18'] == '1') {
if ($products_new['products_fsk18'] == '0')
$buy_now = '<a href="'.xtc_href_link(basename($PHP_SELF), xtc_get_all_get_params(array ('action')).'action=buy_now&BUYproducts_id='.$products_new['products_id'], 'NONSSL').'">'.xtc_image_button('button_buy_now.gif', TEXT_BUY.$products_new['products_name'].TEXT_NOW).'</a>';
} else {
$buy_now = '<a href="'.xtc_href_link(basename($PHP_SELF), xtc_get_all_get_params(array ('action')).'action=buy_now&BUYproducts_id='.$products_new['products_id'], 'NONSSL').'">'.xtc_image_button('button_buy_now.gif', TEXT_BUY.$products_new['products_name'].TEXT_NOW).'</a>';
}
if ($products_new['products_image'] != '') {
$products_image = DIR_WS_THUMBNAIL_IMAGES.$products_new['products_image'];
} else {
$products_image = '';
}
if ($_SESSION['customers_status']['customers_status_show_price'] != 0) {
$tax_rate = $xtPrice->TAX[$products_new['products_tax_class_id']];
// price incl tax
if ($tax_rate > 0 && $_SESSION['customers_status']['customers_status_show_price_tax'] != 0) {
$tax_info = sprintf(TAX_INFO_INCL, $tax_rate.' %');
}
// excl tax + tax at checkout
if ($tax_rate > 0 && $_SESSION['customers_status']['customers_status_show_price_tax'] == 0 && $_SESSION['customers_status']['customers_status_add_tax_ot'] == 1) {
$tax_info = sprintf(TAX_INFO_ADD, $tax_rate.' %');
}
// excl tax
if ($tax_rate > 0 && $_SESSION['customers_status']['customers_status_show_price_tax'] == 0 && $_SESSION['customers_status']['customers_status_add_tax_ot'] == 0) {
$tax_info = sprintf(TAX_INFO_EXCL, $tax_rate.' %');
}
}
$ship_info="";
if (SHOW_SHIPPING=='true') {
$ship_info=' '.SHIPPING_EXCL.'<a href="javascript:newWin=void(window.open(\''.xtc_href_link(FILENAME_POPUP_CONTENT, 'coID='.SHIPPING_INFOS).'\', \'popup\', \'toolbar=0, width=640, height=600\'))"> '.SHIPPING_COSTS.'</a>';
}
$module_content[] = array ('PRODUCTS_NAME' => $products_new['products_name'],'PRODUCTS_SHIPPING_LINK' => $ship_info,'PRODUCTS_TAX_INFO' => $tax_info, 'PRODUCTS_DESCRIPTION' => $products_new['products_short_description'], 'PRODUCTS_PRICE' => $products_price['formated'], 'PRODUCTS_VPE' => $vpePrice, 'PRODUCTS_LINK' => xtc_href_link(FILENAME_PRODUCT_INFO, xtc_product_link($products_new['products_id'], $products_new['products_name'])), 'PRODUCTS_IMAGE' => $products_image, 'BUTTON_BUY_NOW' => $buy_now);

}
} else {

$smarty->assign('ERROR', TEXT_NO_NEW_PRODUCTS);

}

$smarty->assign('language', $_SESSION['language']);
$smarty->caching = 0;
$smarty->assign('module_content', $module_content);
$main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/new_products_overview.html');
$smarty->assign('main_content', $main_content);

$smarty->assign('language', $_SESSION['language']);
$smarty->caching = 0;
if (!defined(RM))
$smarty->load_filter('output', 'note');
$smarty->display(CURRENT_TEMPLATE.'/index.html');
include ('includes/application_bottom.php');
?>[/PHP]

habe u.a. auch die new_products.html ich poste sie Dir mal hier...

[PHP]{config_load file="$language/lang_$language.conf" section="new_products"}

<h2>{#heading_text#}</h2>
{foreach name=aussen item=module_data from=$module_content}
<h1><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></h1>
<div class="containerNewProd">
{if $module_data.PRODUCTS_IMAGE}
<div class="subcolumns">
<div class="c25l">
<div class="subcl">
<a href="{$module_data.PRODUCTS_LINK}" class="imgLink"><img class="imgLeft" src="{$module_data.PRODUCTS_IMAGE}" alt="{$module_data.PRODUCTS_NAME}" /></a>
</div>
</div>
<div class="c75r">
<div class="subcr">
{if $module_data.PRODUCTS_SHORT_DESCRIPTION!=''}{$module_data.PRODUCTS_SHORT_DESCRIPTION}<br />{/if}
<div class="basicDataCat">
Preis: {$module_data.PRODUCTS_PRICE}<br />{if $module_data.PRODUCTS_VPE}{$module_data.PRODUCTS_VPE}<br />{/if}
<span class="basicDataSmall">{$module_data.PRODUCTS_TAX_INFO}<br />
{$module_data.PRODUCTS_SHIPPING_LINK}</span>
</div>
<div class="productListing1BuyNow"><a href="{$module_data.PRODUCTS_LINK}"><img src="{$tpl_path}buttons/{$language}/small_view.gif" alt="{$module_data.PRODUCTS_NAME}" /></a></div>
</div>
</div>
</div>
{else}
<p>
{if $module_data.PRODUCTS_SHORT_DESCRIPTION!=''}{$module_data.PRODUCTS_SHORT_DESCRIPTION}<br />{/if}
<div class="basicDataCat">
Preis: {$module_data.PRODUCTS_PRICE}<br />{if $module_data.PRODUCTS_VPE}{$module_data.PRODUCTS_VPE}<br />{/if}
<span class="basicDataSmall">{$module_data.PRODUCTS_TAX_INFO}<br />
{$module_data.PRODUCTS_SHIPPING_LINK}</span>
</div>
</p>
<div class="productListing1BuyNow"><a href="{$module_data.PRODUCTS_LINK}"><img src="{$tpl_path}buttons/{$language}/small_view.gif" alt="{$module_data.PRODUCTS_NAME}" /></a></div>
{/if}
</div>
{/foreach}[/PHP]

nochmal danke für die Mühe !!!

Share this post


Link to post
Share on other sites

eben - es muss PRODUCTS_DESCRIPTION heissen

{if $module_data.PRODUCTS_DESCRIPTION!=''}

{$module_data.PRODUCTS_DESCRIPTION|truncate: 30:"---"}

<br />

{/if}

Share this post


Link to post
Share on other sites

ja ok...

aber:

dann würde er ja die lange Beschreibung nehmen...

lasse ich das "truncate" weg, dann macht er mir ja die short hin...

habe es nun mal in das was du geschrieben hast geändert... also in

{$module_data.PRODUCTS_DESCRIPTION|truncate:30:"...":true}[/PHP]

hier ist das Ergebnis oO http://aquaristik-paradies.de/index.php

ich lass das mal eben so drin in der hoffnung du kannst es grad ansehen

so habs wieder weggemacht es auf jedenfall nichts zu sehen weder lange noch kurze beschreibung und nichts mit punkten, wenn du nun schaust siehst du die short_description... mach ich truncate hinzu, dann kommen fehler...

[b]Nachfrage: muss in der DB irgendwas drin sein wegen dem Truncate Befehl ??? so ne Art plugin oder was weiss ich ? ich hab den befehl grad nur mal so gegoogelt da ich aber seit etlichen Jahren nicht mehr in der Materie drin war, kann ich nich viel damit anfangen[/b]

Share this post


Link to post
Share on other sites

lese bitte der php Datei richtig - es nimmt für PRODUCTS_DESCRIPTION Feld products_short_description

Ebenfalls im php zu lesen ist, dass der Vorlage new_products_overview.html heisst und nicht new_products.html ist....

Die anderen new_products Vorlagen sind vom includes/prodducts_new.php bedient deren Daten von der includes/classes/product.php erstellt werden und dort ist PRODUCTS_SHORT_DESCRIPTION schon richtig

T

Share this post


Link to post
Share on other sites

mhm ja aber es klappt ja selbst mit

{$module_data.PRODUCTS_DESCRIPTION|truncate:30:"...":true}[/PHP]

nicht...

Also ich hab keine Ahnung wo der Fehler liegt... habe bei Dir im Shop gesehen, dass es bei Dir klappt

es hat geklappt... ich musste nur die Zahl erhöhen oO 30 war zu wenig...

jetzt muss ich noch fummeln das die tabbelabschnitte gleich groß bleiben

Share this post


Link to post
Share on other sites
Sign in to follow this  
Followers 0