From: soufiane Date: Thu, 24 Apr 2025 16:30:44 +0000 (+0200) Subject: wait #7503 @1h00 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=672218d74b0f0f821ccb48f339f2d9e135cecf8e;p=miranui.git wait #7503 @1h00 --- diff --git a/wp-content/mu-plugins/cube/Widgets/BannerImage.php b/wp-content/mu-plugins/cube/Widgets/BannerImage.php new file mode 100644 index 0000000..fd10ad4 --- /dev/null +++ b/wp-content/mu-plugins/cube/Widgets/BannerImage.php @@ -0,0 +1,131 @@ +start_controls_section( + $id, + [ + 'label' => esc_html__($name, 'cube'), + 'tab' => Controls_Manager::TAB_CONTENT, + ] + ); + } + protected function controls() { + $this->add_control( + 'image', + [ + 'label' => __( 'Image', 'elementor' ), + 'type' => Controls_Manager::MEDIA, + 'default' => [ + 'url' => \Elementor\Utils::get_placeholder_image_src(), + ], + ] + ); + } + + protected function end() { + $this->end_controls_section(); + } + + protected function register_controls() { + self::start('content_section', 'Content'); + $this->controls(); + self::end(); + } + + /** + * Render list widget output on the frontend. + * + * Written in PHP and used to generate the final HTML. + * + * @since 1.0.0 + * @access protected + */ + protected function render() { + + $size = $this->get_settings('text_size') ? $this->get_settings('text_size') : 'large'; + + $size_classes = [ + 'xxlarge' => 'text-xl', + 'xlarge' => 'text-lg-1', + 'large' => 'text-lg', + ]; + + // CSS Classes for elements + $this->add_render_attribute('title', 'class', ["text-block-title font-bold $size_classes[$size]"]); + $this->add_render_attribute('subtitle', 'class', ["text-block-subtitle font-bold text-md"]); + $this->add_render_attribute('body', 'class', ['text-block-body']); + + $settings = $this->get_controls_settings(); + $attributes = $this->get_render_attributes(); + + // Rendered content + echo view("widgets/bannerImg", compact("settings", "attributes")); + } + + protected function backboneTemplate(){ ?> + <# + size_classes = { + 'xlarge': 'text-xl', + 'large': 'text-lg', + }; + + view.addRenderAttribute( + 'title', + { + 'class': [ 'text-block-title font-bold text-xl', size_classes[settings.text_size] ] + } + ); + view.addRenderAttribute( 'subtitle', 'class', ['text-block-subtitle font-bold text-md']); + view.addRenderAttribute( 'body', 'class', ['text-block-body']); + + view.addInlineEditingAttributes( 'title', 'none' ); + view.addInlineEditingAttributes( 'subtitle', 'none' ); + view.addInlineEditingAttributes( 'body', 'none' ); + #> +
+ + <# if ('' !== settings.title) { #> + <{{{ settings.title_tag }}} {{{ view.getRenderAttributeString( 'title' ) }}}>{{{ settings.title }}} + <# } #> + + <# if ('' !== settings.subtitle) { #> + <{{{ settings.subtitle_tag }}} {{{ view.getRenderAttributeString( 'subtitle' ) }}}>{{{ settings.subtitle }}} + <# } #> + + <# if ('' !== settings.body) { #> +
{{{ settings.body }}}
+ <# } #> + +
+ start_controls_section( + $id, + [ + 'label' => esc_html__($name, 'cube'), + 'tab' => Controls_Manager::TAB_CONTENT, + ] + ); + } + protected function controls() { + $this->add_control( + 'title', + [ + 'label' => __( 'Title', 'elementor' ), + 'type' => Controls_Manager::TEXTAREA, + 'placeholder' => __( 'Enter your title', 'elementor' ), + 'default' => 'Lorem ipsum', + ] + ); + + $this->add_control( + 'video', + [ + 'label' => __( 'Image', 'elementor' ), + 'type' => Controls_Manager::MEDIA, + 'media_types' => [ 'video', 'image' ], + 'default' => [ + 'url' => \Elementor\Utils::get_placeholder_image_src(), + ], + ] + ); + } + + protected function end() { + $this->end_controls_section(); + } + + protected function register_controls() { + self::start('content_section', 'Content'); + $this->controls(); + self::end(); + } + + /** + * Render list widget output on the frontend. + * + * Written in PHP and used to generate the final HTML. + * + * @since 1.0.0 + * @access protected + */ + protected function render() { + + $size = $this->get_settings('text_size') ? $this->get_settings('text_size') : 'large'; + + $size_classes = [ + 'xxlarge' => 'text-xl', + 'xlarge' => 'text-lg-1', + 'large' => 'text-lg', + ]; + + // CSS Classes for elements + $this->add_render_attribute('title', 'class', ["text-block-title font-bold $size_classes[$size]"]); + $this->add_render_attribute('subtitle', 'class', ["text-block-subtitle font-bold text-md"]); + $this->add_render_attribute('body', 'class', ['text-block-body']); + + $settings = $this->get_controls_settings(); + $attributes = $this->get_render_attributes(); + + // Rendered content + echo view("widgets/bannerText", compact("settings", "attributes")); + } + + protected function backboneTemplate(){ ?> + <# + size_classes = { + 'xlarge': 'text-xl', + 'large': 'text-lg', + }; + + view.addRenderAttribute( + 'title', + { + 'class': [ 'text-block-title font-bold text-xl', size_classes[settings.text_size] ] + } + ); + view.addRenderAttribute( 'subtitle', 'class', ['text-block-subtitle font-bold text-md']); + view.addRenderAttribute( 'body', 'class', ['text-block-body']); + + view.addInlineEditingAttributes( 'title', 'none' ); + view.addInlineEditingAttributes( 'subtitle', 'none' ); + view.addInlineEditingAttributes( 'body', 'none' ); + #> +
+ + <# if ('' !== settings.title) { #> + <{{{ settings.title_tag }}} {{{ view.getRenderAttributeString( 'title' ) }}}>{{{ settings.title }}} + <# } #> + + <# if ('' !== settings.subtitle) { #> + <{{{ settings.subtitle_tag }}} {{{ view.getRenderAttributeString( 'subtitle' ) }}}>{{{ settings.subtitle }}} + <# } #> + + <# if ('' !== settings.body) { #> +
{{{ settings.body }}}
+ <# } #> + +
+ start_controls_section( + $id, + [ + 'label' => esc_html__($name, 'cube'), + 'tab' => Controls_Manager::TAB_CONTENT, + ] + ); + } + protected function controls() { + $this->add_control( + 'title', + [ + 'label' => __( 'Title', 'elementor' ), + 'type' => Controls_Manager::TEXT, + 'placeholder' => __( 'Enter your title', 'elementor' ), + 'default' => 'Lorem ipsum', + ] + ); + + $this->add_control( + 'title-btn', + [ + 'label' => __( 'Titre bouton', 'elementor' ), + 'type' => Controls_Manager::TEXT, + 'placeholder' => __( 'Enter your subtitle', 'elementor' ), + 'default' => 'Lorem ipsum', + ] + ); + + $this->add_control( + 'subtitle_tag', + [ + 'label' => __( 'Tag (SEO)', 'cube' ), + 'type' => Controls_Manager::SELECT, + 'options' => [ + 'h2' => __( 'H2', 'cube' ), + 'h3' => __( 'H3 (Default)', 'cube' ), + ], + 'default' => 'h3', + ] + ); + + $this->add_control( + 'body', + [ + 'label' => __('Body', 'cube'), + 'type' => Controls_Manager::WYSIWYG, + 'default' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, + sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi + ut aliquip ex ea commodo consequat.', + ] + ); + } + + protected function styleControls() { + $this->add_control( + 'text_color', + [ + 'label' => esc_html__( 'Abovetitle text Color', 'cube' ), + 'type' => Controls_Manager::COLOR, + 'selectors' => [ + '{{WRAPPER}} .highlight' => 'color: {{VALUE}}', + ], + ] + ); + $this->add_control( + 'color', + [ + 'label' => esc_html__( 'Abovetitle background color', 'cube' ), + 'type' => Controls_Manager::COLOR, + 'selectors' => [ + '{{WRAPPER}} .highlight-bar' => 'background-color: {{VALUE}}', + ], + ] + ); + $this->add_control( + 'text_size', + [ + 'label' => esc_html__( 'Title size', 'cube' ), + 'type' => Controls_Manager::SELECT, + 'options' => [ + 'xxlarge' => [ + 'title' => esc_html__( 'Double Extra Large', 'cube' ), + ], + 'xlarge' => [ + 'title' => esc_html__( 'Extra Large', 'cube' ), + ], + 'large' => [ + 'title' => esc_html__( 'Large', 'cube' ), + ] + ], + 'default' => 'large', + 'toggle' => true, + ] + ); + } + + protected function end() { + $this->end_controls_section(); + } + + protected function register_controls() { + self::start('content_section', 'Content'); + $this->controls(); + self::end(); + } + + /** + * Render list widget output on the frontend. + * + * Written in PHP and used to generate the final HTML. + * + * @since 1.0.0 + * @access protected + */ + protected function render() { + + $size = $this->get_settings('text_size') ? $this->get_settings('text_size') : 'large'; + + $size_classes = [ + 'xxlarge' => 'text-xl', + 'xlarge' => 'text-lg-1', + 'large' => 'text-lg', + ]; + + // CSS Classes for elements + $this->add_render_attribute('title', 'class', ["text-block-title font-bold $size_classes[$size]"]); + $this->add_render_attribute('subtitle', 'class', ["text-block-subtitle font-bold text-md"]); + $this->add_render_attribute('body', 'class', ['text-block-body']); + + $settings = $this->get_controls_settings(); + $attributes = $this->get_render_attributes(); + + // Rendered content + echo view("widgets/contact", compact("settings", "attributes")); + } + + protected function backboneTemplate(){ ?> + <# + size_classes = { + 'xlarge': 'text-xl', + 'large': 'text-lg', + }; + + view.addRenderAttribute( + 'title', + { + 'class': [ 'text-block-title font-bold text-xl', size_classes[settings.text_size] ] + } + ); + view.addRenderAttribute( 'subtitle', 'class', ['text-block-subtitle font-bold text-md']); + view.addRenderAttribute( 'body', 'class', ['text-block-body']); + + view.addInlineEditingAttributes( 'title', 'none' ); + view.addInlineEditingAttributes( 'subtitle', 'none' ); + view.addInlineEditingAttributes( 'body', 'none' ); + #> +
+ + <# if ('' !== settings.title) { #> + <{{{ settings.title_tag }}} {{{ view.getRenderAttributeString( 'title' ) }}}>{{{ settings.title }}} + <# } #> + + <# if ('' !== settings.subtitle) { #> + <{{{ settings.subtitle_tag }}} {{{ view.getRenderAttributeString( 'subtitle' ) }}}>{{{ settings.subtitle }}} + <# } #> + + <# if ('' !== settings.body) { #> +
{{{ settings.body }}}
+ <# } #> + +
+ start_controls_section( + $id, + [ + 'label' => esc_html__($name, 'cube'), + 'tab' => Controls_Manager::TAB_CONTENT, + ] + ); + } + protected function controls() { + $repeater = new \Elementor\Repeater(); + + $repeater->add_control( + 'title', + [ + 'label' => __( 'Titre', 'elementor' ), + 'type' => Controls_Manager::TEXT, + 'placeholder' => __( 'Enter votre title', 'elementor' ), + 'default' => 'Lorem ipsum', + ] + ); + + $repeater->add_control( + 'body', + [ + 'label' => __( 'Corps de texte', 'elementor' ), + 'type' => \Elementor\Controls_Manager::WYSIWYG, + 'placeholder' => __( 'Enter votre texte', 'elementor' ), + 'default' => 'Lorem ipsum', + ] + ); + + $repeater->add_control( + 'image', + [ + 'label' => __( 'Image', 'elementor' ), + 'type' => Controls_Manager::MEDIA, + 'default' => [ + 'url' => \Elementor\Utils::get_placeholder_image_src(), + ], + ] + ); + + $this->add_control( + 'posts', + [ + 'label' => __('Articles', 'elementor'), + 'type' => \Elementor\Controls_Manager::REPEATER, + 'fields' => $repeater->get_controls() + ] + ); + } + + protected function end() { + $this->end_controls_section(); + } + + protected function register_controls() { + self::start('content_section', 'Content'); + $this->controls(); + self::end(); + } + + /** + * Render list widget output on the frontend. + * + * Written in PHP and used to generate the final HTML. + * + * @since 1.0.0 + * @access protected + */ + protected function render() { + + $size = $this->get_settings('text_size') ? $this->get_settings('text_size') : 'large'; + + $size_classes = [ + 'xxlarge' => 'text-xl', + 'xlarge' => 'text-lg-1', + 'large' => 'text-lg', + ]; + + // CSS Classes for elements + $this->add_render_attribute('title', 'class', ["text-block-title font-bold $size_classes[$size]"]); + $this->add_render_attribute('subtitle', 'class', ["text-block-subtitle font-bold text-md"]); + $this->add_render_attribute('body', 'class', ['text-block-body']); + + $settings = $this->get_controls_settings(); + $attributes = $this->get_render_attributes(); + + // Rendered content + echo view("widgets/culture-post", compact("settings", "attributes")); + } + + protected function backboneTemplate(){ ?> + <# + size_classes = { + 'xlarge': 'text-xl', + 'large': 'text-lg', + }; + + view.addRenderAttribute( + 'title', + { + 'class': [ 'text-block-title font-bold text-xl', size_classes[settings.text_size] ] + } + ); + view.addRenderAttribute( 'subtitle', 'class', ['text-block-subtitle font-bold text-md']); + view.addRenderAttribute( 'body', 'class', ['text-block-body']); + + view.addInlineEditingAttributes( 'title', 'none' ); + view.addInlineEditingAttributes( 'subtitle', 'none' ); + view.addInlineEditingAttributes( 'body', 'none' ); + #> +
+ + <# if ('' !== settings.title) { #> + <{{{ settings.title_tag }}} {{{ view.getRenderAttributeString( 'title' ) }}}>{{{ settings.title }}} + <# } #> + + <# if ('' !== settings.subtitle) { #> + <{{{ settings.subtitle_tag }}} {{{ view.getRenderAttributeString( 'subtitle' ) }}}>{{{ settings.subtitle }}} + <# } #> + + <# if ('' !== settings.body) { #> +
{{{ settings.body }}}
+ <# } #> + +
+ start_controls_section( + $id, + [ + 'label' => esc_html__($name, 'cube'), + 'tab' => Controls_Manager::TAB_CONTENT, + ] + ); + } + protected function controls() { + $repeater = new \Elementor\Repeater(); + + $repeater->add_control( + 'title', + [ + 'label' => __( 'Titre', 'elementor' ), + 'type' => Controls_Manager::TEXT, + 'placeholder' => __( 'Enter votre title', 'elementor' ), + 'default' => 'Lorem ipsum', + ] + ); + + $repeater->add_control( + 'subtitle', + [ + 'label' => __( 'Sous-titre', 'elementor' ), + 'type' => Controls_Manager::TEXTAREA, + 'placeholder' => __( 'Enter votre sous-titre', 'elementor' ), + 'default' => 'Lorem ipsum', + ] + ); + + $repeater->add_control( + 'body', + [ + 'label' => __( 'Corps de texte', 'elementor' ), + 'type' => \Elementor\Controls_Manager::WYSIWYG, + 'placeholder' => __( 'Enter votre texte', 'elementor' ), + 'default' => 'Lorem ipsum', + ] + ); + + $repeater->add_control( + 'image', + [ + 'label' => __( 'Image', 'elementor' ), + 'type' => Controls_Manager::MEDIA, + 'default' => [ + 'url' => \Elementor\Utils::get_placeholder_image_src(), + ], + ] + ); + + $this->add_control( + 'posts', + [ + 'label' => __('Offre', 'elementor'), + 'type' => \Elementor\Controls_Manager::REPEATER, + 'fields' => $repeater->get_controls() + ] + ); + } + + protected function end() { + $this->end_controls_section(); + } + + protected function register_controls() { + self::start('content_section', 'Content'); + $this->controls(); + self::end(); + } + + /** + * Render list widget output on the frontend. + * + * Written in PHP and used to generate the final HTML. + * + * @since 1.0.0 + * @access protected + */ + protected function render() { + + $size = $this->get_settings('text_size') ? $this->get_settings('text_size') : 'large'; + + $size_classes = [ + 'xxlarge' => 'text-xl', + 'xlarge' => 'text-lg-1', + 'large' => 'text-lg', + ]; + + // CSS Classes for elements + $this->add_render_attribute('title', 'class', ["text-block-title font-bold $size_classes[$size]"]); + $this->add_render_attribute('subtitle', 'class', ["text-block-subtitle font-bold text-md"]); + $this->add_render_attribute('body', 'class', ['text-block-body']); + + $settings = $this->get_controls_settings(); + $attributes = $this->get_render_attributes(); + + // Rendered content + echo view("widgets/offerPost", compact("settings", "attributes")); + } + + protected function backboneTemplate(){ ?> + <# + size_classes = { + 'xlarge': 'text-xl', + 'large': 'text-lg', + }; + + view.addRenderAttribute( + 'title', + { + 'class': [ 'text-block-title font-bold text-xl', size_classes[settings.text_size] ] + } + ); + view.addRenderAttribute( 'subtitle', 'class', ['text-block-subtitle font-bold text-md']); + view.addRenderAttribute( 'body', 'class', ['text-block-body']); + + view.addInlineEditingAttributes( 'title', 'none' ); + view.addInlineEditingAttributes( 'subtitle', 'none' ); + view.addInlineEditingAttributes( 'body', 'none' ); + #> +
+ + <# if ('' !== settings.title) { #> + <{{{ settings.title_tag }}} {{{ view.getRenderAttributeString( 'title' ) }}}>{{{ settings.title }}} + <# } #> + + <# if ('' !== settings.subtitle) { #> + <{{{ settings.subtitle_tag }}} {{{ view.getRenderAttributeString( 'subtitle' ) }}}>{{{ settings.subtitle }}} + <# } #> + + <# if ('' !== settings.body) { #> +
{{{ settings.body }}}
+ <# } #> + +
+ start_controls_section( + $id, + [ + 'label' => esc_html__($name, 'cube'), + 'tab' => Controls_Manager::TAB_CONTENT, + ] + ); + } + protected function controls() { + $this->add_control( + 'galeries', + [ + 'label' => __( 'Images', 'elementor' ), + 'type' => \Elementor\Controls_Manager::GALLERY, + 'show_label' => false, + 'default' => [], + ] + ); + } + + protected function end() { + $this->end_controls_section(); + } + + protected function register_controls() { + self::start('content_section', 'Content'); + $this->controls(); + self::end(); + } + + /** + * Render list widget output on the frontend. + * + * Written in PHP and used to generate the final HTML. + * + * @since 1.0.0 + * @access protected + */ + protected function render() { + + $size = $this->get_settings('text_size') ? $this->get_settings('text_size') : 'large'; + + $size_classes = [ + 'xxlarge' => 'text-xl', + 'xlarge' => 'text-lg-1', + 'large' => 'text-lg', + ]; + + // CSS Classes for elements + $this->add_render_attribute('title', 'class', ["text-block-title font-bold $size_classes[$size]"]); + $this->add_render_attribute('subtitle', 'class', ["text-block-subtitle font-bold text-md"]); + $this->add_render_attribute('body', 'class', ['text-block-body']); + + $settings = $this->get_controls_settings(); + $attributes = $this->get_render_attributes(); + + // Rendered content + echo view("widgets/sponsors", compact("settings", "attributes")); + } + + protected function backboneTemplate(){ ?> + <# + size_classes = { + 'xlarge': 'text-xl', + 'large': 'text-lg', + }; + + view.addRenderAttribute( + 'title', + { + 'class': [ 'text-block-title font-bold text-xl', size_classes[settings.text_size] ] + } + ); + view.addRenderAttribute( 'subtitle', 'class', ['text-block-subtitle font-bold text-md']); + view.addRenderAttribute( 'body', 'class', ['text-block-body']); + + view.addInlineEditingAttributes( 'title', 'none' ); + view.addInlineEditingAttributes( 'subtitle', 'none' ); + view.addInlineEditingAttributes( 'body', 'none' ); + #> +
+ + <# if ('' !== settings.title) { #> + <{{{ settings.title_tag }}} {{{ view.getRenderAttributeString( 'title' ) }}}>{{{ settings.title }}} + <# } #> + + <# if ('' !== settings.subtitle) { #> + <{{{ settings.subtitle_tag }}} {{{ view.getRenderAttributeString( 'subtitle' ) }}}>{{{ settings.subtitle }}} + <# } #> + + <# if ('' !== settings.body) { #> +
{{{ settings.body }}}
+ <# } #> + +
+ start_controls_section( + $id, + [ + 'label' => esc_html__($name, 'cube'), + 'tab' => Controls_Manager::TAB_CONTENT, + ] + ); + } + protected function controls() { + $repeater = new \Elementor\Repeater(); + + $repeater->add_control( + 'title', + [ + 'label' => __( 'Titre', 'elementor' ), + 'type' => \Elementor\Controls_Manager::WYSIWYG, + 'placeholder' => __( 'Enter votre texte', 'elementor' ), + 'default' => 'Lorem ipsum', + ] + ); + + $repeater->add_control( + 'subtitle', + [ + 'label' => __( 'Sous-titre', 'elementor' ), + 'type' => Controls_Manager::TEXTAREA, + 'placeholder' => __( 'Enter votre sous-titre', 'elementor' ), + 'default' => 'Lorem ipsum', + ] + ); + + $this->add_control( + 'posts', + [ + 'label' => __('Chiffre', 'elementor'), + 'type' => \Elementor\Controls_Manager::REPEATER, + 'fields' => $repeater->get_controls() + ] + ); + } + + protected function end() { + $this->end_controls_section(); + } + + protected function register_controls() { + self::start('content_section', 'Content'); + $this->controls(); + self::end(); + } + + /** + * Render list widget output on the frontend. + * + * Written in PHP and used to generate the final HTML. + * + * @since 1.0.0 + * @access protected + */ + protected function render() { + + $size = $this->get_settings('text_size') ? $this->get_settings('text_size') : 'large'; + + $size_classes = [ + 'xxlarge' => 'text-xl', + 'xlarge' => 'text-lg-1', + 'large' => 'text-lg', + ]; + + // CSS Classes for elements + $this->add_render_attribute('title', 'class', ["text-block-title font-bold $size_classes[$size]"]); + $this->add_render_attribute('subtitle', 'class', ["text-block-subtitle font-bold text-md"]); + $this->add_render_attribute('body', 'class', ['text-block-body']); + + $settings = $this->get_controls_settings(); + $attributes = $this->get_render_attributes(); + + // Rendered content + echo view("widgets/statistics", compact("settings", "attributes")); + } + + protected function backboneTemplate(){ ?> + <# + size_classes = { + 'xlarge': 'text-xl', + 'large': 'text-lg', + }; + + view.addRenderAttribute( + 'title', + { + 'class': [ 'text-block-title font-bold text-xl', size_classes[settings.text_size] ] + } + ); + view.addRenderAttribute( 'subtitle', 'class', ['text-block-subtitle font-bold text-md']); + view.addRenderAttribute( 'body', 'class', ['text-block-body']); + + view.addInlineEditingAttributes( 'title', 'none' ); + view.addInlineEditingAttributes( 'subtitle', 'none' ); + view.addInlineEditingAttributes( 'body', 'none' ); + #> +
+ + <# if ('' !== settings.title) { #> + <{{{ settings.title_tag }}} {{{ view.getRenderAttributeString( 'title' ) }}}>{{{ settings.title }}} + <# } #> + + <# if ('' !== settings.subtitle) { #> + <{{{ settings.subtitle_tag }}} {{{ view.getRenderAttributeString( 'subtitle' ) }}}>{{{ settings.subtitle }}} + <# } #> + + <# if ('' !== settings.body) { #> +
{{{ settings.body }}}
+ <# } #> + +
+ start_controls_section( + $id, + [ + 'label' => esc_html__($name, 'cube'), + 'tab' => Controls_Manager::TAB_CONTENT, + ] + ); + } + protected function controls() { + $repeater = new \Elementor\Repeater(); + + $repeater->add_control( + 'title', + [ + 'label' => __( 'Titre', 'elementor' ), + 'type' => Controls_Manager::TEXT, + 'placeholder' => __( 'Enter votre title', 'elementor' ), + 'default' => 'Lorem ipsum', + ] + ); + + $repeater->add_control( + 'body', + [ + 'label' => __( 'Corps de texte', 'elementor' ), + 'type' => \Elementor\Controls_Manager::WYSIWYG, + 'placeholder' => __( 'Enter votre texte', 'elementor' ), + 'default' => 'Lorem ipsum', + ] + ); + + $repeater->add_control( + 'image', + [ + 'label' => __( 'Image', 'elementor' ), + 'type' => Controls_Manager::MEDIA, + 'default' => [ + 'url' => \Elementor\Utils::get_placeholder_image_src(), + ], + ] + ); + + $repeater->add_control( + 'link', + [ + 'label' => __( 'Lien', 'elementor' ), + 'type' => \Elementor\Controls_Manager::URL, + 'options' => [ 'url', 'is_external', 'nofollow' ], + 'default' => [ + 'url' => '', + 'is_external' => true, + 'nofollow' => true, + ], + 'label_block' => true, + ] + ); + + $this->add_control( + 'posts', + [ + 'label' => __('Stories', 'elementor'), + 'type' => \Elementor\Controls_Manager::REPEATER, + 'fields' => $repeater->get_controls() + ] + ); + } + + protected function end() { + $this->end_controls_section(); + } + + protected function register_controls() { + self::start('content_section', 'Content'); + $this->controls(); + self::end(); + } + + /** + * Render list widget output on the frontend. + * + * Written in PHP and used to generate the final HTML. + * + * @since 1.0.0 + * @access protected + */ + protected function render() { + + $size = $this->get_settings('text_size') ? $this->get_settings('text_size') : 'large'; + + $size_classes = [ + 'xxlarge' => 'text-xl', + 'xlarge' => 'text-lg-1', + 'large' => 'text-lg', + ]; + + // CSS Classes for elements + $this->add_render_attribute('title', 'class', ["text-block-title font-bold $size_classes[$size]"]); + $this->add_render_attribute('subtitle', 'class', ["text-block-subtitle font-bold text-md"]); + $this->add_render_attribute('body', 'class', ['text-block-body']); + + $settings = $this->get_controls_settings(); + $attributes = $this->get_render_attributes(); + + // Rendered content + echo view("widgets/success-storiesPost", compact("settings", "attributes")); + } + + protected function backboneTemplate(){ ?> + <# + size_classes = { + 'xlarge': 'text-xl', + 'large': 'text-lg', + }; + + view.addRenderAttribute( + 'title', + { + 'class': [ 'text-block-title font-bold text-xl', size_classes[settings.text_size] ] + } + ); + view.addRenderAttribute( 'subtitle', 'class', ['text-block-subtitle font-bold text-md']); + view.addRenderAttribute( 'body', 'class', ['text-block-body']); + + view.addInlineEditingAttributes( 'title', 'none' ); + view.addInlineEditingAttributes( 'subtitle', 'none' ); + view.addInlineEditingAttributes( 'body', 'none' ); + #> +
+ + <# if ('' !== settings.title) { #> + <{{{ settings.title_tag }}} {{{ view.getRenderAttributeString( 'title' ) }}}>{{{ settings.title }}} + <# } #> + + <# if ('' !== settings.subtitle) { #> + <{{{ settings.subtitle_tag }}} {{{ view.getRenderAttributeString( 'subtitle' ) }}}>{{{ settings.subtitle }}} + <# } #> + + <# if ('' !== settings.body) { #> +
{{{ settings.body }}}
+ <# } #> + +
+ start_controls_section( + $id, + [ + 'label' => esc_html__($name, 'cube'), + 'tab' => Controls_Manager::TAB_CONTENT, + ] + ); + } + protected function controls() { + $this->add_control( + 'title', + [ + 'label' => __( 'Title', 'elementor' ), + 'type' => Controls_Manager::TEXTAREA, + 'placeholder' => __( 'Enter your title', 'elementor' ), + 'default' => 'Lorem ipsum', + ] + ); + } + + protected function end() { + $this->end_controls_section(); + } + + protected function register_controls() { + self::start('content_section', 'Content'); + $this->controls(); + self::end(); + } + + /** + * Render list widget output on the frontend. + * + * Written in PHP and used to generate the final HTML. + * + * @since 1.0.0 + * @access protected + */ + protected function render() { + + $size = $this->get_settings('text_size') ? $this->get_settings('text_size') : 'large'; + + $size_classes = [ + 'xxlarge' => 'text-xl', + 'xlarge' => 'text-lg-1', + 'large' => 'text-lg', + ]; + + // CSS Classes for elements + $this->add_render_attribute('title', 'class', ["mira-title-section"]); + + $settings = $this->get_controls_settings(); + $attributes = $this->get_render_attributes(); + + // Rendered content + echo view("widgets/title-section", compact("settings", "attributes")); + } + + protected function backboneTemplate(){ ?> + <# + size_classes = { + 'xlarge': 'text-xl', + 'large': 'text-lg', + }; + + view.addRenderAttribute( + 'title', + { + 'class': [ 'text-block-title font-bold text-xl', size_classes[settings.text_size] ] + } + ); + view.addRenderAttribute( 'subtitle', 'class', ['text-block-subtitle font-bold text-md']); + view.addRenderAttribute( 'body', 'class', ['text-block-body']); + + view.addInlineEditingAttributes( 'title', 'none' ); + view.addInlineEditingAttributes( 'subtitle', 'none' ); + view.addInlineEditingAttributes( 'body', 'none' ); + #> +
+ + <# if ('' !== settings.title) { #> + <{{{ settings.title_tag }}} {{{ view.getRenderAttributeString( 'title' ) }}}>{{{ settings.title }}} + <# } #> + + <# if ('' !== settings.subtitle) { #> + <{{{ settings.subtitle_tag }}} {{{ view.getRenderAttributeString( 'subtitle' ) }}}>{{{ settings.subtitle }}} + <# } #> + + <# if ('' !== settings.body) { #> +
{{{ settings.body }}}
+ <# } #> + +
+ { + /** + * Application entrypoints + * @see {@link https://bud.js.org/docs/bud.entry/} + */ + app + .entry({ + app: ['@styles/app','@scripts/app'], + //editor: ['@scripts/editor', '@styles/editor'] + }) + + .tap(bud => bud.postcss.setPluginOptions('env', { + //preserve: false, + features: { + 'custom-properties': false, // Don't make css var fallback values + }, + })) + .provide({ + jquery: ["jQuery", "$"], + }) + /** + * Directory contents to be included in the compilation + * @see {@link https://bud.js.org/docs/bud.assets/} + */ + .assets(['images']) + + /** + * Matched files trigger a page reload when modified + * @see {@link https://bud.js.org/docs/bud.watch/} + */ + .watch(['resources/views', 'app']) + + + /** + * Proxy origin (`WP_HOME`) + * @see {@link https://bud.js.org/docs/bud.proxy/} + */ + .proxy('http://example.test') + + /** + * Development origin + * @see {@link https://bud.js.org/docs/bud.serve/} + */ + .serve('http://localhost:3000') + + /** + * URI of the `public` directory + * @see {@link https://bud.js.org/docs/bud.setPublicPath/} + */ + .setPublicPath('/wp-content/themes/miranui_new/public/') + +}; diff --git a/wp-content/themes/miranui_new/resources/css/common.scss b/wp-content/themes/miranui_new/resources/css/common.scss new file mode 100644 index 0000000..b5d61ef --- /dev/null +++ b/wp-content/themes/miranui_new/resources/css/common.scss @@ -0,0 +1,115 @@ +.mira { + &-container { + max-width: 1524px !important; + width: 100%; + margin: 0 auto; + padding: 0 16px !important; + @include above($mdScreen) { + padding: 0 32px !important; + } + .elementor-widget-wrap { + flex-wrap: nowrap; + gap: $gapContainer; + } + } + + &-semibold { + font-weight: 600; + } + + &-title-section { + padding-left: 20px; + position: relative; + font-size: 18px; + text-transform: uppercase; + @extend .mira-semibold; + @include flex(initial,center); + max-width: 213px; + width: 100%; + display: block; + line-height: 1.2; + &:before { + content: ""; + width: 12px; + height: 12px; + background-color: $clearRed; + border-radius: 24px; + position: absolute; + left: 0; + top: 4px + } + } + + &-section { + background-color: rgba($clearBlue, .05); + } + + &-medium-title { + font-size: $fsH2; + } + + &-white *{ + color: #ffffff !important; + } +} + +body.mentions-legales { + .mira-main { + margin-top: 0; + } +} + +.hide-on-desktop { + @include above($mdScreen) { + display: none !important; + } +} + +.hide-on-mobile { + @include below($mdScreen) { + display: none !important; + } +} + +.elementor-element[data-element_type=container] { + padding: 0; +} + +.elementor-element-populated { + padding: 0 !important; +} + +.elementor-container { + max-width: 100% !important; +} + +.elementor-section:not(.no-padding) { + padding: $space48-128 0; + &.mira-section-stats { + padding: $space48-128 0; + } +} + +.elementor-widget-cube-title-section { + max-width: 213px; +} + +.elementor-element-populated { + flex-direction: column; + @include above($mdScreen) { + flex-direction: row; + } +} + +.elementor-widget:not(:last-child) { + margin: 0 !important; +} + +body:not(.home) { + .mira-main { + margin-top: 88px; + @include above($mdScreen) { + margin-top: 144px; + } + } +} diff --git a/wp-content/themes/miranui_new/resources/css/font.scss b/wp-content/themes/miranui_new/resources/css/font.scss new file mode 100644 index 0000000..89cf046 --- /dev/null +++ b/wp-content/themes/miranui_new/resources/css/font.scss @@ -0,0 +1,17 @@ +@font-face { + font-family: 'Poppins'; + src: url('../fonts/Poppins-SemiBold.woff2') format('woff2'), + url('../fonts/Poppins-SemiBold.woff') format('woff'); + font-weight: 600; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Poppins'; + src: url('../fonts/Poppins-Regular.woff2') format('woff2'), + url('../fonts/Poppins-Regular.woff') format('woff'); + font-weight: normal; + font-style: normal; + font-display: swap; +} diff --git a/wp-content/themes/miranui_new/resources/css/footer.scss b/wp-content/themes/miranui_new/resources/css/footer.scss new file mode 100644 index 0000000..4210950 --- /dev/null +++ b/wp-content/themes/miranui_new/resources/css/footer.scss @@ -0,0 +1,51 @@ +.mira { + &-footer { + background-color: $darkblue; + padding: 32px 0; + position: relative; + @include above($mdScreen) { + padding: 64px 0 45px; + } + .sub { + @include flex(space-between,center) + } + &-nav { + margin-top: 48px; + @include above($mdScreen) { + margin: 0; + position: absolute; + @include absoluteCenter; + transform: translateX(-50%); + top: 71px; + } + ul { + display: flex; + flex-direction: column; + gap: 16px; + @include above($mdScreen) { + flex-direction: row; + gap: 32px; + } + } + a { + color: #ffffff; + } + } + .legal { + display: block; + font-size: 14px; + margin-top: 48px; + text-align: left; + @include above($mdScreen) { + margin-top: 78px; + text-align: center; + } + } + + a { + &:hover { + color: $darkRed !important; + } + } + } +} diff --git a/wp-content/themes/miranui_new/resources/css/header.scss b/wp-content/themes/miranui_new/resources/css/header.scss new file mode 100644 index 0000000..5d20aa2 --- /dev/null +++ b/wp-content/themes/miranui_new/resources/css/header.scss @@ -0,0 +1,133 @@ +.mira { + &-header { + padding: 24px 0; + transition: all .3s; + position: fixed; + top: 0; + z-index: 3; + width: 100%; + + .clear & { + @include bg($navBlue) + } + + .scrolling & { + padding: 24px 0; + } + + .mira-container { + @include flex(space-between, center); + position: relative; + z-index: 3; + } + + @include above($mdScreen) { + padding: 52px 0; + } + + &-btn { + @include bg($clearRed); + @include r(20px); + @include flex(center,center); + color: #fff; + height: 40px; + width: max-content; + padding: 0 24px; + border: 0; + &:hover { + @include bg($darkRed); + } + } + + #menu-item-20 { + @extend .hide-on-desktop; + } + + #toggleMenu { + display: flex; + flex-direction: column; + gap: 2px; + width: 40px; + padding: 0; + &:hover, + &.open { + .bar:first-child { + transform: rotate(45deg); + top: 20px; + } + .bar:last-child { + transform: rotate(-45deg); + bottom: 18px; + } + } + .bar { + width: 40%; + height: 2px; + @include bg(white); + position: absolute; + transition: .3s all; + &:first-child { + top: 17px; + } + &:last-child { + bottom: 15px; + } + } + } + } + + &-logo, + &-header-btn { + position: relative; + z-index: 1; + } + + &-nav { + @include flex(center,center); + @include bg($navBlue); + flex-direction: column; + gap: 32px; + position: absolute; + width: 100vw; + height: 100vh; + top: calc(-100vh - 88px); + left: 0; + transition: top .3s; + z-index: 1; + &.active { + top: -24px; + @include above($mdScreen) { + top: 50%; + } + } + @include above($mdScreen) { + @include bg(transparent); + @include absoluteCenter; + top: 50%; + left: 50%; + width: auto; + height: auto; + } + + ul { + @include flex(center, center); + flex-direction: column; + gap: 32px; + @include above($mdScreen) { + flex-direction: row; + } + a { + color: #fff; + &:hover { + color: $clearRed; + } + } + } + } +} + +body:not(.home) { + .mira-header { + @include bg($navBlue) + } +} diff --git a/wp-content/themes/miranui_new/resources/css/mixins.scss b/wp-content/themes/miranui_new/resources/css/mixins.scss new file mode 100644 index 0000000..6e33e8e --- /dev/null +++ b/wp-content/themes/miranui_new/resources/css/mixins.scss @@ -0,0 +1,32 @@ +@mixin absoluteCenter() { + top: 50%; + left: 50%; + transform: translate(-50%,-50%); +} + +@mixin flex($justifyContent: 'initial',$alignItems: 'initial',$order:'initial') { + display: flex; + justify-content: $justifyContent; + align-items: $alignItems; + order: $order; +} + +@mixin r($r) { + border-radius: $r; +} + +@mixin above($value) { + @media (min-width: $value) { + @content; + } +} + +@mixin below($value) { + @media (max-width: $value) { + @content; + } +} + +@mixin bg($var) { + background-color: $var; +} diff --git a/wp-content/themes/miranui_new/resources/css/variables.scss b/wp-content/themes/miranui_new/resources/css/variables.scss index d92db6b..e9e6e94 100644 --- a/wp-content/themes/miranui_new/resources/css/variables.scss +++ b/wp-content/themes/miranui_new/resources/css/variables.scss @@ -1,6 +1,20 @@ -$actionRed: #B34049; -$logoRed: #D75B65; +$clearRed: #D75B65; +$darkRed: #B34049; $clearBlue: #6F7BB6; $middleBlue: #404F8E; $navBlue: #22335C; $darkblue: #15203F; + +$smScreen: 576px; +$mdScreen: 992px; +$lgScreen: 1280px; + +$fsH1: clamp(3rem, 1.7249rem + 5.4406vw, 7.4375rem); +$fsH2: clamp(2.4375rem, 2.0424rem + 1.6858vw, 3.8125rem); + +$gapContainer: clamp(1.5rem, 0.0273rem + 6.2835vw, 6.625rem); +$spaceSection: clamp(3rem, 3rem + 0vw, 3rem); +$gapOffer: clamp(1rem, -0.6523rem + 7.0498vw, 6.75rem); +$gap24-108: clamp(1.5rem, -0.0086rem + 6.4368vw, 6.75rem); +$space48-128: clamp(3rem, 1.5632rem + 6.1303vw, 8rem); +$space24-64: clamp(1.5rem, 0.9612rem + 2.2989vw, 3.375rem); diff --git a/wp-content/themes/miranui_new/resources/css/widgets/_bannerImg.scss b/wp-content/themes/miranui_new/resources/css/widgets/_bannerImg.scss new file mode 100644 index 0000000..de95bd7 --- /dev/null +++ b/wp-content/themes/miranui_new/resources/css/widgets/_bannerImg.scss @@ -0,0 +1,15 @@ +.mira-bannerImg { + height: 375px; + position: relative; + @include above($mdScreen) { + height: auto; + min-height: 1050px; + } + img { + position: absolute; + @include absoluteCenter; + width: 100%; + height: 100%; + object-fit: cover; + } +} diff --git a/wp-content/themes/miranui_new/resources/css/widgets/_bannerText.scss b/wp-content/themes/miranui_new/resources/css/widgets/_bannerText.scss new file mode 100644 index 0000000..9108b8d --- /dev/null +++ b/wp-content/themes/miranui_new/resources/css/widgets/_bannerText.scss @@ -0,0 +1,46 @@ +.mira { + &-lcp-banner { + position: relative; + height: 100vh; + @include flex(center,flex-start); + padding: 0 24px; + overflow: hidden; + &:before { + content: ""; + position: absolute; + height: 50%; + width: 100%; + background: linear-gradient($darkblue, transparent); + top: 0; + z-index: 1; + } + + @include above($smScreen) { + @include flex(center,center); + } + + img,video { + position: absolute; + width: 100%; + object-fit: cover; + height: 100%; + @include above($mdScreen) { + transform: scale(1.05); + } + } + + h1 { + position: relative; + max-width: 828px; + width: 100%; + color: #fff; + font-size: $fsH1; + line-height: .9; + top: 114px; + z-index: 2; + @include above($smScreen) { + top: 0; + } + } + } +} diff --git a/wp-content/themes/miranui_new/resources/css/widgets/_contact.scss b/wp-content/themes/miranui_new/resources/css/widgets/_contact.scss new file mode 100644 index 0000000..e58b936 --- /dev/null +++ b/wp-content/themes/miranui_new/resources/css/widgets/_contact.scss @@ -0,0 +1,95 @@ +.mira { + &-contact { + h2 { + font-size: $fsH2; + margin-bottom: $space24-64; + } + } +} + +.wpcf7 form { + display: flex; + flex-wrap: wrap; + gap: 16px 24px; + p,.wpcf7-form-control { + &.wpcf7-not-valid { + border-color: $darkRed; + border-width: 2px; + } + width: 100%; + } + p:nth-of-type(1), + p:nth-of-type(2), + p:nth-of-type(3), + p:nth-of-type(4) { + @include above($mdScreen) { + width: calc(50% - 12px); + } + } + p:last-of-type { + display: flex; + flex-direction: column; + @include above($mdScreen) { + justify-content: space-between; + flex-direction: row; + } + span { + font-size: 12px; + @include below($mdScreen) { + order: 1; + margin-top: 16px; + } + } + } + label { + margin-bottom: 8px; + position: relative; + } + .wpcf7-form-control { + @include r(4px); + border: 1px solid rgba($darkblue,.25); + padding: 0 19px; + font-size: 16px; + margin-top: 8px; + &:focus { + border: 2px solid $clearBlue; + } + } + input { + height: 48px; + } + + .wpcf7-submit { + background-color: $clearBlue; + border: 0; + height: 60px; + color: #ffffff; + &:hover, + &:focus { + background-color: $middleBlue; + } + @include above($mdScreen) { + max-width: 204px; + } + } + + .wpcf7-spinner { + position: absolute; + right: 0; + transform: translateY(50%); + @include above($mdScreen) { + bottom: 30px; + } + } + + .wpcf7-not-valid-tip { + position: absolute; + top: 3px; + right: 0; + font-size: 12px; + } + + .wpcf7-form-control-wrap { + position: initial; + } +} diff --git a/wp-content/themes/miranui_new/resources/css/widgets/_culturePost.scss b/wp-content/themes/miranui_new/resources/css/widgets/_culturePost.scss new file mode 100644 index 0000000..021f0e4 --- /dev/null +++ b/wp-content/themes/miranui_new/resources/css/widgets/_culturePost.scss @@ -0,0 +1,66 @@ +.mira { + &-culture { + &-posts { + display: flex; + flex-direction: column; + gap: 4px; + } + &-post-image, + &-post-body { + @include r(4px); + overflow: hidden; + width: 100%; + @include above($mdScreen) { + width: 50%; + } + } + &-post-image { + height: 343px; + @include above($mdScreen) { + height: auto; + } + } + &-post-body { + background-color: #ffffff; + h3 { + font-size: 25px; + } + } + &-post { + display: flex; + gap: 4px; + flex-direction: column; + @include above($mdScreen) { + flex-direction: row; + } + + &-image { + position: relative; + order: 1; + @include above($mdScreen) { + order: initial; + } + img { + width: 100%; + height: 100%; + position: absolute; + @include absoluteCenter; + object-fit: cover; + } + } + + &:nth-child(odd) { + @include above($mdScreen) { + .mira-culture-post-image { + order: 1; + } + } + } + + &-body { + @include r(4px); + padding: clamp(2rem, 1.6049rem + 1.6858vw, 3.375rem) clamp(1rem, 0.3175rem + 2.9119vw, 3.375rem); + } + } + } +} diff --git a/wp-content/themes/miranui_new/resources/css/widgets/_offerPost.scss b/wp-content/themes/miranui_new/resources/css/widgets/_offerPost.scss new file mode 100644 index 0000000..63785dd --- /dev/null +++ b/wp-content/themes/miranui_new/resources/css/widgets/_offerPost.scss @@ -0,0 +1,55 @@ +.mira { + &-offers { + max-width: 1144px; + width: 100%; + display: flex; + flex-direction: column; + gap: $gapOffer; + @include above($mdScreen) { + flex-direction: row; + } + } + &-offer { + @include r(12px); + padding: clamp(4.5rem, 2.1114rem + 10.1916vw, 12.8125rem) clamp(1rem, 0.4253rem + 2.4521vw, 3rem) clamp(1.5rem, 0.9612rem + 2.2989vw, 3.375rem); + background-color: #ffffff; + position: relative; + overflow: hidden; + flex: 1; + @include above($mdScreen) { + max-width: 516px; + width: 100%; + flex: none; + } + &-wrapper { + display: flex; + flex-direction: column; + gap: $gapOffer; + } + &-image { + position: absolute; + width: 100%; + top: 0; + left: 0; + img { + width: 100%; + } + } + &-content { + position: relative; + z-index: 1; + display: flex; + flex-direction: column; + gap: 24px; + } + &-title { + font-size: 39px; + } + &-subtitle { + font-size: 20px; + } + &-body { + font-weight: normal; + } + } +} diff --git a/wp-content/themes/miranui_new/resources/css/widgets/_sponsors.scss b/wp-content/themes/miranui_new/resources/css/widgets/_sponsors.scss new file mode 100644 index 0000000..588627a --- /dev/null +++ b/wp-content/themes/miranui_new/resources/css/widgets/_sponsors.scss @@ -0,0 +1,30 @@ +.mira { + &-sponsors { + &-container { + @include below($mdScreen) { + padding: 0 !important; + } + .elementor-widget-cube-title-section { + @include below($mdScreen) { + padding-left: 16px; + } + } + } + display: flex !important; + @include flex(space-between, center); + @include above($mdScreen) { + gap: 20px; + } + @include above($lgScreen) { + gap: 0; + } + &-img { + @include above($mdScreen) { + width: calc((100% / 7) - 20px); + } + @include above($lgScreen) { + width: auto; + } + } + } +} diff --git a/wp-content/themes/miranui_new/resources/css/widgets/_statistics.scss b/wp-content/themes/miranui_new/resources/css/widgets/_statistics.scss new file mode 100644 index 0000000..985af89 --- /dev/null +++ b/wp-content/themes/miranui_new/resources/css/widgets/_statistics.scss @@ -0,0 +1,20 @@ +.mira { + &-stats { + display: flex; + flex-direction: column; + gap: $gap24-108; + @include above($mdScreen) { + flex-direction: row; + } + } + &-stat { + color: #ffffff; + width: 100%; + @include above($mdScreen) { + max-width: calc(100% / 4); + } + .title { + font-size: 61px; + } + } +} diff --git a/wp-content/themes/miranui_new/resources/css/widgets/_storiesPost.scss b/wp-content/themes/miranui_new/resources/css/widgets/_storiesPost.scss new file mode 100644 index 0000000..cc78f34 --- /dev/null +++ b/wp-content/themes/miranui_new/resources/css/widgets/_storiesPost.scss @@ -0,0 +1,44 @@ +.mira { + &-stories { + display: flex; + flex-direction: column; + gap: $gap24-108; + @include above($mdScreen) { + flex-direction: row; + } + } + &-story { + width: 100%; + @include above($mdScreen) { + width: calc(100% / 3); + } + &-image { + margin-bottom: 19px; + @include r(4px); + position: relative; + height: 231px; + overflow: hidden; + img { + position: absolute; + object-fit: cover; + height: 100%; + width: 100%; + @include absoluteCenter; + } + } + &-title { + margin-bottom: 16px; + font-size: 25px; + } + &-body { + margin-bottom: 8px; + font-weight: normal; + } + &-link { + text-decoration: underline !important; + color: $clearRed; + font-size: 16px; + @extend .mira-semibold; + } + } +} diff --git a/wp-content/themes/miranui_new/resources/fonts/Poppins-Regular.woff b/wp-content/themes/miranui_new/resources/fonts/Poppins-Regular.woff new file mode 100644 index 0000000..4d078d0 Binary files /dev/null and b/wp-content/themes/miranui_new/resources/fonts/Poppins-Regular.woff differ diff --git a/wp-content/themes/miranui_new/resources/fonts/Poppins-Regular.woff2 b/wp-content/themes/miranui_new/resources/fonts/Poppins-Regular.woff2 new file mode 100644 index 0000000..9743d2c Binary files /dev/null and b/wp-content/themes/miranui_new/resources/fonts/Poppins-Regular.woff2 differ diff --git a/wp-content/themes/miranui_new/resources/fonts/Poppins-SemiBold.woff b/wp-content/themes/miranui_new/resources/fonts/Poppins-SemiBold.woff new file mode 100644 index 0000000..3953d50 Binary files /dev/null and b/wp-content/themes/miranui_new/resources/fonts/Poppins-SemiBold.woff differ diff --git a/wp-content/themes/miranui_new/resources/fonts/Poppins-SemiBold.woff2 b/wp-content/themes/miranui_new/resources/fonts/Poppins-SemiBold.woff2 new file mode 100644 index 0000000..4d1e972 Binary files /dev/null and b/wp-content/themes/miranui_new/resources/fonts/Poppins-SemiBold.woff2 differ diff --git a/wp-content/themes/miranui_new/resources/images/linkedin.svg b/wp-content/themes/miranui_new/resources/images/linkedin.svg new file mode 100644 index 0000000..0e04cc6 --- /dev/null +++ b/wp-content/themes/miranui_new/resources/images/linkedin.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/wp-content/themes/miranui_new/resources/images/logo_miranui.svg b/wp-content/themes/miranui_new/resources/images/logo_miranui.svg new file mode 100644 index 0000000..eb6d070 --- /dev/null +++ b/wp-content/themes/miranui_new/resources/images/logo_miranui.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wp-content/themes/miranui_new/resources/views/forms/contact.blade.php b/wp-content/themes/miranui_new/resources/views/forms/contact.blade.php new file mode 100644 index 0000000..c33236d --- /dev/null +++ b/wp-content/themes/miranui_new/resources/views/forms/contact.blade.php @@ -0,0 +1,9 @@ +{{-- CONTACT FORM --}} +@php /* @var $form \Cube\Forms\Builder\Form */ @endphp + +
+ {!! $form->field('last-name', ['show_title' => false]) !!} + {!! $form->field('first-name', ['show_title' => false]) !!} + {!! $form->field('phone', ['show_title' => false]) !!} + {!! $form->button(__('Contactez-moi', 'ccv'), ['class' => 'btn mt-8']) !!} +
diff --git a/wp-content/themes/miranui_new/resources/views/widgets/bannerImg.blade.php b/wp-content/themes/miranui_new/resources/views/widgets/bannerImg.blade.php new file mode 100644 index 0000000..16f5507 --- /dev/null +++ b/wp-content/themes/miranui_new/resources/views/widgets/bannerImg.blade.php @@ -0,0 +1,3 @@ +
+ +
diff --git a/wp-content/themes/miranui_new/resources/views/widgets/bannerText.blade.php b/wp-content/themes/miranui_new/resources/views/widgets/bannerText.blade.php new file mode 100644 index 0000000..3b69d01 --- /dev/null +++ b/wp-content/themes/miranui_new/resources/views/widgets/bannerText.blade.php @@ -0,0 +1,14 @@ +@php + $video_url = $settings['video']['url']; +@endphp + +
+ @if ( ( $video_url ) ) + + @endif + @if($settings['title']) +

{{ $settings['title'] }}

+ @endif +
diff --git a/wp-content/themes/miranui_new/resources/views/widgets/contact.blade.php b/wp-content/themes/miranui_new/resources/views/widgets/contact.blade.php new file mode 100644 index 0000000..c3b5442 --- /dev/null +++ b/wp-content/themes/miranui_new/resources/views/widgets/contact.blade.php @@ -0,0 +1,8 @@ +
+

{{ $settings['title'] }}

+
+ @php + echo do_shortcode('[contact-form-7 id="591638a" title="Formulaire de contact 1"]') + @endphp +
+
diff --git a/wp-content/themes/miranui_new/resources/views/widgets/culture-post.blade.php b/wp-content/themes/miranui_new/resources/views/widgets/culture-post.blade.php new file mode 100644 index 0000000..4a89a40 --- /dev/null +++ b/wp-content/themes/miranui_new/resources/views/widgets/culture-post.blade.php @@ -0,0 +1,13 @@ +
+ @foreach($settings['posts'] as $key => $post) +
+
+ +
+
+

{{ $post['title'] }}

+

{!! $post['body'] !!}

+
+
+ @endforeach +
diff --git a/wp-content/themes/miranui_new/resources/views/widgets/offerPost.blade.php b/wp-content/themes/miranui_new/resources/views/widgets/offerPost.blade.php new file mode 100644 index 0000000..a6ee49c --- /dev/null +++ b/wp-content/themes/miranui_new/resources/views/widgets/offerPost.blade.php @@ -0,0 +1,25 @@ +
+ @foreach($settings['posts'] as $key => $post) + @php + $largeImg = wp_get_attachment_image_url($post['image']['id'],'large') + @endphp + @if($key % 2 === 0) +
+ @endif +
+
+ +
+
+

{{ $post['title'] }}

+

{{ $post['subtitle'] }}

+

{!! nl2br($post['body']) !!}

+
+
+ @if($key % 2 === 1) +
+ @endif + + + @endforeach +
diff --git a/wp-content/themes/miranui_new/resources/views/widgets/sponsors.blade.php b/wp-content/themes/miranui_new/resources/views/widgets/sponsors.blade.php new file mode 100644 index 0000000..f798edd --- /dev/null +++ b/wp-content/themes/miranui_new/resources/views/widgets/sponsors.blade.php @@ -0,0 +1,11 @@ +
+
+
+ @foreach($settings['galeries'] as $image) +
+ +
+ @endforeach +
+
+
diff --git a/wp-content/themes/miranui_new/resources/views/widgets/statistics.blade.php b/wp-content/themes/miranui_new/resources/views/widgets/statistics.blade.php new file mode 100644 index 0000000..1476774 --- /dev/null +++ b/wp-content/themes/miranui_new/resources/views/widgets/statistics.blade.php @@ -0,0 +1,8 @@ +
+ @foreach($settings['posts'] as $post) +
+

{!! $post['title'] !!}

+

{{ $post['subtitle'] }}

+
+ @endforeach +
diff --git a/wp-content/themes/miranui_new/resources/views/widgets/success-storiesPost.blade.php b/wp-content/themes/miranui_new/resources/views/widgets/success-storiesPost.blade.php new file mode 100644 index 0000000..d4810ca --- /dev/null +++ b/wp-content/themes/miranui_new/resources/views/widgets/success-storiesPost.blade.php @@ -0,0 +1,15 @@ +
+ @foreach($settings['posts'] as $key => $post) + @php + $largeImg = wp_get_attachment_image_url($post['image']['id'],'large'); + @endphp +
+
+ +
+

{{ $post['title'] }}

+

{!! nl2br($post['body']) !!}

+ Découvrir +
+ @endforeach +
diff --git a/wp-content/themes/miranui_new/resources/views/widgets/title-section.blade.php b/wp-content/themes/miranui_new/resources/views/widgets/title-section.blade.php new file mode 100644 index 0000000..324a646 --- /dev/null +++ b/wp-content/themes/miranui_new/resources/views/widgets/title-section.blade.php @@ -0,0 +1,3 @@ +

+ {!! nl2br($settings['title']) !!} +

diff --git a/wp-content/themes/miranui_new/webpack.mix.js b/wp-content/themes/miranui_new/webpack.mix.js new file mode 100644 index 0000000..a3f578d --- /dev/null +++ b/wp-content/themes/miranui_new/webpack.mix.js @@ -0,0 +1,46 @@ +let mix = require('laravel-mix'); + +// Source path helper +const fs = require('fs'); +const path = require('path'); + +const themePublicUrl = '/wp-content/themes/miranui_new/public'; + +mix + .setPublicPath('public') + .setResourceRoot(`/wp-content/themes/miranui_new/public`) + .webpackConfig({ + output: { publicPath: `/wp-content/themes/miranui_new/public` } + }); + +const publicPath = path => `${mix.config.publicPath}/${path}`; + + +mix.js('resources/js/app.js', 'public').sass('resources/css/app.scss', 'public').options({ + processCssUrls: false +}).version(); + +// Assets +mix.copyDirectory('resources/images', `public/images`) + .copyDirectory('resources/fonts', `public/fonts`); + +mix.then(() => { + const manifestPath = path.resolve(__dirname, 'public/mix-manifest.json'); + + if (!fs.existsSync(manifestPath)) { + console.error('mix-manifest.json not found'); + return; + } + + const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf-8')); + const updatedManifest = {}; + + for (const key in manifest) { + updatedManifest[key] = themePublicUrl + manifest[key]; + } + + fs.writeFileSync( + manifestPath, + JSON.stringify(updatedManifest, null, 2) + ); +});