Flags :
- bookmarks OK - flaglist DEV Signed-off-by: bachy <git@g-u-i.net>
This commit is contained in:
72
materio_flag.install
Normal file
72
materio_flag.install
Normal file
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* The Flag Bookmark module install hooks.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Implements hook_install().
|
||||
*/
|
||||
function materio_flag_install() {
|
||||
// Everything is handled by hook_enable().
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements hook_enable().
|
||||
*
|
||||
* We create the demonstration flag on enable, so hook implementations in flag
|
||||
* module will fire correctly, as the APIs are not available on install.
|
||||
*/
|
||||
function materio_flag_enable() {
|
||||
// Load the flag API in case we want to use it when enabling.
|
||||
include_once(drupal_get_path('module', 'flag') . '/flag.module');
|
||||
|
||||
if (!flag_get_flags()) {
|
||||
// Install a demonstration flag only if no flag exists. This is to prevent
|
||||
// a case where a disables and enables the module, and the demonstration
|
||||
// flag is overwritten or re-created.
|
||||
$flag = flag_flag::factory_by_entity_type('node');
|
||||
$configuration = array(
|
||||
'name' => 'bookmarks',
|
||||
'global' => 0,
|
||||
'show_on_page' => 1,
|
||||
'show_on_teaser' => 0,
|
||||
'show_on_form' => 0,
|
||||
// The following UI labels aren't wrapped in t() because they are written
|
||||
// to the DB in English. They are passed to t() later, thus allowing for
|
||||
// multilingual sites.
|
||||
'title' => 'Bookmarks',
|
||||
'flag_short' => 'Bookmark this',
|
||||
'flag_long' => 'Add this post to your bookmarks',
|
||||
'flag_message' => 'This post has been added to your bookmarks',
|
||||
'unflag_short' => 'Unbookmark this',
|
||||
'unflag_long' => 'Remove this post from your bookmarks',
|
||||
'unflag_message' => 'This post has been removed from your bookmarks',
|
||||
'types' => _materio_flag_install_get_suggested_node_types(),
|
||||
);
|
||||
$flag->form_input($configuration);
|
||||
$flag->save();
|
||||
|
||||
// Clear the flag cache so the new permission is seen by core.
|
||||
drupal_static_reset('flag_get_flags');
|
||||
|
||||
// Grant permissions.
|
||||
$permissions = array('flag bookmarks', 'unflag bookmarks');
|
||||
user_role_grant_permissions(DRUPAL_AUTHENTICATED_RID, $permissions);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns some node types to which the demonstration 'bookmarks' flag will apply.
|
||||
*/
|
||||
function _materio_flag_install_get_suggested_node_types() {
|
||||
$preferred = array('page', 'article', 'story', 'forum', 'blog');
|
||||
$existing = array_intersect($preferred, array_keys(node_type_get_types()));
|
||||
if (!$existing) {
|
||||
// As a last resort, take the first preference.
|
||||
return array($preferred[0]);
|
||||
}
|
||||
return $existing;
|
||||
}
|
||||
|
Reference in New Issue
Block a user