Новости Joomla

joomLab Gallery - плагин галереи изображений для Joomla

👩‍💻 joomLab Gallery - плагин галереи изображений для Joomla.Плагин joomLab Gallery позволит Вам добавлять в любой материал неограниченное количество галерей, а главное удобно управлять файлами и эффектами в каждой галерее.Плагин использует популярны скрипты Swiper.js и FancyBox. Первый для крутой организации и эффектов галерей, а второй для красивого и функционального показа оригинальных изображений на Вашем сайте.На данный момент плагин имеет 10 макетов вывода - это 10 различных эффектов галерей и Вы можете совмещать все 10 в 1 материале.Плагин позволяет гибко настраивать индивидуально каждую галерею в материале. Вы можете выбрать макет, эффекты и даже можете управлять функциями всплывающего окна изображения.Недостатки.Такой вид реализации не предусматривает выбор изображения на сервере. Т.е. Вы не можете выбрать уже добавленное фото, только загружать заново. Плагин не предоставляет возможности доступа к медиа-менеджеру.Плагин бесплатный. Разработчик - участник нашего сообщества Александр Новиков (@pro-portal).Страница расширения@joomlafeed#joomla #расширения

Готовлю большой выпуск, включающий интервью с участниками Joomla Ну что, интересная инициатива от...

Готовлю большой выпуск, включающий интервью с участниками Joomla Ну что, интересная инициатива от...

Готовлю большой выпуск, включающий интервью с участниками Joomla 🖨Ну что, интересная инициатива от @webtolkru в виде интервью с разными участниками весьма меня увлекла. Я, вооружившись данным примером, решил подготовить выпуск для NorrNext (@norrnext) и экстраполировал идею на международный масштаб. Теперь готовлю эксклюзивный выпуск с участниками Joomla сообщества со всего мира, которые, в той или иной мере, внесли свой вклад в развитие и популяризацию системы. Будут беседы с людьми из разных стран и фото с юбилейной символикой 📸Работа в процессе 👆 📝О результатах оповещу отдельно.

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

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
Просмотров: 2687
Последний ответ 11.11.2017, 15:18:48
от Den85
Поле в AdsManager

Автор voras

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

Автор efimov777

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

Автор djsante

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

Автор tas777

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