vamtam-testimonials.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <?php
  2. /**
  3. * @class VamtamTestimonialsModule
  4. */
  5. class VamtamTestimonialsModule extends FLBuilderModule {
  6. /**
  7. * @method __construct
  8. */
  9. public function __construct() {
  10. $path = trailingslashit( 'modules/' . basename( dirname( __FILE__ ) ) );
  11. parent::__construct( array(
  12. 'name' => __( 'Testimonials', 'vamtam-elements-b' ),
  13. 'description' => __( 'Display customer testimonials.', 'vamtam-elements-b' ),
  14. 'category' => __( 'VamTam Modules', 'vamtam-elements-b' ),
  15. 'partial_refresh' => true,
  16. 'dir' => VAMTAMEL_B_DIR . $path,
  17. 'url' => VAMTAMEL_B_URL . $path,
  18. ));
  19. }
  20. /**
  21. * Renders the schema structured data for the current
  22. * post in the loop.
  23. *
  24. * @since 1.7.4
  25. * @return void
  26. */
  27. static public function schema_meta() {
  28. global $vamtam_theme;
  29. // General Schema Meta
  30. echo '<meta itemscope itemprop="mainEntityOfPage" itemid="' . esc_attr( get_permalink() ) . '" />';
  31. echo '<meta itemprop="datePublished" content="' . esc_attr( get_the_time( 'Y-m-d' ) ) . '" />';
  32. echo '<meta itemprop="dateModified" content="' . esc_attr( get_the_modified_date( 'Y-m-d' ) ) . '" />';
  33. // Publisher Schema Meta
  34. echo '<div itemprop="publisher" itemscope itemtype="https://schema.org/Organization">';
  35. echo '<meta itemprop="name" content="' . esc_attr( get_bloginfo( 'name' ) ) . '">';
  36. echo '<meta itemprop="url" content="' . esc_attr( get_home_url() ) . '">';
  37. if ( isset( $vamtam_theme['header-logo-type'] ) && 'image' === $vamtam_theme['header-logo-type'] ) {
  38. echo '<div itemprop="logo" itemscope itemtype="https://schema.org/ImageObject">';
  39. echo '<meta itemprop="url" content="' . esc_url( $vamtam_theme['custom-header-logo'] ) . '">';
  40. echo '</div>';
  41. }
  42. echo '</div>';
  43. // Image Schema Meta
  44. if ( has_post_thumbnail() ) {
  45. $image = wp_get_attachment_image_src( get_post_thumbnail_id( get_the_ID() ), 'full' );
  46. if ( is_array( $image ) ) {
  47. echo '<div itemscope itemprop="image" itemtype="http://schema.org/ImageObject">';
  48. echo '<meta itemprop="url" content="' . esc_url( $image[0] ) . '" />';
  49. echo '<meta itemprop="width" content="' . intval( $image[1] ) . '" />';
  50. echo '<meta itemprop="height" content="' . intval( $image[2] ) . '" />';
  51. echo '</div>';
  52. }
  53. }
  54. }
  55. /**
  56. * Renders the schema itemtype for the current
  57. * post in the loop.
  58. *
  59. * @since 1.7.4
  60. * @return void
  61. */
  62. static public function schema_itemtype() {
  63. echo 'http://schema.org/Review';
  64. }
  65. }
  66. /**
  67. * Register the module and its form settings.
  68. */
  69. FLBuilder::register_module('VamtamTestimonialsModule', array(
  70. 'layout' => array(
  71. 'title' => __( 'Layout', 'vamtam-elements-b' ),
  72. 'sections' => array(
  73. 'general' => array(
  74. 'title' => '',
  75. 'fields' => array(
  76. 'layout_type' => array(
  77. 'type' => 'select',
  78. 'label' => __( 'Type', 'vamtam-elements-b' ),
  79. 'default' => 'slider',
  80. 'options' => array(
  81. 'list' => esc_html__( 'List', 'vamtam-elements-b' ),
  82. 'slider' => esc_html__( 'Slider', 'vamtam-elements-b' ),
  83. ),
  84. 'toggle' => array(
  85. 'slider' => array(
  86. 'sections' => array( 'slider' ),
  87. ),
  88. ),
  89. ),
  90. 'alignment' => array(
  91. 'type' => 'select',
  92. 'label' => __( 'Alignment', 'vamtam-elements-b' ),
  93. 'default' => 'left',
  94. 'options' => array(
  95. 'left' => esc_html__( 'Left', 'vamtam-elements-b' ),
  96. 'center' => esc_html__( 'Center', 'vamtam-elements-b' ),
  97. 'right' => esc_html__( 'Right', 'vamtam-elements-b' ),
  98. ),
  99. ),
  100. ),
  101. ),
  102. 'content' => array(
  103. 'title' => __( 'Content', 'vamtam-elements-b' ),
  104. 'fields' => array(
  105. 'show_rating' => array(
  106. 'type' => 'select',
  107. 'label' => __( 'Show Rating', 'vamtam-elements-b' ),
  108. 'default' => '1',
  109. 'options' => array(
  110. '1' => __( 'Show', 'vamtam-elements-b' ),
  111. '0' => __( 'Hide', 'vamtam-elements-b' ),
  112. ),
  113. ),
  114. ),
  115. ),
  116. 'slider' => array(
  117. 'title' => __( 'Slider', 'vamtam-elements-b' ),
  118. 'fields' => array(
  119. 'autorotate' => array(
  120. 'type' => 'select',
  121. 'label' => __( 'Rotate Automatically', 'vamtam-elements-b' ),
  122. 'default' => '1',
  123. 'options' => array(
  124. '1' => __( 'Yes', 'vamtam-elements-b' ),
  125. '0' => __( 'No', 'vamtam-elements-b' ),
  126. ),
  127. ),
  128. ),
  129. ),
  130. ),
  131. ),
  132. 'query' => array(
  133. 'title' => __( 'Query', 'vamtam-elements-b' ),
  134. 'file' => dirname( __FILE__ ) . '/loop-settings.php',
  135. ),
  136. ));