<?php
if (! defined('ABSPATH')) exit;  // if direct access
add_filter('post_grid_layout_elements', 'post_grid_pro_wp_postratings_layout_elements');
function post_grid_pro_wp_postratings_layout_elements($elements_group)
{
  $elements_group['star_rating']['items']['wp_postratings'] = array('name' => __('WP-PostRatings', 'post-grid'));
  return $elements_group;
}
add_action('post_grid_layout_element_option_wp_postratings', 'post_grid_layout_element_option_wp_postratings');
function post_grid_layout_element_option_wp_postratings($parameters)
{
  $settings_tabs_field = new settings_tabs_field();
  $input_name = isset($parameters['input_name']) ? $parameters['input_name'] : '{input_name}';
  $element_data = isset($parameters['element_data']) ? $parameters['element_data'] : array();
  $element_index = isset($parameters['index']) ? $parameters['index'] : '';
  $size = isset($element_data['size']) ? $element_data['size'] : '';
  $color = isset($element_data['color']) ? $element_data['color'] : '';
  $font_size = isset($element_data['font_size']) ? $element_data['font_size'] : '';
  $margin = isset($element_data['margin']) ? $element_data['margin'] : '';
  $text_align = isset($element_data['text_align']) ? $element_data['text_align'] : '';
  $css = isset($element_data['css']) ? $element_data['css'] : '';
  $css_hover = isset($element_data['css_hover']) ? $element_data['css_hover'] : '';
?>
  <div class="item">
    <div class="element-title header ">
      <span class="remove" onclick="jQuery(this).parent().parent().remove()"><i class="fas fa-times"></i></span>
      <span class="sort"><i class="fas fa-sort"></i></span>
      <span class="expand"><?php echo esc_html__('WP-PostRatings', 'post-grid'); ?></span>
    </div>
    <div class="element-options options">
      <?php
      $args = array(
        'id'    => 'size',
        'css_id'    => $element_index . '_wp_postratings',
        'parent' => $input_name . '[wp_postratings]',
        'title'    => esc_html__('size', 'post-grid'),
        'details'  => esc_html__('Icon size, number only, ex: 20', 'post-grid'),
        'type'    => 'text',
        'value'    => $size,
        'default'    => '20',
        'placeholder'    => '20',
      );
      $settings_tabs_field->generate_field($args);
      $args = array(
        'id'    => 'color',
        'css_id'    => $element_index . '_wp_postratings',
        'parent' => $input_name . '[wp_postratings]',
        'title'    => esc_html__('Color', 'post-grid'),
        'details'  => esc_html__('Title text color.', 'post-grid'),
        'type'    => 'colorpicker',
        'value'    => $color,
        'default'    => '',
      );
      $settings_tabs_field->generate_field($args);
      $args = array(
        'id'    => 'font_size',
        'css_id'    => $element_index . '_font_size',
        'parent' => $input_name . '[wp_postratings]',
        'title'    => esc_html__('Font size', 'post-grid'),
        'details'  => esc_html__('Set font size.', 'post-grid'),
        'type'    => 'text',
        'value'    => $font_size,
        'default'    => '',
        'placeholder'    => '14px',
      );
      $settings_tabs_field->generate_field($args);
      $args = array(
        'id'    => 'margin',
        'css_id'    => $element_index . '_margin',
        'parent' => $input_name . '[wp_postratings]',
        'title'    => esc_html__('Margin', 'post-grid'),
        'details'  => esc_html__('Set margin.', 'post-grid'),
        'type'    => 'text',
        'value'    => $margin,
        'default'    => '',
        'placeholder'    => '5px 0',
      );
      $settings_tabs_field->generate_field($args);
      $args = array(
        'id'    => 'text_align',
        'css_id'    => $element_index . '_text_align',
        'parent' => $input_name . '[wp_postratings]',
        'title'    => esc_html__('Text align', 'post-grid'),
        'details'  => esc_html__('Choose text align.', 'post-grid'),
        'type'    => 'select',
        'value'    => $text_align,
        'default'    => 'left',
        'args'    => array('left' => esc_html__('Left', 'post-grid'), 'right' => esc_html__('Right', 'post-grid'), 'center' => esc_html__('Center', 'post-grid')),
      );
      $settings_tabs_field->generate_field($args);
      $args = array(
        'id'    => 'css',
        'css_id'    => $element_index . '_css',
        'parent' => $input_name . '[wp_postratings]',
        'title'    => esc_html__('Custom CSS', 'post-grid'),
        'details'  => esc_html__('Set csutom CSS.', 'post-grid'),
        'type'    => 'textarea',
        'value'    => $css,
        'default'    => '',
        'placeholder'    => '',
      );
      $settings_tabs_field->generate_field($args);
      $args = array(
        'id'    => 'css_hover',
        'css_id'    => $element_index . '_css_hover',
        'parent' => $input_name . '[wp_postratings]',
        'title'    => esc_html__('Hover CSS', 'post-grid'),
        'details'  => esc_html__('Set hover custom CSS.', 'post-grid'),
        'type'    => 'textarea',
        'value'    => $css_hover,
        'default'    => '',
        'placeholder'    => '',
      );
      $settings_tabs_field->generate_field($args);
      ob_start();
      ?>
      <textarea readonly type="text"
        onclick="this.select();">.element_<?php echo esc_attr($element_index); ?>{}</textarea>
      <?php
      $html = ob_get_clean();
      $args = array(
        'id'    => 'use_css',
        'title'    => esc_html__('Use of CSS', 'post-grid'),
        'details'  => esc_html__('Use following class selector to add custom CSS for this element.', 'post-grid'),
        'type'    => 'custom_html',
        'html'    => $html,
      );
      $settings_tabs_field->generate_field($args);
      ?>
    </div>
  </div>
  <?php
}
add_action('post_grid_layout_element_wp_postratings', 'post_grid_layout_element_wp_postratings');
function post_grid_layout_element_wp_postratings($args)
{
  $element  = isset($args['element']) ? $args['element'] : array();
  $elementIndex  = isset($args['index']) ? $args['index'] : '';
  $post_id = isset($args['post_id']) ? $args['post_id'] : '';
  if (empty($post_id)) return;
  $title = get_the_title($post_id);
  $custom_class = isset($element['custom_class']) ? $element['custom_class'] : '';
  $size = isset($element['size']) ? $element['size'] : '20';
  if (function_exists('the_ratings')) {
  ?>
    <div
      class="element element_<?php echo esc_attr($elementIndex); ?> <?php echo esc_attr($custom_class); ?> wp_postratings ">
      <?php the_ratings(); ?>
    </div>
  <?php
  }
}
add_action('post_grid_layout_element_css_wp_postratings', 'post_grid_layout_element_css_wp_postratings', 10);
function post_grid_layout_element_css_wp_postratings($args)
{
  $index = isset($args['index']) ? $args['index'] : '';
  $element = isset($args['element']) ? $args['element'] : array();
  $layout_id = isset($args['layout_id']) ? $args['layout_id'] : '';
  $color = isset($element['color']) ? $element['color'] : '';
  $font_size = isset($element['font_size']) ? $element['font_size'] : '';
  $margin = isset($element['margin']) ? $element['margin'] : '';
  $text_align = isset($element['text_align']) ? $element['text_align'] : 'left';
  $css = isset($element['css']) ? $element['css'] : '';
  $css_hover = isset($element['css_hover']) ? $element['css_hover'] : '';
  ?>
  <style type="text/css">
    .layout-<?php echo esc_attr($layout_id);
            ?>.element_<?php echo esc_attr($index);
                        ?> {
      <?php if (!empty($color)): ?>color: <?php echo esc_attr($color);
                                          ?>;
      <?php endif;
      ?><?php if (!empty($font_size)): ?>font-size: <?php echo esc_attr($font_size);
                                                    ?>;
      <?php endif;
      ?><?php if (!empty($margin)): ?>margin: <?php echo esc_attr($margin);
                                              ?>;
      <?php endif;
      ?><?php if (!empty($text_align)): ?>text-align: <?php echo esc_attr($text_align);
                                                      ?>;
      <?php endif;
      ?><?php if (!empty($css)): ?><?php echo esc_attr($css);
                                    ?><?php endif;
                                      ?>
    }

    <?php if (!empty($css_hover)): ?>.layout-<?php echo esc_attr($layout_id);
                                              ?>.element_<?php echo esc_attr($index);
                                                          ?>:hover {
      <?php echo esc_attr($css_hover);
      ?>
    }

    <?php endif;
    ?>
  </style>
<?php
}
