PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0
Showing posts with label accordion. Show all posts
Showing posts with label accordion. Show all posts

Wednesday, November 9, 2022

[FIXED] How to make accordion change both left and right content at the same time?

 November 09, 2022     accordion, css, html, jquery     No comments   

Issue

i already create the code and the result like this enter image description here

and i want when i press the other accordion, the right side image will change like this enter image description here

i already try to create, but what i got is the image stacking and not changing in the same place like this enter image description here

i use this code, and i need help to fix this problem

    <section class="various__sect">

        <div class="container">
            <div class="row">
                <div class="col-6 various__left__group">
                    <div class="various__title">
                        Various Kinds of Finances Products
                    </div>
                    <div class="various__accordion">
                        <div class="accordion accordion-flush" id="accordionFlushExample">
                            <div class="accordion-item">
                                <h2 class="accordion-header" id="flush-headingOne">
                                <button id="collapseOne" class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-collapseOne" aria-expanded="false" aria-controls="flush-collapseOne">
                                    1. We have features that help your finances
                                </button>
                                </h2>
                                <div id="flush-collapseOne" class="accordion-collapse collapse show" aria-labelledby="flush-headingOne" data-bs-parent="#accordionFlushExample">
                                    <div class="accordion-body">
                                        With this scan features, it can make transactions faster and safer, of course
                                        <div class="mt-3">
                                            <a href="">Learn More <span class="bi bi-arrow-right-short"></span></a>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="accordion-item">
                                <h2 class="accordion-header" id="flush-headingTwo">
                                <button id="collapseTwo" class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-collapseTwo" aria-expanded="false" aria-controls="flush-collapseTwo">
                                    2. All kinds of activities regarding finances
                                </button>
                                </h2>
                                <div id="flush-collapseTwo" class="accordion-collapse collapse" aria-labelledby="flush-headingTwo" data-bs-parent="#accordionFlushExample">
                                <div class="accordion-body">
                                    With this scan features, it can make transactions faster and safer, of course
                                    <div class="mt-3">
                                        <a href="">Learn More <span class="bi bi-arrow-right-short"></span></a>
                                    </div>
                                </div>
                                </div>
                            </div>
                            <div class="accordion-item">
                                <h2 class="accordion-header" id="flush-headingThree">
                                <button id="collapseThree" class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-collapseThree" aria-expanded="false" aria-controls="flush-collapseThree">
                                    3. Various of needs regarding finance here
                                </button>
                                </h2>
                                <div id="flush-collapseThree" class="accordion-collapse collapse" aria-labelledby="flush-headingThree" data-bs-parent="#accordionFlushExample">
                                    <div class="accordion-body">
                                        With this scan features, it can make transactions faster and safer, of course
                                        <div class="mt-3">
                                            <a href="">Learn More <span class="bi bi-arrow-right-short"></span></a>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="accordion-item">
                                <h2 class="accordion-header" id="flush-headingFour">
                                <button id="collapseFour" class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-collapseFour" aria-expanded="false" aria-controls="flush-collapseFour">
                                    4. Only here you will get various benefits
                                </button>
                                </h2>
                                <div id="flush-collapseFour" class="accordion-collapse collapse" aria-labelledby="flush-headingFour" data-bs-parent="#accordionFlushExample">
                                <div class="accordion-body">
                                    With this scan features, it can make transactions faster and safer, of course
                                    <div class="mt-3">
                                        <a href="">Learn More <span class="bi bi-arrow-right-short"></span></a>
                                    </div>
                                </div>
                                </div>
                            </div>
                            </div>
                    </div>
                </div>
                <div class="offset-1 col-5">

                    <div class="collapse show multi-collapse" id="flush-collapseOne">
                        <div class="img__collapse">
                            <img src="assets/img/img-various.webp" alt="">
                        </div>
                    </div>
                    <div class="collapse multi-collapse" id="flush-collapseTwo">
                        <div class="img__collapse">
                            <img src="assets/img/img-various.webp" alt="">
                        </div>
                    </div>
                    <div class="collapse multi-collapse" id="flush-collapseThree">
                        <div class="img__collapse">
                            <img src="assets/img/img-various.webp" alt="">
                        </div>
                    </div>
                    <div class="collapse multi-collapse" id="flush-collapseFour">
                        <div class="img__collapse">
                            <img src="assets/img/img-various.webp" alt="">
                        </div>
                    </div>

                </div>
            </div>
        </div>

    </section>

I'm using bootstrap 5 to create this


Solution

Using Bootstrap 5, I have created this Accordion with a Tab View Section, Simply, I just combined the "tab" and "accordion" attributes and classes in the html tags.

