Здрасте. Пишу в этой теме, как самой близкой по смыслу. Есть небольшая проблема мне нужна возможность изменять внешний вид цены в объявлениях, т.к. сам я нуб нубом все что смог сделать это задать свой тег результату функции showFieldValue в case 'price' в файле field.php, выглядит примерно так:
function showFieldValue($content,$field)........
case 'price':
if (($value !== "")&&($value !== null)) {
if($options == null || !isset($options->currency_symbol) || $options->currency_symbol == '')
$price = sprintf(TText::_('ADSMANAGER_CURRENCY'),number_format(floatval($value), 2, '.', ' '));
else
$price = '<ad_price_style>'.$this->formatPrice($value, $options).'</ad_price_style>';
//for Right to Left language
$return .= str_replace(" "," ",$price);
}
break;

это дало мне возможность теперь через CSS что-то мудрить с ценами, но встала проблема того что у меня есть некоторые поля которые я тоже сделал через тип Price (например Объем двигателя: "стокато" куб.см) так они теперь естественно тоже "красятся". Все на что мне хватило познаний в "сайтостроении" это пришить тег к title-у поля Цена, чтобы в CSS title - Цена можно было связать с его значением, сделать я это попробовал в файле default.php так:
<div class="addetails_topright">
<?php $strtitle = "";if (@$this->positions[3]->title) {$strtitle = JText::_($this->positions[3]->title); } ?>
<?php if (@$strtitle != "") echo "<h2>".@$strtitle."</h2>";
if (isset($this->fDisplay[4]))
{
foreach($this->fDisplay[4] as $field)
{
$c = $this->field->showFieldValue($this->content,$field);
if (($c !== "")&&($c !== null)) {
$title = $this->field->showFieldTitle(@$this->content->catid,$field);
if ($title != "" && $title !="Цена"){
echo "<br/><b>".htmlspecialchars($title).": </b>";}
elseif ($title != "" && $title == "Цена"){
echo "<br/><ad_price_title_style>".htmlspecialchars($title).": </ad_price_title_style>";
}
else {echo "<ad_title_empty>".htmlspecialchars($title)." </ad_title_empty>";
}
echo "$c";
}
}
}?>
Что я делаю не так, почему не работает условие "elseif ($title != "" && $title == "Цена")", может есть другие способы !
П.С. функция showFieldTitle выглядит так:
function showFieldTitle($catid,$field,$force=false)
{
$return = "";
//echo $this->modetitle." ".$catid;
if (($force==true) || (strpos($field->catsid, ",".@$catid.",")!== false)||(strpos($field->catsid, ",-1,")!== false))
{
if (($this->modetitle == 0) ||
(($field->type != 'checkbox')&&($field->display_title & $this->modetitle) == $this->modetitle))
{
$return = TText::_($field->title);
}
}
return $return;
}
П.П.С. не смейтесь сильно громко, я только учусь...