| 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 |
| 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', |
| 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 |
} |
} |
| 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 |
|
|
| 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; |
|
|
} |
|
|
|
|
|
?> |
|