Профили пользователей, флажок отмечен по умолчанию (патч)

Главные вкладки

Аватар пользователя MarinaMim MarinaMim 18 февраля 2009 в 16:50

продолжаю патчить профайл.
Я хочу, чтобы у меня флажок "получать новости сайта" был отмечен по умолчанию.
Что я делаю:

profile.admin.inc, function profile_field_form(&$form_state, $arg = NULL), line 245

  $form['fields']['visibility'] = array('#type' => 'radios',

->

  if ($type == 'checkbox') {
    $form['fields']['options'] = array('#type' => 'checkbox',
      '#title' => t('Checked by default'),
      '#default_value' => isset($edit['options']) ? $edit['options'] : '',
      '#description' => t('Specifies wether this checkbox should be checked by default'),
    );
  }
  $form['fields']['visibility'] = array('#type' => 'radios',

profile.module, function profile_form_profile($edit, $user, $category, $register = FALSE), line 389

          '#default_value' => isset($edit[$field->name]) ? $edit[$field->name] : '',

->

          '#default_value' => isset($edit[$field->name]) ? $edit[$field->name] : ($field->options ? 1 : ''),

(!) если в системе уже есть пользователи, это не применит флажок к ним.

Комментарии

Аватар пользователя MarinaMim MarinaMim 18 февраля 2009 в 17:21

Чтобы установить флажок profile_getnews для всех существующих пользователей выполните запрос:

insert into profile_values
select f.fid, uid, 1
from users u, profile_fields f
where u.status=1 and f.name='profile_getnews'

(измените названия таблиц, если используете префикс)
--

можно через devel -> execute php code

db_query("insert into {profile_values}
select f.fid, uid, 1
from {users} u, {profile_fields} f
where u.status=1 and f.name='profile_getnews'"
);