Вывод ОДНОГО дополнительного поля - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы настройки и администрирования форумов IPB 2.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 3.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

Вывод ОДНОГО дополнительного поля 2.1.X

#1 Пользователь не на сайте   ukasheu ответил: »

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 4
  • Регистрация: 03-Февраль 18
  • Репутация: 0
  • IPB version:2.1.x
 

Отправлено 12 Март 2018 - 04:18

Здравствуйте форумчане!

Поставил мод: флаг страны, как дополнительное поле про чтении тем оно выводится. Но нужно другое,
Как вывести это дополнительное поле при просмотре профиля? Именно не весь блок дополнительных полей, а одно значение?

Изменить HTML фрагменты > skin_profile (Просмотр профиля) > show_profile

Добавляю в нужное место:

<img src="style_images/flags/{$author['field_8']}.gif" border='0'>

И картинка страны не выводится, а точнее оно не берёт нужное значение и получается = /style_images/flags/.gif, пробовал добавлять входящую переменную $author, писать через $info, писать fields, но это ничего не дало :( . Номер дополнительного поля верный.

Возможно нам поможет кусок кода из sources/action_public/profile.php

  //-----------------------------------------
    	// Get custom profile information
    	//-----------------------------------------
    	
    	require_once( ROOT_PATH.'sources/classes/class_custom_fields.php' );
    	$fields = new custom_fields( $this->ipsclass->DB );
    	
    	$fields->member_id   = $this->ipsclass->member['id'];
    	$fields->mem_data_id = $member['id'];
    	$fields->cache_data  = $this->ipsclass->cache['profilefields'];
    	$fields->admin       = intval($this->ipsclass->member['g_access_cp']);
    	$fields->supmod      = intval($this->ipsclass->member['g_is_supmod']);
    	
    	$fields->init_data();
    	$fields->parse_to_view();
    	
    	foreach( $fields->out_fields as $id => $data )
    	{
    		if ( ! $data )
    		{
    			$data = $this->ipsclass->lang['no_info'];
    		}
    		
			$custom_out .= $this->ipsclass->compiled_templates['skin_profile']->custom_field( $fields->field_names[ $id ], nl2br($data) );
    	}
    	
    	if ($custom_out != "")
    	{
    		$this->output = str_replace( "<!--{CUSTOM.FIELDS}-->", $custom_out, $this->output );
    	}
    	else
    	{
    		$this->output = str_replace( "<!--{CUSTOM.FIELDS}-->", $this->ipsclass->compiled_templates['skin_profile']->no_custom_information(), $this->output );
    	}


Буду благодарен за помощь, сломал уже всю голову.

Вложений


Сообщение изменено: ukasheu (12 Март 2018 - 04:30)

0

#2 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 053
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 276
  • IPB version:I have no IPB
 

Отправлено 12 Март 2018 - 08:55

Можно до
           $custom_out .= $this->ipsclass->compiled_templates['skin_profile']->custom_field( $fields->field_names[ $id ], nl2br($data) );
добавить
    		if ($id == 8)
    		{
    			$info['country_flag'] = $data;
    		}

Дальше в шаблоне использовать $info['country_flag']
1

#3 Пользователь не на сайте   ukasheu ответил: »

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 4
  • Регистрация: 03-Февраль 18
  • Репутация: 0
  • IPB version:2.1.x
 

Отправлено 12 Март 2018 - 17:03

Всё равно выводится: /style_images/flags/.gif

Изменить HTML фрагменты > skin_profile (Просмотр профиля) > show_profile

<img src="http://ipbskins.ru/forum/public/style_images/flags/{$info['country_flag']}.gif" border='0'>

        //-----------------------------------------
    	// Get custom profile information
    	//-----------------------------------------
    	
    	require_once( ROOT_PATH.'sources/classes/class_custom_fields.php' );
    	$fields = new custom_fields( $this->ipsclass->DB );
    	
    	$fields->member_id   = $this->ipsclass->member['id'];
    	$fields->mem_data_id = $member['id'];
    	$fields->cache_data  = $this->ipsclass->cache['profilefields'];
    	$fields->admin       = intval($this->ipsclass->member['g_access_cp']);
    	$fields->supmod      = intval($this->ipsclass->member['g_is_supmod']);
    	
    	$fields->init_data();
    	$fields->parse_to_view();
    	
    	foreach( $fields->out_fields as $id => $data )
    	{
    		if ( ! $data )
    		{
    			$data = $this->ipsclass->lang['no_info'];
    		}
    		
			if ($id == 8)
            {
                $info['country_flag'] = $data;
            }
			
			$custom_out .= $this->ipsclass->compiled_templates['skin_profile']->custom_field( $fields->field_names[ $id ], nl2br($data) );
    	}
    	
    	if ($custom_out != "")
    	{
    		$this->output = str_replace( "<!--{CUSTOM.FIELDS}-->", $custom_out, $this->output );
    	}
    	else
    	{
    		$this->output = str_replace( "<!--{CUSTOM.FIELDS}-->", $this->ipsclass->compiled_templates['skin_profile']->no_custom_information(), $this->output );
    	}


Возможно надо if ($pf_id == 8) ?? Прикрепляю phpmyadmin.

Вложений


Сообщение изменено: ukasheu (12 Март 2018 - 17:05)

0

#4 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 053
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 276
  • IPB version:I have no IPB
 

Отправлено 13 Март 2018 - 08:46

Все понятно. Посмотрел файл profile.php.
Шаблон show_profile используется выше кастомных полей.

        require_once( ROOT_PATH.'sources/classes/class_custom_fields.php' );
        $fields = new custom_fields( $this->ipsclass->DB );
        
        $fields->member_id   = $this->ipsclass->member['id'];
        $fields->mem_data_id = $member['id'];
        $fields->cache_data  = $this->ipsclass->cache['profilefields'];
        $fields->admin       = intval($this->ipsclass->member['g_access_cp']);
        $fields->supmod      = intval($this->ipsclass->member['g_is_supmod']);
        
        $fields->init_data();
        $fields->parse_to_view();
        
        foreach( $fields->out_fields as $id => $data )
        {
            if ( ! $data )
            {
                $data = $this->ipsclass->lang['no_info'];
            }
            
            if ($id == 8)
            {
                $info['country_flag'] = $data;
            }
            
            $custom_out .= $this->ipsclass->compiled_templates['skin_profile']->custom_field( $fields->field_names[ $id ], nl2br($data) );
        }

переместите выше следующей строки
$this->output .= $this->ipsclass->compiled_templates['skin_profile']->show_profile( $info, $this->ipsclass->return_md5_check() );

1

#5 Пользователь не на сайте   ukasheu ответил: »

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 4
  • Регистрация: 03-Февраль 18
  • Репутация: 0
  • IPB version:2.1.x
 

Отправлено 14 Март 2018 - 20:42

Отлично, начало подхватывать, но не совсем правильно:

Дополнительное поле
Содержимое опций для ниспадающего меню
Russia=Россия
.............

Выводит: /style_images/flags/Россия.gif

===================================================================

В темах всё правильно отображается: /style_images/flags/Russia.gif

===================================================================

Спасибо Вам за помощь B) , скажите ещё, можно ли скрывать флаг если следующее:

