Preciso anexar um campo a alguns pacotes. Um snippet PHP fará o trabalho para mim, portanto, não preciso de um módulo. O snippet abaixo é o que deve ser executado:
$field_name = 'field_custom_image';
// Create the field.
$field = array(
'field_name' => $field_name,
'type' => 'image',
);
field_create_field($field);
e, em seguida, o snippet para adicionar esse campo ao pacote:
// Create the instance.
$instance = array(
'field_name' => $field_name,
'entity_type' => 'node',
'bundle' => 'article',
'label' => 'Image',
'description' => 'An image for the article.',
'required' => TRUE,
);
field_create_instance($instance);
Existe uma maneira de executar o código PHP diretamente no Drupal, sem a necessidade de escrever um módulo, instalá-lo, executá-lo e desinstalá-lo?
Respostas:
Se você está dizendo "Eu preciso executar um pouco de PHP" e "Eu não preciso de um módulo" no mesmo pensamento, sugiro que você esteja seguindo o caminho errado, seja na abordagem desse problema específico ou a abordagem para criar o site em geral.
drush scr
irá ajudá-lo se essa for a direção que você realmente deseja seguir, ou se você puder escrever um script PHP independente (basicamente apenas copie / cole tudo através dadrupal_bootstrap()
chamada em index.php e adicione seu código personalizado depois), mas existem outras coisas que você pode olhar:Muitos sites em que trabalhei tiveram uma combinação dessas duas soluções. O Config deve entrar principalmente nos módulos de Recursos exportados, e qualquer coisa que não possa (você tem certeza de que não pode?) Pode entrar em um gancho de atualização.
fonte
Sim, existe, mas, dada a sua descrição, pergunto-me se isso irá ajudá-lo:
fonte
Se você precisar executar o código apenas uma vez, poderá fazê-lo sem instalar nenhum módulo, incluindo o módulo Devel.
Escreva um arquivo PHP (por exemplo, tasks.php ), coloque-o onde está o arquivo cron.php que acompanha o Drupal e adicione o seguinte código.
Se você já estiver usando o Drush para manter / implantar seu site, poderá criar um script Drush . Dessa maneira, ele poderia ser executado pela CLI e receber quaisquer argumentos, tornando-o reutilizável por várias ocasiões.
Você também pode executar um script PHP com
drush php-eval
(ou apenasdrush ev
), por exemplo:Eu criaria um script Drush, mas se você não puder instalar o Drush, ou precisar executar o código PHP no navegador, o primeiro método funcionará bem.
fonte
Adicione seu snippet de código a um arquivo e salve-o como
file_name.php
na pasta raiz do site Drupal. Em seguida, execute o seguinte comando em um terminal, de dentro da pasta raiz do site Drupal como seu diretório de trabalho:drush scr file_name.php
Este comando executará seu arquivo PHP. (Para ter uma idéia da execução, você pode incluir algumas instruções de impressão em seu arquivo, que produzirão o texto, os valores das variáveis etc. para o terminal onde você executa o comando drush.)
Nota: Como pré-requisito, você precisa ter
drush
instalado no seu sistema.fonte
Você pode usar o módulo Devel em
Php
linha , mas vamos lhe dar um dos meus truques drupal para executar meu código personalizado sem nenhum módulo.primeiro criar uma
menu item
emhook_menu
limpe o cache (porque os itens de menu são armazenados em cache no drupal) e coloque tudo o que deseja
my_function
e digiteyoursite.com/ytest
Espero que ajude você nos projetos "dada";)
fonte
O objetivo dos módulos Drupal é fornecer lógica separada para determinados componentes, para que possam ser desativados se algo der errado.
hook_install
/hook_update
No seu caso, que está criando um novo campo de uma só vez, o cenário ideal é usar um
hook_install
ou outrohook_update
.Se você não possui um módulo personalizado (btw. Também pode usar o módulo de recurso exportado para isso), crie um novo apenas para atualizações (por exemplo
site_updates
). No Drupal 7, tudo que você precisa é criar pasta com 3 arquivos:.info
,.module
e.install
e definir instalar ou atualizar o gancho na sua.install
. Usar o gancho de instalação / atualização é conveniente para ter ambientes consistentes, especialmente quando você possui vários servidores Drupal (como dev, test e prod), para que a alteração possa ser chamada durante a próxima implantação.Se você ainda não deseja criar o módulo, aqui estão outros métodos.
Execução única
Se você precisar executar apenas um certo código PHP apenas uma vez, poderá:
/devel/php
,Use CLI (e seu / comando) para executar o código PHP, por exemplo
drush
eval
ev
Use
drush scr
para executar o script PHP:Onde
my_file.php
está o seu script PHP simples com o seu código para executar.Execução de página específica
Para executar código personalizado em determinadas páginas ou componentes:
template.php
arquivo no seu costume tema (por exemplotemplate_preprocess_node
,template_preprocess_block
,template_preprocess_page
).Execução de todas as páginas
Para adicionar e executar o código PHP em todas as páginas sem escrever um módulo, você pode:
settings.php
arquivo para isso. É recomendado apenas para código simples, como substituição de configuração. Caso contrário, você deve usáhook_init
-lo como parte do seu módulo personalizado.fonte