function _likebtn_get_markup in Like Button 7
Same name and namespace in other branches
- 8.2 likebtn.module \_likebtn_get_markup()
Getting LikeBtn markup.
5 calls to _likebtn_get_markup()
- likebtn_entity_view in ./
likebtn.module - Implements hook_entity_view().
- likebtn_field_formatter_view in ./
likebtn.module - Implements hook_field_formatter_view().
- likebtn_filter_process in ./
likebtn.module - Process callback for callback_filter_process.
- _likebtn_get_views_widget_markup in ./
likebtn.module - Get LikeBtn for view.
- _likebtn_settings_form in ./
likebtn.module - Custom function returning settings form.
File
- ./
likebtn.module, line 318 - Implements the LikeBtn module.
Code
function _likebtn_get_markup($element_name, $element_id, $values = NULL, $wrap = TRUE, $include_entity_data = TRUE) {
$prepared_settings = array();
// Run sunchronization.
$likebtn = new LikeBtn();
$likebtn
->runSyncVotes();
$settings = unserialize(LIKEBTN_SETTINGS);
$data = '';
if ($element_name && $element_id) {
$data .= 'data-identifier="' . $element_name . '_' . $element_id . '"';
}
// Website subdirectory.
if (variable_get('likebtn_settings_subdirectory', '')) {
$data .= ' data-subdirectory="' . variable_get('likebtn_settings_subdirectory', '') . '" ';
}
$data .= ' data-engine="drupal" ';
if (defined('VERSION')) {
$data .= ' data-engine_v="' . VERSION . '" ';
}
$data .= ' data-plugin_v="' . LIKEBTN_VERSION . '" ';
foreach ($settings as $option_name => $option_info) {
if ($values) {
// For field.
if (isset($values['likebtn_settings_' . $option_name])) {
$option_value = $values['likebtn_settings_' . $option_name];
}
elseif (isset($values[$option_name])) {
$option_value = $values[$option_name];
}
else {
$option_value = '';
}
}
else {
if (function_exists('variable_get_value')) {
$option_value = variable_get_value('likebtn_settings_' . $option_name, array(
'default' => '',
));
}
else {
$option_value = variable_get('likebtn_settings_' . $option_name, '');
}
}
$option_value_prepared = _likebtn_prepare_option($option_name, $option_value);
$prepared_settings[$option_name] = $option_value_prepared;
// Do not add option if it has default value.
if ($option_value !== '' && $option_value != $settings[$option_name]['default']) {
$data .= ' data-' . $option_name . '="' . $option_value_prepared . '" ';
}
}
// Add item options.
if ($include_entity_data) {
if (empty($prepared_settings['item_url']) || empty($prepared_settings['item_title'])) {
$entity_list = array();
$entity = NULL;
$entity_url = '';
$entity_title = '';
$entity_date = '';
// Ignore dummy entity name.
if (entity_get_info($element_name)) {
// For fields.
$parent_entity_id = preg_replace('/_.*/', '', $element_id);
$entity_list = entity_load($element_name, array(
$parent_entity_id,
));
}
if (!empty($entity_list)) {
$entity = array_shift($entity_list);
}
if ($entity && (isset($entity->title) || isset($entity->subject))) {
// URL.
if (empty($prepared_settings['item_url'])) {
$entity_url_object = entity_uri($element_name, $entity);
if (!empty($entity_url_object['path'])) {
global $base_url;
$entity_url = $base_url . '/' . $entity_url_object['path'];
}
}
// Title.
if (empty($prepared_settings['item_title'])) {
if (isset($entity->title)) {
$entity_title = $entity->title;
}
elseif (isset($entity->subject)) {
$entity_title = $entity->subject;
}
}
// Date.
if (empty($prepared_settings['item_date'])) {
if (isset($entity->created)) {
$entity_date = date("c", $entity->created);
}
}
}
if ($entity_url) {
$data .= ' data-item_url="' . $entity_url . '" ';
}
if ($entity_title) {
$entity_title = htmlspecialchars($entity_title);
$data .= ' data-item_title="' . $entity_title . '" ';
}
if ($entity_date) {
$data .= ' data-item_date="' . $entity_date . '" ';
}
}
}
//drupal_add_js("//w.likebtn.com/js/w/widget.js", array('type' => 'external', 'scope' => 'footer'));
$widget_script = <<<WIDGET_SCRIPT
(function(d, e, s) {a = d.createElement(e);m = d.getElementsByTagName(e)[0];a.async = 1;a.src = s;m.parentNode.insertBefore(a, m)})(document, 'script', '//w.likebtn.com/js/w/widget.js'); if (typeof(LikeBtn) != "undefined") { LikeBtn.init(); }
WIDGET_SCRIPT;
drupal_add_js($widget_script, array(
'type' => 'inline',
'scope' => 'footer',
));
$public_url = _likebtn_public_url();
$markup = <<<MARKUP
<!-- LikeBtn.com BEGIN -->
<span class="likebtn-wrapper" {<span class="php-variable">$data</span>}></span>
<script type="text/javascript">if (typeof(LikeBtn) != "undefined") { LikeBtn.init(); }</script>
<!-- LikeBtn.com END -->
MARKUP;
// HTML before.
$html_before = '';
if (isset($values['likebtn_html_before'])) {
$html_before = $values['likebtn_html_before'];
}
else {
$html_before = variable_get('likebtn_html_before');
}
if (trim($html_before)) {
$markup = $html_before . $markup;
}
// HTML after.
$html_after = '';
if (isset($values['likebtn_html_after'])) {
$html_after = $values['likebtn_html_after'];
}
else {
$html_after = variable_get('likebtn_html_after');
}
if (trim($html_after)) {
$markup = $markup . $html_after;
}
// Alignment.
if ($wrap) {
$alignment = '';
if (isset($values['likebtn_alignment'])) {
$alignment = $values['likebtn_alignment'];
}
else {
$alignment = variable_get('likebtn_alignment');
}
if ($alignment == 'right') {
$markup = '<div style="text-align:right" class="likebtn_container">' . $markup . '</div>';
}
elseif ($alignment == 'center') {
$markup = '<div style="text-align:center" class="likebtn_container">' . $markup . '</div>';
}
else {
$markup = '<div class="likebtn_container">' . $markup . '</div>';
}
}
return $markup;
}