view sites/all/modules/github/github.module @ 4:ce11bbd8f642

added modules
author danieleb <danielebarchiesi@me.com>
date Thu, 19 Sep 2013 10:38:44 +0100
parents
children
line wrap: on
line source
<?php
/**
 * @file
 * Displays a ribbon with a link to a GitHub-account.
 */

/**
 * Implements hook_help().
 */
function github_help($path, $arg) {
  switch ($path) {
    case 'admin/setting/github':
      return t('Display a ribbon on the site, that links to your GitHub-account');

    case 'admin/help#github';
      $output = '<h2>' . t('About') . '</h2>';
      $output .= '<p>' . t('Display a GitHub-ribbon that links to your GitHub-account') . '</p>';
      return $output;
  }
}

/**
 * Implements hook_permission().
 */
function github_permission() {
  return array(
    'administer github' => array(
      'title' => t('Administer Github'),
      'description' => t('Change settings for your Github ribbon'),
    ),
  );
}

/**
 * Implements hook_menu().
 */
function github_menu() {
  $items = array();
  $items['admin/config/system/github'] = array(
    'title' => 'GitHub',
    'description' => 'Configuration for the GitHub module',
    'access arguments' => array('administer github'),
    'page callback' => 'drupal_get_form',
    'page arguments' => array('github_admin_settings'),
    'file' => 'github.admin.inc',
  );
  return $items;
}

/**
 * Implements hook_page_build().
 */
// function github_page_build(&$page) {
function github_page_alter(&$page) {
  if (variable_get('github_username', '')) {
    
    $selectedRegion = variable_get('github_page_block', 'page_top');

    $page[(string)$selectedRegion]['github_container'] = array(
      '#markup' => github_ribbon(),
    );
  }
}

/**
 * Custom function to display markup.
 */
function github_ribbon() {
  $username = variable_get('github_username', '');
  $urls = github_ribbon_urls();
  $placement = variable_get('github_placement', 'left');
  $colour = variable_get('github_colour', 'red');
  $image_url = $urls[$placement][$colour];

  return theme('github_ribbon', compact('username', 'image_url', 'placement'));
}

/**
 * Implements hook_theme() for github_ribbon().
 */
function github_theme($existing, $type, $theme, $path) {
  return array(
    'github_ribbon' => array(
      'variables' => array(
        'username' => NULL,
        'image_url' => NULL,
        'placement' => NULL,
      ),
      'template' => 'github_ribbon',
    ),
  );
}

/**
 * Custom function for image urls.
 */
function github_ribbon_urls() {
  return array(
    'left' => array(
      'red' => drupal_get_path('module', 'github') . '/ribbons/forkme_left_red_aa0000.png',
      'green' => drupal_get_path('module', 'github') . '/ribbons/forkme_left_green_007200.png',
      'darkblue' => drupal_get_path('module', 'github') . '/ribbons/forkme_left_darkblue_121621.png',
      'orange' => drupal_get_path('module', 'github') . '/ribbons/forkme_left_orange_ff7600.png',
      'grey' => drupal_get_path('module', 'github') . '/ribbons/forkme_left_gray_6d6d6d.png',
      'white' => drupal_get_path('module', 'github') . '/ribbons/forkme_left_white_ffffff.png',
    ),
    'right' => array(
      'red' => drupal_get_path('module', 'github') . '/ribbons/forkme_right_red_aa0000.png',
      'green' => drupal_get_path('module', 'github') . '/ribbons/forkme_right_green_007200.png',
      'darkblue' => drupal_get_path('module', 'github') . '/ribbons/forkme_right_darkblue_121621.png',
      'orange' => drupal_get_path('module', 'github') . '/ribbons/forkme_right_orange_ff7600.png',
      'grey' => drupal_get_path('module', 'github') . '/ribbons/forkme_right_gray_6d6d6d.png',
      'white' => drupal_get_path('module', 'github') . '/ribbons/forkme_right_white_ffffff.png',
    ),
  );
}