Submitted by drudev on Tue, 08/28/2012 - 16:58
дело в том, что этот хук запускается только при первой установке модуля - после же первой установки запускаются
первое что попадается по данной проблеме - вот эта тема=http://www.drupal.ru/node/46570
итак, пробуем заменить на install() на вот этот хук = api.drupal.org/api/drupal/modules!system!system.api.php/function/hook_enable/7
и это работает!
аналогично поступайте и для uninstall = hook_disable()
Submitted by drudev on Tue, 08/28/2012 - 12:40
алгорит такой -
при создании поля и его экземпляра =
- сначала создаётся поле
- а только потом его экземпляр
при удалении =
- сначала удаляется экземпляр (при это вроде как потом и поле удалится автоматически в случае если этот экземпляр был последним)
- а только потом поле
но при каждой переустановке модуля мы будем получать новые строки в таблицах - проблема описана здесь
Submitted by drudev on Tue, 08/28/2012 - 12:40
Submitted by drudev on Tue, 08/28/2012 - 12:16
- 1991 — Blue Lines (Massive Attack)
- 1994 — Dummy (Portishead)
- 1995 — Maxinquaye (Tricky)
- 1996 — Who Can You Trust (Morcheeba)
- 1997 — Portishead (Portishead)
- 1998 — Mezzanine (Massive Attack)
Submitted by drudev on Mon, 08/27/2012 - 20:28
Submitted by drudev on Mon, 08/27/2012 - 18:39
этот код корректно устанавливает . но не может толком удалить (не удаётся удалить экземпляр поля) =
Submitted by drudev on Mon, 08/27/2012 - 18:20
данный хук позволяет определить "что именно является пустым элементом для поля" то есть - допустимо ли для данного поля данное значение в "пустом" виде .
если для даннго типа поля пустое значение допустимо - возвращаем true, иначе - false.
читаем далее = http://api.drupal.org/api/drupal/modules...
да кстати - чтобы сказать, что всё идёт по плану достаточно написать =
Submitted by drudev on Mon, 08/27/2012 - 16:50
эпиграф =
Table field_config
id - The primary identifier for a field.
field_name - The name of this field. Non-deleted field names are unique, but multiple deleted fields can have the same name
взял отсюда
Итак - получается, что не проводя проверку на предмет уже существующей записи мы будем плодить их (эти самые записи) при каждой переустановке модуля.
Submitted by drudev on Mon, 08/27/2012 - 16:19
field_update_field() - данная функция позволяет обновить состояние поля,
например - снять с него "метку удаления"
чтобы всё сработало - в качестве параметра следует передать массив , содержащий в качестве индексов имя свойств поля, в качестве параметров - значения этих свойств.
читаем далее = http://api.drupal.org/api/drupal/modules...
Submitted by drudev on Mon, 08/27/2012 - 13:18
/* сперва работаем с полем (чтобы создать экземпляр поля,
"прототип" - то есть @само поле@ должно быть уже создано) */
if ($field = field_info_field('field_2000')) //
{
log_light(" deleting field !");
watchdog("LL=","deletion field is completed !");
field_delete_field($field);
log_light(" deletion field is completed !");
watchdog("LL=","filed is deleted !");
}
else
{
log_light(" no info about instance !"); // если нет - то создаём сначала поле,а потом его экземпляр привязанный к статье
$field = array(
"field_name"=>"field_2000", // имя поля
Pages