danielebarchiesi@4
|
1 <?php
|
danielebarchiesi@4
|
2 /**
|
danielebarchiesi@4
|
3 * @file
|
danielebarchiesi@4
|
4 * Displays a ribbon with a link to a GitHub-account.
|
danielebarchiesi@4
|
5 */
|
danielebarchiesi@4
|
6
|
danielebarchiesi@4
|
7 /**
|
danielebarchiesi@4
|
8 * Implements hook_help().
|
danielebarchiesi@4
|
9 */
|
danielebarchiesi@4
|
10 function github_help($path, $arg) {
|
danielebarchiesi@4
|
11 switch ($path) {
|
danielebarchiesi@4
|
12 case 'admin/setting/github':
|
danielebarchiesi@4
|
13 return t('Display a ribbon on the site, that links to your GitHub-account');
|
danielebarchiesi@4
|
14
|
danielebarchiesi@4
|
15 case 'admin/help#github';
|
danielebarchiesi@4
|
16 $output = '<h2>' . t('About') . '</h2>';
|
danielebarchiesi@4
|
17 $output .= '<p>' . t('Display a GitHub-ribbon that links to your GitHub-account') . '</p>';
|
danielebarchiesi@4
|
18 return $output;
|
danielebarchiesi@4
|
19 }
|
danielebarchiesi@4
|
20 }
|
danielebarchiesi@4
|
21
|
danielebarchiesi@4
|
22 /**
|
danielebarchiesi@4
|
23 * Implements hook_permission().
|
danielebarchiesi@4
|
24 */
|
danielebarchiesi@4
|
25 function github_permission() {
|
danielebarchiesi@4
|
26 return array(
|
danielebarchiesi@4
|
27 'administer github' => array(
|
danielebarchiesi@4
|
28 'title' => t('Administer Github'),
|
danielebarchiesi@4
|
29 'description' => t('Change settings for your Github ribbon'),
|
danielebarchiesi@4
|
30 ),
|
danielebarchiesi@4
|
31 );
|
danielebarchiesi@4
|
32 }
|
danielebarchiesi@4
|
33
|
danielebarchiesi@4
|
34 /**
|
danielebarchiesi@4
|
35 * Implements hook_menu().
|
danielebarchiesi@4
|
36 */
|
danielebarchiesi@4
|
37 function github_menu() {
|
danielebarchiesi@4
|
38 $items = array();
|
danielebarchiesi@4
|
39 $items['admin/config/system/github'] = array(
|
danielebarchiesi@4
|
40 'title' => 'GitHub',
|
danielebarchiesi@4
|
41 'description' => 'Configuration for the GitHub module',
|
danielebarchiesi@4
|
42 'access arguments' => array('administer github'),
|
danielebarchiesi@4
|
43 'page callback' => 'drupal_get_form',
|
danielebarchiesi@4
|
44 'page arguments' => array('github_admin_settings'),
|
danielebarchiesi@4
|
45 'file' => 'github.admin.inc',
|
danielebarchiesi@4
|
46 );
|
danielebarchiesi@4
|
47 return $items;
|
danielebarchiesi@4
|
48 }
|
danielebarchiesi@4
|
49
|
danielebarchiesi@4
|
50 /**
|
danielebarchiesi@4
|
51 * Implements hook_page_build().
|
danielebarchiesi@4
|
52 */
|
danielebarchiesi@4
|
53 // function github_page_build(&$page) {
|
danielebarchiesi@4
|
54 function github_page_alter(&$page) {
|
danielebarchiesi@4
|
55 if (variable_get('github_username', '')) {
|
danielebarchiesi@4
|
56
|
danielebarchiesi@4
|
57 $selectedRegion = variable_get('github_page_block', 'page_top');
|
danielebarchiesi@4
|
58
|
danielebarchiesi@4
|
59 $page[(string)$selectedRegion]['github_container'] = array(
|
danielebarchiesi@4
|
60 '#markup' => github_ribbon(),
|
danielebarchiesi@4
|
61 );
|
danielebarchiesi@4
|
62 }
|
danielebarchiesi@4
|
63 }
|
danielebarchiesi@4
|
64
|
danielebarchiesi@4
|
65 /**
|
danielebarchiesi@4
|
66 * Custom function to display markup.
|
danielebarchiesi@4
|
67 */
|
danielebarchiesi@4
|
68 function github_ribbon() {
|
danielebarchiesi@4
|
69 $username = variable_get('github_username', '');
|
danielebarchiesi@4
|
70 $urls = github_ribbon_urls();
|
danielebarchiesi@4
|
71 $placement = variable_get('github_placement', 'left');
|
danielebarchiesi@4
|
72 $colour = variable_get('github_colour', 'red');
|
danielebarchiesi@4
|
73 $image_url = $urls[$placement][$colour];
|
danielebarchiesi@4
|
74
|
danielebarchiesi@4
|
75 return theme('github_ribbon', compact('username', 'image_url', 'placement'));
|
danielebarchiesi@4
|
76 }
|
danielebarchiesi@4
|
77
|
danielebarchiesi@4
|
78 /**
|
danielebarchiesi@4
|
79 * Implements hook_theme() for github_ribbon().
|
danielebarchiesi@4
|
80 */
|
danielebarchiesi@4
|
81 function github_theme($existing, $type, $theme, $path) {
|
danielebarchiesi@4
|
82 return array(
|
danielebarchiesi@4
|
83 'github_ribbon' => array(
|
danielebarchiesi@4
|
84 'variables' => array(
|
danielebarchiesi@4
|
85 'username' => NULL,
|
danielebarchiesi@4
|
86 'image_url' => NULL,
|
danielebarchiesi@4
|
87 'placement' => NULL,
|
danielebarchiesi@4
|
88 ),
|
danielebarchiesi@4
|
89 'template' => 'github_ribbon',
|
danielebarchiesi@4
|
90 ),
|
danielebarchiesi@4
|
91 );
|
danielebarchiesi@4
|
92 }
|
danielebarchiesi@4
|
93
|
danielebarchiesi@4
|
94 /**
|
danielebarchiesi@4
|
95 * Custom function for image urls.
|
danielebarchiesi@4
|
96 */
|
danielebarchiesi@4
|
97 function github_ribbon_urls() {
|
danielebarchiesi@4
|
98 return array(
|
danielebarchiesi@4
|
99 'left' => array(
|
danielebarchiesi@4
|
100 'red' => drupal_get_path('module', 'github') . '/ribbons/forkme_left_red_aa0000.png',
|
danielebarchiesi@4
|
101 'green' => drupal_get_path('module', 'github') . '/ribbons/forkme_left_green_007200.png',
|
danielebarchiesi@4
|
102 'darkblue' => drupal_get_path('module', 'github') . '/ribbons/forkme_left_darkblue_121621.png',
|
danielebarchiesi@4
|
103 'orange' => drupal_get_path('module', 'github') . '/ribbons/forkme_left_orange_ff7600.png',
|
danielebarchiesi@4
|
104 'grey' => drupal_get_path('module', 'github') . '/ribbons/forkme_left_gray_6d6d6d.png',
|
danielebarchiesi@4
|
105 'white' => drupal_get_path('module', 'github') . '/ribbons/forkme_left_white_ffffff.png',
|
danielebarchiesi@4
|
106 ),
|
danielebarchiesi@4
|
107 'right' => array(
|
danielebarchiesi@4
|
108 'red' => drupal_get_path('module', 'github') . '/ribbons/forkme_right_red_aa0000.png',
|
danielebarchiesi@4
|
109 'green' => drupal_get_path('module', 'github') . '/ribbons/forkme_right_green_007200.png',
|
danielebarchiesi@4
|
110 'darkblue' => drupal_get_path('module', 'github') . '/ribbons/forkme_right_darkblue_121621.png',
|
danielebarchiesi@4
|
111 'orange' => drupal_get_path('module', 'github') . '/ribbons/forkme_right_orange_ff7600.png',
|
danielebarchiesi@4
|
112 'grey' => drupal_get_path('module', 'github') . '/ribbons/forkme_right_gray_6d6d6d.png',
|
danielebarchiesi@4
|
113 'white' => drupal_get_path('module', 'github') . '/ribbons/forkme_right_white_ffffff.png',
|
danielebarchiesi@4
|
114 ),
|
danielebarchiesi@4
|
115 );
|
danielebarchiesi@4
|
116 }
|