Новости Joomla

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!Файловый менеджер Quantum — одно...

Файловый менеджер Quantum — одно из самых популярных решений для Joomla, созданное разработчиком из сообщества Joomla, Дмитрием Цымбалом (@tsymbalmitia). Он делает Quantum удобным, безопасным и современным, обновляет его, исправляет уязвимости и отвечает пользователям — всё это в свободное от основной работы время.

Теперь настал момент для следующего шага: развитие проекта требует больше времени и ресурсов.

0 Пользователей и 1 Гость просматривают эту тему.
  • 56 Ответов
  • 11916 Просмотров
*

viktor_viktor

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Есть поле (например, "район").  Выставляю в его настройках "показывать названия этого поля" в обоих режимах.  Это поле заполнено не во всех объявлениях категории, а лишь части. Но выводится, все равно, всегда. Это как-то не логично.  Т.е. например, получается так:

город:  Москва
район:
улица: Белорусская
цвет:   серый

Подскажите, как сделать так, что-бы при незаполненном поле,  не выводилось бы его название тоже.
AdsManager 2.5.  Это только в этой версии или везде так?
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
файл  adsmanager.html, находим функцию showFieldValue и меняем её текст на приведённый ниже:
Код: php
function showFieldValue($row,$field,$field_values,$email_display,$option,$itemid,$mode,$plugins)
{
global $mosConfig_live_site,$mosConfig_absolute_path;

if ((strpos($field->catsid, ",$row->catid,")!== false)||(strpos($field->catsid, ",-1,")!== false))
{
if ($field->title)
$name = $field->name;

$value = "";
$value = "\$row->".$field->name;
eval("if (isset($value)) \$value = \"$value\";");
$value = adsmanager_html::getLangDefinition($value);

if ($value) {
if (($field->type != 'checkbox')&&(($field->display_title & $mode) == $mode))
{
echo adsmanager_html::getLangDefinition($field->title).": ";
}

switch($field->type)
{
case 'checkbox':
if (($field->display_title & $mode) == $mode)
{
echo adsmanager_html::getLangDefinition($field->title);
if ($value == 1)
echo ":&nbsp;".ADSMANAGER_YES."<br />";
else
echo ":&nbsp;".ADSMANAGER_NO."<br />";
}
else if ($value == 1)
{
echo adsmanager_html::getLangDefinition($field->title)."<br />";
}
break;

case 'multicheckbox':
case 'multicheckboximage':

for($i=0,$nb=count($field_values[$field->fieldid]);$i < $nb ;$i++)
{
$fieldvalue = @$field_values[$field->fieldid][$i]->fieldvalue;
$fieldtitle = @$field_values[$field->fieldid][$i]->fieldtitle;

if (strpos($value, $fieldvalue)!== false)
{
if ($field->type == 'multicheckbox')
$return = adsmanager_html::getLangDefinition($fieldtitle);
else
$return = "<img src='".$mosConfig_live_site."/images/com_adsmanager/fields/".$fieldtitle."' alt='$fieldtitle' />";
echo $return."<br />";
}
}

break;

case 'url':
if ((isset($field->link_text))&&($field->link_text != ""))
$linkObj = $field->link_text;
else if ((isset($field->link_image))&&(file_exists($mosConfig_absolute_path."/images/com_adsmanager/fields/".$field->link_image)))
$linkObj = "<img src='".$mosConfig_live_site."/images/com_adsmanager/fields/".$field->link_image."' />";
else
{
$linkObj = $value;
}
if ($value != "")
{
$return = "<a href='http://$value' target='_blank'>$linkObj</a>";
}
echo $return;
break;

case 'date':
$return = $value;
echo $return;
break;

case 'select':
if (isset($field_values[$field->fieldid])) {
foreach($field_values[$field->fieldid] as $v)
{
if ($value == $v->fieldvalue)
{
echo adsmanager_html::getLangDefinition($v->fieldtitle)."<br />";
}
}
}
break;

case 'multiselect':
if (isset($field_values[$field->fieldid])) {
foreach($field_values[$field->fieldid] as $v)
{
if (strpos($value, ",".$v->fieldvalue.",") === false)
{
}
else
{
echo adsmanager_html::getLangDefinition($v->fieldtitle)."<br />";
}
}
}
break;

case 'emailaddress':
if ($value != "")
{
switch($email_display) {
case 2:
$emailForm = sefRelToAbs("index.php?option=$option&amp;page=show_message_form&amp;mode=0&amp;adid=".$row->id."&amp;Itemid=".$itemid);
echo '<a href="'.$emailForm.'">'.ADSMANAGER_EMAIL_FORM.'</a><br />';
break;
case 1:
echo adsmanager_html::Txt2Png($value,$option);
break;
default:
echo ADSMANAGER_FORM_EMAIL.": <a href='mailto:".$value."'>".adsmanager_html::cutLongWord($value)."</a>";
break;

}
}
break;

case 'textarea':
echo adsmanager_html::cutLongWord(str_replace(array("\r\n", "\n", "\r"), "<br />", $value))."<br />";
break;

case 'editor':
case 'number':
case 'text':
echo adsmanager_html::cutLongWord($value)."<br />";
break;
case 'price':
if ($value != "")
echo sprintf(ADSMANAGER_DEVICE,$value);
echo "<br />";
break;
case 'radio':
case 'radioimage':
for($i=0,$nb=count($field_values[$field->fieldid]);$i < $nb ;$i++)
{
$fieldvalue = @$field_values[$field->fieldid][$i]->fieldvalue;
$fieldtitle = @$field_values[$field->fieldid][$i]->fieldtitle;
if ($value == $fieldvalue)
{
if ($field->type == 'radio')
$return = $fieldtitle;
else
$return = "<img src='".$mosConfig_live_site."/images/com_adsmanager/fields/".$fieldtitle."' alt='$fieldtitle' />";
echo $return;
}
}
break;
case 'file':
if ($value != "")
{
echo "<a href='$mosConfig_live_site/images/com_adsmanager/files/$value' target='_blank'>".ADSMANAGER_DOWNLOAD_FILE."</a></b>";
echo "<br />";
}
break;

default:
if (isset($plugins[$field->type]))
{
if ($mode == 1)
$return = $plugins[$field->type]->getListDisplay($row->id,$field );
else
$return = $plugins[$field->type]->getDetailsDisplay($row->id,$field );
echo $return;
}
break;
}
}}
}
*

