View source
<?php
$plugin = array(
'title' => t('Social Media Links'),
'description' => t('Create a Social Media Links widget.'),
'category' => array(
t('Widgets'),
0,
),
'single' => FALSE,
'admin info' => 'social_media_links_widget_admin_info',
'edit form' => 'social_media_links_widget_form',
'render callback' => 'social_media_links_widget_render',
'defaults' => array(
'platforms' => variable_get('social_media_links_platforms', array()),
'appearance' => variable_get('social_media_links_appearance', array()),
'icon_style' => variable_get('social_media_links_icon_style', ''),
'link_attributes' => variable_get('social_media_links_link_attributes', array()),
),
);
function social_media_links_widget_admin_info($subtype, $conf, $context = NULL) {
if (!empty($conf)) {
$platform_infos = social_media_links_platforms();
$active_platforms = array();
foreach ($conf['platforms'] as $name => $platform) {
if (!empty($platform['platform_value'])) {
$active_platforms[] = $platform_infos[$name]['title'];
}
}
$content = t('Activated Platforms: @platforms', array(
'@platforms' => implode(', ', $active_platforms),
));
$content .= '<br />' . t('Iconset: @iconset', array(
'@iconset' => $conf['icon_style'],
));
$block = new stdClass();
$block->title = $conf['override_title'] ? $conf['override_title_text'] : t('Follow Us');
$block->content = $content;
return $block;
}
}
function social_media_links_widget_form($form, &$form_state) {
$form += social_media_links_form($form_state['conf']);
return $form;
}
function social_media_links_widget_form_submit($form, &$form_state) {
foreach (element_children($form) as $key) {
if (isset($form_state['values'][$key])) {
$form_state['conf'][$key] = $form_state['values'][$key];
}
}
if (isset($form_state['values']['icon_style'])) {
$form_state['conf']['icon_style'] = $form_state['values']['icon_style'];
}
}
function social_media_links_widget_render($subtype, $conf, $panel_args) {
$block = new stdClass();
$platforms = _social_media_links_cleanup_platforms($conf['platforms']);
$content = array(
'#theme' => 'social_media_links_platforms',
'#platform_values' => $platforms,
'#icon_style' => $conf['icon_style'],
'#appearance' => $conf['appearance'],
'#link_attributes' => $conf['link_attributes'],
'#attributes' => array(
'class' => array(
'social-media-links',
'platforms',
),
),
);
$content['#attached']['css'][] = drupal_get_path('module', 'social_media_links') . '/social_media_links.css';
$block->title = $conf['override_title'] ? $conf['override_title_text'] : t('Follow Us');
$block->content = $content;
return $block;
}