So this is the method that I am using and it’s kinda working, but I don’t think that it’s best practice and just seems kinda off, so I wanted to see if someone knew a much better and/or cleaner method on importing HTML markup that will be located in two locations.
So let’s say that I have my main index.php file:
$mode = get_field('mode'); <?php if ($mode == 'page'): ?> <div class="container my-4 <?= $class_name?>"> <div class="row justify-content-md-center pardot-form"> <div class="col-md-6 col-lg-6"> <h3>Pardot Form</h3> <?php include_once 'pardot-form.php'?> </div> </div> </div> <?php else: ?> <div class="modal_element" data-toggle="modal" data-target="#modal-<?= $id ?>" data-cookie="<?= get_field('cookie'); ?>"></div> <div class="modal fade" id="modal-<?= $id ?>" tabindex="-1" role="dialog" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalLabel">Pardot Form</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">✕</span> </button> </div> <div class="modal-body"> <?php include_once 'pardot-form.php'?> </div> </div> </div> </div> <?php endif; ?>
Then I am calling <?php include_once 'pardot-form.php'?>
in two locations because I don’t want to repeat the same HTML output twice, so the pardot-form.php file contains the following:
<form class="form"> <div class="form-group"> <label for="formGroupExampleInput">First Name:</label> <input type="text" class="form-control" id="formGroupExampleInput" placeholder="Example input placeholder"> </div> <div class="form-group"> <label for="formGroupExampleInput2">Last Name:</label> <input type="text" class="form-control" id="formGroupExampleInput2" placeholder="Another input placeholder"> </div> <div class="my-3"> <button type="submit" class="btn btn-primary" disabled>Submit</button> </div> </form>
Is there a cleaner way to “Grab HTML markup and append it in two locations”, the only difference is the outer layer where one conditional is a container block and another is a modal.
I can even delete the pardot-form.php file and add in the HTML markup in the same index.php file if you know of a cleaner way.
All help is appreciated!
Advertisement
Answer
You could save include_once 'pardot-form.php'
to a variable under the $mode = get_field('mode');
declaration and then use it wherever you want.