viktor_viktor

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
К сожалению, не работает. :(   Если отключить вывод названий полей, то все хорошо (раньше под незаполненное поле было свободное место (типа пробела) - сейчас нормально все компактно),  но с включенным показом - названия полей по-прежнему появляются.

Подскажите еще  пожалуйста, что подправить, что бы и в расширенном просмотре не выводились названия незаполненных полей.
« Последнее редактирование: 08.10.2009, 03:49:41 от viktor_viktor »
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Странно у меня работает, версия тоже 2.5_RC2:
Вообщем суть вот в чём:
Эта строчка отвечает за вывод названия поля:
Код: php
echo adsmanager_html::getLangDefinition($field->title).": ";
переменная $value - это есть значение поля...
т.е. перед тем как выводить названия поля, мы должны проверить существование его значения:
Код: php
if ($value) 
{
...
}

P.S.
Можешь попробовать ещё вот этот код функции showFieldValue, это я на чистом AdsMessage функцию правил...
Код: php
function showFieldValue($row,$field,$field_values,$email_display,$option,$itemid,$mode,$plugins)
{
global $mosConfig_live_site,$mosConfig_absolute_path;

if ((strpos($field->catsid, ",$row->catid,")!== false)||(strpos($field->catsid, ",-1,")!== false))
{
$value = "";
$value = "\$row->".$field->name;
eval("if (isset($value)) \$value = \"$value\";");
$value = adsmanager_html::getLangDefinition($value);
if ($value)
if (($field->type != 'checkbox')&&(($field->display_title & $mode) == $mode))
{
echo adsmanager_html::getLangDefinition($field->title).": ";
}

if ($field->title)
$name = $field->name;

switch($field->type)
{
case 'checkbox':
if (($field->display_title & $mode) == $mode)
{
echo adsmanager_html::getLangDefinition($field->title);
if ($value == 1)
echo ":&nbsp;".ADSMANAGER_YES."<br />";
else
echo ":&nbsp;".ADSMANAGER_NO."<br />";
}
else if ($value == 1)
{
echo adsmanager_html::getLangDefinition($field->title)."<br />";
}
break;

case 'multicheckbox':
case 'multicheckboximage':

for($i=0,$nb=count($field_values[$field->fieldid]);$i < $nb ;$i++)
{
$fieldvalue = @$field_values[$field->fieldid][$i]->fieldvalue;
$fieldtitle = @$field_values[$field->fieldid][$i]->fieldtitle;

if (strpos($value, $fieldvalue)!== false)
{
if ($field->type == 'multicheckbox')
$return = adsmanager_html::getLangDefinition($fieldtitle);
else
$return = "<img src='".$mosConfig_live_site."/images/com_adsmanager/fields/".$fieldtitle."' alt='$fieldtitle' />";
echo $return."<br />";
}
}

break;

case 'url':
if ((isset($field->link_text))&&($field->link_text != ""))
$linkObj = $field->link_text;
else if ((isset($field->link_image))&&(file_exists($mosConfig_absolute_path."/images/com_adsmanager/fields/".$field->link_image)))
$linkObj = "<img src='".$mosConfig_live_site."/images/com_adsmanager/fields/".$field->link_image."' />";
else
{
$linkObj = $value;
}
if ($value != "")
{
$return = "<a href='http://$value' target='_blank'>$linkObj</a>";
}
echo $return;
break;

case 'date':
$return = $value;
echo $return;
break;

case 'select':
if (isset($field_values[$field->fieldid])) {
foreach($field_values[$field->fieldid] as $v)
{
if ($value == $v->fieldvalue)
{
echo adsmanager_html::getLangDefinition($v->fieldtitle)."<br />";
}
}
}
break;

case 'multiselect':
if (isset($field_values[$field->fieldid])) {
foreach($field_values[$field->fieldid] as $v)
{
if (strpos($value, ",".$v->fieldvalue.",") === false)
{
}
else
{
echo adsmanager_html::getLangDefinition($v->fieldtitle)."<br />";
}
}
}
break;

case 'emailaddress':
if ($value != "")
{
switch($email_display) {
case 2:
$emailForm = sefRelToAbs("index.php?option=$option&amp;page=show_message_form&amp;mode=0&amp;adid=".$row->id."&amp;Itemid=".$itemid);
echo '<a href="'.$emailForm.'">'.ADSMANAGER_EMAIL_FORM.'</a><br />';
break;
case 1:
echo adsmanager_html::Txt2Png($value,$option);
break;
default:
echo ADSMANAGER_FORM_EMAIL.": <a href='mailto:".$value."'>".adsmanager_html::cutLongWord($value)."</a>";
break;

}
}
break;

case 'textarea':
echo adsmanager_html::cutLongWord(str_replace(array("\r\n", "\n", "\r"), "<br />", $value))."<br />";
break;

case 'editor':
case 'number':
case 'text':
echo adsmanager_html::cutLongWord($value)."<br />";
break;
case 'price':
if ($value != "")
echo sprintf(ADSMANAGER_DEVICE,$value);
echo "<br />";
break;
case 'radio':
case 'radioimage':
for($i=0,$nb=count($field_values[$field->fieldid]);$i < $nb ;$i++)
{
$fieldvalue = @$field_values[$field->fieldid][$i]->fieldvalue;
$fieldtitle = @$field_values[$field->fieldid][$i]->fieldtitle;
if ($value == $fieldvalue)
{
if ($field->type == 'radio')
$return = $fieldtitle;
else
$return = "<img src='".$mosConfig_live_site."/images/com_adsmanager/fields/".$fieldtitle."' alt='$fieldtitle' />";
echo $return;
}
}
break;
case 'file':
if ($value != "")
{
echo "<a href='$mosConfig_live_site/images/com_adsmanager/files/$value' target='_blank'>".ADSMANAGER_DOWNLOAD_FILE."</a></b>";
echo "<br />";
}
break;

default:
if (isset($plugins[$field->type]))
{
if ($mode == 1)
$return = $plugins[$field->type]->getListDisplay($row->id,$field );
else
$return = $plugins[$field->type]->getDetailsDisplay($row->id,$field );
echo $return;
}
break;
}
}
}
*

viktor_viktor

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Оказывается, работает для всех типов полей, кроме "multiselect" .  А у меня как раз много мультиселектов и именно с ними, нужно как-то разобраться... Помогите, пожалуйста.
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Проблема была в том, что если даже не выбрано ни одно поле из multiselect его значение было не пустым, а например (,,,) - если в multiselect три поля. Необходимость вывода названия поля multiselect проверяется теперь отдельно, из его значения удаляются все запятые и если значение становится пустым, то названия поля не выводим...
 код исправленной функции привожу ниже:
Код: php
	function showFieldValue($row,$field,$field_values,$email_display,$option,$itemid,$mode,$plugins)
{
global $mosConfig_live_site,$mosConfig_absolute_path;

if ((strpos($field->catsid, ",$row->catid,")!== false)||(strpos($field->catsid, ",-1,")!== false))
{
$value = "";
$value = "\$row->".$field->name;
eval("if (isset($value)) \$value = \"$value\";");
$value = adsmanager_html::getLangDefinition($value);
//echo '['.$value.']';

if (($field->type != 'multiselect')&&($field->type != 'checkbox')&&(($field->display_title & $mode) == $mode))
{
if ($value) echo adsmanager_html::getLangDefinition($field->title).": ";
}

if ($field->type == 'multiselect') {
    $vmultiselect= str_replace(',','',$value);
if ($vmultiselect != '') echo adsmanager_html::getLangDefinition($field->title).": ";
}

if ($field->title)
$name = $field->name;

switch($field->type)
{
case 'checkbox':
if (($field->display_title & $mode) == $mode)
{
echo adsmanager_html::getLangDefinition($field->title);
if ($value == 1)
echo ":&nbsp;".ADSMANAGER_YES."<br />";
else
echo ":&nbsp;".ADSMANAGER_NO."<br />";
}
else if ($value == 1)
{
echo adsmanager_html::getLangDefinition($field->title)."<br />";
}
break;

case 'multicheckbox':
case 'multicheckboximage':

for($i=0,$nb=count($field_values[$field->fieldid]);$i < $nb ;$i++)
{
$fieldvalue = @$field_values[$field->fieldid][$i]->fieldvalue;
$fieldtitle = @$field_values[$field->fieldid][$i]->fieldtitle;

if (strpos($value, $fieldvalue)!== false)
{
if ($field->type == 'multicheckbox')
$return = adsmanager_html::getLangDefinition($fieldtitle);
else
$return = "<img src='".$mosConfig_live_site."/images/com_adsmanager/fields/".$fieldtitle."' alt='$fieldtitle' />";
echo $return."<br />";
}
}

break;

case 'url':
if ((isset($field->link_text))&&($field->link_text != ""))
$linkObj = $field->link_text;
else if ((isset($field->link_image))&&(file_exists($mosConfig_absolute_path."/images/com_adsmanager/fields/".$field->link_image)))
$linkObj = "<img src='".$mosConfig_live_site."/images/com_adsmanager/fields/".$field->link_image."' />";
else
{
$linkObj = $value;
}
if ($value != "")
{
$return = "<a href='http://$value' target='_blank'>$linkObj</a>";
}
echo $return;
break;

case 'date':
$return = $value;
echo $return;
break;

case 'select':
if (isset($field_values[$field->fieldid])) {
foreach($field_values[$field->fieldid] as $v)
{
if ($value == $v->fieldvalue)
{
echo adsmanager_html::getLangDefinition($v->fieldtitle)."<br />";
}
}
}
break;

case 'multiselect':
if (isset($field_values[$field->fieldid])) {
foreach($field_values[$field->fieldid] as $v)
{
if (strpos($value, ",".$v->fieldvalue.",") === false)
{
}
else
{
echo adsmanager_html::getLangDefinition($v->fieldtitle)."<br />";
}
}
}
break;

case 'emailaddress':
if ($value != "")
{
switch($email_display) {
case 2:
$emailForm = sefRelToAbs("index.php?option=$option&amp;page=show_message_form&amp;mode=0&amp;adid=".$row->id."&amp;Itemid=".$itemid);
echo '<a href="'.$emailForm.'">'.ADSMANAGER_EMAIL_FORM.'</a><br />';
break;
case 1:
echo adsmanager_html::Txt2Png($value,$option);
break;
default:
echo ADSMANAGER_FORM_EMAIL.": <a href='mailto:".$value."'>".adsmanager_html::cutLongWord($value)."</a>";
break;

}
}
break;

case 'textarea':
echo adsmanager_html::cutLongWord(str_replace(array("\r\n", "\n", "\r"), "<br />", $value))."<br />";
break;

case 'editor':
case 'number':
case 'text':
echo adsmanager_html::cutLongWord($value)."<br />";
break;
case 'price':
if ($value != "")
echo sprintf(ADSMANAGER_DEVICE,$value);
echo "<br />";
break;
case 'radio':
case 'radioimage':
for($i=0,$nb=count($field_values[$field->fieldid]);$i < $nb ;$i++)
{
$fieldvalue = @$field_values[$field->fieldid][$i]->fieldvalue;
$fieldtitle = @$field_values[$field->fieldid][$i]->fieldtitle;
if ($value == $fieldvalue)
{
if ($field->type == 'radio')
$return = $fieldtitle;
else
$return = "<img src='".$mosConfig_live_site."/images/com_adsmanager/fields/".$fieldtitle."' alt='$fieldtitle' />";
echo $return;
}
}
break;
case 'file':
if ($value != "")
{
echo "<a href='$mosConfig_live_site/images/com_adsmanager/files/$value' target='_blank'>".ADSMANAGER_DOWNLOAD_FILE."</a></b>";
echo "<br />";
}
break;

default:
if (isset($plugins[$field->type]))
{
if ($mode == 1)
$return = $plugins[$field->type]->getListDisplay($row->id,$field );
else
$return = $plugins[$field->type]->getDetailsDisplay($row->id,$field );
echo $return;
}
break;
}
}
}
*

Ротор

  • Захожу иногда
  • 97
  • 0 / 0
Код
case 'multicheckboximage':
 
for($i=0,$nb=count($field_values[$field->fieldid]);$i < $nb ;$i++)
{
$fieldvalue = @$field_values[$field->fieldid][$i]->fieldvalue;
$fieldtitle = @$field_values[$field->fieldid][$i]->fieldtitle;
 
if (strpos($value, $fieldvalue)!== false)
{
if ($field->type == 'multicheckbox')
$return = adsmanager_html::getLangDefinition($fieldtitle);
else
$return = "<img src='".$mosConfig_live_site."/images/com_adsmanager/fields/".$fieldtitle."' alt='$fieldtitle' />";
echo $return."<br />";
}
}
 
break;
строка echo $return."<br />";в коде переносит значения на новую строку,а вот как сделать чтобы значения multicheckbox прописывались церез запятую? если просто ставить вместо br / запятую то и в конце списка она проставляется,а вконце нужна точка  ::)
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
попробуй строчку echo $return."<br />";
заменить на:
Код: php
if ($i < ($nb - 1)) echo $return.","; else echo $return.".";
*