Not Selected=Не выбрано

Или проще создать картинку пустышку? :)

Вложений

  • Вложение  profile.php (34,75К)
    Количество загрузок: 0

0

#6 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 053
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 276
  • IPB version:I have no IPB
 

Отправлено 15 Март 2018 - 08:31

            if ($id == 8)
            {
                $info['country_flag'] = $data;
            }

замените на
            if ($id == 8 and $data and $fields->in_fields[$id] != 'Not Selected')
            {
                $info['country_flag'] = $fields->in_fields[$id];
            }


В шаблоне код картинки обертывать в условие
<if="isset($info['country_flag'])">код картинки</if>

1

#7 Пользователь не на сайте   ukasheu ответил: »

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 4
  • Регистрация: 03-Февраль 18
  • Репутация: 0
  • IPB version:2.1.x
 

Отправлено 16 Март 2018 - 00:22

Спасибо Вам newbie!

<img src="style_images/flags/{$info['country_flag']}.gif" alt='{$info['country_flag']}' border='0'>


Теперь работает идеально, если не выбрано - не отображает!

А если пишем так:

<if="isset($info['country_flag'])">
<img src="style_images/flags/{$info['country_flag']}.gif" alt='{$info['country_flag']}' border='0'>
</if>


Fatal error: Function name must be a string in /cache/skin_cache/cacheid_11/skin_profile.php on line 430
0

Сообщить об этой теме:


Страница 1 из 1
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2018 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна