/[drupal]/contributions/modules/service_links/service_links.admin.inc
ViewVC logotype

Diff of /contributions/modules/service_links/service_links.admin.inc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.1.2.4, Sat Aug 8 10:05:36 2009 UTC revision 1.1.2.5, Fri Aug 14 00:36:27 2009 UTC
# Line 1  Line 1 
1  <?php  <?php
2  // $Id$  // $Id: service_links.admin.inc,v 1.1.2.4 2009/08/08 10:05:36 thecrow Exp $
3    
4  /**  /**
5   * @file   * @file
# Line 94  function service_links_admin_settings() Line 94  function service_links_admin_settings()
94      '#type' => 'select',      '#type' => 'select',
95      '#title' => t('Service links style'),      '#title' => t('Service links style'),
96      '#default_value' => variable_get('service_links_style', 1),      '#default_value' => variable_get('service_links_style', 1),
97      '#options' => array(SERVICE_LINKS_STYLE_TEXT => t('Only Text'), SERVICE_LINKS_STYLE_IMAGE => t('Only Image'), SERVICE_LINKS_STYLE_IMAGE_AND_TEXT => t('Image and Text')),      '#options' => array(
98          SERVICE_LINKS_STYLE_TEXT => t('Only Text'),
99          SERVICE_LINKS_STYLE_IMAGE => t('Only Image'),
100          SERVICE_LINKS_STYLE_IMAGE_AND_TEXT => t('Image and Text')
101        ),
102    );    );
103    $form['how_to_show_the_links']['service_links_new_window'] = array(    $form['how_to_show_the_links']['service_links_new_window'] = array(
104      '#type' => 'select',      '#type' => 'select',
# Line 150  function service_links_admin_settings() Line 154  function service_links_admin_settings()
154   * Check if domain address textbox is empty   * Check if domain address textbox is empty
155   */   */
156  function service_links_admin_services_validate($form, &$form_state) {  function service_links_admin_services_validate($form, &$form_state) {
157    if ((int) $form_state['values']['service_links_short_links_type'] > 2) {    if (isset($form_state['values']['service_links_short_links_type']) && (int) $form_state['values']['service_links_short_links_type'] > 2) {
158      if (!$form_state['values']['service_links_domain_redirect']) {      if (!$form_state['values']['service_links_domain_redirect']) {
159        form_set_error('service_links_domain_redirect', t('Domain redirect address is not set.'));        form_set_error('service_links_domain_redirect', t('Domain redirect address is not set.'));
160      }      }
# Line 159  function service_links_admin_services_va Line 163  function service_links_admin_services_va
163      }      }
164    }    }
165  }  }
166    
167  /**  /**
168   * Menu callback administration settings for services links list.   * Menu callback administration settings for services links list.
169   */   */
170  function service_links_admin_services() {  function service_links_admin_services() {
171    $settings = array();    $settings = array();
172    
173    $images_path = drupal_get_path('module', 'service_links') .'/images/';    $services = service_links_get_links(NULL, TRUE);
   //$services = module_invoke_all('service_links');  
   $modules_services = _service_links_invoke_all();  
   
174    $settings['show'] = variable_get('service_links_show', NULL);    $settings['show'] = variable_get('service_links_show', NULL);
175    $settings['weight'] = variable_get('service_links_weight', NULL);    $settings['weight'] = variable_get('service_links_weight', NULL);
176    
# Line 177  function service_links_admin_services() Line 178  function service_links_admin_services()
178    $form['service_links']['service_links_show'] = array('#tree' => TRUE);    $form['service_links']['service_links_show'] = array('#tree' => TRUE);
179    $form['service_links']['service_links_weight'] = array('#tree' => TRUE);    $form['service_links']['service_links_weight'] = array('#tree' => TRUE);
180    
181    if (!empty($modules_services)) {    foreach ($services as $service_id => $service) {
182      foreach ($modules_services as $modules => $services) {      $icon = isset($service['icon']) ? $service['icon'] : drupal_get_path('module', 'service_links') ."/images/$service_id.png";
183        foreach ($services as $service_id => $service) {      $weight = isset($settings['weight'][$service_id]) ? $settings['weight'][$service_id] : 0;
184          $icon = isset($service['icon']) ? $images_path . $service['icon'] : $images_path . $service_id .'.png';  
185          $weight = isset($settings['weight'][$service_id]) ? $settings['weight'][$service_id] : 0;      $form['service_links']['service_links_show'][$service_id] = array (
186          '#service' => ucwords(str_replace('_', ' ', $service['module'])),
187          $form['service_links']['service_links_show'][$service_id] = array (        '#weight' => $weight,
188            '#service' => $modules,        '#type' => 'checkbox',
189            '#weight' => $weight,        '#title' => theme('image', $icon). " " . t('Show %name link', array('%name' => $service['name'])),
190            '#type' => 'checkbox',        '#return_value' => 1,
191            '#title' => theme('image', $icon). " " . t('Show %name link', array('%name' => $service['name'])),        '#default_value' => isset($settings['show'][$service_id]) ? $settings['show'][$service_id] : 0,
192            '#return_value' => 1,      );
193            '#default_value' => isset($settings['show'][$service_id]) ? $settings['show'][$service_id] : 0,      $form['service_links']['service_links_weight'][$service_id] = array(
194          );        '#type' => 'weight',
195          $form['service_links']['service_links_weight'][$service_id] = array(        '#delta' => 100,
196            '#type' => 'weight',        '#default_value' => $weight,
197            '#delta' => 100,      );
           '#default_value' => $weight,  
         );  
       }  
     }  
198    }    }
199    return system_settings_form($form);    return system_settings_form($form);
200  }  }
   
 /**  
  * Invoke hook_service_links() associating the info about modules  
  */  
 function _service_links_invoke_all() {  
   $modules = module_implements('service_links');  
   if (empty($modules)) return;  
   
   $return = array();  
   $args = func_get_args();  
   $names = _service_links_module_info($modules);  
   foreach ($modules as $module) {  
     $function = $module .'_service_links';  
     $result = call_user_func_array($function, $args);  
     $return[$names[$module]] = $result;  
   }  
   return $return;  
 }  
   
 /**  
  * Catch the module info  
  */  
 function _service_links_module_info($modules = array()) {  
   if (empty($modules)) return;  
   
   $return = array();  
   $placeholders = implode(',', array_fill(0, count($modules), "'%s'"));  
   $result = db_query("SELECT name, info FROM {system} WHERE type = 'module' AND status = 1 AND name in ($placeholders)", $modules);  
   
   while ($modules = db_fetch_object($result)) {  
     $info = unserialize($modules->info);  
     $return[$modules->name] = $info['name'];  
   }  
   
   return $return;  
 }  
   
 ?>  

Legend:
Removed from v.1.1.2.4  
changed lines
  Added in v.1.1.2.5

  ViewVC Help
Powered by ViewVC 1.1.2