Ротор

  • Захожу иногда
  • 97
  • 0 / 0
попробуй строчку echo $return."<br />";
заменить на:
Код: php
if ($i < ($nb - 1)) echo $return.","; else echo $return.".";

пилюс
*

Ротор

  • Захожу иногда
  • 97
  • 0 / 0
Kikasso был бы примного благодарен в решении еще одного вопроса
есть поле "возраст" к нему необходимо автоматом прибавлять окончание "лет" или "год" в зависимости от введенного числа к примеру :
1 "год" или 5 "лет" , возможно ли такое?
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Возможно ^-^. Тебе надо создать новый тип поля, например age и назначить ему необходимый обработчик при выводе.
Я об этом писал, посмотри тут: http://joomlaforum.ru/index.php/topic,80347.msg466754.html#msg466754.
*

Ротор

  • Захожу иногда
  • 97
  • 0 / 0
пасиб :D, еще бы узнать как сделать фото обязательным полем при размещении объявления?
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Цитировать
пасиб, еще бы узнать как сделать фото обязательным полем при размещении объявления?
всем полям обязательным для заполнения должны быть присвоены свойства mosreq="1" и moslabel="TEXT_LABEL", где TEXT_LABEL- это текст который будет выводится при незаполненном поле,  в твоём случае в файле adsmanager.html.php ищем строчку
Код: php
<input id="ad_picture<?php echo $i;?>" type="file" name="ad_picture<?php echo $i;?>" />
и меняем её на
Код: php
  <input mosreq="1" id="ad_picture<?php echo $i;?>" type="file" name="ad_picture<?php echo $i;?>"  moslabel=<?php echo ADSMANAGER_FORM_AD_PICTURE." ".$i; ?>"/>
