Diğer Drupal modüllerinin kullanması için kendi kancamı nasıl oluşturabilirim (Drupal çekirdeğinin oluşturduğu kancalara benzer)?
Diğer Drupal modüllerinin kullanması için kendi kancamı nasıl oluşturabilirim (Drupal çekirdeğinin oluşturduğu kancalara benzer)?
Yanıtlar:
Aslında kanca oluşturmazsınız. Aşağıdaki gibi yardımcı işlevlerini kullanın module_invoke_all()
, module_invoke()
ya da drupal_alter()
beklenen isim desen eşleştirme tüm fonksiyonları çağırmak için. Çağrılan işlevler genellikle ile bulunur module_implements()
.
Kancaların çalışması gerekli olmasa bile, en iyi uygulama, belge açıklamalarıylaMODULE.api.php
boş taslak hook_NAME
işlevleri oluşturarak bunları belgelendirmektir .
Ayrıca kanca oluşturabilir, hook_trigger_info kullanarak yeni kanca oluşturabilirsiniz ve modülünüzde uygulamanız gerekir. Örnek olarak, bir düğüm arşivi oluşturmak ve içine eski düğümler koymak istediğinizi varsayalım. Ayrıca, arşivleme işlemi tamamlandığında bir kanca tetiklemek istersiniz. böyle bir şey olacak
function hook_trigger_info() {
return array(
'node' => array(
'archive_nodes' => array(
'label' => t('Archive old nodes'),
)
)
);
}
Kancayı tanımladıktan sonra, modülünüz kanca ve eylemlerin module_invoke () veya module_invoke_all () kullanılarak uygulanmasından sorumludur .
trigger
Düğüm sekmesi altında bu yeni kancayı görmek için modülü etkinleştirebilirsiniz .