6 * Standalone module file to handle ipv6_greeter
10 * Implementation of hook_perm().
14 function ipv6_greeter_perm() {
15 $perms[] = 'administer IPv6 Greeter';
20 * Implementation of hook_block().
22 * @param object $op [optional]
23 * @param object $delta [optional]
26 function ipv6_greeter_block($op = 'list', $delta = 0) {
28 $blocks[0]['info'] = 'IPv6 Greeter';
31 elseif ($op == 'view') {
32 $title = variable_get('ipv6_greeter_blocktitle', 'IPv6 Greeter');
34 // XXX is it OK to use t() here, or we should rather let the user to define
35 // that as a multilanguage variable in $conf['i18n_variables'] ?
36 $block['subject'] = t($title);
38 $block['content'] = _ipv6_greeter_create_content();
39 $block['cache'] = BLOCK_NO_CACHE;
46 * Implementation of hook_menu().
48 function ipv6_greeter_menu() {
51 $items['admin/settings/ipv6_greeter'] = array(
52 'title' => 'IPv6 Greeter',
53 'description' => 'Setting for IPv6 Greeter',
54 'page callback' => 'drupal_get_form',
55 'page arguments' => array('ipv6_greeter_admin_settings'),
56 'access arguments' => array('administer IPv6 Greeter'),
57 'file' => 'ipv6_greeter.admin.inc',
64 * Internal function to generate code for ipv6_greeter block
67 * String containing HTML code for the block
69 function _ipv6_greeter_create_content() {
71 drupal_add_css((drupal_get_path('module', 'ipv6_greeter') .'/ipv6_greeter.css'));
73 $client_ip = ip_address();
75 $is_client_ipv6 = filter_var($client_ip, FILTER_VALIDATE_IP, array("flags" => FILTER_FLAG_IPV6));
76 if ($is_client_ipv6) {
77 $content = "<div class=\"ipv6_greeter-ipv6-client\"><p>";
78 $content .= t("You've got IPv6!<br />!client_ip",
79 array('!client_ip' => $client_ip));
80 $content .= "</p></div>";
83 if (variable_get('ipv6_greeter_greetIPv4', '1') == '1') {
84 $ipv6 = l('IPv6', 'http://en.wikipedia.org/wiki/IPv6',
85 array( 'attributes' => array('title' => 'Wikipedia - IPv6'))
87 $content = "<div class=\"ipv6_greeter-ipv4-client\"><p>";
88 $content .= t("You're not on $ipv6, yet!");
89 $content .= "</p></div>";