Измените настройки модуля, хранящиеся в массиве, с помощью drush


Я хотел бы настроить параметры модуля (addtoany) с помощью drush. Это переменная:

addtoany_nodetypes: Array
(
    [about_us] => about_us
    [contact] => contact
    [page] => page
    [legal] => 0
    [webform] => 0
)

Так что, например:

[page] => page
[legal] => 0

Становится

[page] => 0
[legal] => legal

Но я довольно новичок в drush и нахожусь в полной растерянности. Спасибо, что уделили мне время.

 6
Author: leymannx, 2012-06-25

2 answers

Drush не имеет никакого механизма для преобразования аргументов командной строки в массивы php для команды набора переменных; однако легко писать короткие фрагменты php с помощью команды php-eval ("ev" для краткости).

Например, если вы настроили псевдоним сайта для своего сайта под названием "@сайт":

$ drush @site ev 'variable_set("addtoany_nodetypes", array("about_us" => "about_us", "contact" => "contact", "page" => "page", "legal" => 0, "webform" => 0));'
$ drush @site vget addtoany_nodetypes
addtoany_nodetypes: Array
(
    [about_us] => about_us
    [contact] => contact
    [page] => page
    [legal] => 0
    [webform] => 0
)
$ drush @site ev '$v = variable_get("addtoany_nodetypes", array()); $v["page"] = 0; $v["legal"] = "legal"; variable_set("addtoany_nodetypes", $v);'
$ drush @site vget addtoany_nodetypes
addtoany_nodetypes: Array
(
    [about_us] => about_us
    [contact] => contact
    [page] => 0
    [legal] => legal
    [webform] => 0
)

Если вы не используете псевдоним сайта, перейдите на компакт-диск в корневой каталог Drupal вашего сайта (или на компакт-диск в папку "Сайты", содержащую settings.php при использовании мультисайта) и удалите "@сайт" из приведенных выше примеров.

 8
Author: greg_1_anderson, 2012-06-25 19:46:37

Как указано в справочной документации drush drush help variable-set рекомендуемый способ установки переменной массива - использовать формат=json:

php -r "print json_encode(array('drupal', 'simpletest', 'leftandright', 'category'));"  | drush vset --format=json project_dependency_excluded_dependencies -

Не забывайте о "-" в конце концов.

 6
Author: LarS, 2014-05-12 20:52:22