Drupal 6: (? Nasıl profile_save_profile kullanıyorsunuz) Programlı Kullanıcı Değerleri değiştirme

2 Cevap php

Ben başarı olmadan uzun bir süre için bu anlamaya çalışıyordum.

foreach ($users as $user) { //list of users to act on
	$by_user = views_get_view_result('attendance', 'page_3', array($user->uid)); //view containing info about this user
	$edit = array('profile_attendance_short_term' => substr(count($by_user) / count($general), 0, 5)); //calculation

	profile_save_profile($edit, $user->uid, 'Fencing Information', TRUE); //update user profile???
}

Ben yanlış ne yapıyorum?

EDIT: Bu da başarısız olur:

$edit = array('profile_attendance_short_term' => 9001);

profile_save_profile($edit, user_load(3), 'Fencing Information', TRUE);

2 Cevap

Ben sorun TRUE olarak $register (son parametre) belirterek konum olduğunu düşünüyorum. Bu yeni hesaplar oluştururken, sadece kullanılan, yani ayarlarsanız, sadece ne istediğinizi değil muhtemelen kayıt sayfası mevcut profil alanları, kaydetmek mümkün olacak.

Bu gerekli bir parametre değil çünkü, sadece dışarı bırakabilirsiniz.

Bu düzenleme biçimine gelince, o kadar aynı format $form_state['values'] var beklediğini eğer değerleri nerede, örneğin, bir formdan gelen:

<?php
$edit = array(
  'fencing_style' => 'Aggressive',
  'favorite_weapon' => 'sabre',
  'left_handed' => FALSE,
);
profile_save_profile($edit, $user, 'Fencing Information');

O $ user $ yerine kullanıcı-> uid daha geçirilecek beklediği gibi profile_save_profile işlevi baktığımızda, görünüyor - böylece aşağıdaki gibi çağrı değiştirerek deneyin:

profile_save_profile($edit, $user, 'Fencing Info', TRUE);