*

Ротор

  • Захожу иногда
  • 97
  • 0 / 0
теперь требует обязательной загрузки всех 10-ти фоток,а нужно хотя бы одну ,но обязательную
*

viktor_viktor

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Проблема была в том, что если даже не выбрано ни одно поле из multiselect его значение было не пустым, а например (,,,) - если в multiselect три поля. Необходимость вывода названия поля multiselect проверяется теперь отдельно, из его значения удаляются все запятые и если значение становится пустым, то названия поля не выводим...
 код исправленной функции привожу ниже:
Код: php
	function showFieldValue($row,$field,$field_values,$email_display,$option,$itemid,$mode,$plugins)
{
global $mosConfig_live_site,$mosConfig_absolute_path;

if ((strpos($field->catsid, ",$row->catid,")!== false)||(strpos($field->catsid, ",-1,")!== false))
{
$value = "";
$value = "\$row->".$field->name;
eval("if (isset($value)) \$value = \"$value\";");
$value = adsmanager_html::getLangDefinition($value);
//echo '['.$value.']';

if (($field->type != 'multiselect')&&($field->type != 'checkbox')&&(($field->display_title & $mode) == $mode))
{
if ($value) echo adsmanager_html::getLangDefinition($field->title).": ";
}

if ($field->type == 'multiselect') {
   $vmultiselect= str_replace(',','',$value);
if ($vmultiselect != '') echo adsmanager_html::getLangDefinition($field->title).": ";
}

if ($field->title)
$name = $field->name;

switch($field->type)
{
case 'checkbox':
if (($field->display_title & $mode) == $mode)
{
echo adsmanager_html::getLangDefinition($field->title);
if ($value == 1)
echo ":&nbsp;".ADSMANAGER_YES."<br />";
else
echo ":&nbsp;".ADSMANAGER_NO."<br />";
}
else if ($value == 1)
{
echo adsmanager_html::getLangDefinition($field->title)."<br />";
}
break;

case 'multicheckbox':
case 'multicheckboximage':

for($i=0,$nb=count($field_values[$field->fieldid]);$i < $nb ;$i++)
{
$fieldvalue = @$field_values[$field->fieldid][$i]->fieldvalue;
$fieldtitle = @$field_values[$field->fieldid][$i]->fieldtitle;

if (strpos($value, $fieldvalue)!== false)
{
if ($field->type == 'multicheckbox')
$return = adsmanager_html::getLangDefinition($fieldtitle);
else
$return = "<img src='".$mosConfig_live_site."/images/com_adsmanager/fields/".$fieldtitle."' alt='$fieldtitle' />";
echo $return."<br />";
}
}

break;

case 'url':
if ((isset($field->link_text))&&($field->link_text != ""))
$linkObj = $field->link_text;
else if ((isset($field->link_image))&&(file_exists($mosConfig_absolute_path."/images/com_adsmanager/fields/".$field->link_image)))
$linkObj = "<img src='".$mosConfig_live_site."/images/com_adsmanager/fields/".$field->link_image."' />";
else
{
$linkObj = $value;
}
if ($value != "")
{
$return = "<a href='http://$value' target='_blank'>$linkObj</a>";
}
echo $return;
break;

case 'date':
$return = $value;
echo $return;
break;

case 'select':
if (isset($field_values[$field->fieldid])) {
foreach($field_values[$field->fieldid] as $v)
{
if ($value == $v->fieldvalue)
{
echo adsmanager_html::getLangDefinition($v->fieldtitle)."<br />";
}
}
}
break;

case 'multiselect':
if (isset($field_values[$field->fieldid])) {
foreach($field_values[$field->fieldid] as $v)
{
if (strpos($value, ",".$v->fieldvalue.",") === false)
{
}
else
{
echo adsmanager_html::getLangDefinition($v->fieldtitle)."<br />";
}
}
}
break;

case 'emailaddress':
if ($value != "")
{
switch($email_display) {
case 2:
$emailForm = sefRelToAbs("index.php?option=$option&amp;page=show_message_form&amp;mode=0&amp;adid=".$row->id."&amp;Itemid=".$itemid);
echo '<a href="'.$emailForm.'">'.ADSMANAGER_EMAIL_FORM.'</a><br />';
break;
case 1:
echo adsmanager_html::Txt2Png($value,$option);
break;
default:
echo ADSMANAGER_FORM_EMAIL.": <a href='mailto:".$value."'>".adsmanager_html::cutLongWord($value)."</a>";
break;

}
}
break;

case 'textarea':
echo adsmanager_html::cutLongWord(str_replace(array("\r\n", "\n", "\r"), "<br />", $value))."<br />";
break;

case 'editor':
case 'number':
case 'text':
echo adsmanager_html::cutLongWord($value)."<br />";
break;
case 'price':
if ($value != "")
echo sprintf(ADSMANAGER_DEVICE,$value);
echo "<br />";
break;
case 'radio':
case 'radioimage':
for($i=0,$nb=count($field_values[$field->fieldid]);$i < $nb ;$i++)
{
$fieldvalue = @$field_values[$field->fieldid][$i]->fieldvalue;
$fieldtitle = @$field_values[$field->fieldid][$i]->fieldtitle;
if ($value == $fieldvalue)
{
if ($field->type == 'radio')
$return = $fieldtitle;
else
$return = "<img src='".$mosConfig_live_site."/images/com_adsmanager/fields/".$fieldtitle."' alt='$fieldtitle' />";
echo $return;
}
}
break;
case 'file':
if ($value != "")
{
echo "<a href='$mosConfig_live_site/images/com_adsmanager/files/$value' target='_blank'>".ADSMANAGER_DOWNLOAD_FILE."</a></b>";
echo "<br />";
}
break;

default:
if (isset($plugins[$field->type]))
{
if ($mode == 1)
$return = $plugins[$field->type]->getListDisplay($row->id,$field );
else
$return = $plugins[$field->type]->getDetailsDisplay($row->id,$field );
echo $return;
}
break;
}
}
}

Мультиселекты скрылись, но в режиме списка, видны всегда.  Даже если я в настройках поля принудительно отключаю показ названия поля - все равно название появляется (если в этом поле что-то есть).  Если поле пустое, то все нормально...  И появилось пустое место там, где что-то должно быть, но не выводится.

На скрине, названия полей "район" и "массив" у меня полностью отключены для  показа. И пробел между Киев и Район - там не выводится поле.

[вложение удалено Администратором]
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Цитировать
теперь требует обязательной загрузки всех 10-ти фоток,а нужно хотя бы одну ,но обязательную
можно сделать одну (две, три) обязательной для загрузки, но это будет всегда первое (второе, третье) поле!
Поля для фото выводятся в цикле, где $i - номер фотото, для этого присвоению свойств mosreq="1" и moslabel="TEXT_LABEL" только одной фото надо будет задать соответствующее условие
Код: php
if ($i=1) echo 'mosreq="1" moslabel="TEXT_LABEL"';

Если хочешь чтобы обязательным для заполнения была одна любая фото - надо править Java скрипт, а это уже отдельная история...
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Цитировать
Мультиселекты скрылись, но в режиме списка, видны всегда.  Даже если я в настройках поля принудительно отключаю показ названия поля - все равно название появляется (если в этом поле что-то есть).
Для отображения multiselect согласно выбранному Display Title строчку:
Код: php
if (($field->type == 'multiselect')) {
надо заменить на :
Код: php
if (($field->type == 'multiselect')&&(($field->display_title & $mode) == $mode)) {
Перед выводом добавлено условие проверки выбранного типа отображения
*

viktor_viktor

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Да, все работает. Спасибо большое.  А можно еще, как-то убрать пробелы (пустое место) на месте отсутствующих полей.
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
думаю проблема в этом кусочке:
Код: php
case 'multiselect':
if (isset($field_values[$field->fieldid])) {
foreach($field_values[$field->fieldid] as $v)
{
if (strpos($value, ",".$v->fieldvalue.",") === false)
{
}
else
{
echo adsmanager_html::getLangDefinition($v->fieldtitle)."<br />";
}
}
}
break;
а именно в строчке:
Код: php
echo adsmanager_html::getLangDefinition($v->fieldtitle)."<br />";
Попробуй урать ."<br />"

Это если проблема с полем multiselect, если с другим ищи в выводе соответствующего поля перенос строки <br />
« Последнее редактирование: 10.10.2009, 01:05:40 от Kikasso »
*

viktor_viktor

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
В принципе, да.  Только теперь все в одну строку выстраивается,  если мультиселекты идут подряд...
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
попробуй выводить в тэгах, например, <span>:
Код: php
echo '<span>'.adsmanager_html::getLangDefinition($v->fieldtitle).'</span>';
и в CSS можно при желании подстроить внешний вид полей
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Если тебя интересует вариант вывода с переносом строки, можно сделать так:
Код: php
case 'multiselect':
if (isset($field_values[$field->fieldid])) {
foreach($field_values[$field->fieldid] as $v)
{
if (strpos($value, ",".$v->fieldvalue.",") === false)
{
}
else
{
echo adsmanager_html::getLangDefinition($v->fieldtitle);
if (adsmanager_html::getLangDefinition($v->fieldtitle)) echo "<br />";
}
}
}
break;
если значение не пустое, то добавляем к нему перенос строки, иначе ничего не выводим
*

viktor_viktor

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Если тебя интересует вариант вывода с переносом строки, можно сделать так:
Код: php
case 'multiselect':
if (isset($field_values[$field->fieldid])) {
foreach($field_values[$field->fieldid] as $v)
{
if (strpos($value, ",".$v->fieldvalue.",") === false)
{
}
else
{
echo adsmanager_html::getLangDefinition($v->fieldtitle);
if (adsmanager_html::getLangDefinition($v->fieldtitle)) echo "<br />";
}
}
}
break;
если значение не пустое, то добавляем к нему перенос строки, иначе ничего не выводим

А как такую проверку сделать для поля text ?
*

Ротор

  • Захожу иногда
  • 97
  • 0 / 0
попробуй строчку echo $return."<br />";
заменить на:
Код: php
if ($i < ($nb - 1)) echo $return.","; else echo $return.".";

Kikasso условие работает только когда выбран последний селект в списке,а если его не проставлять то в конце списка в объявлении все равно стоит запятая, видимо еще одно условие нужно,только вопрос как его прописать? сам не догоню
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Цитировать
Kikasso условие работает только когда выбран последний селект в списке,а если его не проставлять
Да действительно, это будет работать когда все поля в списке выбраны.
Немножко изменил код, сначала в отдельный массив выбираются выбранные значения, а затем при выводе расставляем запятые между значениями и точку в конце
Код: php
	case 'multicheckbox':
case 'multicheckboximage':

for($i=0,$nb=count($field_values[$field->fieldid]);$i < $nb ;$i++)
{
$fieldvalue = @$field_values[$field->fieldid][$i]->fieldvalue;
$fieldtitle = @$field_values[$field->fieldid][$i]->fieldtitle;

if (strpos($value, $fieldvalue)!== false)
{
if ($field->type == 'multicheckbox'){
$title=adsmanager_html::getLangDefinition($fieldtitle);
if ($title) $return[] = $title;
}
else
if ($fieldtitle) $return[] = "<img src='".$mosConfig_live_site."/images/com_adsmanager/fields/".$fieldtitle."' alt='$fieldtitle' />";
}
}
for($i=0,$nb=count($return);$i < $nb ;$i++)
if ($i < ($nb - 1)) echo $return[$i].","; else echo $return[$i].".";
break;
Проверяй должно работать :D
*

Ротор

  • Захожу иногда
  • 97
  • 0 / 0
Kikasso + в очередной раз.заработало ;D
не сочти за наглость,но у меня еще вопросик ;D
нужно выделить жирным заголовки созданных мною новых полей fieldtitle -ов,а в коде прописано условия для системных полей
Код
<?php if (@$positions[1]->title) {$strtitle = adsmanager_html::getLangDefinition($positions[1]->title);} ?>
<?php echo "<b>".@$strtitle."</b>";

тайтлы моих новых полей в echo "<b>".@$strtitle."</b>"; соответственно не попадают, с этим как поступать?
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Я чесно не очень понял что ты хочешь, по подробней пожалуйста ;)
*

Ротор

  • Захожу иногда
  • 97
  • 0 / 0


красным подведено то что надо сделать жирным шрифтом т.е заголовки полей

и еще эти ромбики почемуто появляются в некоторых объявах из-за чего?
*

Ротор

  • Захожу иногда
  • 97
  • 0 / 0
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
строчку
Код: php
echo adsmanager_html::getLangDefinition($field->title).": ";
замени на
Код: php
echo '<b>'.adsmanager_html::getLangDefinition($field->title)."</b>: ";
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как добавить поле id объявления

Автор Den85

Ответов: 9
Просмотров: 2744
Последний ответ 11.11.2017, 15:18:48
от Den85
Поле в AdsManager

Автор voras

Ответов: 0
Просмотров: 16820
Последний ответ 30.09.2017, 18:09:39
от voras
Поле в виде таблицы

Автор efimov777

Ответов: 3
Просмотров: 1717
Последний ответ 23.06.2017, 15:04:06
от efimov777
Скрыть часть номера телефона в объявлении

Автор djsante

Ответов: 3
Просмотров: 4654
Последний ответ 30.05.2017, 12:18:42
от SeBun
Как добавить новое поле в отображение в кратком режиме?

Автор tas777

Ответов: 3
Просмотров: 2260
Последний ответ 17.05.2017, 18:37:09
от Mick_20