ru-se.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

RowsListControl.php (5167B)


      1 <?php
      2 
      3 namespace Materialis\Customizer\Controls;
      4 
      5 class RowsListControl extends \Materialis\Customizer\BaseControl
      6 {
      7 
      8     public function init()
      9     {
     10         $this->cpData['insertText'] = isset($this->cpData['insertText']) ? $this->cpData['insertText'] : 'Click to insert';
     11         $this->cpData['insertText'] = __($this->cpData['insertText'], 'cloudpress-companion');
     12         $this->cpData['type']       = isset($this->cpData['type']) ? $this->cpData['type'] : "mod_changer";
     13     }
     14 
     15     public function enqueue()
     16     {
     17         $jsUrl = $this->companion()->assetsRootURL() . "/js/customizer";
     18         wp_enqueue_script('companion-row-list-control', $jsUrl . "/row-list-control.js");
     19     }
     20 
     21     public function getSettingAttr($setting_key = 'default')
     22     {
     23         if ( ! isset($this->settings[$setting_key])) {
     24             return '';
     25         }
     26 
     27         echo 'data-setting-link="' . esc_attr($this->settings[$setting_key]->id) . '"';
     28     }
     29 
     30     public function dataAttrs()
     31     {
     32         $data = 'data-name="' . $this->id . '"';
     33 
     34         echo $data;
     35     }
     36 
     37     public function dateSelection()
     38     {
     39         $data = 'data-selection="radio"';
     40 
     41         if (isset($this->cpData['selection'])) {
     42             $data = 'data-selection="' . $this->cpData['selection'] . '"';
     43         }
     44 
     45         echo $data;
     46     }
     47 
     48 
     49     public function render_content()
     50     {
     51         ?>
     52         <div <?php $this->dateSelection(); ?> data-type="row-list-control" data-apply="<?php echo $this->cpData['type'] ?>" class="list-holder">
     53             <?php ($this->cpData['type'] === "mod_changer") ? $this->renderModChanger() : $this->renderPresetsChanger() ?>
     54         </div>
     55         <?php
     56     }
     57 
     58     public function renderModChanger()
     59     {
     60         $items   = $this->getSourceData();
     61         $version = $this->companion()->version;
     62         ?>
     63 
     64         <ul <?php $this->dataAttrs(); ?> class="list rows-list">
     65             <?php foreach ($items as $item): ?>
     66 
     67                 <?php $used = ($item['id'] === $this->value()) ? "already-in-page" : ""; ?>
     68 
     69                 <li class="item available-item <?php echo $used; ?>" data-id="<?php echo $item['id']; ?>">
     70                     <div class="image-holder" style="background-position:center center;">
     71                         <img data-src="<?php echo $item['thumb']; ?>?v=<?php echo $version; ?>" src=""/>
     72                     </div>
     73 
     74                     <span data-id="<?php echo $item['id']; ?>" class="available-item-hover-button" <?php $this->getSettingAttr(); ?> ><?php echo $this->cpData['insertText']; ?></span>
     75                     <div title="Section is already in page" class="checked-icon"></div>
     76                     <div title="Pro Only" class="pro-icon"></div>
     77                     <span class="item-preview" data-preview="<?php echo $item['preview']; ?>">
     78 						<i class="icon"></i>
     79 					</span>
     80 
     81                     <?php if (isset($item['description'])): ?>
     82                         <span class="description"> <?php echo $item['description']; ?> </span>
     83                     <?php endif; ?>
     84                 </li>
     85             <?php endforeach; ?>
     86         </ul>
     87         <input type="hidden" value="<?php echo esc_attr($this->value()); ?>" <?php $this->link(); ?> />
     88 
     89         <?php ;
     90     }
     91 
     92 
     93     public function renderPresetsChanger()
     94     {
     95         $items      = $this->getSourceData();
     96         $optionsVar = uniqid('cp_' . $this->id . '_'); ?>
     97         <script>
     98             var <?php echo $optionsVar ?> =
     99             {
    100             }
    101             ;
    102         </script>
    103         <ul <?php $this->dataAttrs(); ?> class="list rows-list">
    104             <?php foreach ($items as $item): ?>
    105                 <script>
    106                     <?php $settingsData = \Materialis\Customizer\BaseSetting::filterArrayDefaults($item['settings']); ?>
    107                         <?php echo $optionsVar ?>["<?php echo $item['id']; ?>"] = <?php echo json_encode($settingsData) ?>;
    108                 </script>
    109 
    110                 <li class="item available-item" data-varname="<?php echo $optionsVar ?>" data-id="<?php echo $item['id']; ?>">
    111                     <div class="image-holder"
    112                          style="background-position:center center;">
    113                         <img src="<?php echo $item['thumb']; ?>"/>
    114                     </div>
    115 
    116                     <span data-id="<?php echo $item['id']; ?>" class="available-item-hover-button" <?php $this->getSettingAttr(); ?> ><?php echo $this->cpData['insertText']; ?></span>
    117                     <div title="Section is already in page" class="checked-icon"></div>
    118                     <span class="item-preview" data-preview="<?php echo $item['preview']; ?>">
    119 							<i class="icon"></i>
    120 						</span>
    121                     <?php if (isset($item['description'])): ?>
    122                         <span class="description"> <?php echo $item['description']; ?> </span>
    123                     <?php endif; ?>
    124                 </li>
    125             <?php endforeach; ?>
    126         </ul>
    127         <input type="hidden" value="<?php echo esc_attr($this->value()); ?>" <?php $this->link(); ?> />
    128 
    129         <?php ;
    130     }
    131 }