Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Версия Joomla: 1.5

Версия AdsManager: 2.6

Редактируемый файл:


По умолчанию на доске объявлений AdsManager при детальном просмотре объявлений отображаются все поля, даже незаполненные, из-за чего объявление выглядит неаккуратно. Пустые незаполненные при подаче объявления поля необходимо скрыть.


Итак, чтобы незаполненные поля не отображались, нужно провести некоторые изменение в файле field.php (полный путь к файлу: components/com_adsmanager/helpers). В этом файле необходимо полностью заменить функцию function showFieldValue($content,$field) на код ниже. Важно полностью заменить функцию от её начала до конца.

Чтобы пустые поля в AdsManager не отображались

function showFieldValue($content,$field)
	{		
		$return = "";
		if ((strpos($field->catsid, ",".$content->catid.",")!== false)||(strpos($field->catsid, ",-1,")!== false))
		{
			if ($field->title)
				$name = $field->name;
				
			$value = "";
			$content = $content;
			$val = "\$content->".$field->name;
			$fieldname = $field->name;
			eval("if (isset($val)) \$value = \"$val\";");
			$value = JText::_($value);
			
			if (($field->type != 'multiselect')&&($field->type != 'checkbox')&&(($field->display_title & $this->modetitle) == $this->modetitle))
			{
				if ($value) $return .= "".JText::_($field->title).": ";
			}
			if (($field->type == 'multiselect')&&(($field->display_title & $mode) == $mode)) {
				$valsel= str_replace(',','',$value);
				if ($valsel != '') $return .= "".JText::_($field->title).": ";
			}
			
			switch($field->type)
			{
				case 'checkbox':
					if (($field->display_title & $this->mode) == $this->mode)
					{
						$return .= JText::_($field->title);
						if ($value == 1)
							$return .= ": ".JText::_('ADSMANAGER_YES')."
"; else $return .= ": ".JText::_('ADSMANAGER_NO')."
"; } else if ($value == 1) { $return .= JText::_($field->title)."
"; } break; case 'multicheckbox': case 'multicheckboximage': for($i=0,$nb=count($this->field_values[$field->fieldid]);$i < $nb ;$i++) { $fieldvalue = @$this->field_values[$field->fieldid][$i]->fieldvalue; $fieldtitle = @$this->field_values[$field->fieldid][$i]->fieldtitle; if (strpos($value, ",".$fieldvalue.",")!== false) { if ($field->type == 'multicheckbox') { $title .= JText::_($fieldtitle); if ($title) $return[] = $title; } else if ($fieldtitle) $return[] = "$fieldtitle"; } } for($i=0,$nb=count($return);$i < $nb ;$i++) if ($i < ($nb - 1)) echo $return[$i].","; else echo $return[$i]."."; break; case 'url': if ((isset($field->link_text))&&($field->link_text != "")) $linkObj = $field->link_text; else if ((isset($field->link_image))&&(file_exists(JPATH_BASE."/images/com_adsmanager/fields/".$field->link_image))) $linkObj = ""; else { $linkObj = $value; } if ($value != "") { $return .= "$linkObj
"; } break; case 'date': $return = $value; $return .= $return; break; case 'select': if (isset($this->field_values[$field->fieldid])) { foreach($this->field_values[$field->fieldid] as $v) { if ($value == $v->fieldvalue) { $return .= JText::_($v->fieldtitle); if ($v->fieldtitle) $return .= "
"; } } } break; case 'multiselect': if (isset($this->field_values[$field->fieldid])) { foreach($this->field_values[$field->fieldid] as $v) { if (strpos($value, ",".$v->fieldvalue.",") === false) { } else { $return .= JText::_($v->fieldtitle); if ($v->fieldtitle) $return .= "
"; } } } break; case 'emailaddress': if ($value != "") { switch($this->conf->email_display) { case 2: $emailForm = JRoute::_("index.php?option=com_adsmanager&view=message&contentid=".$content->id."&catid=".$content->catid."&Itemid=".$this->itemid); $return .= ''.JText::_('ADSMANAGER_EMAIL_FORM').'
'; break; case 1: $return .= $this->Txt2Png($value)."
"; break; default: $return .= JText::_('ADSMANAGER_FORM_EMAIL').": ".$value."
"; break; } } break; case 'textarea': $return .= str_replace(array("\r\n", "\n", "\r"), "
", $value)."
"; break; case 'editor': case 'number': case 'text': $return .= $value; if ($value) $return .= "
"; break; case 'price': if ($value != "") { $return .= JText::sprintf('ADSMANAGER_DEVICE',$value); $return .= "
"; } break; case 'radio': case 'radioimage': for($i=0,$nb=count($this->field_values[$field->fieldid]);$i < $nb ;$i++) { $fieldvalue = @$this->field_values[$field->fieldid][$i]->fieldvalue; $fieldtitle = @$this->field_values[$field->fieldid][$i]->fieldtitle; if ($value == $fieldvalue) { if ($field->type == 'radio') $return .= $fieldtitle; else $return .= "$fieldtitle"; $return .= "
"; } } break; case 'file': if ($value != "") { $return .= "".JText::_('ADSMANAGER_DOWNLOAD_FILE').""; $return .= "
"; } break; default: if (isset($this->plugins[$field->type])) { if ($this->mode == 1) $plug = $this->plugins[$field->type]->getListDisplay($content->id,$field ); else $plug = $this->plugins[$field->type]->getDetailsDisplay($content->id,$field ); $return .= $plug; } break; } } return $return; }

Проверено! Работает! Впрочем, я всё всегда проверяю перед тем, как делиться информацией на блоге. :)