Задавайте вопросы про Drupal - 2

Digdug
На сайте с 11.07.2012
Offline
119
#771
Alangasar:
Ну как-то так
$flag = flag_get_flag('like');
$flag->flag('flag', $entity->id);

Проходит только так

$flag = flag_get_flag('like');

$flag->flag('like', $entity->id);

как значение указать? неужели никак?)

Digdug
На сайте с 11.07.2012
Offline
119
#772
Digdug:
Проходит только так
$flag = flag_get_flag('like');
$flag->flag('like', $entity->id);
как значение указать? неужели никак?)

неактуально.

Digdug
На сайте с 11.07.2012
Offline
119
#773

Есть такой код:

function theme_form_comment_form_alter(&$form, &$form_state, $form_id) {
global $user;
if($user->uid>0) {
$account = user_load($user->uid);
$profiledata = profile2_by_uid_load($user->uid, 'peopleuser');
$lastname = '';
$lastname = field_get_items('profile2', $profiledata, 'field_peopleuser_name');
$lastname = $lastname[0]['safe_value'];
if ((isset($form['author']['_author'])) and ($lastname !=NULL)) {
$form['author']['_author']['#markup'] = $lastname;
} else {
$mailuser1 = $user->mail;
preg_match('~(.*)@~isU',$mailuser1,$mailuser1);
$mailuser1 = str_replace('@', '', $mailuser1);
$form['author']['_author']['#markup'] = $mailuser1[0];
}

} else {
$form['author']['name']['#default_value'] = "Гость";
}
}

Он меняет имя ($lastname, если есть) автора комментария в форму ввода добавления комментария.

Как можно сделать тоже самое, но для тех, кто оставил комментарий?

т.е. имя автора комментария должно быть $lastname;

Нашел тольок как переопределять авторов комментариев

function theme_preprocess_comment(&$variables) {
$comment = $variables['elements']['#comment'];
$node = $variables['elements']['#node'];
$variables['author'] = 'Гость X';
}

Кажется, достаточно заменить:

if($user->uid>0) {

$account = user_load($user->uid);

на другой код, чтобы узнать чей комент.

Digdug
На сайте с 11.07.2012
Offline
119
#774

Помогите с последним вопросом! С меня шаурма)

Alangasar
На сайте с 06.11.2008
Offline
98
#775

Digdug, ни че не понятно из вашего поста, просто напишите что нужно на выходе. Нужно заменить имя автора комментария на имя из вашего поля? Может быть лучше заменить имя сразу на всем сайте: hook_username_alter или theme_username

---------- Добавлено 26.11.2013 в 18:41 ----------

Или модуль поставить realname

Digdug
На сайте с 11.07.2012
Offline
119
#776
Alangasar:
Нужно заменить имя автора комментария на имя из вашего поля?

Да. Нужно заменить имя автора комментария, которое выводится в комментариях, а не в форме добавления комментария. И все.

Alangasar
На сайте с 06.11.2008
Offline
98
#777

template_preprocess_comment, $variables['author'] = тут че нужно

Digdug
На сайте с 11.07.2012
Offline
119
#778
Alangasar:
template_preprocess_comment, $variables['author'] = тут че нужно

Знаю, я это написал в предыдущем посте.

Мне нужен примерно такой код:

function realty_preprocess_comment(&$variables) {

global $user;

$user = profile2_load_by_user(arg(1), 'peopleuser');

$lastname = check_plain($user['peopleuser']->field_peopleuser_name['und'][0]['value']);

$variables['author'] = $lastname;

}

Но этот вариант не работает. Нужно вытащить field_peopleuser_name пользователя и вставить в $variables['author'].

Realname не подошел — нет нужных токенов.

Alangasar
На сайте с 06.11.2008
Offline
98
#779

Не нужен тут глобал юзер, и почему пользователя загружете из первого аргумента, это будет nid, id автора нужно взять примерно так

$comment = $variables['elements']['#comment'];

$uid = $comment->uid;

$profile2 = profile2_load_by_user($uid, 'peopleuser');

Digdug
На сайте с 11.07.2012
Offline
119
#780
Alangasar:
Не нужен тут глобал юзер, и почему пользователя загружете из первого аргумента, это будет nid, id автора нужно взять примерно так
$comment = $variables['elements']['#comment'];
$uid = $comment->uid;
$profile2 = profile2_load_by_user($uid, 'peopleuser');

Спасибо. Вот готовый код.

function theme_preprocess_comment(&$variables) {

$comment = $variables['elements']['#comment'];

$uid = $comment->uid;

$profile2 = profile2_load_by_user($uid);

$lastname = check_plain($profile2['peopleuser']->field_peopleuser_name['und'][0]['value']);

$variables['author'] = $lastname;

}

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий