vamtam-icon-group.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. <?php
  2. /**
  3. * @class VamtamIconGroupModule
  4. */
  5. class VamtamIconGroupModule extends FLBuilderModule {
  6. /**
  7. * @method __construct
  8. */
  9. public function __construct() {
  10. $path = trailingslashit( 'modules/' . basename( dirname( __FILE__ ) ) );
  11. parent::__construct(array(
  12. 'name' => __( 'Icon Group', 'vamtam-elements-b' ),
  13. 'description' => __( 'Display a group of linked Font Awesome icons.', 'vamtam-elements-b' ),
  14. 'category' => __( 'VamTam Modules', 'vamtam-elements-b' ),
  15. 'editor_export' => false,
  16. 'partial_refresh' => true,
  17. 'dir' => VAMTAMEL_B_DIR . $path,
  18. 'url' => VAMTAMEL_B_URL . $path,
  19. ));
  20. }
  21. }
  22. /**
  23. * Register the module and its form settings.
  24. */
  25. FLBuilder::register_module('VamtamIconGroupModule', array(
  26. 'icons' => array(
  27. 'title' => __( 'Icons', 'vamtam-elements-b' ),
  28. 'sections' => array(
  29. 'general' => array(
  30. 'title' => '',
  31. 'fields' => array(
  32. 'icons' => array(
  33. 'type' => 'form',
  34. 'label' => __( 'Icon', 'vamtam-elements-b' ),
  35. 'form' => 'icon_group_form', // ID from registered form below
  36. 'preview_text' => 'icon', // Name of a field to use for the preview text
  37. 'multiple' => true,
  38. ),
  39. ),
  40. ),
  41. ),
  42. ),
  43. 'style' => array( // Tab
  44. 'title' => __( 'Style', 'vamtam-elements-b' ), // Tab title
  45. 'sections' => array( // Tab Sections
  46. 'colors' => array( // Section
  47. 'title' => __( 'Colors', 'vamtam-elements-b' ), // Section Title
  48. 'fields' => array( // Section Fields
  49. 'color' => array(
  50. 'type' => 'vamtam-color',
  51. 'label' => __( 'Color', 'vamtam-elements-b' ),
  52. ),
  53. 'hover_color' => array(
  54. 'type' => 'vamtam-color',
  55. 'label' => __( 'Hover Color', 'vamtam-elements-b' ),
  56. 'preview' => array(
  57. 'type' => 'none',
  58. ),
  59. ),
  60. 'bg_color' => array(
  61. 'type' => 'vamtam-color',
  62. 'label' => __( 'Background Color', 'vamtam-elements-b' ),
  63. ),
  64. 'bg_hover_color' => array(
  65. 'type' => 'vamtam-color',
  66. 'label' => __( 'Background Hover Color', 'vamtam-elements-b' ),
  67. 'preview' => array(
  68. 'type' => 'none',
  69. ),
  70. ),
  71. ),
  72. ),
  73. 'structure' => array( // Section
  74. 'title' => __( 'Structure', 'vamtam-elements-b' ), // Section Title
  75. 'fields' => array( // Section Fields
  76. 'size' => array(
  77. 'type' => 'text',
  78. 'label' => __( 'Size', 'vamtam-elements-b' ),
  79. 'default' => '30',
  80. 'maxlength' => '3',
  81. 'size' => '4',
  82. 'description' => 'px',
  83. ),
  84. 'spacing' => array(
  85. 'type' => 'text',
  86. 'label' => __( 'Spacing', 'vamtam-elements-b' ),
  87. 'default' => '10',
  88. 'maxlength' => '2',
  89. 'size' => '4',
  90. 'description' => 'px',
  91. ),
  92. 'align' => array(
  93. 'type' => 'select',
  94. 'label' => __( 'Alignment', 'vamtam-elements-b' ),
  95. 'default' => 'center',
  96. 'options' => array(
  97. 'center' => __( 'Center', 'vamtam-elements-b' ),
  98. 'left' => __( 'Left', 'vamtam-elements-b' ),
  99. 'right' => __( 'Right', 'vamtam-elements-b' ),
  100. ),
  101. ),
  102. ),
  103. ),
  104. ),
  105. ),
  106. ));
  107. /**
  108. * Register a settings form to use in the "form" field type above.
  109. */
  110. FLBuilder::register_settings_form('icon_group_form', array(
  111. 'title' => __( 'Add Icon', 'vamtam-elements-b' ),
  112. 'tabs' => array(
  113. 'general' => array( // Tab
  114. 'title' => __( 'General', 'vamtam-elements-b' ), // Tab title
  115. 'sections' => array( // Tab Sections
  116. 'general' => array( // Section
  117. 'title' => '', // Section Title
  118. 'fields' => array( // Section Fields
  119. 'icon' => array(
  120. 'type' => 'icon',
  121. 'label' => __( 'Icon', 'vamtam-elements-b' ),
  122. ),
  123. 'link' => array(
  124. 'type' => 'link',
  125. 'label' => __( 'Link', 'vamtam-elements-b' ),
  126. ),
  127. 'link_target' => array(
  128. 'type' => 'select',
  129. 'label' => __( 'Link Target', 'vamtam-elements-b' ),
  130. 'default' => '_blank',
  131. 'options' => array(
  132. '_self' => __( 'Same Window', 'vamtam-elements-b' ),
  133. '_blank' => __( 'New Window', 'vamtam-elements-b' ),
  134. ),
  135. ),
  136. ),
  137. ),
  138. ),
  139. ),
  140. 'style' => array( // Tab
  141. 'title' => __( 'Style', 'vamtam-elements-b' ), // Tab title
  142. 'sections' => array( // Tab Sections
  143. 'colors' => array( // Section
  144. 'title' => __( 'Colors', 'vamtam-elements-b' ), // Section Title
  145. 'fields' => array( // Section Fields
  146. 'color' => array(
  147. 'type' => 'vamtam-color',
  148. 'label' => __( 'Color', 'vamtam-elements-b' ),
  149. ),
  150. 'hover_color' => array(
  151. 'type' => 'vamtam-color',
  152. 'label' => __( 'Hover Color', 'vamtam-elements-b' ),
  153. 'preview' => array(
  154. 'type' => 'none',
  155. ),
  156. ),
  157. 'bg_color' => array(
  158. 'type' => 'vamtam-color',
  159. 'label' => __( 'Background Color', 'vamtam-elements-b' ),
  160. ),
  161. 'bg_hover_color' => array(
  162. 'type' => 'vamtam-color',
  163. 'label' => __( 'Background Hover Color', 'vamtam-elements-b' ),
  164. 'preview' => array(
  165. 'type' => 'none',
  166. ),
  167. ),
  168. ),
  169. ),
  170. ),
  171. ),
  172. ),
  173. ));