Semenov-Nikolay
@Semenov-Nikolay

Как убрать ссылку на пункте?

Приветствую! Помогите разобраться,как убрать ссылку со списка,если он формируется из дерева в административной панели.
Нашел его в коде и нашел функцию вывода самого списка,но как убрать ссылку не могу разобраться. Возможно ищу не в том месте и делается совершенно по другому. Пробовал в админке удалить этот пункт и снова добавить,но он все равно остается с ссылкой.
Ниже прикрепил скрин ,как все выглядит и код функции,если необходим.

f4eb09c9467d488ea4c8b1f010fedf8a.jpga21dda67cd7e4ab5a2ad14e77c3636b1.jpgc5cce7609b4e4a0cbff2928eabdfb49c.jpg
/**
	* @return HTML
	* @param string $field_name - Системное имя поля
	* @param int $obj_id - ID объекта
	* @param string $templ_block - Имя используемого блока в шаблоне оформления
	* @param string $templ_name - Имя файла шаблона оформления
	* @desc МАКРОС: Выводит значение поля в указанном оформлении
	*/
 	function getProperty($field_name, $obj_id, $templ_block = 0, $templ_name = '_properties') {

        $templ_file = '/structure/objects/'.$templ_name.'.tpl';
		$TEMPLATE = page::getTemplate($templ_file);

		if (!is_array($TEMPLATE))
			return page::errorNotFound(__CLASS__.'.'.__FUNCTION__, $templ_file);

        if (empty($templ_block) && isset($TEMPLATE[$field_name]))
        	$templ_block = $field_name;
        else if (!isset($TEMPLATE[$templ_block]))
        	$templ_block = 'default';

	    if (isset($TEMPLATE[$templ_block]) && $obj = ormPages::get($obj_id)) {

            $value2 = '';
            $value = $obj->__get($field_name);
            $field = $obj->getClass()->getField($field_name);

            if ($obj->getClass()->issetField($field_name)){

		    	if ($field->getType() < 91 && $field->getType() != 73) {

		    		if ($field->getType() == 90)
	                    // Тип выпадающий список
	                    $value2 = $obj->__get('_'.$field_name);
					else if ($field->getType() == 75 && !file_exists(ROOT_DIR.$value))
		    			// Тип изображение
		    			$value = '';
					else if ($field->getType() == 25)
						$value = ($value == '0000-00-00') ? '' : $value;
					else if ($field->getType() == 32)
						$value = ($value == '0000-00-00 00:00:00') ? '' : $value;

	            	page::assign('obj.id', $obj->id);
		            page::assign('obj.name', $obj->name);
		            page::assign('title', $obj->getClass()->getFieldName($field_name));

			    	if (!empty($value)) {

		                page::assign('value', $value);
		                page::assign('value_name', $value2);
		                page::assign('obj.'.$field_name, $value);
	                    page::assign('obj._'.$field_name, $value2);

			    	 	return page::parse($TEMPLATE[$templ_block]);

			    	} else if (isset($TEMPLATE[$templ_block.'_empty']))
			    		return page::parse($TEMPLATE[$templ_block.'_empty']);

                } else return page::error(__CLASS__.'.'.__FUNCTION__, $field_name, lang::get('ERROR_BAD_TYPE'));

            } else return page::error(__CLASS__.'.'.__FUNCTION__, $field_name, lang::get('ERROR_NOTFOUND_FIELD'));

	    }
	}

	function getProp($field_name, $obj_id, $templ_block = 0, $templ_name = '_properties') {

		$templ_file = '/structure/objects/'.$templ_name.'.tpl';
		$TEMPLATE = page::getTemplate($templ_file);

		if (!is_array($TEMPLATE))
			return page::errorNotFound(__CLASS__.'.'.__FUNCTION__, $templ_file);

		if (empty($templ_block) && isset($TEMPLATE[$field_name]))
			$templ_block = $field_name;
		else if (!isset($TEMPLATE[$templ_block]))
			$templ_block = 'default';

		if (isset($TEMPLATE[$templ_block]) && $obj = ormPages::get($obj_id)) {

			$value2 = '';
			$value = $obj->__get($field_name);
			$field = $obj->getClass()->getField($field_name);

			if ($obj->getClass()->issetField($field_name)){

				if ($field->getType() < 91 && $field->getType() != 73) {

					if ($field->getType() == 90)
						// Тип выпадающий список
						$value2 = $obj->__get('_'.$field_name);
					else if ($field->getType() == 75 && !file_exists(ROOT_DIR.$value))
						// Тип изображение
						$value = '';
					else if ($field->getType() == 25)
						$value = ($value == '0000-00-00') ? '' : $value;
					else if ($field->getType() == 32)
						$value = ($value == '0000-00-00 00:00:00') ? '' : $value;

					page::assign('obj.id', $obj->id);
					page::assign('obj.name', $obj->name);
					page::assign('title', $obj->getClass()->getFieldName($field_name));

					if (!empty($value)) {

						page::assign('value', $value);
						page::assign('value_name', $value2);
						page::assign('obj.'.$field_name, $value);
						page::assign('obj._'.$field_name, $value2);

						return page::parse($TEMPLATE[$templ_block]);

					} else if (isset($TEMPLATE[$templ_block.'_empty']))
						return page::parse($TEMPLATE[$templ_block.'_empty']);

				} else return page::error(__CLASS__.'.'.__FUNCTION__, $field_name, lang::get('ERROR_BAD_TYPE'));

			} else return page::error(__CLASS__.'.'.__FUNCTION__, $field_name, lang::get('ERROR_NOTFOUND_FIELD'));

		}
	}


	/**
	* @return HTML
	* @param string $field_name - Системное имя поля для которого будет выводится список значений справочника
	* @param int $obj_id - ID объекта для которого формируется список
	* @param string $templ_name - Шаблон оформления списка, структура шаблона аналогична структуре макроса %structure.objList()%
	* @param int $max_count - Максимальное количество элементов в списке
	* @desc МАКРОС: Выводит список значений справочника, соотвествующих указанному объекту
	*/
 	public function getPropertyList($field_name, $obj_id, $templ_name = 'default', $max_count = 0) {

        $list = '';

        // подгружаем файл шаблона
	    $templ_file = '/structure/objects/'.$templ_name.'.tpl';
	    $TEMPLATE = page::getTemplate($templ_file);

		if (!is_array($TEMPLATE))
			return page::errorNotFound(__CLASS__.'.'.__FUNCTION__, $templ_file);

        if ($page = ormPages::get($obj_id)) {

            if ($field = $page->getClass()->getField($field_name)) {

	       		if ($field->getType() == 95 || $field->getType() == 100) {

	                if ($curClass = ormClasses::get($field->getListId()))
	                    $class_name = $curClass->getSName();
                    else
                        $class_name = '';

		            $sel = new ormSelect($class_name);

		       		if ($field->getType() == 100 || $curClass->isPage())
					    $sel->findInPages();

					$sel->depends($obj_id, $field->id());
	                $class_list = $sel->getClassesList();
                    if (empty($class_list))
                        $class_list[] = '1';

			        //if (!empty($class_list)) {

				        // Узнаем какие поля объектов будут участвовать в выборке
				        $uri = false;
				        $fields_str = '';
				        $fields = page::getFields('obj', $TEMPLATE, $class_list);
				        if (isset($fields['obj']))
					        while(list($key, $val) = each($fields['obj']))
					        	if ($val != 'url' && $val != 'class' && $val != 'num')
					        		$fields_str .= (empty($fields_str)) ? $val : ', '.$val;
				        $sel->fields($fields_str);

						if (!empty($max_count))
							$sel->limit($max_count);
							
						$sel->orderBy('position', asc);
					
                      // echo $fields_str;

	                    // Перебираем объекты
				        while($obj = $sel->getObject()) {

				            // Парсим поля страницы
					        if (isset($fields['obj_all'])) {
					            reset($fields['obj_all']);
					        	while(list($num, $name) = each($fields['obj_all']))
					            	page::assign('obj.'.$name, $obj->__get($name));
				            }

				            $num = $sel->getObjectNum() + 1;

                            if ($field->getType() == 100 || $curClass->isPage()) {
					            $target = ($obj->in_new_window) ? ' target="_blank"' : '';
                                page::assign('obj.target', $target);
			                    page::assign('obj.url', $obj->_url);
              				}

			                page::assign('obj.num', $num);
			                page::assign('obj.class', $class_name);
				            page::assign('class-first', ($num == 1) ? 'first' : '');
				            page::assign('class-last', ($num == $sel->getObjectCount()) ? 'last' : '');
				            page::assign('class-odd', ($num % 2 == 0) ? 'odd' : '');
				            page::assign('class-even', ($num % 2 != 0) ? 'even' : '');
                            page::assign('class-third', ($num % 3 == 0) ? 'third' : '');

			                if ($num === 1)
			                	page::assign('first_children_id', $obj->id);
			                page::assign('last_children_id', $obj->id);


				            if (isset($TEMPLATE['list_'.$class_name]))
				            	$templ = 'list_'.$class_name;
				            else if (isset($TEMPLATE['list']))
			            		$templ = 'list';
			                else $templ = '';

			                $act = '';//(isset($TEMPLATE[$templ.'_active']) && $obj->id == $act) ? '_active' : '';

			                if (isset($TEMPLATE[$templ.$act])) {
				    			if ($num > 1 && isset($TEMPLATE['separator']))
									$list .= $TEMPLATE['separator'];
				    			$list .= page::parse($TEMPLATE[$templ.$act]);
	                        }

				    	}
			    	//}

			    	if (!empty($list)) {

			            page::assign('list', $list);
			        	$list = page::parse($TEMPLATE['frame_list']);

			    	} else if (isset($TEMPLATE['empty']))
                        $list = page::parse($TEMPLATE['empty']);

				} else return page::error(__CLASS__.'.'.__FUNCTION__, $field_name, lang::get('ERROR_BAD_TYPE'));

			} else return page::error(__CLASS__.'.'.__FUNCTION__, $field_name, lang::get('ERROR_NOTFOUND_FIELD'));
    	}

    	return $list;
 	}
  • Вопрос задан
  • 126 просмотров
Решения вопроса 1
Maksclub
@Maksclub Куратор тега PHP
maksfedorov.ru
Этот код (недоконтроллеры и недомодели:) использует шаблоны (tpl), вам нужно найти шаблоны с вашими блоками html в папке /structure/objects/ и там найти нужную ссылку

скорее всего это файл /structure/objects/_properties.tpl

еще у поля может быть тип 70, 25, 32, 90, 91 -- понятия не имею, что это... но может от этого зависеть :)в админке тип поля можно указать ?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы