| 1 |
<?php |
| 2 |
|
| 3 |
namespace ResponsiveMenu\Form; |
| 4 |
use ResponsiveMenu\Models\Option as Option; |
| 5 |
use ResponsiveMenu\Form\FormComponent as FormComponent; |
| 6 |
|
| 7 |
class FontIconPageList implements FormComponent { |
| 8 |
|
| 9 |
public function render(Option $option) |
| 10 |
{ |
| 11 |
|
| 12 |
if($decoded = json_decode($option->getValue())) |
| 13 |
$final = array_filter(array_combine($decoded->id, $decoded->icon)); |
| 14 |
else |
| 15 |
$final = null; |
| 16 |
|
| 17 |
echo "<div class='font-icon-container'><div class='font-icon-row'><div class='font-icon-cell-id'>" . __('Id', 'responsive-menu') . "</div><div class='font-icon-cell-icon'>" . __('Icon', 'responsive-menu') . "</div></div>"; |
| 18 |
|
| 19 |
if(is_array($final) && !empty($final)): |
| 20 |
foreach( $final as $id => $icon): |
| 21 |
echo " |
| 22 |
<div class='font-icon-row'> |
| 23 |
<div class='font-icon-cell-id'> |
| 24 |
<input |
| 25 |
type='text' |
| 26 |
class='{$option->getName()}_id' |
| 27 |
name='menu[{$option->getName()}][id][]' |
| 28 |
value='{$id}' /> |
| 29 |
</div> |
| 30 |
<div class='font-icon-cell-icon'> |
| 31 |
<input |
| 32 |
type='text' |
| 33 |
class='{$option->getName()}_icon' |
| 34 |
name='menu[{$option->getName()}][icon][]' |
| 35 |
value='{$icon}' /> |
| 36 |
</div> |
| 37 |
</div>"; |
| 38 |
endforeach; |
| 39 |
else: |
| 40 |
echo " |
| 41 |
<div class='font-icon-row'> |
| 42 |
<div class='font-icon-cell-id'> |
| 43 |
<input |
| 44 |
type='text' |
| 45 |
class='{$option->getName()}_id' |
| 46 |
name='menu[{$option->getName()}][id][]' |
| 47 |
value='' /> |
| 48 |
</div> |
| 49 |
<div class='font-icon-cell-icon'> |
| 50 |
<input |
| 51 |
type='text' |
| 52 |
class='{$option->getName()}_icon' |
| 53 |
name='menu[{$option->getName()}][icon][]' |
| 54 |
value='' /> |
| 55 |
</div> |
| 56 |
</div>"; |
| 57 |
endif; |
| 58 |
|
| 59 |
echo "</div><div class='add-font-icon'>" . __('Add New Font Icon', 'responsive-menu') . "</div>"; |
| 60 |
|
| 61 |
echo "<script> |
| 62 |
jQuery(document).ready(function($) { |
| 63 |
$(document).on('click', '.add-font-icon', function(e) { |
| 64 |
var lastRow = $('#{$option->getName()}_container .font-icon-row').last(); |
| 65 |
var nextRow = lastRow.clone(); |
| 66 |
nextRow.find(':text').val('') |
| 67 |
lastRow.after(nextRow); |
| 68 |
}); |
| 69 |
}); |
| 70 |
</script>"; |
| 71 |
|
| 72 |
} |
| 73 |
|
| 74 |
} |
| 75 |
|