<!DOCTYPE html>
<html lang="en">
    <head>
        <title></title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link href="css/style.css" rel="stylesheet">

        <!-- BootStrap 5 CDN -->
        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

    </head>
    <body>
    

        <div class="accordion-tab-section">
            <div class="container">
                <div class="row pt-5">
                    <div class="col-lg-7">
                        <div  id="accordionExample" class="d-block accordion nav nav-tabs" role="tablist">
                            <div class="accordion-item" data-bs-toggle="tab" data-bs-target="#accordion-one" type="button" role="tab" aria-controls="accordion-one" aria-selected="true">
                              <h2 class="accordion-header" id="headingOne">
                                <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
                                  Accordion Item #1
                                </button>
                              </h2>
                              <div id="collapseOne" class="accordion-collapse collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample">
                                <div class="accordion-body">
                                    Lorem ipsum dolor sit amet, consectetur adipisicing 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. Duis aute irure dolor in reprehenderit in voluptate velit esse
                                    cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
                                    proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
                                </div>
                              </div>
                            </div>
                            <div class="accordion-item" data-bs-toggle="tab" data-bs-target="#accordion-two" type="button" role="tab" aria-controls="accordion-two" aria-selected="false">
                              <h2 class="accordion-header" id="headingTwo">
                                <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
                                  Accordion Item #2
                                </button>
                              </h2>
                              <div id="collapseTwo" class="accordion-collapse collapse" aria-labelledby="headingTwo" data-bs-parent="#accordionExample">
                                <div class="accordion-body">
                                    Lorem ipsum dolor sit amet, consectetur adipisicing 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. Duis aute irure dolor in reprehenderit in voluptate velit esse
                                    cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
                                    proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
                                </div>
                              </div>
                            </div>
                            <div class="accordion-item" data-bs-toggle="tab" data-bs-target="#accordion-three" type="button" role="tab" aria-controls="accordion-three" aria-selected="false">
                                <h2 class="accordion-header" id="headingTwo">
                                <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
                                  Accordion Item #3
                                </button>
                              </h2>
                              <div id="collapseThree" class="accordion-collapse collapse" aria-labelledby="headingThree" data-bs-parent="#accordionExample">
                                <div class="accordion-body">
                                    Lorem ipsum dolor sit amet, consectetur adipisicing 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. Duis aute irure dolor in reprehenderit in voluptate velit esse
                                    cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
                                    proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
                                </div>
                              </div>
                            </div>
                          </div>
                    </div>
                    <div class="col-lg-5">
                        
                        <div class="tab-content d-flex justify-content-center align-items-center h-100" id="nav-tabContent">
                            <div class="tab-pane fade show active" id="accordion-one" role="tabpanel" aria-labelledby="accordion-one-tab"><h2>Accordion Item 1</h2></div>
                            <div class="tab-pane fade" id="accordion-two" role="tabpanel" aria-labelledby="accordion-two-tab"><h2>Accordion Item 2</h2></div>
                            <div class="tab-pane fade" id="accordion-three" role="tabpanel" aria-labelledby="accordion-three-tab"><h2>Accordion Item 3</h2></div>
                        </div>
                    </div>              
                </div>
            </div>
           
        </div>

    </body>
</html>



Answered By - Satish Modha
Answer Checked By - David Goodson (PHPFixing Volunteer)
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg

Thursday, June 30, 2022

[FIXED] How to transform PrestaShop 1.7 checkout accordion steps into steps progress bar?

 June 30, 2022     accordion, checkout, prestashop, progress-bar, templates     No comments   

Issue

I'm pretty new to PrestaShop and PHP, I was asked to transform the current accordion checkout steps of PrestaShop 1.7 (classic theme) into a steps progress bar. I've got some good enough notions of CSS and a bit of JavaScript but I'm totally at lost when I look at the PrestaShop files. :(

Here some code (what's in comment is what I tried to add to create the steps progress bar). The checkout-process.tpl is a mystery:

{foreach from=$steps item="step" key="index"}
  {render identifier  =  $step.identifier
          position    =  ($index + 1)
          ui          =  $step.ui
          {* steps       =  $steps *}
  }
{/foreach}

Then I've got the checkout-step.tpl:

{block name='step'}
{* <div id="checkout-steps">
  <ul id="checkout-steps__bar">
    {foreach from=$steps item="step" key="index"}
    <li id="{$step.identifier}" class="step-title h3">{$step.title}</li>
    {/foreach}
  </ul>
</div> *}

<section id="{$identifier}" class="{[
                              'checkout-step'   => true,
                              '-current'        => $step_is_current,
                              '-reachable'      => $step_is_reachable,
                              '-complete'       => $step_is_complete,
                              'js-current-step' => $step_is_current
                          ]|classnames}">
  <h1 class="step-title h3">
    <i class="material-icons rtl-no-flip done">&#xE876;</i>
    <span class="step-number">{$position}</span>
    {$title}
    <span class="step-edit text-muted">
      <img src="{$urls.img_url}/icn/edit.png" alt="{l s='Update' d='Shop.Theme.Actions'}" class="icn-16" />
      {l s='Edit' d='Shop.Theme.Actions'}</span>
  </h1>

  <div class="content">
    {block name='step_content'}DUMMY STEP CONTENT{/block}
  </div>
</section>
{/block}

I managed to got the title by editing CheckoutProcess.php:

public function render(array $extraParams = array())
    {
        $scope = $this->smarty->createData(
            $this->smarty
        );

        $params = array(
            'steps' => array_map(function (CheckoutStepInterface $step) {
                return array(
                    'identifier' => $step->getIdentifier(),
                    'ui' => new RenderableProxy($step),
                    // Add title to steps array
                    'title' => $step->getTitle(),
                );
            }, $this->getSteps()),
        );

        $scope->assign(array_merge($extraParams, $params));

        $tpl = $this->smarty->createTemplate(
            $this->template,
            $scope
        );

        return $tpl->fetch();
    }

I don't think I'm doing the right thing but if I almost understood what's happening there, I've got no clue where to begin. -_-" If anybody got some advices or even better (one can always dream) already attempt this kind of modification, I'll be glad for any information, help, code example!! Thanks in advance.


Solution

It took me a while and it's probably not the best way to go, but I managed the transformation by adding my progress bar then overriding the default behaviour with custom CSS and JavaScript.

It's a lot of code, I'm not sure it's useful I post it there but if anyone want some information or the code, I will share it gladly!



Answered By - Claire
Answer Checked By - Dawn Plyler (PHPFixing Volunteer)
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Older Posts Home
View mobile version

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
All Comments
Atom
All Comments

Copyright © PHPFixing