public function register() {
add_action('elementor/elements/categories_registered', [$this, 'register_widgets_category']);
-
add_action( 'elementor/widgets/widgets_registered', [$this, 'register_widgets'] );
$this->customise_sections();
$widgets_manager->register(new Widgets\FormattedText());
$widgets_manager->register(new Widgets\HighlightTitle());
$widgets_manager->register(new Widgets\AssociationSectionImage());
- $widgets_manager->register(new Widgets\AssocationList());
$widgets_manager->register(new Widgets\BannerTitle());
$widgets_manager->register(new Widgets\BlockOrganisation());
$widgets_manager->register(new Widgets\CarouselHome());
'4xl' => '4XL (112px — 140px)',
'5xl' => '5XL (128px — 160px)',
- // Not all of these are needed for now, so removing them to lighten the UI
- // '3xs-2xs' => '3XS ↔ 2XS (4px — 10px)',
- // '2xs-xs' => '2XS ↔ XS (8px — 15px)',
- // 'xs-s' => 'XS ↔ S (12px — 20px)',
- // 's-m' => 'S ↔ M (16px — 30px)',
- // 'm-l' => 'M ↔ L (24px — 40px)',
- // 'l-xl' => 'L ↔ XL (32px — 60px)',
- // 'xl-2xl' => 'XL ↔ 2XL (48px — 80px)',
- // '2xl-3xl' => '2XL ↔ 3XL (64px — 120px)',
- // '3xl-4xl' => '3XL ↔ 4XL (96px — 140px)',
- // '4xl-5xl' => '4XL ↔ 5XL (112px — 160px)',
-
's-l' => 'S ↔ L (16px — 40px)',
's-l-custom' => '(38px — 43px)',
'm-xl' => 'M ↔ XL (24px — 60px)',
+++ /dev/null
-<?php
-
-namespace Cube\Widgets;
-
-use Elementor\Controls_Manager;
-
-class AssocationList extends _Base
-{
-
- public function get_name() {
- return 'cube-assoc-list';
- }
-
- public function get_title() {
- return esc_html__( 'Liste des associations', 'cube' );
- }
-
- public function get_icon() {
- return 'eicon-bullet-list';
- }
-
- protected function register_controls()
- {
-
- $this->start_controls_section(
- 'content_section',
- [
- 'label' => esc_html__( 'Content', 'cube' ),
- 'tab' => Controls_Manager::TAB_CONTENT,
- ]
- );
-
- /* Start repeater */
-
- $repeater = new \Elementor\Repeater();
-
- $repeater->add_control(
- 'text',
- [
- 'label' => esc_html__( 'Text', 'cube' ),
- 'type' => Controls_Manager::TEXT,
- 'placeholder' => esc_html__( 'List Item', 'cube' ),
- 'default' => esc_html__( 'List Item', 'cube' ),
- 'label_block' => true,
- 'dynamic' => [
- 'active' => true,
- ],
- ]
- );
-
- $repeater->add_control(
- 'link',
- [
- 'label' => esc_html__( 'Link', 'cube' ),
- 'type' => Controls_Manager::URL,
- 'placeholder' => esc_html__( 'https://your-link.com', 'cube' ),
- 'dynamic' => [
- 'active' => true,
- ],
- ]
- );
-
- /* End repeater */
-
- $this->add_control(
- 'list_items',
- [
- 'label' => esc_html__( 'List Items', 'cube' ),
- 'type' => Controls_Manager::REPEATER,
- 'fields' => $repeater->get_controls(), /* Use our repeater */
- 'default' => [
- [
- 'text' => esc_html__( 'List Item #1', 'cube' ),
- 'link' => '',
- ],
- [
- 'text' => esc_html__( 'List Item #2', 'cube' ),
- 'link' => '',
- ],
- [
- 'text' => esc_html__( 'List Item #3', 'cube' ),
- 'link' => '',
- ],
- ],
- 'title_field' => '{{{ text }}}',
- ]
- );
-
- $this->end_controls_section();
-
- $this->start_controls_section(
- 'marker_section',
- [
- 'label' => esc_html__( 'List Marker', 'cube' ),
- 'tab' => Controls_Manager::TAB_CONTENT,
- ]
- );
-
- $this->add_control(
- 'marker_type',
- [
- 'label' => esc_html__( 'Marker Type', 'cube' ),
- 'type' => Controls_Manager::CHOOSE,
- 'options' => [
- 'ordered' => [
- 'title' => esc_html__( 'Ordered List', 'cube' ),
- 'icon' => 'eicon-editor-list-ol',
- ],
- 'unordered' => [
- 'title' => esc_html__( 'Unordered List', 'cube' ),
- 'icon' => 'eicon-editor-list-ul',
- ],
- 'other' => [
- 'title' => esc_html__( 'Custom List', 'cube' ),
- 'icon' => 'eicon-edit',
- ],
- ],
- 'default' => 'ordered',
- 'toggle' => false,
- ]
- );
-
- $this->end_controls_section();
- }
-
- protected function render() {
- $items = $this->get_settings("list_items");
- $marker_type = $this->get_settings("marker_type");
- $html_tag = [
- 'ordered' => 'ol',
- 'unordered' => 'ul',
- 'other' => 'ul',
- ];
-
- $this->add_render_attribute( 'list', 'class', 'assoc-list' );
-
- echo "<div class='assoc-list-container'>";
- echo "<{$html_tag[$marker_type]} {$this->get_render_attribute_string( 'list' )} >";
- foreach ( $items as $index => $item ) {
- $repeater_setting_key = $this->get_repeater_setting_key( 'text', 'list_items', $index );
- $this->add_render_attribute( $repeater_setting_key, 'class', 'elementor-list-widget-text' );
- $this->add_inline_editing_attributes( $repeater_setting_key );
- ?>
- <li <?php $this->get_render_attribute_string( $repeater_setting_key ); ?>>
- <?php
- $title = $item['text'];
-
- if ( ! empty( $item['link']['url'] ) ) {
- $this->add_link_attributes( "link_{$index}", $item['link'] );
- $linked_title = sprintf( '<a %1$s>%2$s</a>', $this->get_render_attribute_string( "link_{$index}" ), $title );
- echo $linked_title;
- } else {
- echo $title;
- }
- ?>
- </li>
- <?php
- }
- ?>
- </{$html_tag[$marker_type]}>
- <?php
- echo "</div>";
- }
-
- /**
- * Render list widget output in the editor.
- *
- * Written as a Backbone JavaScript template and used to generate the live preview.
- *
- * @since 1.0.0
- * @access protected
- */
- protected function content_template() {
- ?>
- <#
- html_tag = {
- 'ordered': 'ol',
- 'unordered': 'ul',
- 'other': 'ul',
- };
- view.addRenderAttribute( 'list', 'class', 'assoc-list' );
- #>
- <div class='assoc-list-container'>
- <{{{ html_tag[ settings.marker_type ] }}} {{{ view.getRenderAttributeString( 'list' ) }}}>
- <# _.each( settings.list_items, function( item, index ) {
- var repeater_setting_key = view.getRepeaterSettingKey( 'text', 'list_items', index );
- view.addRenderAttribute( repeater_setting_key, 'class', 'elementor-list-widget-text' );
- view.addInlineEditingAttributes( repeater_setting_key );
- #>
- <li {{{ view.getRenderAttributeString( repeater_setting_key ) }}}>
- <# var title = item.text; #>
- <# if ( item.link ) { #>
- <# view.addRenderAttribute( `link_${index}`, item.link ); #>
- <a href="{{ item.link.url }}" {{{ view.getRenderAttributeString( `link_${index}` ) }}}>
- {{{title}}}
- </a>
- <# } else { #>
- {{{title}}}
- <# } #>
- </li>
- <# } ); #>
- </{{{ html_tag[ settings.marker_type ] }}}>
- </div>
- <?php
- }
-}
\ No newline at end of file
}
public function get_icon() {
- return 'eicon-banner';
+ return 'eicon-carousel';
}
protected function register_controls() {
public function get_icon()
{
- return 'eicon-post-title';
+ return 'eicon-carousel';
}
protected function register_controls()
public function get_icon()
{
- return 'eicon-banner';
+ return 'eicon-navigation-vertical';
}
protected function render() {
}
echo '
<div class="text '.$active.'">
- <img src="'.$item['background_image']['url'].'" />
+ <img src="'.esc_url($item['background_image']['url']).'" />
<h3>'.$item['title'].'</h3>
<p>
'.$item['text'].'
echo '</div>';
echo '<div class="rightside">';
foreach ( $settings['slides'] as $item ) {
- echo '<img src="'.$item['background_image']['url'].'" />';
+ echo '<img src="'.esc_url($item['background_image']['url']).'" />';
}
echo '</div>';
echo '</div>';
font-family: "Proxima Nova", Sans-serif
+screen-size(small-desktop)
font-size: map-get($fontSizes, 'lg')
+ &.active
+ &:after
+ width: 100%
+
&:after
content: ""
- width: 100%
+ width: 0
height: 38.8%
background-color: map-get($colors, 'red','transparent')
position: absolute
left: 0
bottom: 0
+ transition: width 0.9s ease-in-out
a
color: map-get($colors, 'grey', 'dark')
+screen-size(small-desktop)
*
color: #DDDDDD
+
h3
margin-bottom: var(--space-m-l)
font-size: var(--step-7)
@foreach($slides as $key => $slide)
@php
$key += 1;
+ $largeImg = wp_get_attachment_image_url($slide['image']['id'],'large');
@endphp
<div class="elementor-repeater-item-{{$slide['_id']}} carousel-slide container {{ $key === 2 ? 'next' : '' }} {{ $key === 1 ? 'active' : '' }}" data-index="{{ $key }}">
<div class="leftside {{ $key === 1 ? 'active' : '' }}">
- <div class="overlay overlayside" style="background-image: url({{$slide['background_image']['url']}})"></div>
+ <div class="overlay overlayside" style="background-image: url({{esc_url($slide['background_image']['url'])}})"></div>
@if(array_key_exists('image',$slide))
<div class="thumbnail">
- <img src="{{ $slide['image']['url'] }})" />
+ <img src="{{ esc_url($largeImg) }})" />
</div>
@endif
</div>
<h1 class="text-3xl">{{ $slide['title'] }}</h1>
<p>{{ $slide['text'] }}</p>
@if(array_key_exists('link',$slide))
- <a class="btn white" href="{{ $slide['link']['url'] }}">{{ $slide['link_text'] }}</a>
+ <a class="btn white" href="{{ esc_url($slide['link']['url']) }}">{{ $slide['link_text'] }}</a>
@endif
</div>
</div>
<div class="home-carousel-mobile">
<div class="swiper-wrapper">
@foreach($slides as $key => $slide)
+ @php
+ $largeImg = wp_get_attachment_image_url($slide['image']['id'],'large');
+ @endphp
<div class="swiper-slide elementor-repeater-item-{{$slide['_id']}}">
@if(array_key_exists('image',$slide))
<div class="thumbnail">
- <img src="{{ $slide['image']['url'] }})" />
- <img class="bg" src="{{ $slide['background_image']['url'] }}" />
+ <img src="{{ esc_url($largeImg) }})" />
+ <img class="bg" src="{{ esc_url($slide['background_image']['url']) }}" />
</div>
@endif
<div class="rightside">
<h1 class="text-3xl">{{ $slide['title'] }}</h1>
<p>{{ $slide['text'] }}</p>
@if(array_key_exists('link',$slide))
- <a class="btn white" href="{{ $slide['link']['url'] }}">{{ $slide['link_text'] }}</a>
+ <a class="btn white" href="{{ esc_url($slide['link']['url']) }}">{{ $slide['link_text'] }}</a>
@endif
</div>
</div>
<p class="number font-bold">{{ sprintf('%02d', $key) }}</p>
<p class="content font-bold">{{ $slide['text'] }}</p>
<div class="icon-container">
- <img src="{{ $slide['icon']['url'] }}" />
+ <img src="{{ esc_url($slide['icon']['url']) }}" />
</div>
</div>
@endforeach
<div class="text-blockbtn-gallery gallery-columns-{{ $settings['gallery_columns'] }}">
@foreach($settings['wp_gallery'] as $image)
+ @php
+ $largeImg = wp_get_attachment_image_url($image['id'],'large');
+ @endphp
<div class="gallery-item">
<div class="gallery-icon">
- <img class="attachment-{{ $settings['thumbnail_size'] }} size-{{ $settings['thumbnail_size'] }}" src="{{ $image['url'] }}" />
+ <img class="attachment-{{ $settings['thumbnail_size'] }} size-{{ $settings['thumbnail_size'] }}" src="{{ esc_url($largeImg) }}" />
</div>
</div>
@endforeach
<div class="{{implode(' ',$attributes['body']['class'])}}">{!! $settings['body'] !!}</div>
<div class="text-blockbtn-btn">
- <a href="{{$settings['cta_link']['url']}}" class="{{implode(' ',$attributes['cta_text']['class'])}}">
+ <a href="{{ esc_url($settings['cta_link']['url']) }}" class="{{implode(' ',$attributes['cta_text']['class'])}}">
{!! $settings['cta_text'] !!}
</a>
</div>
<div class="text-block {{ $settings['gallery_position'] }} {{ $settings['title'] ? 'has-title' : '' }}">
+ @php
+ $largeImg = wp_get_attachment_image_url($settings['image']['id'],'large')
+ @endphp
+
@if($settings['above_title'])
<p class="text-block-above-title highlight text-lg relative font-bold">
<span class='relative z-1'>{{ $settings['above_title'] }}</span>
@if($settings['image']['url'])
<div class="text-block-image">
- <img class="" src="{{ $settings['image']['url'] }}" />
+ <img class="" src="{{ esc_url($largeImg) }}" />
</div>
@endif