Добрый день!
Вопрос про drupal 6 и модуль content_profile
Вывод CCK поля профиля (Content Profile) через user-profile.tpl.php в профиль http://example.com/users/username
Например
<?php
$content_profile = content_profile_load('profile', $account->uid);
print($content_profile->field_name[0]['value']);
?>- взято [#25560]тут[/#]
field_name - имя поля, например "field_age"
profile - имя типа ноды профайла
"[0]" - если значение единичное, если возможно несколько значений, то как их обработать?
Это выводит непосредственно значение, а не его отображение.
Как вывести отображение ?
Как вывести значение и отображение если тип поля integer - select list, и нужно вывести одно значение из набора строк?
--
Заранее спасибо за ответы. И если можно то разжуйте так, чтоб было понятно, давно сижу с этой головоломкой..
Комментарии
я уже ответил на ваш вопрос "там".
Спасибо!
Пожалуйста, можно еще подробнее? Если значения это Content Taxonomy Fields
<?php $node = content_profile_load('personal_info', $account_id); ?>
<?php if (!empty($node->field_my_children)): ?>
<span class="user-account-view">
<?php print check_plain($node->field_my_children[0]['value']); ?>
</span>
<?php endif; ?>
- не выводит ничего...
<?phpecho $content_profile->get_view('personal_info');?>
выводит ноду полностью.
А как вывести отдельно поле, например field_my_children из personal_info? У меня получаются только цифры..
Спасибо!
вы print_r попробовали?
<?php $node = content_profile_load('personal_info', $account_id); ?>
<?php if (!empty($node->field_my_children)): ?>
<span class="user-account-view">
<?php print_r check_plain($node->field_my_children[0]['value']); ?>
</span>
<?php endif; ?>
- Parse error: syntax error, unexpected T_STRING in /var/www/.../sites/all/themes/themename/user-profile.tpl.php on line 4
--
или:
<?php$content_profile = content_profile_load('personal_info', $account->uid);
foreach ($content_profile->field_my_children as $name)
{
//
}
print_r ($name);?>
Выводит: Array ( [value] => 1123 )
<?php $node = content_profile_load('personal_info', $account_id); ?>
<?php if (!empty($node->field_my_children)): ?>
<span class="user-account-view">
<?php print_r(check_plain($node->field_my_children[0]['value'])); ?>
</span>
<?php endif; ?>
Не выводит ничего...
<?php $node = content_profile_load('personal_info', $account->uid); ?>
<?php if (!empty($node->field_my_children)): ?>
<span class="user-account-view">
<?php print_r(check_plain($node->field_my_children[0]['value'])); ?>
</span>
<?php endif; ?>
- Выводит только цифры: 1123
ну да правильно, это ваше значение этого поля. нужно смотреть на более высоком уровне:
<?php print_r(check_plain($node)); ?>
</pre>
тут уж вы точно "всё" увидите.
user-profile.tpl.php
<?php $node = content_profile_load('personal_info', $account->uid); ?>
<?php if (!empty($node->field_my_children)): ?>
<span class="user-account-view">
<?php print_r(check_plain($node)); ?> </span>
<?php endif; ?>
recoverable fatal error: Object of class stdClass could not be converted to string in /var/www/.../example.com/includes/bootstrap.inc on line 768.
warning: preg_match() expects parameter 2 to be string, object given in /var/www/.../example.com/includes/bootstrap.inc on line 771.
ну вы хотя бы попробовали варианты, про pre не забывайте, а то мутотень будет:
print_r($node);
</pre>
Не могу разобраться, подскажите как вывести весь блок content_profile на странице профиля.
Этот код не помогает(
<?php
global $user;
print theme('content_profile', $user)
?>
<?php print $profile['content_profile']; ?>
подскажите, как все таки по полям вывести?
...вот так -
<?php
$content_profile = content_profile_load('profile', $account->uid);
print($content_profile->field_name[0]['value']);
?>