Initial commit
5
.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
/src
|
||||||
|
/node_modules
|
||||||
|
/config/db.php
|
||||||
|
.env
|
||||||
|
.vscode
|
113
404.php
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
<!-- Get Header -->
|
||||||
|
<?php get_header(); ?>
|
||||||
|
|
||||||
|
<!-- 404 Page Template -->
|
||||||
|
|
||||||
|
<!-- Padder -->
|
||||||
|
<div id="padder" class="lg:flex h-24 w-full z-20 lg:h-36">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 404 Content -->
|
||||||
|
<section>
|
||||||
|
<div class="mx-auto w-full max-w-7xl px-6 pb-16 pt-10 sm:pb-24 lg:px-8">
|
||||||
|
<img class="mx-auto h-10 w-auto sm:h-12" src="<?php echo get_template_directory_uri(); ?>/assets/images/logos/mphs_logo.jpg" alt="MPHS Logo">
|
||||||
|
|
||||||
|
<div class="mx-auto mt-20 max-w-2xl text-center sm:mt-24">
|
||||||
|
<p class="text-base font-semibold leading-8 text-blue-500">404</p>
|
||||||
|
<h1 class="mt-4 text-3xl font-bold tracking-tight text-gray-900 sm:text-5xl">This page does not exist...</h1>
|
||||||
|
<p class="mt-4 text-base leading-7 text-gray-600 sm:mt-6 sm:text-lg sm:leading-8">We couldn’t find the page you’re looking for.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mx-auto mt-16 flow-root max-w-lg sm:mt-20">
|
||||||
|
|
||||||
|
<h2 class="sr-only">Popular pages</h2>
|
||||||
|
|
||||||
|
<ul role="list" class="-mt-6 divide-y divide-gray-900/5 border-b border-gray-900/5">
|
||||||
|
|
||||||
|
<li class="relative flex gap-x-6 py-6">
|
||||||
|
|
||||||
|
<div class="flex h-10 w-10 flex-none items-center justify-center rounded-lg shadow-sm ring-1 ring-gray-900/10">
|
||||||
|
<i class="bi-hammer text-blue-500" aria-hidden="true"></i>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex-auto">
|
||||||
|
<h3 class="text-sm font-semibold leading-6 text-gray-900">
|
||||||
|
<a href="<?= esc_url(site_url('/services')) ?>">
|
||||||
|
<span class="absolute inset-0" aria-hidden="true"></span>
|
||||||
|
Services
|
||||||
|
</a>
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex-none self-center">
|
||||||
|
<svg class="h-5 w-5 text-gray-400" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
|
||||||
|
<path fill-rule="evenodd" d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z" clip-rule="evenodd" />
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="relative flex gap-x-6 py-6">
|
||||||
|
|
||||||
|
<div class="flex h-10 w-10 flex-none items-center justify-center rounded-lg shadow-sm ring-1 ring-gray-900/10">
|
||||||
|
<i class="bi-person-lines-fill text-blue-500" aria-hidden="true"></i>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex-auto">
|
||||||
|
<h3 class="text-sm font-semibold leading-6 text-gray-900">
|
||||||
|
<a href="<?= esc_url(site_url('/resources')) ?>">
|
||||||
|
<span class="absolute inset-0" aria-hidden="true"></span>
|
||||||
|
Resources
|
||||||
|
</a>
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex-none self-center">
|
||||||
|
<svg class="h-5 w-5 text-gray-400" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
|
||||||
|
<path fill-rule="evenodd" d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z" clip-rule="evenodd" />
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="relative flex gap-x-6 py-6">
|
||||||
|
|
||||||
|
<div class="flex h-10 w-10 flex-none items-center justify-center rounded-lg shadow-sm ring-1 ring-gray-900/10">
|
||||||
|
<i class="bi-envelope-check-fill text-blue-500" aria-hidden="true"></i>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex-auto">
|
||||||
|
<h3 class="text-sm font-semibold leading-6 text-gray-900">
|
||||||
|
<a href="<?= esc_url(site_url('/contact')); ?>">
|
||||||
|
<span class="absolute inset-0" aria-hidden="true"></span>
|
||||||
|
Contact
|
||||||
|
</a>
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex-none self-center">
|
||||||
|
<svg class="h-5 w-5 text-gray-400" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
|
||||||
|
<path fill-rule="evenodd" d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z" clip-rule="evenodd" />
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="mt-10 flex justify-center">
|
||||||
|
<a href="<?php echo esc_url(home_url()); ?>" class="text-sm font-semibold leading-6 text-blue-500">
|
||||||
|
<span aria-hidden="true">←</span>
|
||||||
|
Back to home
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Get Footer -->
|
||||||
|
<?php get_footer(); ?>
|
6179
assets/css/bootstrap-icons.css
vendored
Normal file
10570
assets/css/font-awesome.css
vendored
Normal file
2986
assets/css/styles.css
Normal file
BIN
assets/fonts/bootstrap-icons.woff
Normal file
BIN
assets/fonts/bootstrap-icons.woff2
Normal file
BIN
assets/fonts/fa-brands-400.ttf
Normal file
BIN
assets/fonts/fa-brands-400.woff2
Normal file
BIN
assets/fonts/fa-regular-400.ttf
Normal file
BIN
assets/fonts/fa-regular-400.woff2
Normal file
BIN
assets/fonts/fa-solid-900.ttf
Normal file
BIN
assets/fonts/fa-solid-900.woff2
Normal file
BIN
assets/fonts/fa-v4compatibility.ttf
Normal file
BIN
assets/fonts/fa-v4compatibility.woff2
Normal file
BIN
assets/images/bgs/anjema-building.jpg
Normal file
After Width: | Height: | Size: 67 KiB |
BIN
assets/images/bgs/anjema_building_wide.png
Normal file
After Width: | Height: | Size: 404 KiB |
BIN
assets/images/bgs/applying_ointment.png
Normal file
After Width: | Height: | Size: 414 KiB |
BIN
assets/images/bgs/hero.png
Normal file
After Width: | Height: | Size: 947 KiB |
BIN
assets/images/bgs/hormone_replacement_therapy.png
Normal file
After Width: | Height: | Size: 328 KiB |
BIN
assets/images/bgs/oral_compounding.png
Normal file
After Width: | Height: | Size: 338 KiB |
BIN
assets/images/bgs/over-the-counter-products.png
Normal file
After Width: | Height: | Size: 427 KiB |
BIN
assets/images/bgs/pharmd_compounding.png
Normal file
After Width: | Height: | Size: 664 KiB |
BIN
assets/images/bgs/retail_prescriptions.png
Normal file
After Width: | Height: | Size: 509 KiB |
BIN
assets/images/bgs/sterile_compounding.png
Normal file
After Width: | Height: | Size: 428 KiB |
BIN
assets/images/bgs/taking_pills.png
Normal file
After Width: | Height: | Size: 378 KiB |
BIN
assets/images/bgs/topical_compounding.png
Normal file
After Width: | Height: | Size: 262 KiB |
4
assets/images/extras/Placeholder-Image---Landscape.svg
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<svg width="1280" height="720" viewBox="0 0 1280 720" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="1280" height="720" fill="#DBDBDB"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M740 300C740 288.954 731.046 280 720 280H560C548.954 280 540 288.954 540 300V420C540 431.046 548.954 440 560 440H720C731.046 440 740 431.046 740 420V300ZM615 310C623.284 310 630 316.716 630 325C630 333.284 623.284 340 615 340C606.716 340 600 333.284 600 325C600 316.716 606.716 310 615 310ZM705 410C707.761 410 710 407.762 710 405V401.6C709.993 400.519 709.643 399.469 709 398.6L666.5 341.9C665.533 340.677 664.059 339.964 662.5 339.964C660.941 339.964 659.467 340.677 658.5 341.9L629.7 379.1C628.746 380.347 627.27 381.085 625.7 381.1C624.227 381.102 622.832 380.441 621.9 379.3L607.4 361.8C606.437 360.644 605.005 359.983 603.5 360C602.127 360.144 600.868 360.827 600 361.9L571.1 398.6C570.387 399.437 569.996 400.501 570 401.6V405C570 407.762 572.239 410 575 410H705Z" fill="black" fill-opacity="0.15"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1014 B |
4
assets/images/extras/Placeholder-Video---Landscape.svg
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<svg width="1280" height="720" viewBox="0 0 1280 720" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="1280" height="720" fill="#DBDBDB"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M560 280H720C731.046 280 740 288.954 740 300V420C740 431.046 731.046 440 720 440H560C548.954 440 540 431.046 540 420V300C540 288.954 548.954 280 560 280ZM631.7 392.2L670.6 366.2C672.696 364.834 673.96 362.502 673.96 360C673.96 357.498 672.696 355.166 670.6 353.8L631.7 327.8C629.403 326.248 626.438 326.089 623.988 327.387C621.539 328.685 620.005 331.228 620 334V386C620.005 388.772 621.539 391.315 623.988 392.613C626.438 393.911 629.403 393.752 631.7 392.2Z" fill="black" fill-opacity="0.15"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 703 B |
6
assets/images/extras/company-logo.svg
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<svg width="63" height="27" viewBox="0 0 63 27" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M0.564453 21H13.2485V17.444H5.10045V0.980011H0.564453V21Z" fill="white"/>
|
||||||
|
<path d="M21.587 18.228C19.291 18.228 18.003 16.548 18.003 13.748V13.524C18.003 10.724 19.347 9.10001 21.587 9.10001C23.855 9.10001 25.171 10.78 25.171 13.58V13.776C25.171 16.548 23.855 18.228 21.587 18.228ZM21.559 21.308C25.955 21.308 29.287 18.368 29.287 13.748V13.524C29.287 8.96001 25.983 6.02001 21.587 6.02001C17.191 6.02001 13.859 9.01601 13.859 13.608V13.832C13.859 18.396 17.191 21.308 21.559 21.308Z" fill="white"/>
|
||||||
|
<path d="M37.6649 26.404C42.4809 26.404 45.3649 24.192 45.3929 19.852V6.35601H41.3609V8.54001C40.5209 7.05601 39.0929 6.02001 36.7129 6.02001C33.0729 6.02001 30.2729 8.96001 30.2729 13.16V13.356C30.2729 17.696 33.1009 20.356 36.6569 20.356C38.8129 20.356 40.5489 19.068 41.3609 17.64V19.852C41.3609 22.148 40.1289 23.436 37.6649 23.436C35.5929 23.436 34.6689 22.596 34.4169 21.308H30.3849C30.7769 24.332 32.9329 26.404 37.6649 26.404ZM37.8609 17.304C35.8449 17.304 34.4169 15.792 34.4169 13.356V13.132C34.4169 10.724 35.6769 9.10001 37.9449 9.10001C40.1569 9.10001 41.4729 10.612 41.4729 13.104V13.3C41.4729 15.792 39.9889 17.304 37.8609 17.304Z" fill="white"/>
|
||||||
|
<path d="M54.9617 18.228C52.6657 18.228 51.3777 16.548 51.3777 13.748V13.524C51.3777 10.724 52.7217 9.10001 54.9617 9.10001C57.2297 9.10001 58.5457 10.78 58.5457 13.58V13.776C58.5457 16.548 57.2297 18.228 54.9617 18.228ZM54.9337 21.308C59.3297 21.308 62.6617 18.368 62.6617 13.748V13.524C62.6617 8.96001 59.3577 6.02001 54.9617 6.02001C50.5657 6.02001 47.2337 9.01601 47.2337 13.608V13.832C47.2337 18.396 50.5657 21.308 54.9337 21.308Z" fill="white"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.7 KiB |
4
assets/images/extras/image.svg
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="300" height="300" fill="#E0E0E0"/>
|
||||||
|
<path d="M174 168.75V132C174 129.112 171.638 126.75 168.75 126.75H132C129.112 126.75 126.75 129.112 126.75 132V168.75C126.75 171.638 129.112 174 132 174H168.75C171.638 174 174 171.638 174 168.75ZM141.188 154.312L147.75 162.214L156.938 150.375L168.75 166.125H132L141.188 154.312Z" fill="#C2C2C2"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 452 B |
4
assets/images/extras/placeholder-image.svg
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<svg width="1000" height="1000" viewBox="0 0 1000 1000" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="1000" height="1000" fill="#DBDBDB"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M600 440C600 428.954 591.046 420 580 420H420C408.954 420 400 428.954 400 440V560C400 571.046 408.954 580 420 580H580C591.046 580 600 571.046 600 560V440ZM475 450C483.284 450 490 456.716 490 465C490 473.284 483.284 480 475 480C466.716 480 460 473.284 460 465C460 456.716 466.716 450 475 450ZM565 550C567.761 550 570 547.762 570 545V541.6C569.993 540.519 569.643 539.469 569 538.6L526.5 481.9C525.533 480.677 524.059 479.964 522.5 479.964C520.941 479.964 519.467 480.677 518.5 481.9L489.7 519.1C488.746 520.347 487.27 521.085 485.7 521.1C484.227 521.102 482.832 520.441 481.9 519.3L467.4 501.8C466.437 500.644 465.005 499.983 463.5 500C462.127 500.144 460.868 500.827 460 501.9L431.1 538.6C430.387 539.437 429.996 540.501 430 541.6V545C430 547.762 432.239 550 435 550H565Z" fill="black" fill-opacity="0.15"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1017 B |
4
assets/images/extras/placeholder-video-thumbnail.svg
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<svg width="1000" height="1000" viewBox="0 0 1000 1000" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="1000" height="1000" fill="#DBDBDB"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M420 420H580C591.046 420 600 428.954 600 440V560C600 571.046 591.046 580 580 580H420C408.954 580 400 571.046 400 560V440C400 428.954 408.954 420 420 420ZM491.7 532.2L530.6 506.2C532.696 504.834 533.96 502.502 533.96 500C533.96 497.498 532.696 495.166 530.6 493.8L491.7 467.8C489.403 466.248 486.438 466.089 483.988 467.387C481.539 468.685 480.005 471.228 480 474V526C480.005 528.772 481.539 531.315 483.988 532.613C486.438 533.911 489.403 533.752 491.7 532.2Z" fill="black" fill-opacity="0.15"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 706 B |
BIN
assets/images/icons/dental-preparations.png
Normal file
After Width: | Height: | Size: 77 KiB |
BIN
assets/images/icons/ear_nose_throat.png
Normal file
After Width: | Height: | Size: 54 KiB |
BIN
assets/images/icons/foot_care.png
Normal file
After Width: | Height: | Size: 62 KiB |
BIN
assets/images/icons/injectables.png
Normal file
After Width: | Height: | Size: 58 KiB |
BIN
assets/images/icons/ophthalmic_preparations.png
Normal file
After Width: | Height: | Size: 77 KiB |
BIN
assets/images/icons/oral_liquids.png
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
assets/images/icons/oral_solids.png
Normal file
After Width: | Height: | Size: 58 KiB |
BIN
assets/images/icons/pain_management.png
Normal file
After Width: | Height: | Size: 73 KiB |
BIN
assets/images/icons/suppositories.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
assets/images/icons/topicals.png
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
assets/images/icons/wound_care.png
Normal file
After Width: | Height: | Size: 52 KiB |
BIN
assets/images/logos/alcon.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
assets/images/logos/anjema_eye_institute.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
assets/images/logos/bausch_lomb.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
assets/images/logos/bayer.png
Normal file
After Width: | Height: | Size: 13 KiB |
30
assets/images/logos/bayer.svg
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<svg version="1.1" id="Layer_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
viewBox="0 0 76 76" style="enable-background:new 0 0 76 76;" xml:space="preserve">
|
||||||
|
<style type="text/css">
|
||||||
|
.st0{fill:#10384F;}
|
||||||
|
.st1{fill:#89D329;}
|
||||||
|
.st2{fill:#00BCFF;}
|
||||||
|
</style>
|
||||||
|
<g id="Bayer_Cross_1_">
|
||||||
|
<path class="st0" d="M35.9,11.3h4.4c0.5,0,0.9-0.4,0.9-0.9c0-0.5-0.4-0.9-0.9-0.9h-4.4V11.3z M35.9,15.5h4.5c0.6,0,1-0.4,1-1
|
||||||
|
c0-0.6-0.4-1-1-1h-4.5V15.5z M43,12.3c0.6,0.6,1,1.4,1,2.3c0,1.8-1.4,3.2-3.2,3.2h-7.3V7.3l7.2,0c1.7,0,3.1,1.4,3.1,3.1
|
||||||
|
C43.7,11.1,43.4,11.8,43,12.3z M44.7,30.3H42l-0.8-1.8h-5.9l-0.8,1.8h-2.7L37,19.8h2.4L44.7,30.3z M38.2,22.5l-1.8,3.8H40
|
||||||
|
L38.2,22.5z M41.8,32.6h3l-5.3,6.8v3.7h-2.5v-3.7l-5.3-6.8h3l3.6,4.8L41.8,32.6z M55.7,32.6v2.3h-7v1.8l6.8,0v2.3h-6.8v2h7v2.3
|
||||||
|
h-9.5V32.6H55.7z M63.4,39.1h-1.9v4h-2.5V32.6h6.4c1.8,0,3.2,1.5,3.2,3.3c0,1.5-1,2.7-2.3,3.1l3.1,4.1h-3L63.4,39.1z M65.2,34.8
|
||||||
|
h-3.6v2h3.6c0.6,0,1-0.5,1-1C66.2,35.3,65.7,34.8,65.2,34.8z M32.8,43.1h-2.7l-0.8-1.8h-5.9l-0.8,1.8h-2.7l5.3-10.5h2.4L32.8,43.1z
|
||||||
|
M26.3,35.3l-1.8,3.8h3.7L26.3,35.3z M10.4,36.6h4.4c0.5,0,0.9-0.4,0.9-0.9c0-0.5-0.4-0.9-0.9-0.9l-4.4,0V36.6z M10.4,40.8h4.5
|
||||||
|
c0.6,0,1-0.4,1-1c0-0.6-0.4-1-1-1h-4.5V40.8z M17.5,37.6c0.6,0.6,1,1.4,1,2.3c0,1.8-1.4,3.2-3.2,3.2H7.9V32.6h7.2
|
||||||
|
c1.7,0,3.1,1.4,3.1,3.1C18.2,36.4,17.9,37.1,17.5,37.6z M43,45.3v2.3h-7v1.8l6.8,0v2.3h-6.8v2h7v2.3h-9.5V45.3H43z M41.2,61.6
|
||||||
|
c0-0.6-0.4-1-1-1h-4.3v2h4.3C40.8,62.6,41.2,62.2,41.2,61.6z M33.4,68.9V58.4h7c1.8,0,3.2,1.5,3.2,3.3c0,1.4-0.8,2.5-2,3l3.2,4.2
|
||||||
|
h-3l-3-4h-2.9v4H33.4z"/>
|
||||||
|
<path class="st1" d="M76.1,35.6C74.9,15.8,58.4,0,38.2,0C18,0,1.5,15.8,0.3,35.6c0,0.8,0.1,1.6,0.2,2.4c0.8,6.6,3.3,12.7,7.1,17.8
|
||||||
|
c6.9,9.4,18,15.5,30.6,15.5c-17.6,0-32-13.7-33.2-30.9c-0.1-0.8-0.1-1.6-0.1-2.4c0-0.8,0-1.6,0.1-2.4C6.2,18.4,20.6,4.7,38.2,4.7
|
||||||
|
c12.6,0,23.7,6.1,30.6,15.5c3.8,5.1,6.3,11.2,7.1,17.8c0.1,0.8,0.2,1.6,0.2,2.3c0-0.8,0.1-1.6,0.1-2.4
|
||||||
|
C76.2,37.2,76.2,36.4,76.1,35.6"/>
|
||||||
|
<path class="st2" d="M0.3,40.4C1.5,60.2,18,76,38.2,76c20.2,0,36.7-15.8,37.9-35.6c0-0.8-0.1-1.6-0.2-2.4
|
||||||
|
c-0.8-6.6-3.3-12.7-7.1-17.8c-6.9-9.4-18-15.5-30.6-15.5c17.6,0,32,13.7,33.2,30.9c0.1,0.8,0.1,1.6,0.1,2.4c0,0.8,0,1.6-0.1,2.4
|
||||||
|
c-1.2,17.3-15.6,30.9-33.2,30.9c-12.6,0-23.7-6.1-30.6-15.5C3.8,50.7,1.3,44.6,0.5,38c-0.1-0.8-0.2-1.6-0.2-2.3
|
||||||
|
c0,0.8-0.1,1.6-0.1,2.4C0.2,38.8,0.2,39.6,0.3,40.4"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.4 KiB |
BIN
assets/images/logos/chatham_kent_vet.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
assets/images/logos/hepa_filter_services.png
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
assets/images/logos/medical_place_pharmacy.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
assets/images/logos/medisca.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
assets/images/logos/mphs_logo.jpg
Normal file
After Width: | Height: | Size: 64 KiB |
BIN
assets/images/logos/mphs_logo.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
assets/images/logos/mphs_logo_symbol.jpg
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
assets/images/logos/novartis.png
Normal file
After Width: | Height: | Size: 12 KiB |
1
assets/images/logos/novartis.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 295.44 48.31"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:#0460a9;}</style><linearGradient id="linear-gradient" x1="56.72" y1="64.98" x2="99.51" y2="64.98" gradientUnits="userSpaceOnUse"><stop offset="0.3" stop-color="#e74a21"/><stop offset="0.7" stop-color="#ec9a1e"/></linearGradient></defs><title>novartis_logo_pos_rgb</title><g id="_Group_" data-name="<Group>"><path id="_Path_" data-name="<Path>" class="cls-1" d="M86.27,60.09l-.12.31c2,.88,6.49,4.37,6.49,11.4,0,6.62-5.58,13.29-14.35,13.29-10.91,0-14.67-6.38-14.67-12.24,0-7.51,5.25-12.51,5.25-19.35a10.69,10.69,0,0,0-8.42-10.32l-.18.31a8.86,8.86,0,0,1,2.69,6.41c0,7.39-6.23,12.64-6.23,21.12,0,7.81,5.46,15.77,21.27,15.77,14.09,0,21.52-6.9,21.52-14.24C99.51,66.25,95,60.92,86.27,60.09Z" transform="translate(-56.72 -38.48)"/><path id="_Compound_Path_" data-name="<Compound Path>" class="cls-2" d="M148.17,85.53,129.44,61.38V83.15l3.82.91v1h-8.71v-1l3.12-.91V59.43A6.66,6.66,0,0,0,125,57.91c-.38-.08-.89-.17-.89-.17v-1h7.39l16,20.8V58.67l-3.82-.92v-1h8.71v1l-3.12.92V80.26c0,2,.14,4.91.17,5.28Zm39.16-15.38c0,10-7,15.8-14.65,15.8S158,80.07,158,70.93s7-15.08,14.61-15.08A14.25,14.25,0,0,1,187.33,70.16Zm-4.87,1.5c0-7.35-4.4-14.48-10.38-14.48-6.36,0-9.23,6.15-9.23,12.73s3.63,14.74,10.46,14.74C179.73,84.64,182.46,78.14,182.46,71.65Zm10.92-13-3-.92v-1h11.49v1l-3.6.92,7.93,21.62h0l7.93-21.62-3.6-.92v-1h8.5v1l-3,.92L206.1,85.6h-2.54ZM261.28,70.6h-1.82V58.22c6,0,9.57,1.38,9.57,6.28C269,68.14,265.88,70.6,261.28,70.6Zm51.41,13.46,4-.91V58.66l-4-.92v-1h12.47v1l-4,.92V83.15l4,.91v1H312.69Zm20.11-6.78h.79l2.65,6.1a11.87,11.87,0,0,0,5.07,1.26c3.44,0,6.58-2,6.58-5.58,0-2.72-1.76-4.34-4.61-5.83l-2.82-1.46c-3.37-1.75-6.74-4.23-6.74-8.22,0-4.34,3-7.69,9.42-7.69a22.14,22.14,0,0,1,6.64,1.09l.67,6.56h-.85l-2.45-5.26A8.51,8.51,0,0,0,343,57.17c-3.25,0-5.46,2-5.46,4.77,0,2.51,1.67,4.09,4.53,5.57l3.34,1.74c4.56,2.36,6.72,4.55,6.72,8.6,0,5-4.69,8.11-10.52,8.11a25.1,25.1,0,0,1-8.09-1.21Zm-115.6,6.78,3.21-.91,9.91-26.43,3.31-.85,10.23,27.27,3.21.92v1H234.93v-1l4.11-.92-2.9-7.84h-10.9l-2.88,7.84,4.11.91v1h-9.27ZM226,73.21h9.43l-4.68-12.64h0Zm41-2c1-.25,6.61-1.68,6.61-7,0-4.27-3.27-7.58-11.33-7.58-5,0-10,.11-10.63.13v1l3.29.92V83.14l-3.29.92v1h11.64v-1l-3.82-.92V72.08h3.29l8.41,13h7.45v-1l-3.77-1Zm24.58-13V83.15l-4,.91v1h12.47v-1l-4-.91V58.22h6.73L305,63h.86l-.64-6.23H282.41L281.77,63h.86l2.2-4.73Zm-213.39,18,4-37.79h-8.3l4,37.79Z" transform="translate(-56.72 -38.48)"/></g></svg>
|
After Width: | Height: | Size: 2.5 KiB |
BIN
assets/images/logos/ontario_college_pharmacists.png
Normal file
After Width: | Height: | Size: 53 KiB |
BIN
assets/images/logos/pcca.png
Normal file
After Width: | Height: | Size: 97 KiB |
BIN
assets/images/logos/pcca_logo.jpg
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
assets/images/logos/pcca_logo.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
BIN
assets/images/logos/rule_hearing_center.png
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
assets/images/logos/screenshot.png
Normal file
After Width: | Height: | Size: 247 KiB |
153
assets/js/index.js
Normal file
@@ -0,0 +1,153 @@
|
|||||||
|
/******/ (() => { // webpackBootstrap
|
||||||
|
/******/ "use strict";
|
||||||
|
/******/ var __webpack_modules__ = ({
|
||||||
|
|
||||||
|
/***/ "./src/modules/CollapsePanel.js":
|
||||||
|
/*!**************************************!*\
|
||||||
|
!*** ./src/modules/CollapsePanel.js ***!
|
||||||
|
\**************************************/
|
||||||
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||||
|
|
||||||
|
__webpack_require__.r(__webpack_exports__);
|
||||||
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
||||||
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
||||||
|
/* harmony export */ });
|
||||||
|
class CollapsePanel {
|
||||||
|
constructor() {
|
||||||
|
this.toggles = document.querySelectorAll('.faq-toggle');
|
||||||
|
this.toggleCollapse();
|
||||||
|
}
|
||||||
|
toggleCollapse() {
|
||||||
|
this.toggles.forEach(toggle => {
|
||||||
|
toggle.addEventListener('click', () => {
|
||||||
|
toggle.parentNode.classList.toggle('active');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CollapsePanel);
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ "./src/modules/NavControl.js":
|
||||||
|
/*!***********************************!*\
|
||||||
|
!*** ./src/modules/NavControl.js ***!
|
||||||
|
\***********************************/
|
||||||
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||||
|
|
||||||
|
__webpack_require__.r(__webpack_exports__);
|
||||||
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
||||||
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
||||||
|
/* harmony export */ });
|
||||||
|
class Nav {
|
||||||
|
constructor() {
|
||||||
|
this.toggleMenuBtn = document.getElementById('toggle-nav');
|
||||||
|
this.toggleProjectsBtn = document.getElementById('toggle-projects');
|
||||||
|
this.menuWrapper = document.querySelector('#menu_wrapper');
|
||||||
|
this.menuLinks = document.querySelectorAll('.menu-item a');
|
||||||
|
this.events();
|
||||||
|
this.setActiveMenuLink();
|
||||||
|
}
|
||||||
|
events() {
|
||||||
|
// Open and Close the Nav Menu
|
||||||
|
this.toggleMenuBtn.addEventListener('click', () => this.toggleNavMenu());
|
||||||
|
}
|
||||||
|
toggleNavMenu() {
|
||||||
|
this.toggleMenuBtn.classList.toggle('active');
|
||||||
|
document.body.classList.toggle('noScroll');
|
||||||
|
this.menuWrapper.classList.toggle('expand');
|
||||||
|
}
|
||||||
|
setActiveMenuLink() {
|
||||||
|
this.menuLinks.forEach(function (link) {
|
||||||
|
if (link.href === window.location.href) {
|
||||||
|
link.classList.add('active-highlight');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Nav);
|
||||||
|
|
||||||
|
/***/ })
|
||||||
|
|
||||||
|
/******/ });
|
||||||
|
/************************************************************************/
|
||||||
|
/******/ // The module cache
|
||||||
|
/******/ var __webpack_module_cache__ = {};
|
||||||
|
/******/
|
||||||
|
/******/ // The require function
|
||||||
|
/******/ function __webpack_require__(moduleId) {
|
||||||
|
/******/ // Check if module is in cache
|
||||||
|
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
||||||
|
/******/ if (cachedModule !== undefined) {
|
||||||
|
/******/ return cachedModule.exports;
|
||||||
|
/******/ }
|
||||||
|
/******/ // Create a new module (and put it into the cache)
|
||||||
|
/******/ var module = __webpack_module_cache__[moduleId] = {
|
||||||
|
/******/ // no module.id needed
|
||||||
|
/******/ // no module.loaded needed
|
||||||
|
/******/ exports: {}
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ // Execute the module function
|
||||||
|
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
||||||
|
/******/
|
||||||
|
/******/ // Return the exports of the module
|
||||||
|
/******/ return module.exports;
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/************************************************************************/
|
||||||
|
/******/ /* webpack/runtime/define property getters */
|
||||||
|
/******/ (() => {
|
||||||
|
/******/ // define getter functions for harmony exports
|
||||||
|
/******/ __webpack_require__.d = (exports, definition) => {
|
||||||
|
/******/ for(var key in definition) {
|
||||||
|
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
||||||
|
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ };
|
||||||
|
/******/ })();
|
||||||
|
/******/
|
||||||
|
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
||||||
|
/******/ (() => {
|
||||||
|
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
||||||
|
/******/ })();
|
||||||
|
/******/
|
||||||
|
/******/ /* webpack/runtime/make namespace object */
|
||||||
|
/******/ (() => {
|
||||||
|
/******/ // define __esModule on exports
|
||||||
|
/******/ __webpack_require__.r = (exports) => {
|
||||||
|
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
||||||
|
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||||
|
/******/ }
|
||||||
|
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
||||||
|
/******/ };
|
||||||
|
/******/ })();
|
||||||
|
/******/
|
||||||
|
/************************************************************************/
|
||||||
|
var __webpack_exports__ = {};
|
||||||
|
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
|
||||||
|
(() => {
|
||||||
|
/*!**********************!*\
|
||||||
|
!*** ./src/index.js ***!
|
||||||
|
\**********************/
|
||||||
|
__webpack_require__.r(__webpack_exports__);
|
||||||
|
/* harmony import */ var _modules_NavControl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modules/NavControl */ "./src/modules/NavControl.js");
|
||||||
|
/* harmony import */ var _modules_CollapsePanel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modules/CollapsePanel */ "./src/modules/CollapsePanel.js");
|
||||||
|
// Our modules / classes
|
||||||
|
// Import modules e.g import MobileMenu from "./modules/MobileMenu"
|
||||||
|
// import TestModule from './modules/TestModule'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Instantiate a new object using our modules/classes
|
||||||
|
// e.g var mobileMenu = new MobileMenu()
|
||||||
|
|
||||||
|
// var testModule = new TestModule()
|
||||||
|
var navControl = new _modules_NavControl__WEBPACK_IMPORTED_MODULE_0__["default"]();
|
||||||
|
var collapsePanel = new _modules_CollapsePanel__WEBPACK_IMPORTED_MODULE_1__["default"]();
|
||||||
|
})();
|
||||||
|
|
||||||
|
/******/ })()
|
||||||
|
;
|
||||||
|
//# sourceMappingURL=index.js.map
|
1
assets/js/index.js.map
Normal file
108
footer.php
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
<section>
|
||||||
|
<div class="bg-gray-100 px-4 py-12">
|
||||||
|
<div class="max-w-7xl mx-auto">
|
||||||
|
<div class="gap-4 grid grid-cols-1 lg:grid-cols-3">
|
||||||
|
<div class="col-span-2 overflow-hidden lg:px-4 lg:py-5">
|
||||||
|
<h2 class="capitalize font-medium text-3xl text-blue-500 text-center mb-4"><?php _e('Questions?', 'themeStarter'); ?></h2>
|
||||||
|
<p class="text-xl text-center">See our FAQ’s page to get a better understanding of how compounding can work for you and your family.
|
||||||
|
Please feel free to <span class="font-medium underline"><a href="<?= site_url('/contact'); ?>">contact</a></span> us for further assistance.</p>
|
||||||
|
</div>
|
||||||
|
<div class="mx-auto lg:px-4 lg:py-5 lg:flex lg:items-center"> <a class="capitalize duration-700 text-white hover:text-black inline-flex items-center justify-center font-normal hover:bg-gray-200 ease-in-out bg-blue-500 min-w-max py-2 px-8 hover:-translate-y-1 hover:ease-linear transition" href="<?php echo esc_url(site_url('/faqs')); ?>"><?php _e('Frequently Asked Questions', 'themeStarter'); ?>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="grid px-4 gap-x-16 grid-cols-4 py-8 max-w-7xl mx-auto">
|
||||||
|
|
||||||
|
<!-- Call Us -->
|
||||||
|
<div class="flex flex-col space-y-2 items-center justify-center text-center"><a class="border bg-blue-500 flex h-16 hover:-translate-y-2 hover:duration-700 hover:ease-in-out items-center justify-center rounded-full transition-transform w-16" href="tel:9058120042"><svg xmlns="http://www.w3.org/2000/svg" height="16" fill="white" class="bi bi-telephone" viewBox="0 0 16 16" width="16">
|
||||||
|
<path d="M3.654 1.328a.678.678 0 0 0-1.015-.063L1.605 2.3c-.483.484-.661 1.169-.45 1.77a17.568 17.568 0 0 0 4.168 6.608 17.569 17.569 0 0 0 6.608 4.168c.601.211 1.286.033 1.77-.45l1.034-1.034a.678.678 0 0 0-.063-1.015l-2.307-1.794a.678.678 0 0 0-.58-.122l-2.19.547a1.745 1.745 0 0 1-1.657-.459L5.482 8.062a1.745 1.745 0 0 1-.46-1.657l.548-2.19a.678.678 0 0 0-.122-.58L3.654 1.328zM1.884.511a1.745 1.745 0 0 1 2.612.163L6.29 2.98c.329.423.445.974.315 1.494l-.547 2.19a.678.678 0 0 0 .178.643l2.457 2.457a.678.678 0 0 0 .644.178l2.189-.547a1.745 1.745 0 0 1 1.494.315l2.306 1.794c.829.645.905 1.87.163 2.611l-1.034 1.034c-.74.74-1.846 1.065-2.877.702a18.634 18.634 0 0 1-7.01-4.42 18.634 18.634 0 0 1-4.42-7.009c-.362-1.03-.037-2.137.703-2.877L1.885.511z" />
|
||||||
|
</svg> </a>
|
||||||
|
<a class="font-semibold hover:underline mb-2" href="tel:9058120042"><?php _e('Call', 'themeStarter'); ?></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Fax Us -->
|
||||||
|
<div class="flex flex-col space-y-2 items-center justify-center text-center"><a class="border bg-blue-500 flex h-16 hover:-translate-y-2 hover:duration-700 hover:ease-in-out items-center justify-center rounded-full transition-transform w-16" href="fax:9058120048"><svg xmlns="http://www.w3.org/2000/svg" fill="white" class="bi bi-printer" viewBox="0 0 16 16" height="16" width="16">
|
||||||
|
<path d="M2.5 8a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1z" />
|
||||||
|
<path d="M5 1a2 2 0 0 0-2 2v2H2a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h1v1a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-1h1a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-1V3a2 2 0 0 0-2-2H5zM4 3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2H4V3zm1 5a2 2 0 0 0-2 2v1H2a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v-1a2 2 0 0 0-2-2H5zm7 2v3a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1z" />
|
||||||
|
</svg> </a>
|
||||||
|
<a class="font-semibold hover:underline mb-2" href="fax:9058120048"><?php _e('Fax', 'themeStarter'); ?></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Email Us -->
|
||||||
|
<div class="flex flex-col space-y-2 items-center justify-center text-center"><a class="border bg-blue-500 flex h-16 hover:-translate-y-2 hover:duration-700 hover:ease-in-out items-center justify-center rounded-full transition-transform w-16" href="mailto:info@romagcontracting.ca"><svg xmlns="http://www.w3.org/2000/svg" height="16" fill="white" class="bi bi-envelope" viewBox="0 0 16 16" width="16">
|
||||||
|
<path d="M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4Zm2-1a1 1 0 0 0-1 1v.217l7 4.2 7-4.2V4a1 1 0 0 0-1-1H2Zm13 2.383-4.708 2.825L15 11.105V5.383Zm-.034 6.876-5.64-3.471L8 9.583l-1.326-.795-5.64 3.47A1 1 0 0 0 2 13h12a1 1 0 0 0 .966-.741ZM1 11.105l4.708-2.897L1 5.383v5.722Z" />
|
||||||
|
</svg> </a>
|
||||||
|
<a class="font-semibold hover:underline mb-2" href="mailto:info@romagcontracting.ca"><?php _e('Email', 'themeStarter'); ?></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Visit Us -->
|
||||||
|
<div class="flex flex-col space-y-2 items-center justify-center text-center"><a class="border bg-blue-500 flex h-16 hover:-translate-y-2 hover:duration-700 hover:ease-in-out items-center justify-center rounded-full transition-transform w-16" href="https://goo.gl/maps/SVnnmjbXN8K2"> <svg xmlns="http://www.w3.org/2000/svg" height="16" fill="white" class="bi bi-geo-alt" viewBox="0 0 16 16" width="16">
|
||||||
|
<path d="M12.166 8.94c-.524 1.062-1.234 2.12-1.96 3.07A31.493 31.493 0 0 1 8 14.58a31.481 31.481 0 0 1-2.206-2.57c-.726-.95-1.436-2.008-1.96-3.07C3.304 7.867 3 6.862 3 6a5 5 0 0 1 10 0c0 .862-.305 1.867-.834 2.94zM8 16s6-5.686 6-10A6 6 0 0 0 2 6c0 4.314 6 10 6 10z" />
|
||||||
|
<path d="M8 8a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm0 1a3 3 0 1 0 0-6 3 3 0 0 0 0 6z" />
|
||||||
|
</svg> </a>
|
||||||
|
<a class="font-semibold hover:underline mb-2" href="https://goo.gl/maps/SVnnmjbXN8K2"><?php _e('Visit', 'themeStarter'); ?></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<footer id="footer">
|
||||||
|
<div class="text-inherit">
|
||||||
|
<div class="container max-w-7xl mx-auto">
|
||||||
|
<h2 class="sr-only" id="footer-heading"><?php _e('Footer', 'themeStarter'); ?></h2>
|
||||||
|
|
||||||
|
<div class="mx-auto max-w-7xl py-12 px-4 lg:py-16">
|
||||||
|
<div class="gap-4 grid grid-cols-2 lg:grid-cols-5">
|
||||||
|
<div class="mb-4 lg:mb-0"><a class="flex items-center mb-4 lg:mb-0" href="<?php echo esc_url(home_url()); ?>"><img alt="Romag Contracting Logo" src="<?php echo get_template_directory_uri(); ?>/assets/images/logos/mphs_logo.png" width="170" /></a>
|
||||||
|
<?php if (has_nav_menu('secondary')) : ?>
|
||||||
|
<?php
|
||||||
|
PG_Smart_Walker_Nav_Menu::init();
|
||||||
|
PG_Smart_Walker_Nav_Menu::$options['template'] = '<li id="{ID}" class="{CLASSES}">
|
||||||
|
<a data-pg-class-style="footer_link" class="hover:text-blue-100 inline-block main-link min-w-max mx-auto uppercase static" {ATTRS}>{TITLE}</a>
|
||||||
|
</li>';
|
||||||
|
wp_nav_menu(array(
|
||||||
|
'container' => '',
|
||||||
|
'theme_location' => 'secondary',
|
||||||
|
'items_wrap' => '<ul class="%2$s font-normal mt-4 space-y-0" id="%1$s">%3$s</ul>',
|
||||||
|
'walker' => new PG_Smart_Walker_Nav_Menu()
|
||||||
|
)); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
<h3 class="font-black"><?php _e('Business Hours', 'themeStarter'); ?></h3>
|
||||||
|
<div class="font-normal mt-4 space-y-0">
|
||||||
|
<p><b> <?php _e('Mon', 'themeStarter'); ?></b><?php _e(': 8 am - 4 pm', 'themeStarter'); ?> <br /><b> <?php _e('Tue', 'themeStarter'); ?></b><?php _e(': 8 am - 4 pm', 'themeStarter'); ?> <br /><b> <?php _e('Wed', 'themeStarter'); ?></b><?php _e(': 8 am - 4 pm', 'themeStarter'); ?> <br /><b> <?php _e('Thur', 'themeStarter'); ?></b><?php _e(': 8 am - 4 pm', 'themeStarter'); ?> <br /><b> <?php _e('Fri', 'themeStarter'); ?></b><?php _e(': 8 am - 4 pm', 'themeStarter'); ?> <br /><b> <?php _e('Sat', 'themeStarter'); ?></b><?php _e(': Closed', 'themeStarter'); ?> <br /><b> <?php _e('Sun', 'themeStarter'); ?></b><?php _e(': Closed', 'themeStarter'); ?></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-span-2 lg:col-span-3">
|
||||||
|
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d1075.152620720201!2d-82.21620516580124!3d42.42871093900612!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x882557e1890039a5%3A0xce3a10daaaaf03f3!2sMedical%20Place%20Health%20Solutions!5e0!3m2!1sen!2sca!4v1704763808952!5m2!1sen!2sca" width="100%" height="220" style="border: 0" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="border-t border-blue-500 py-8">
|
||||||
|
<p class="text-base text-center xl:text-center"><?php echo 'Copyright © ' . date("Y") . ' Medical Place Health Solutions. All rights reserved.' ?></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</main>
|
||||||
|
<?php wp_footer() ?>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
217
front-page.php
Normal file
@@ -0,0 +1,217 @@
|
|||||||
|
<!-- Get Header -->
|
||||||
|
<?php get_header(); ?>
|
||||||
|
|
||||||
|
<!-- Front Page/Landing Page Template -->
|
||||||
|
|
||||||
|
<!-- Padder -->
|
||||||
|
<div class="h-28 lg:h-30"></div>
|
||||||
|
|
||||||
|
<!-- Hero Section -->
|
||||||
|
<section>
|
||||||
|
<div id="hero" class="relative">
|
||||||
|
<div class="absolute flex flex-col h-full justify-center left-0 text-left top-0 w-full">
|
||||||
|
<div class="flex flex-col items-start max-w-6xl mx-auto px-8 w-full xl:max-w-7xl">
|
||||||
|
<h1 class="font-bold lg:text-5xl mb-4 text-3xl text-white uppercase px-8 py-4 rounded-md bg-blue-500 bg-opacity-20"> <?php _e('Compounding', 'themeStarter'); ?><br /><?php _e('Pharmacy', 'themeStarter'); ?> </h1>
|
||||||
|
<p class="font-medium text-lg text-white"><?php _e('Find out how compounded medications can benefit you.', 'themeStarter'); ?></p>
|
||||||
|
<div class="bg-white mb-8 mt-4 pt-1 w-36"></div>
|
||||||
|
<div class="flex flex-col md:flex-row md:items-center md:space-x-4 md:space-y-0 space-y-4">
|
||||||
|
<a class="items-center justify-center capitalize ease-in-out duration-700 py-2 px-5 font-normal hover:bg-gray-200 text-center text-black bg-white min-w-max transition hover:-translate-y-1" href="<?php echo esc_url(site_url('/contact')); ?>"><?php _e('Request Free Consultation', 'themeStarter'); ?>
|
||||||
|
</a>
|
||||||
|
<a class="capitalize duration-700 text-white hover:text-black inline-flex items-center justify-center font-normal hover:bg-gray-200 ease-in-out bg-blue-500 min-w-max py-2 px-8 hover:-translate-y-1 hover:ease-linear transition" href="<?php echo esc_url(site_url('/services')); ?>"><?php _e('Our Services', 'themeStarter'); ?>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Our Services Section -->
|
||||||
|
<section>
|
||||||
|
|
||||||
|
<div class="py-8">
|
||||||
|
|
||||||
|
<h2 class="capitalize font-medium text-xl md:text-2xl lg:text-4xl text-blue-500 text-center"><?php _e('Our Services', 'themeStarter'); ?></h2>
|
||||||
|
|
||||||
|
<div class="bg-blue-500 mx-auto mb-8 mt-4 pt-1 w-36"></div>
|
||||||
|
|
||||||
|
<p class="text-center px-8 max-w-6xl mx-auto py-4">Medical Place Health Solutions is a brand new retail and compounding pharmacy in Chatham. We can tailor medications that are prescribed to fit every patient’s specific needs, maximizing the benefits and minimizing the risk of adverse side effects. We offer specialty compounding services which you can find below. For more details click on the icon to continue to our Services page.</p>
|
||||||
|
|
||||||
|
<div class="max-w-7xl mx-auto grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 md:gap-8 text-center">
|
||||||
|
|
||||||
|
<div class="hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8 flex flex-col items-center">
|
||||||
|
<a class="font-medium underline flex flex-col items-center" href="" target="_blank">
|
||||||
|
<img class="w-1/4" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/oral_solids.png" alt="Oral Solids">Oral Solids
|
||||||
|
</a>
|
||||||
|
<p class="mt-4">Compounded Tablets, Capsules, Gummies, etc.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8 flex flex-col items-center">
|
||||||
|
<a class="font-medium underline flex flex-col items-center" href="" target="_blank">
|
||||||
|
<img class="w-1/4" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/topicals.png" alt="Topicals">Topicals
|
||||||
|
</a>
|
||||||
|
<p class="mt-4">Creams, Gels, Ointments, etc.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8 flex flex-col items-center">
|
||||||
|
<a class="font-medium underline flex flex-col items-center" href="" target="_blank">
|
||||||
|
<img class="w-1/4" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/pain_management.png" alt="Pain Management">Pain Management
|
||||||
|
</a>
|
||||||
|
<p class="mt-4">Inflammatory Pain, Nerve Pain, Plantar Fasciitis, etc.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8 flex flex-col items-center">
|
||||||
|
<a class="font-medium underline flex flex-col items-center" href="" target="_blank">
|
||||||
|
<img class="w-1/4" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/wound_care.png" alt="Wound Care">Wound Care
|
||||||
|
</a>
|
||||||
|
<p class="mt-4">Burns, scars, infections, etc.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8 flex flex-col items-center">
|
||||||
|
<a class="font-medium underline flex flex-col items-center" href="" target="_blank">
|
||||||
|
<img class="w-1/4" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/oral_liquids.png" alt="Oral Liquids">Oral Liquids
|
||||||
|
</a>
|
||||||
|
<p class="mt-4">Solutions and Suspensions.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8 flex flex-col items-center">
|
||||||
|
<a class="font-medium underline flex flex-col items-center" href="" target="_blank">
|
||||||
|
<img class="w-1/4" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/dental-preparations.png" alt="Dental Preparations">Dental Preparations
|
||||||
|
</a>
|
||||||
|
<p class="mt-4">Mouthwashes, Pastes and Sprays.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8 flex flex-col items-center">
|
||||||
|
<a class="font-medium underline flex flex-col items-center" href="" target="_blank">
|
||||||
|
<img class="w-1/4" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/ophthalmic_preparations.png" alt="Ophthalmic Preparations">Ophthalmic Preparations
|
||||||
|
</a>
|
||||||
|
<p class="mt-4">Eye Drops and Ointments.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8 flex flex-col items-center">
|
||||||
|
<a class="font-medium underline flex flex-col items-center" href="" target="_blank">
|
||||||
|
<img class="w-1/4" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/ear_nose_throat.png" alt="Ear, Nose and Throat">Ear, Nose and Throat
|
||||||
|
</a>
|
||||||
|
<p class="mt-4">Ear Drops, Nose Sprays, Lozenges, etc.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8 flex flex-col items-center">
|
||||||
|
<a class="font-medium underline flex flex-col items-center" href="" target="_blank">
|
||||||
|
<img class="w-1/4" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/suppositories.png" alt="Suppositories">Suppositories
|
||||||
|
</a>
|
||||||
|
<p class="mt-4">Suppositories and Ovules</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8 flex flex-col items-center">
|
||||||
|
<a class="font-medium underline flex flex-col items-center" href="" target="_blank">
|
||||||
|
<img class="w-1/4" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/foot_care.png" alt="Foot Care">Foot Care
|
||||||
|
</a>
|
||||||
|
<p class="mt-4">Warts, Calluses, Heel Spurs, circulation, etc.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8 flex flex-col items-center">
|
||||||
|
<a class="font-medium underline flex flex-col items-center" href="" target="_blank">
|
||||||
|
<img class="w-1/4" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/injectables.png" alt="Injectibles">Injectibles
|
||||||
|
</a>
|
||||||
|
<p class="mt-4">A variety of sterile injectable preparations.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex justify-center align-middle hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8">
|
||||||
|
<a class="font-medium underline flex flex-col items-center justify-center align-middle" href="<?= site_url('/services') ?>"><i class="text-2xl bi-caret-right-fill"></i>All Services</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Our Pharmacy Section -->
|
||||||
|
<section>
|
||||||
|
<div class="bg-blue-500">
|
||||||
|
<div class="gap-8 grid lg:grid-cols-2 max-w-7xl mx-auto px-8 py-12 items-center">
|
||||||
|
<div>
|
||||||
|
<p class="font-bold text-3xl text-left mb-8 text-white">Our Pharmacy</p>
|
||||||
|
<img src="<?php echo get_template_directory_uri(); ?>/assets/images/bgs/anjema-building.jpg" alt="Anjema Building">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="mb-8 text-white space-y-4">
|
||||||
|
<p>Medical Place Health Solutions is located conveniently inside the Anjema Eye Institue building at 735 St. Clair Street, Chatham.</p>
|
||||||
|
<p>Our pharmacy is equipped with a state of the art certified ISO class 7 cleanroom and ISO class 5 laminar airflow hood, so we are able to offer sterile preparations to fit various needs for our clients.</p>
|
||||||
|
<p>Our sister pharmacy is Medical Place Pharmacy on Emma St. in Chatham. Visit their website www.chathamkentpharmacy.ca for more information on the health services they provide.</p>
|
||||||
|
<p>If you need help finding our location, you can find directions here.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex mt-10 space-x-4">
|
||||||
|
<a class="items-center justify-center capitalize ease-in-out duration-700 py-2 px-5 font-normal hover:bg-gray-200 text-center text-black bg-white min-w-max transition hover:-translate-y-1" href="<?php echo esc_url(site_url('/about')); ?>"><?php _e('About Us', 'themeStarter'); ?>
|
||||||
|
</a>
|
||||||
|
<div class="flex gap-1 items-center py-2">
|
||||||
|
<a class="flex hover:-translate-y-1 ease-in-out duration-700 " href="<?php echo esc_url(site_url('/services')); ?>">
|
||||||
|
<p class="hover:underline text-left text-white">Services</p>
|
||||||
|
<i class="ml-2 text-white bi bi-chevron-right"></i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- PCCA SECTION -->
|
||||||
|
<section class="bg-gray-100 py-4">
|
||||||
|
<a href="https://www.pccarx.com/" target="_blank">
|
||||||
|
<div class="py-8 flex flex-col items-center space-y-6 px-4">
|
||||||
|
<img src="<?php echo get_template_directory_uri(); ?>/assets/images/logos/pcca_logo.png" height="" width="250px" alt="PCCA Logo">
|
||||||
|
<h3 class="font-bold text-xl text-center">Medical Place Health Solutions is a member of the PCCA.</h3>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Team Section -->
|
||||||
|
<section class="py-16">
|
||||||
|
<div class="max-w-7xl mx-auto">
|
||||||
|
<h2 class="capitalize font-medium text-xl md:text-2xl lg:text-4xl text-blue-500 text-center"><?php _e('Our Team', 'themeStarter'); ?></h2>
|
||||||
|
<div class="bg-blue-500 mx-auto mb-8 mt-4 pt-1 w-36"></div>
|
||||||
|
<p class="text-center px-8 max-w-6xl mx-auto py-4">Our health professionals are ready to answer all of your questions.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="max-w-7xl mx-auto px-4 flex flex-col">
|
||||||
|
|
||||||
|
|
||||||
|
<ul role="list" class="mx-auto mt-8 grid max-w-2xl grid-cols-2 gap-x-8 gap-y-12 lg:mx-0 lg:max-w-none md:grid-cols-3">
|
||||||
|
<?php
|
||||||
|
$teams = new WP_Query(
|
||||||
|
array(
|
||||||
|
'posts_per_page' => 3,
|
||||||
|
'post_type' => 'team',
|
||||||
|
'orderby' => 'rand',
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
while ($teams->have_posts()) {
|
||||||
|
$teams->the_post();
|
||||||
|
$teamTitle = get_the_title();
|
||||||
|
$teamThumbnailURL = get_field('team_photo') ?>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<div class="flex">
|
||||||
|
<img class="aspect-video rounded-2xl w-full object-cover" src="<?= $teamThumbnailURL ?>" alt="Pharmacist Profile Photo">
|
||||||
|
</div>
|
||||||
|
<div class="text-center">
|
||||||
|
<h3 class="mt-2 text-lg font-semibold leading-8 tracking-tight text-gray-900"><?= $teamTitle ?></h3>
|
||||||
|
<p class="text-base leading-7 text-gray-600"><?= the_field('team_title'); ?> </p>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<?php }
|
||||||
|
|
||||||
|
wp_reset_postdata(); ?>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<a class="mx-auto mt-8 capitalize duration-700 text-white hover:text-black inline-flex items-center justify-center font-normal hover:bg-gray-200 ease-in-out bg-blue-500 min-w-max py-2 px-8 hover:-translate-y-1 hover:ease-linear transition" href="<?php echo esc_url(site_url('/about/#about-teams')); ?>"><?php _e('Meet Our Health Team', 'themeStarter'); ?>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Get Footer -->
|
||||||
|
<?php get_footer(); ?>
|
50
functions.php
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// <----- Variables ----->
|
||||||
|
|
||||||
|
// <----- Includes ----->
|
||||||
|
include(get_theme_file_path('/includes/front-end/theme_starter_setup.php'));
|
||||||
|
include(get_theme_file_path('/includes/front-end/styles_and_scripts.php'));
|
||||||
|
include(get_theme_file_path('/includes/back-end/editor_styles_and_scripts.php'));
|
||||||
|
include(get_theme_file_path('/includes/back-end/query_adjustments.php'));
|
||||||
|
include(get_theme_file_path('includes/back-end/wp_pg_blocks_helpers.php'));
|
||||||
|
include(get_theme_file_path('includes/back-end/wp_pg_helpers.php'));
|
||||||
|
include(get_theme_file_path('includes/back-end/wp_pg_pagination.php'));
|
||||||
|
include(get_theme_file_path('includes/back-end/wp_simple_form_mailer.php'));
|
||||||
|
include(get_theme_file_path('includes/back-end/wp_smart_navwalker.php'));
|
||||||
|
include(get_theme_file_path('/includes/front-end/technical_seo.php'));
|
||||||
|
include(get_theme_file_path('/includes/front-end/registration_form_message.php'));
|
||||||
|
include(get_theme_file_path('/includes/front-end/custom_login_screen.php'));
|
||||||
|
// include(get_theme_file_path('/'));
|
||||||
|
|
||||||
|
// <----- Hooks ----->
|
||||||
|
|
||||||
|
// Theme Starter Features
|
||||||
|
add_action('after_setup_theme', 'themeStarter_setup');
|
||||||
|
|
||||||
|
// Theme Starter Init
|
||||||
|
add_action('init', 'themeStarter_init');
|
||||||
|
|
||||||
|
// Enqueue front-end styles and script
|
||||||
|
add_action('wp_enqueue_scripts', 'themeStarter_enqueue');
|
||||||
|
|
||||||
|
// Enqueue back-end/editor styles and script
|
||||||
|
add_action('after_setup_theme', 'themeStarter_editor_enqueue');
|
||||||
|
|
||||||
|
// Adjust Queries
|
||||||
|
add_action('pre_get_posts', 'themeStarter_adjust_queries');
|
||||||
|
|
||||||
|
// Add Facebook Open Graph and Twitter Card to Head
|
||||||
|
add_action('wp_head', 'open_graph_twitter_card', 2);
|
||||||
|
|
||||||
|
// Change Registration Message
|
||||||
|
add_action('login_message', 'change_reg_message');
|
||||||
|
|
||||||
|
// Customize Login Screen Title
|
||||||
|
add_filter('login_headertitle', 'ourLoginTitle');
|
||||||
|
|
||||||
|
// Change Login Page header url
|
||||||
|
add_filter('login_headerurl', 'ourHeaderUrl');
|
||||||
|
|
||||||
|
// Enqueue out stylesheet for login screen
|
||||||
|
add_action('login_enqueue_scripts', 'ourLoginCSS');
|
71
header.php
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html <?php language_attributes(); ?>>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="<?php bloginfo('charset'); ?>" />
|
||||||
|
<meta content="width=device-width, initial-scale=1, viewport-fit=cover, shrink-to-fit=no" name="viewport" />
|
||||||
|
<link href="<?php echo get_template_directory_uri(); ?>/icon.png" rel="icon" type="image/png" />
|
||||||
|
<?php wp_head() ?>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body <?php body_class(); ?>>
|
||||||
|
<?php wp_body_open(); ?>
|
||||||
|
<main>
|
||||||
|
<!-- Header -->
|
||||||
|
<header id="header" class="bg-white lg:bg-transparent fixed shadow-lg w-full z-20">
|
||||||
|
<nav id="navbar">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="bg-blue-500 flex justify-between lg:pr-20 px-4 py-2 space-x-4 text-white">
|
||||||
|
<div class="flex items-center space-x-4">
|
||||||
|
<a href="https://www.facebook.com/Medical-Place-Health-Solutions-1802761506643340/" target="_blank"><i class="bi-facebook"></i></a>
|
||||||
|
<a class="text-sm" href="<?php echo esc_url(site_url('/contact')); ?>" target="_blank"><?php _e('Request Free Consultation', 'themeStarter'); ?></a>
|
||||||
|
</div>
|
||||||
|
<a class="flex items-center space-x-2" href="tel:226-996-9246"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-telephone-fill" viewBox="0 0 16 16">
|
||||||
|
<path fill-rule="evenodd" d="M1.885.511a1.745 1.745 0 0 1 2.61.163L6.29 2.98c.329.423.445.974.315 1.494l-.547 2.19a.678.678 0 0 0 .178.643l2.457 2.457a.678.678 0 0 0 .644.178l2.189-.547a1.745 1.745 0 0 1 1.494.315l2.306 1.794c.829.645.905 1.87.163 2.611l-1.034 1.034c-.74.74-1.846 1.065-2.877.702a18.634 18.634 0 0 1-7.01-4.42 18.634 18.634 0 0 1-4.42-7.009c-.362-1.03-.037-2.137.703-2.877L1.885.511z" />
|
||||||
|
</svg>
|
||||||
|
<p class="text-sm underline min-w-max"><?php _e('226-996-9246', 'themeStarter'); ?></p>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex bg-white items-center justify-between lg:items-stretch mx-auto relative w-full">
|
||||||
|
<a class="hidden lg:block items-center lg:px-8 lg:py-4" href="<?php echo esc_url(home_url()); ?>"><img alt="MPHS logo" class="lg:block" src="<?php echo get_template_directory_uri(); ?>/assets/images/logos/mphs_logo.png" width="300" /></a>
|
||||||
|
<a class="lg:hidden flex items-center lg:px-8 lg:py-4 p-2" href="<?php echo esc_url(home_url()); ?>"><img alt="MPHS logo" class="lg:block" src="<?php echo get_template_directory_uri(); ?>/assets/images/logos/mphs_logo_symbol.jpg" width="70" /></a>
|
||||||
|
<div class="absolute bg-white flex-1 left-0 lg:relative overflow-hidden top-full w-full z-20" id="menu_wrapper">
|
||||||
|
<div class="lg:flex lg:h-full">
|
||||||
|
<ul class="lg:flex lg:items-center lg:justify-end lg:px-16 lg:py-0 lg:space-y-0 mx-auto p-4 space-y-1 text-center w-full z-50" id="main_menu">
|
||||||
|
<?php if (has_nav_menu('primary')) : ?>
|
||||||
|
<?php
|
||||||
|
PG_Smart_Walker_Nav_Menu::init();
|
||||||
|
PG_Smart_Walker_Nav_Menu::$options['template'] = '<li class="flex flex-col justify-center w-full {CLASSES}" id="{ID}"><a class="font-medium hover:text-blue-100 inline-block main-link min-w-max mx-auto text-blue-500 uppercase" {ATTRS}>{TITLE}</a>
|
||||||
|
<ul class="capitalize hidden lg:rounded-md list-none md:absolute md:left-0 md:w-max z-50">
|
||||||
|
<li class="max-w-max mx-auto relative"><a class="hover:text-yellow-500 inline-block main-link min-w-max mx-auto relative text-blue-500" href="#services">Home</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>';
|
||||||
|
|
||||||
|
PG_Smart_Walker_Nav_Menu::$options['template_item_with_sublevel'] = '<li class="flex flex-col justify-center w-full {CLASSES}" id="{ID}"><a class="font-medium hover:text-blue-100 inline-block main-link min-w-max mx-auto text-blue-500 uppercase" {ATTRS}>{TITLE}</a>
|
||||||
|
<ul class="capitalize hidden lg:rounded-md list-none md:absolute md:left-0 md:w-max z-50">{SUB}</ul>
|
||||||
|
</li>';
|
||||||
|
PG_Smart_Walker_Nav_Menu::$options['template_sublevel'] = '{SUB}';
|
||||||
|
PG_Smart_Walker_Nav_Menu::$options['template_subitem'] = '<li class="max-w-max mx-auto relative {CLASSES}" id="{ID}"><a class="hover:text-yellow-500 inline-block main-link min-w-max mx-auto relative text-blue-500" {ATTRS}>{TITLE}</a>
|
||||||
|
</li>';
|
||||||
|
|
||||||
|
wp_nav_menu(array(
|
||||||
|
'container' => '',
|
||||||
|
'theme_location' => 'primary',
|
||||||
|
'items_wrap' => '<span class="%2$s lg:flex lg:mr-2 lg:space-x-5 lg:space-y-0 space-y-4" id="%1$s">%3$s</span>',
|
||||||
|
'walker' => new PG_Smart_Walker_Nav_Menu()
|
||||||
|
)); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex">
|
||||||
|
<button id="toggle-nav" class="pr-6 mr-4 toggle-menu lg:hidden"> <i></i> <i></i><i></i> </button>
|
||||||
|
</div>
|
||||||
|
</div </nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<?php
|
12
includes/back-end/editor_styles_and_scripts.php
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
function themeStarter_editor_enqueue()
|
||||||
|
{
|
||||||
|
add_theme_support('editor-styles');
|
||||||
|
|
||||||
|
add_editor_style([
|
||||||
|
'assets/css/styles.css',
|
||||||
|
'assets/css/bootstrap-icons.css',
|
||||||
|
'assets/css/font-awesome.css'
|
||||||
|
]);
|
||||||
|
}
|
11
includes/back-end/query_adjustments.php
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
function themeStarter_adjust_queries($query)
|
||||||
|
{
|
||||||
|
|
||||||
|
// Projects Archive Query Adjustment
|
||||||
|
if (!is_admin() and is_post_type_archive('project') and $query->is_main_query()) {
|
||||||
|
$query->set('posts_per_page', '8');
|
||||||
|
$query->set('order', 'ASC');
|
||||||
|
}
|
||||||
|
}
|
277
includes/back-end/wp_pg_blocks_helpers.php
Normal file
@@ -0,0 +1,277 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Class Name: PG_Blocks
|
||||||
|
* GitHub URI:
|
||||||
|
* Description:
|
||||||
|
* Version: 1.0
|
||||||
|
* Author: Matjaz Trontelj - @pinegrow
|
||||||
|
* License: GPL-2.0+
|
||||||
|
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
if(! class_exists( 'PG_Blocks_v2' )) {
|
||||||
|
class PG_Blocks_v2
|
||||||
|
{
|
||||||
|
|
||||||
|
static $helpers_registered = false;
|
||||||
|
|
||||||
|
static $recursive_level = 0;
|
||||||
|
|
||||||
|
static $controls_version = '2';
|
||||||
|
|
||||||
|
static function register_block_type($reg_args)
|
||||||
|
{
|
||||||
|
if(empty($reg_args[ 'base_url' ])) {
|
||||||
|
$reg_args[ 'base_url' ] = get_template_directory_uri();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(empty($reg_args[ 'base_path' ])) {
|
||||||
|
$reg_args[ 'base_path' ] = get_template_directory();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(empty($reg_args[ 'version' ])) {
|
||||||
|
$reg_args[ 'version' ] = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$base_url = trailingslashit($reg_args[ 'base_url' ] );
|
||||||
|
|
||||||
|
if (!self::$helpers_registered) {
|
||||||
|
self::$helpers_registered = true;
|
||||||
|
|
||||||
|
wp_register_script("pg-blocks-controls-" . self::$controls_version,
|
||||||
|
$base_url . 'blocks/pg-blocks-controls-' . self::$controls_version . '.js',
|
||||||
|
array('wp-blocks', 'wp-block-editor', 'wp-server-side-render', 'wp-media-utils', 'wp-data', 'wp-element'), $reg_args[ 'version' ]);
|
||||||
|
|
||||||
|
wp_register_style('pg-blocks-controls-style-' . self::$controls_version,
|
||||||
|
$base_url . 'blocks/pg-blocks-controls-' . self::$controls_version . '.css',
|
||||||
|
array(), $reg_args[ 'version' ]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$handle_prefix = 'block-' . str_replace('/', '-', $reg_args['name']);
|
||||||
|
$editor_script_handle = $handle_prefix . '-script';
|
||||||
|
$just_name = basename($reg_args['name']);
|
||||||
|
$slug = dirname($reg_args['name']);
|
||||||
|
|
||||||
|
$style_handle = null;
|
||||||
|
$script_handle = null;
|
||||||
|
$view_script_handle = null;
|
||||||
|
|
||||||
|
if (!empty($reg_args['enqueue_style'])) {
|
||||||
|
$style_handle = 'block-' . md5($reg_args['enqueue_style']);
|
||||||
|
wp_register_style($style_handle, $reg_args['enqueue_style'], array(), $reg_args[ 'version' ]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$editor_style_handle = 'pg-blocks-controls-style-' . self::$controls_version;
|
||||||
|
|
||||||
|
if (!empty($reg_args['enqueue_editor_style'])) {
|
||||||
|
$editor_style_handle = 'block-editor-' . md5($reg_args['enqueue_editor_style']);
|
||||||
|
wp_register_style($editor_style_handle, $reg_args['enqueue_editor_style'], array('pg-blocks-controls-style-' . self::$controls_version), $reg_args[ 'version' ]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$script_dependencies = array('wp-blocks', 'wp-block-editor', 'wp-server-side-render', 'wp-media-utils', 'wp-data', 'wp-element', 'pg-blocks-controls-' . self::$controls_version);
|
||||||
|
|
||||||
|
if (!empty($reg_args['enqueue_script'])) {
|
||||||
|
$script_handle = 'block-script-' . md5($reg_args['enqueue_script']);
|
||||||
|
wp_register_script($script_handle, $reg_args['enqueue_script'], array(), $reg_args[ 'version' ], true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($reg_args['enqueue_view_script'])) {
|
||||||
|
$view_script_handle = 'block-script-' . md5($reg_args['enqueue_view_script']);
|
||||||
|
wp_register_script($view_script_handle, $reg_args['enqueue_view_script'], array(), $reg_args[ 'version' ], true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($reg_args['enqueue_editor_script'])) {
|
||||||
|
$editor_custom_script_handle = 'block-script-' . md5($reg_args['enqueue_editor_script']);
|
||||||
|
wp_register_script($editor_custom_script_handle, $reg_args['enqueue_editor_script'], $script_dependencies, $reg_args[ 'version' ]);
|
||||||
|
$script_dependencies = array($editor_custom_script_handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
wp_register_script($editor_script_handle,
|
||||||
|
$base_url . $reg_args[ 'js_file' ], $script_dependencies, $reg_args[ 'version' ]);
|
||||||
|
|
||||||
|
wp_localize_script($editor_script_handle,
|
||||||
|
'pg_project_data_' . str_replace('-', '_', $slug),
|
||||||
|
array(
|
||||||
|
'url' => $base_url,
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
register_block_type($reg_args['name'], array(
|
||||||
|
'render_callback' => empty($reg_args['dynamic']) ? null : function ($attributes, $content, $block) use ($reg_args) {
|
||||||
|
self::$recursive_level++;
|
||||||
|
if (self::$recursive_level > 10) {
|
||||||
|
self::$recursive_level--;
|
||||||
|
return 'Too many nested blocks... Are you including a post within itself?';
|
||||||
|
}
|
||||||
|
ob_start();
|
||||||
|
$args = array('attributes' => $attributes, 'content' => $content, 'block' => $block);
|
||||||
|
$template = trailingslashit($reg_args[ 'base_path' ]) . $reg_args['render_template'];
|
||||||
|
if(file_exists( $template )) {
|
||||||
|
require $template;
|
||||||
|
} else {
|
||||||
|
echo "<div>Dynamic block template $template not found.</div>";
|
||||||
|
}
|
||||||
|
self::$recursive_level--;
|
||||||
|
return ob_get_clean();
|
||||||
|
},
|
||||||
|
'editor_script' => $editor_script_handle,
|
||||||
|
'editor_style' => $editor_style_handle,
|
||||||
|
'style' => $style_handle,
|
||||||
|
'script' => $script_handle,
|
||||||
|
'view_script' => $view_script_handle,
|
||||||
|
'attributes' => $reg_args['attributes'],
|
||||||
|
'supports' => isset($reg_args['supports']) ? $reg_args['supports'] : array()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getDefault($args, $prop, $subprop = null)
|
||||||
|
{
|
||||||
|
if (isset($args['block']->block_type->attributes[$prop]['default'])) {
|
||||||
|
if ($subprop) {
|
||||||
|
if (isset($args['block']->block_type->attributes[$prop]['default'][$subprop])) {
|
||||||
|
return $args['block']->block_type->attributes[$prop]['default'][$subprop];
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return $args['block']->block_type->attributes[$prop]['default'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getAttribute($args, $prop, $use_default = true, $null = false)
|
||||||
|
{
|
||||||
|
$val = isset($args['attributes']) && isset($args['attributes'][$prop]) ? $args['attributes'][$prop] : null;
|
||||||
|
if (($val === null || $val === '') && $use_default) {
|
||||||
|
$val = self::getDefault($args, $prop);
|
||||||
|
}
|
||||||
|
if($val === '' && $null) {
|
||||||
|
$val = null;
|
||||||
|
}
|
||||||
|
return $val;
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getAttributeForAction($args, $prop, $field = null)
|
||||||
|
{
|
||||||
|
$val = self::getAttribute($args, $prop);
|
||||||
|
if($field) {
|
||||||
|
if(is_array($val) && isset($val[$field])) {
|
||||||
|
return $val[$field];
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(is_array($val)) {
|
||||||
|
if(isset($val['id'])) return $val['id'];
|
||||||
|
}
|
||||||
|
return $val;
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getAttributeAsPostIds($args, $prop)
|
||||||
|
{
|
||||||
|
$r = array();
|
||||||
|
$list = self::getAttribute($args, $prop);
|
||||||
|
if (is_array($list)) {
|
||||||
|
foreach ($list as $item) {
|
||||||
|
$r[] = $item['id'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (count($r) === 0) $r[] = 0;
|
||||||
|
return $r;
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getInnerContent($args)
|
||||||
|
{
|
||||||
|
return isset($args['content']) ? $args['content'] : '';
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getImageUrl($args, $prop, $size, $use_default = true)
|
||||||
|
{
|
||||||
|
$a = $args['attributes'];
|
||||||
|
if (!isset($a[$prop])) return $use_default ? self::getDefault($args, $prop, 'url') : null;
|
||||||
|
if (!empty($a[$prop]['url'])) {
|
||||||
|
return $a[$prop]['url'];
|
||||||
|
}
|
||||||
|
if (empty($a[$prop]['id'])) return $use_default ? self::getDefault($args, $prop, 'url') : null;
|
||||||
|
if (!empty($a[$prop]['size'])) {
|
||||||
|
$size = $a[$prop]['size'];
|
||||||
|
}
|
||||||
|
return PG_Image::getUrl($a[$prop]['id'], $size);
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getImageSVG($args, $prop, $use_default = true)
|
||||||
|
{
|
||||||
|
return self::getImageField($args, $prop, 'svg', $use_default);
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getImageField($args, $prop, $field, $use_default = true)
|
||||||
|
{
|
||||||
|
$a = $args['attributes'];
|
||||||
|
if (!isset($a[$prop])) return $use_default ? self::getDefault($args, $prop, $field) : null;
|
||||||
|
if (!empty($a[$prop][$field])) {
|
||||||
|
return $a[$prop][$field];
|
||||||
|
}
|
||||||
|
return $use_default ? self::getDefault($args, $prop, $field) : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getLinkUrl($args, $prop, $use_default = true)
|
||||||
|
{
|
||||||
|
$a = self::getAttribute($args, $prop);
|
||||||
|
if (is_array($a) && isset($a['url'])) {
|
||||||
|
$val = $a['url'];
|
||||||
|
} else {
|
||||||
|
$val = $a;
|
||||||
|
}
|
||||||
|
if ($val === null || $val === '') $val = $use_default ? self::getDefault($args, $prop, 'url') : $val;
|
||||||
|
return $val;
|
||||||
|
}
|
||||||
|
|
||||||
|
static function mergeInlineSVGAttributes($svg, $props) {
|
||||||
|
foreach($props as $prop => $val) {
|
||||||
|
if($prop === 'className') $prop = 'class';
|
||||||
|
if(is_array($val)) {
|
||||||
|
$r = '';
|
||||||
|
foreach($val as $key => $v) {
|
||||||
|
$key = preg_replace_callback("/([A-Z])/g", function($m) {
|
||||||
|
return '-'.strtolower($m[1]);
|
||||||
|
}, $key);
|
||||||
|
$r .= "$key:$v;";
|
||||||
|
}
|
||||||
|
$val = $r;
|
||||||
|
}
|
||||||
|
$q = '"';
|
||||||
|
if(strpos($val, '"') >= 0) {
|
||||||
|
$val = str_replace('"', """, $val);
|
||||||
|
}
|
||||||
|
$re = "/(<svg[^>]*\\s*)($prop=\"[^\"]*\")/i";
|
||||||
|
if(preg_match($re, $svg)) {
|
||||||
|
$svg = preg_replace($re, '$1' . $prop . '='.$q . $val . $q, $svg);
|
||||||
|
} else {
|
||||||
|
$svg = str_replace('<svg', "<svg $prop={$q}{$val}{$q}", $svg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $svg;
|
||||||
|
}
|
||||||
|
|
||||||
|
static function setupEditedPost() {
|
||||||
|
global $wp_query, $post;
|
||||||
|
if(!empty($_GET['context']) && $_GET['context'] === 'edit') {
|
||||||
|
$referer = wp_get_raw_referer();
|
||||||
|
if (!empty($referer)) {
|
||||||
|
$url_info = parse_url($referer);
|
||||||
|
$query = null;
|
||||||
|
parse_str($url_info['query'], $query);
|
||||||
|
if(!empty($query['post'])) {
|
||||||
|
$post = get_post($query['post']);
|
||||||
|
if(!empty($post)) {
|
||||||
|
$wp_query->setup_postdata( $post );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
314
includes/back-end/wp_pg_helpers.php
Normal file
@@ -0,0 +1,314 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Class Name: PG_Image, PG_Helper...
|
||||||
|
* GitHub URI:
|
||||||
|
* Description:
|
||||||
|
* Version: 1.0
|
||||||
|
* Author: Matjaz Trontelj - @pinegrow
|
||||||
|
* License: GPL-2.0+
|
||||||
|
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
if(! class_exists( 'PG_Image' )) {
|
||||||
|
class PG_Image
|
||||||
|
{
|
||||||
|
|
||||||
|
static function removeSizeAttributes($img, $attr = null)
|
||||||
|
{
|
||||||
|
if ($attr == 'both' || $attr == 'width') {
|
||||||
|
$img = preg_replace('/\swidth="[^"]*"/i', '', $img);
|
||||||
|
}
|
||||||
|
if ($attr == 'both' || $attr == 'height') {
|
||||||
|
$img = preg_replace('/\sheight="[^"]*"/i', '', $img);
|
||||||
|
}
|
||||||
|
return $img;
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getUrl($image_or_url, $size)
|
||||||
|
{
|
||||||
|
if (is_array($image_or_url)) {
|
||||||
|
if (!empty($image_or_url['sizes']) && !empty($image_or_url['sizes'][$size])) {
|
||||||
|
return $image_or_url['sizes'][$size];
|
||||||
|
} else {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!is_numeric($image_or_url)) {
|
||||||
|
return $image_or_url;
|
||||||
|
}
|
||||||
|
return wp_attachment_is_image($image_or_url) ? wp_get_attachment_image_url($image_or_url, $size) : wp_get_attachment_url($image_or_url);
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getImages($list)
|
||||||
|
{
|
||||||
|
if (empty($list)) return array();
|
||||||
|
if (is_string($list)) $list = explode(',', $list);
|
||||||
|
$args = array(
|
||||||
|
'post__in' => $list,
|
||||||
|
'post_type' => 'attachment',
|
||||||
|
'post_mime_type' => 'image',
|
||||||
|
'posts_per_page' => -1,
|
||||||
|
'orderby' => 'post__in',
|
||||||
|
'order' => 'ASC'
|
||||||
|
);
|
||||||
|
return get_posts($args);
|
||||||
|
}
|
||||||
|
|
||||||
|
static function isPostImage()
|
||||||
|
{
|
||||||
|
global $post;
|
||||||
|
return $post->post_type === 'attachment' && !empty($post->post_mime_type) && strpos($post->post_mime_type, 'image') === 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getPostImage($id, $size, $args, $remove_sizes = null, $default_img = null)
|
||||||
|
{
|
||||||
|
$img = '';
|
||||||
|
|
||||||
|
if (empty($id) && self::isPostImage()) {
|
||||||
|
$img = wp_get_attachment_image(get_the_ID(), $size, false, $args);
|
||||||
|
|
||||||
|
} else if (has_post_thumbnail($id)) {
|
||||||
|
$img = get_the_post_thumbnail($id, $size, $args);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($default_image) && empty($img)) {
|
||||||
|
$img = $default_img;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($img) && !empty($remove_sizes)) {
|
||||||
|
$img = self::removeSizeAttributes($img, $remove_sizes);
|
||||||
|
}
|
||||||
|
return $img;
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getAltText( $id, $default = '') {
|
||||||
|
$r = trim( wp_strip_all_tags( get_post_meta( $id, '_wp_attachment_image_alt', true ) ) );
|
||||||
|
return empty($r) ? $default : $r;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(! class_exists( 'PG_Helper_v2' )) {
|
||||||
|
class PG_Helper_v2
|
||||||
|
{
|
||||||
|
|
||||||
|
static function getPostFromSlug($slug_or_id, $post_type)
|
||||||
|
{
|
||||||
|
if (is_numeric($slug_or_id)) {
|
||||||
|
return $slug_or_id;
|
||||||
|
}
|
||||||
|
return get_page_by_path($slug_or_id, OBJECT, $post_type);
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getTermFromSlug($slug_or_id, $taxonomy)
|
||||||
|
{
|
||||||
|
if (is_numeric($slug_or_id)) {
|
||||||
|
return $slug_or_id;
|
||||||
|
}
|
||||||
|
switch ($taxonomy) {
|
||||||
|
case 'category':
|
||||||
|
return get_category_by_slug($slug_or_id);
|
||||||
|
default:
|
||||||
|
return get_term_by('slug', $slug_or_id, $taxonomy);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getTermIDFromSlug($slug_or_id, $taxonomy, $def = -1)
|
||||||
|
{
|
||||||
|
if (is_numeric($slug_or_id)) {
|
||||||
|
return $slug_or_id;
|
||||||
|
}
|
||||||
|
$term = self::getTermFromSlug($slug_or_id, $taxonomy);
|
||||||
|
return $term ? $term->term_id : $def;
|
||||||
|
}
|
||||||
|
|
||||||
|
static function addAttributesToElements($tag, $attrs, $html)
|
||||||
|
{
|
||||||
|
$attr_str = '';
|
||||||
|
|
||||||
|
foreach ($attrs as $name => $val) {
|
||||||
|
$attr_str .= " {$name}";
|
||||||
|
if (!is_null($val)) {
|
||||||
|
$attr_str .= "=\"{$val}\"";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($attr_str)) {
|
||||||
|
$html = str_replace("<{$tag} ", "<{$tag}{$attr_str} ", $html);
|
||||||
|
$html = str_replace("<{$tag}>", "<{$tag}{$attr_str}>", $html);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $html;
|
||||||
|
}
|
||||||
|
|
||||||
|
static $shown_posts = array();
|
||||||
|
|
||||||
|
static function rememberShownPost($p = null)
|
||||||
|
{
|
||||||
|
global $post;
|
||||||
|
if (empty($p)) {
|
||||||
|
$p = $post;
|
||||||
|
}
|
||||||
|
if (!empty($p) && !in_array($p->ID, self::$shown_posts)) {
|
||||||
|
self::$shown_posts[] = $p->ID;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getShownPosts()
|
||||||
|
{
|
||||||
|
return self::$shown_posts;
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getInsightMetaFields()
|
||||||
|
{
|
||||||
|
$list = array();
|
||||||
|
$meta = get_post_meta(get_the_ID());
|
||||||
|
if ($meta) {
|
||||||
|
foreach ($meta as $key => $values) {
|
||||||
|
if (strpos($key, '_') !== 0) {
|
||||||
|
$list[] = $key;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo '<!-- PG_FIELDS:' . implode(',', $list) . '-->';
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getRelationshipFieldValue($field)
|
||||||
|
{
|
||||||
|
if (function_exists('get_field')) {
|
||||||
|
return get_field($field, false, false);
|
||||||
|
} else {
|
||||||
|
$value = get_post_meta(get_the_ID(), $field);
|
||||||
|
if (empty($value)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (count($value) === 1) {
|
||||||
|
if (strpos($value[0], 'a:') >= 0 && strpos($value[0], '{') >= 0) {
|
||||||
|
return unserialize($value[0]);
|
||||||
|
}
|
||||||
|
if (is_string($value[0])) {
|
||||||
|
return explode(',', $value[0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getPostIdList($value)
|
||||||
|
{
|
||||||
|
if (empty($value)) {
|
||||||
|
return array(-1);
|
||||||
|
}
|
||||||
|
if (is_string($value)) {
|
||||||
|
$value = explode(',', $value);
|
||||||
|
}
|
||||||
|
if (is_numeric($value)) {
|
||||||
|
$value = array($value);
|
||||||
|
}
|
||||||
|
if (is_array($value) && count($value) === 0) {
|
||||||
|
$value = array(-1);
|
||||||
|
}
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getBreadcrumbs($type = 'parents', $add_home = false, $home_label = '')
|
||||||
|
{
|
||||||
|
global $post;
|
||||||
|
|
||||||
|
$r = array();
|
||||||
|
|
||||||
|
if ($type === 'parents') {
|
||||||
|
$parents = get_post_ancestors($post->ID);
|
||||||
|
foreach ($parents as $parent_id) {
|
||||||
|
$p = get_post($parent_id);
|
||||||
|
$r[] = array(
|
||||||
|
'name' => get_the_title($p),
|
||||||
|
'link' => get_permalink($p)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$category = get_the_category($post->ID);
|
||||||
|
|
||||||
|
if (!empty($category)) {
|
||||||
|
$parents = get_ancestors($category[0]->term_id, 'category');
|
||||||
|
|
||||||
|
array_unshift($parents, $category[0]->term_id);
|
||||||
|
|
||||||
|
foreach ($parents as $parent_id) {
|
||||||
|
$p = get_category($parent_id);
|
||||||
|
$r[] = array(
|
||||||
|
'name' => $p->name,
|
||||||
|
'link' => get_category_link($p)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if( is_singular() ) {
|
||||||
|
array_unshift($r, array(
|
||||||
|
'name' => get_the_title($post),
|
||||||
|
'link' => get_permalink($post)
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($add_home) {
|
||||||
|
$r[] = array(
|
||||||
|
'name' => $home_label,
|
||||||
|
'link' => home_url()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return array_reverse($r);
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getArray( $d, $separator = ',' ) {
|
||||||
|
if(is_array( $d )) return $d;
|
||||||
|
if(is_null( $d ) || $d === '') return array();
|
||||||
|
if(is_string( $d )) {
|
||||||
|
return array_map('trim', explode( $separator, $d));
|
||||||
|
} else {
|
||||||
|
return array( $d );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getTaxonomyQuery( $taxonomy, $terms ) {
|
||||||
|
$is_or = true;
|
||||||
|
if(is_string( $terms )) {
|
||||||
|
if(strpos( $terms, '+') !== false) {
|
||||||
|
$is_or = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$terms = self::getArray( $terms, $is_or ? ',' : '+');
|
||||||
|
if( count( $terms ) === 0 ) return null;
|
||||||
|
|
||||||
|
$field = 'term_id';
|
||||||
|
for($i = 0; $i < count( $terms ); $i++) {
|
||||||
|
if(!is_numeric( $terms[$i] )) {
|
||||||
|
$field = 'slug';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'taxonomy' => $taxonomy,
|
||||||
|
'field' => $field,
|
||||||
|
'terms' => $terms,
|
||||||
|
'include_children' => true,
|
||||||
|
'operator' => $is_or ? 'IN' : 'AND'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getCurrentPost() {
|
||||||
|
global $post;
|
||||||
|
return $post;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Compatibility with any existing custom code
|
||||||
|
if(! class_exists( 'PG_Helper' )) {
|
||||||
|
class PG_Helper extends PG_Helper_v2 {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
72
includes/back-end/wp_pg_pagination.php
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Class Name: PG_Pagination
|
||||||
|
* GitHub URI:
|
||||||
|
* Description:
|
||||||
|
* Version: 1.0
|
||||||
|
* Author: Matjaz Trontelj - @pinegrow
|
||||||
|
* License: GPL-2.0+
|
||||||
|
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
class PG_Pagination
|
||||||
|
{
|
||||||
|
static function getQuery( $query = null ) {
|
||||||
|
global $wp_query;
|
||||||
|
|
||||||
|
if(empty( $query )) {
|
||||||
|
return $wp_query;
|
||||||
|
} else {
|
||||||
|
return $query;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getCurrentPage() {
|
||||||
|
$name = 'paged';
|
||||||
|
if ( 'page' == get_option( 'show_on_front' ) && is_front_page() ) {
|
||||||
|
$name = 'page';
|
||||||
|
}
|
||||||
|
return intval(get_query_var( $name ) ? get_query_var( $name ) : 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getMaxPages( $query = null ) {
|
||||||
|
return self::getQuery( $query )->max_num_pages;
|
||||||
|
}
|
||||||
|
|
||||||
|
static function isPaginated( $query = null ) {
|
||||||
|
return self::getQuery( $query )->max_num_pages > 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getNextPageUrl( $query = null ) {
|
||||||
|
$max_pages = self::getMaxPages( $query );
|
||||||
|
if(self::getCurrentPage() < $max_pages) {
|
||||||
|
return get_pagenum_link( self::getCurrentPage() + 1 );
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getPreviousPageUrl( $query = null ) {
|
||||||
|
if(self::getCurrentPage() > 1) {
|
||||||
|
return get_pagenum_link( self::getCurrentPage() - 1 );
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getHrefAttribute( $url ) {
|
||||||
|
if(empty( $url )) {
|
||||||
|
return 'href="javascript:void(0)"';
|
||||||
|
} else {
|
||||||
|
return 'href="'.esc_url( $url ).'"';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getPreviousHrefAttribute( $query = null ) {
|
||||||
|
return self::getHrefAttribute( self::getPreviousPageUrl( $query ));
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getNextHrefAttribute( $query = null ) {
|
||||||
|
return self::getHrefAttribute( self::getNextPageUrl( $query ));
|
||||||
|
}
|
||||||
|
}
|
239
includes/back-end/wp_simple_form_mailer.php
Normal file
@@ -0,0 +1,239 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Class Name: PG_Simple_Form_Mailer
|
||||||
|
* GitHub URI:
|
||||||
|
* Description:
|
||||||
|
* Version: 1.0
|
||||||
|
* Author: Matjaz Trontelj - @pinegrow
|
||||||
|
* License: GPL-2.0+
|
||||||
|
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
class PG_Simple_Form_Mailer {
|
||||||
|
|
||||||
|
static $captcha_script_included = false;
|
||||||
|
|
||||||
|
public $processed = false;
|
||||||
|
public $error = true;
|
||||||
|
public $message = 'The form was not submitted';
|
||||||
|
public $text = null;
|
||||||
|
public $html = null;
|
||||||
|
|
||||||
|
public function process( $arg_options = array() ) {
|
||||||
|
|
||||||
|
$admin_email = get_option('admin_email');
|
||||||
|
|
||||||
|
$options = array(
|
||||||
|
'form_id' => 'contact_form',
|
||||||
|
'send_to_email' => false,
|
||||||
|
'email' => $admin_email,
|
||||||
|
'title' => 'Contact form submission',
|
||||||
|
'intro' => 'We received a new contact form submission:',
|
||||||
|
'save_to_post_type' => null,
|
||||||
|
'post_type' => null,
|
||||||
|
'captcha' => false,
|
||||||
|
'captcha_key' => null,
|
||||||
|
'captcha_secret' => null,
|
||||||
|
'include_captcha_script' => false,
|
||||||
|
'log_ip' => true,
|
||||||
|
'success_message' => 'Thank you for getting in touch!',
|
||||||
|
'error_message' => 'There was a problem submitting this form. Please contact us directly.',
|
||||||
|
'callback' => null
|
||||||
|
);
|
||||||
|
|
||||||
|
//merge options
|
||||||
|
foreach($arg_options as $key => $value) {
|
||||||
|
$options[ $key ] = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($options['captcha']) {
|
||||||
|
if (!empty($options['include_captcha_script']) && !PG_Simple_Form_Mailer::$captcha_script_included) {
|
||||||
|
echo '<script src="https://www.google.com/recaptcha/api.js" async defer></script>';
|
||||||
|
PG_Simple_Form_Mailer::$captcha_script_included = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if( !empty($_POST[$options['form_id']]) ) {
|
||||||
|
//the form was submitted
|
||||||
|
//we assume the browser did the validation
|
||||||
|
$lf = "\n\r";
|
||||||
|
|
||||||
|
$ignore_fields = array($options['form_id'], 'g-recaptcha-response');
|
||||||
|
|
||||||
|
$text = $options['intro'].$lf.$lf;
|
||||||
|
$html = "<p>{$options['intro']}</p>";
|
||||||
|
|
||||||
|
$from_email = null;
|
||||||
|
|
||||||
|
$this->processed = true;
|
||||||
|
|
||||||
|
if($options['captcha']) {
|
||||||
|
|
||||||
|
if(empty($options['captcha_key']) || empty($options['captcha_secret'])) {
|
||||||
|
$this->error = 'Captcha key and secret are not set.';
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(empty($_POST['g-recaptcha-response'])) {
|
||||||
|
$this->error = 'Captcha response is not present.';
|
||||||
|
return true;
|
||||||
|
|
||||||
|
} else if($this->validate_rechapcha($_POST['g-recaptcha-response'], $options['captcha_secret']) !== true) {
|
||||||
|
$this->error = 'Captcha validation failed.';
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$form_data = array();
|
||||||
|
|
||||||
|
foreach($_POST as $key => $value) {
|
||||||
|
if(!in_array( $key, $ignore_fields)) {
|
||||||
|
$key = htmlspecialchars($key);
|
||||||
|
$value = htmlspecialchars($value);
|
||||||
|
|
||||||
|
$text .= "{$key}: {$value}".$lf;
|
||||||
|
|
||||||
|
if($key == 'email' || $key == 'Email') {
|
||||||
|
$from_email = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
$html .= "<p><b>{$key}</b>: {$value}</p>";
|
||||||
|
|
||||||
|
$form_data[$key] = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$stamp = "Submitted on ".date("F j, Y, g:i a");
|
||||||
|
if($options['log_ip'] && !empty($_SERVER['REMOTE_ADDR'])) {
|
||||||
|
$stamp .= " from ".$_SERVER['REMOTE_ADDR'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$text .= $stamp;
|
||||||
|
$html .= "<p><em>{$stamp}</em></p>";
|
||||||
|
|
||||||
|
$this->text = $text;
|
||||||
|
$this->html = $html;
|
||||||
|
|
||||||
|
$emailed = null;
|
||||||
|
$saved = null;
|
||||||
|
$called = null;
|
||||||
|
|
||||||
|
if($options['send_to_email']) {
|
||||||
|
$headers = 'From: '. $admin_email . "\r\n";
|
||||||
|
|
||||||
|
$email_data = array(
|
||||||
|
'headers' => $headers,
|
||||||
|
'subject' => $options['title'],
|
||||||
|
'content' => $text,
|
||||||
|
'data' => $form_data
|
||||||
|
);
|
||||||
|
|
||||||
|
$email_data = apply_filters( 'pg_form_email', $email_data);
|
||||||
|
|
||||||
|
$emailed = wp_mail($options['email'], $email_data['subject'], $email_data['content'], $email_data['headers']);
|
||||||
|
}
|
||||||
|
if($options['save_to_post_type']) {
|
||||||
|
if(wp_insert_post( array(
|
||||||
|
'post_title' => $options['title'].(!empty( $from_email ) ? (" - ".$from_email) : ""),
|
||||||
|
'post_content' => $html,
|
||||||
|
'post_type' => $options['post_type'],
|
||||||
|
'post_status' => 'private'
|
||||||
|
) )) {
|
||||||
|
$saved = true;
|
||||||
|
} else {
|
||||||
|
$saved = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($options['callback']) {
|
||||||
|
if(function_exists($options['callback'])) {
|
||||||
|
$called = call_user_func($options['callback'], $form_data, $options);
|
||||||
|
} else {
|
||||||
|
$called = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if((!$emailed && !$saved && !$called) || $emailed === false || $saved === false || $called === false) {
|
||||||
|
$this->error = true;
|
||||||
|
$this->message = $options['error_message'];
|
||||||
|
} else {
|
||||||
|
$this->error = false;
|
||||||
|
$this->message = $options['success_message'];
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
//the form was not submitted
|
||||||
|
$this->processed = false;
|
||||||
|
$this->error = false;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//source https://gist.github.com/jonathanstark/dfb30bdfb522318fc819
|
||||||
|
public function validate_rechapcha($response, $secret)
|
||||||
|
{
|
||||||
|
// Verifying the user's response (https://developers.google.com/recaptcha/docs/verify)
|
||||||
|
$verifyURL = 'https://www.google.com/recaptcha/api/siteverify';
|
||||||
|
|
||||||
|
$query_data = [
|
||||||
|
'secret' => $secret,
|
||||||
|
'response' => $response,
|
||||||
|
'remoteip' => (isset($_SERVER["HTTP_CF_CONNECTING_IP"]) ? $_SERVER["HTTP_CF_CONNECTING_IP"] : $_SERVER['REMOTE_ADDR'])
|
||||||
|
];
|
||||||
|
|
||||||
|
// Collect and build POST data
|
||||||
|
$post_data = http_build_query($query_data, '', '&');
|
||||||
|
|
||||||
|
// Send data on the best possible way
|
||||||
|
if (function_exists('curl_init') && function_exists('curl_setopt') && function_exists('curl_exec'))
|
||||||
|
{
|
||||||
|
// Use cURL to get data 10x faster than using file_get_contents or other methods
|
||||||
|
$ch = curl_init($verifyURL);
|
||||||
|
curl_setopt($ch, CURLOPT_POST, 1);
|
||||||
|
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||||
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
|
||||||
|
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
|
||||||
|
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
|
||||||
|
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
|
||||||
|
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json', 'Content-type: application/x-www-form-urlencoded'));
|
||||||
|
$response = curl_exec($ch);
|
||||||
|
curl_close($ch);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// If server not have active cURL module, use file_get_contents
|
||||||
|
$opts = array('http' =>
|
||||||
|
array(
|
||||||
|
'method' => 'POST',
|
||||||
|
'header' => 'Content-type: application/x-www-form-urlencoded',
|
||||||
|
'content' => $post_data
|
||||||
|
)
|
||||||
|
);
|
||||||
|
$context = stream_context_create($opts);
|
||||||
|
$response = file_get_contents($verifyURL, false, $context);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Verify all reponses and avoid PHP errors
|
||||||
|
if ($response)
|
||||||
|
{
|
||||||
|
$result = json_decode($response);
|
||||||
|
if ($result->success === true)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dead end
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
279
includes/back-end/wp_smart_navwalker.php
Normal file
@@ -0,0 +1,279 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Class Name: PG_Smart_Walker_Nav_Menu
|
||||||
|
* GitHub URI:
|
||||||
|
* Description:
|
||||||
|
* Version: 2.0
|
||||||
|
* Author: Matjaz Trontelj - @pinegrow
|
||||||
|
* License: GPL-2.0+
|
||||||
|
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
|
||||||
|
* Based on WordPress Walker_Nav_Menu code
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
class PG_Smart_Walker_Nav_Menu extends Walker_Nav_Menu {
|
||||||
|
|
||||||
|
private static $default_options = array(
|
||||||
|
'top_element' => 'ul',
|
||||||
|
'sub_element' => 'ul',
|
||||||
|
'current_class' => 'current-menu-item',
|
||||||
|
'sub_menu_class' => 'sub-menu',
|
||||||
|
'item_id_prefix' => 'menu-item-',
|
||||||
|
'template' => '<li id="{ID}" class="{CLASSES}">{LINK_BEFORE}<a {ATTRS}>{TITLE}</a>{LINK_AFTER}</li>',
|
||||||
|
'template_item_with_sublevel' => null,
|
||||||
|
'template_sublevel' => null,
|
||||||
|
'template_subitem' => null
|
||||||
|
);
|
||||||
|
|
||||||
|
public static $options = array();
|
||||||
|
|
||||||
|
private static $level = 0;
|
||||||
|
private static $current_id = '';
|
||||||
|
private static $count = 0;
|
||||||
|
|
||||||
|
public static function init() {
|
||||||
|
self::$options = self::$default_options;
|
||||||
|
self::$level = 0;
|
||||||
|
self::$current_id = '';
|
||||||
|
self::$count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the begining or end part of the template
|
||||||
|
*
|
||||||
|
* @param boolean $start true for begining, false for end part
|
||||||
|
*/
|
||||||
|
private function get_template_part( $start = true, $template = 'template' ) {
|
||||||
|
$parts = explode('{SUB}', self::$options[ $template ]);
|
||||||
|
if(count($parts) == 2) {
|
||||||
|
return $start ? $parts[0] : $parts[1];
|
||||||
|
}
|
||||||
|
//if {SUB} is missing from the template, assume the last closing tag is the end part
|
||||||
|
$idx = strrpos(self::$options[ $template ], '</');
|
||||||
|
if($idx !== false) {
|
||||||
|
return $start ? substr(self::$options[ $template ], 0, $idx) : substr(self::$options[ $template ], $idx);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Starts the list before the elements are added.
|
||||||
|
*
|
||||||
|
* @see Walker::start_lvl()
|
||||||
|
*
|
||||||
|
* @since 3.0.0
|
||||||
|
*
|
||||||
|
* @param string $output Passed by reference. Used to append additional content.
|
||||||
|
* @param int $depth Depth of menu item. Used for padding.
|
||||||
|
* @param array $args An array of arguments. @see wp_nav_menu()
|
||||||
|
*/
|
||||||
|
public function start_lvl( &$output, $depth = 0, $args = array() ) {
|
||||||
|
self::$level++;
|
||||||
|
|
||||||
|
$indent = str_repeat("\t", $depth);
|
||||||
|
|
||||||
|
if(self::$level > 0 && self::$options['template_sublevel']) {
|
||||||
|
$output .= "\n$indent" . str_replace('{ID}', self::$current_id,self::get_template_part(true, 'template_sublevel'));
|
||||||
|
} else {
|
||||||
|
$tag = $depth == 0 ? self::$options['top_element'] : self::$options['sub_element'];
|
||||||
|
if (!empty($tag)) {
|
||||||
|
$class = self::$options['sub_menu_class'];
|
||||||
|
$output .= "\n$indent<$tag class=\"$class\">\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ends the list of after the elements are added.
|
||||||
|
*
|
||||||
|
* @see Walker::end_lvl()
|
||||||
|
*
|
||||||
|
* @since 3.0.0
|
||||||
|
*
|
||||||
|
* @param string $output Passed by reference. Used to append additional content.
|
||||||
|
* @param int $depth Depth of menu item. Used for padding.
|
||||||
|
* @param array $args An array of arguments. @see wp_nav_menu()
|
||||||
|
*/
|
||||||
|
public function end_lvl( &$output, $depth = 0, $args = array() ) {
|
||||||
|
$indent = str_repeat("\t", $depth);
|
||||||
|
|
||||||
|
if(self::$level > 0 && self::$options['template_sublevel']) {
|
||||||
|
$output .= "\n$indent" . self::get_template_part(false, 'template_sublevel');
|
||||||
|
} else {
|
||||||
|
$tag = $depth == 0 ? self::$options['top_element'] : self::$options['sub_element'];
|
||||||
|
if (!empty($tag)) {
|
||||||
|
$output .= "$indent</$tag>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
self::$level--;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Start the element output.
|
||||||
|
*
|
||||||
|
* @see Walker::start_el()
|
||||||
|
*
|
||||||
|
* @since 3.0.0
|
||||||
|
*
|
||||||
|
* @param string $output Passed by reference. Used to append additional content.
|
||||||
|
* @param object $item Menu item data object.
|
||||||
|
* @param int $depth Depth of menu item. Used for padding.
|
||||||
|
* @param array $args An array of arguments. @see wp_nav_menu()
|
||||||
|
* @param int $id Current item ID.
|
||||||
|
*/
|
||||||
|
public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
|
||||||
|
$indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
|
||||||
|
|
||||||
|
$classes = empty( $item->classes ) ? array() : (array) $item->classes;
|
||||||
|
$classes[] = 'menu-item-' . $item->ID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter the CSS class(es) applied to a menu item's list item element.
|
||||||
|
*
|
||||||
|
* @since 3.0.0
|
||||||
|
* @since 4.1.0 The `$depth` parameter was added.
|
||||||
|
*
|
||||||
|
* @param array $classes The CSS classes that are applied to the menu item's `<li>` element.
|
||||||
|
* @param object $item The current menu item.
|
||||||
|
* @param array $args An array of {@see wp_nav_menu()} arguments.
|
||||||
|
* @param int $depth Depth of menu item. Used for padding.
|
||||||
|
*/
|
||||||
|
$classes = apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args, $depth );
|
||||||
|
|
||||||
|
foreach($classes as $i => $class) {
|
||||||
|
if($classes[$i] == 'current-menu-item') {
|
||||||
|
$classes[$i] = self::$options['current_class'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$class_names = join( ' ', $classes);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter the ID applied to a menu item's list item element.
|
||||||
|
*
|
||||||
|
* @since 3.0.1
|
||||||
|
* @since 4.1.0 The `$depth` parameter was added.
|
||||||
|
*
|
||||||
|
* @param string $menu_id The ID that is applied to the menu item's `<li>` element.
|
||||||
|
* @param object $item The current menu item.
|
||||||
|
* @param array $args An array of {@see wp_nav_menu()} arguments.
|
||||||
|
* @param int $depth Depth of menu item. Used for padding.
|
||||||
|
*/
|
||||||
|
$id = apply_filters( 'nav_menu_item_id', self::$options['item_id_prefix']. $item->ID, $item, $args, $depth );
|
||||||
|
|
||||||
|
if(empty($id)) {
|
||||||
|
//most likely the default id was already used. Set a count based id
|
||||||
|
$id = self::$options['item_id_prefix'].self::$count.'-'.$item->ID;
|
||||||
|
}
|
||||||
|
|
||||||
|
self::$current_id = $id;
|
||||||
|
|
||||||
|
$output .= $indent;
|
||||||
|
|
||||||
|
$atts = array();
|
||||||
|
$atts['title'] = ! empty( $item->attr_title ) ? $item->attr_title : '';
|
||||||
|
$atts['target'] = ! empty( $item->target ) ? $item->target : '';
|
||||||
|
$atts['rel'] = ! empty( $item->xfn ) ? $item->xfn : '';
|
||||||
|
$atts['href'] = ! empty( $item->url ) ? $item->url : '';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter the HTML attributes applied to a menu item's anchor element.
|
||||||
|
*
|
||||||
|
* @since 3.6.0
|
||||||
|
* @since 4.1.0 The `$depth` parameter was added.
|
||||||
|
*
|
||||||
|
* @param array $atts {
|
||||||
|
* The HTML attributes applied to the menu item's `<a>` element, empty strings are ignored.
|
||||||
|
*
|
||||||
|
* @type string $title Title attribute.
|
||||||
|
* @type string $target Target attribute.
|
||||||
|
* @type string $rel The rel attribute.
|
||||||
|
* @type string $href The href attribute.
|
||||||
|
* }
|
||||||
|
* @param object $item The current menu item.
|
||||||
|
* @param array $args An array of {@see wp_nav_menu()} arguments.
|
||||||
|
* @param int $depth Depth of menu item. Used for padding.
|
||||||
|
*/
|
||||||
|
$atts = apply_filters( 'nav_menu_link_attributes', $atts, $item, $args, $depth );
|
||||||
|
|
||||||
|
$attributes = '';
|
||||||
|
foreach ( $atts as $attr => $value ) {
|
||||||
|
if ( ! empty( $value ) ) {
|
||||||
|
$value = ( 'href' === $attr ) ? esc_url( $value ) : esc_attr( $value );
|
||||||
|
$attributes .= ' ' . $attr . '="' . $value . '"';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$item_output = $args->before;
|
||||||
|
|
||||||
|
$has_sublevel = false;
|
||||||
|
|
||||||
|
if(isset($item->classes) && in_array('menu-item-has-children', $item->classes)) {
|
||||||
|
$has_sublevel = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$template_key = 'template';
|
||||||
|
if(self::$level === 0 && $has_sublevel && self::$options['template_item_with_sublevel']) {
|
||||||
|
$template_key = 'template_item_with_sublevel';
|
||||||
|
} else if(self::$level > 0 && self::$options['template_subitem']) {
|
||||||
|
$template_key = 'template_subitem';
|
||||||
|
}
|
||||||
|
|
||||||
|
$template = $this->get_template_part(true, $template_key);
|
||||||
|
$template = str_replace( '{LINK_BEFORE}', $args->link_before, $template);
|
||||||
|
$template = str_replace( '{LINK_AFTER}', $args->link_after, $template);
|
||||||
|
$template = str_replace( '{TITLE}', apply_filters( 'the_title', $item->title, $item->ID ), $template);
|
||||||
|
|
||||||
|
$template = str_replace( '{ATTRS}', $attributes, $template);
|
||||||
|
$template = str_replace( '{ID}', $id, $template);
|
||||||
|
$template = str_replace( '{CLASSES}', $class_names, $template);
|
||||||
|
|
||||||
|
$item_output .= $template;
|
||||||
|
|
||||||
|
$item_output .= $args->after;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter a menu item's starting output.
|
||||||
|
*
|
||||||
|
* The menu item's starting output only includes `$args->before`, the opening `<a>`,
|
||||||
|
* the menu item's title, the closing `</a>`, and `$args->after`. Currently, there is
|
||||||
|
* no filter for modifying the opening and closing `<li>` for a menu item.
|
||||||
|
*
|
||||||
|
* @since 3.0.0
|
||||||
|
*
|
||||||
|
* @param string $item_output The menu item's starting HTML output.
|
||||||
|
* @param object $item Menu item data object.
|
||||||
|
* @param int $depth Depth of menu item. Used for padding.
|
||||||
|
* @param array $args An array of {@see wp_nav_menu()} arguments.
|
||||||
|
*/
|
||||||
|
$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ends the element output, if needed.
|
||||||
|
*
|
||||||
|
* @see Walker::end_el()
|
||||||
|
*
|
||||||
|
* @since 3.0.0
|
||||||
|
*
|
||||||
|
* @param string $output Passed by reference. Used to append additional content.
|
||||||
|
* @param object $item Page data object. Not used.
|
||||||
|
* @param int $depth Depth of page. Not Used.
|
||||||
|
* @param array $args An array of arguments. @see wp_nav_menu()
|
||||||
|
*/
|
||||||
|
public function end_el( &$output, $item, $depth = 0, $args = array() ) {
|
||||||
|
$has_sublevel = false;
|
||||||
|
|
||||||
|
if(isset($item->classes) && in_array('menu-item-has-children', $item->classes)) {
|
||||||
|
$has_sublevel = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$template_key = 'template';
|
||||||
|
if(self::$level === 0 && $has_sublevel && self::$options['template_item_with_sublevel']) {
|
||||||
|
$template_key = 'template_item_with_sublevel';
|
||||||
|
} else if(self::$level > 0 && self::$options['template_subitem']) {
|
||||||
|
$template_key = 'template_subitem';
|
||||||
|
}
|
||||||
|
$output .= $this->get_template_part(false, $template_key)."\n"; //get the ending part of the template
|
||||||
|
}
|
||||||
|
|
||||||
|
} // PG_Smart_Walker_Nav_Menu
|
19
includes/front-end/custom_login_screen.php
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Change Login Page header url
|
||||||
|
function ourHeaderUrl()
|
||||||
|
{
|
||||||
|
return esc_url(site_url('/'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make login title the name of our website
|
||||||
|
function ourLoginTitle()
|
||||||
|
{
|
||||||
|
return get_bloginfo('name');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Enqueue out stylesheet for login screen
|
||||||
|
function ourLoginCSS()
|
||||||
|
{
|
||||||
|
wp_enqueue_style('login styles', get_theme_file_uri('/assets/css/styles.css'));
|
||||||
|
}
|
13
includes/front-end/registration_form_message.php
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Change Registration Message
|
||||||
|
function change_reg_message($message)
|
||||||
|
{
|
||||||
|
// change messages that contain 'Register'
|
||||||
|
if (strpos($message, 'Register') !== FALSE) {
|
||||||
|
$newMessage = "Register with " . get_bloginfo('name');
|
||||||
|
return '<p class="message register">' . $newMessage . '</p>';
|
||||||
|
} else {
|
||||||
|
return $message;
|
||||||
|
}
|
||||||
|
}
|
23
includes/front-end/styles_and_scripts.php
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Enqueue styles and scripts
|
||||||
|
function themeStarter_enqueue()
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Register and Enqueue Scripts */
|
||||||
|
|
||||||
|
wp_register_script('themeStarter-app', get_parent_theme_file_uri('/assets/js/index.js'), [], '1.0', true);
|
||||||
|
wp_enqueue_script('themeStarter-app');
|
||||||
|
|
||||||
|
|
||||||
|
/* Register and Enqueue Styles */
|
||||||
|
|
||||||
|
wp_register_style('themeStarter-styles', get_parent_theme_file_uri('/assets/css/styles.css'), [], '1.0', 'all');
|
||||||
|
wp_enqueue_style('themeStarter-styles');
|
||||||
|
|
||||||
|
wp_register_style('bootstrap-icons', get_parent_theme_file_uri('/assets/css/bootstrap-icons.css'), [], '1.11.1', 'all');
|
||||||
|
wp_enqueue_style('bootstrap-icons');
|
||||||
|
|
||||||
|
wp_register_style('font-awesome', get_parent_theme_file_uri('/assets/css/font-awesome.css'), [], '6.4.2', 'all');
|
||||||
|
wp_enqueue_style('font-awesome');
|
||||||
|
}
|
35
includes/front-end/technical_seo.php
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
function open_graph_twitter_card()
|
||||||
|
{
|
||||||
|
// Get the post or page ID
|
||||||
|
$post_id = get_the_ID();
|
||||||
|
|
||||||
|
// Get the post or page title
|
||||||
|
$title = get_the_title($post_id);
|
||||||
|
|
||||||
|
// Get the post or page excerpt (description)
|
||||||
|
$description = (get_the_excerpt()) ? get_the_excerpt() : get_bloginfo('description');
|
||||||
|
|
||||||
|
// Get the post or page URL
|
||||||
|
$url = get_permalink($post_id);
|
||||||
|
|
||||||
|
// Set default image url
|
||||||
|
$default_image_url = get_theme_file_uri('/screenshot.png');
|
||||||
|
|
||||||
|
// Get the post thumbnail (featured image) URL
|
||||||
|
$thumbnail = get_the_post_thumbnail_url($post_id);
|
||||||
|
?>
|
||||||
|
<!-- Open Graph meta tags -->
|
||||||
|
<meta property="og:title" content="<?php echo $title . ' - ' . get_bloginfo('name'); ?>" />
|
||||||
|
<meta property="og:description" content="<?php echo $description ?>" />
|
||||||
|
<meta property="og:url" content="<?php echo $url ?>" />
|
||||||
|
<meta property="og:image" content="<?php echo $default_image_url ?>" />
|
||||||
|
<!-- Twitter Card meta tags -->
|
||||||
|
<meta name="twitter:card" content="summary" />
|
||||||
|
<meta name="twitter:title" content="<?php echo $title . ' - ' . get_bloginfo('name'); ?>" />
|
||||||
|
<meta name="twitter:description" content="<?php echo $description ?>" />
|
||||||
|
<meta name="twitter:image" content="<?php echo $default_image_url ?>" />
|
||||||
|
<?php
|
||||||
|
|
||||||
|
}
|
84
includes/front-end/theme_starter_setup.php
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
function themeStarter_setup()
|
||||||
|
{
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Make theme available for translation.
|
||||||
|
* Translations can be filed in the /languages/ directory.
|
||||||
|
*/
|
||||||
|
|
||||||
|
load_theme_textdomain('themeStarter', get_template_directory() . '/languages');
|
||||||
|
|
||||||
|
// Add default posts and comments RSS feed links to head.
|
||||||
|
add_theme_support('automatic-feed-links');
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Let WordPress manage the document title.
|
||||||
|
*/
|
||||||
|
add_theme_support('title-tag');
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Enable support for Post Thumbnails on posts and pages.
|
||||||
|
*/
|
||||||
|
add_theme_support('post-thumbnails');
|
||||||
|
//Support custom logo
|
||||||
|
add_theme_support('custom-logo');
|
||||||
|
|
||||||
|
// Add menus.
|
||||||
|
register_nav_menus(
|
||||||
|
array(
|
||||||
|
'primary' => __('Primary Menu', 'themeStarter'),
|
||||||
|
'secondary' => __('Secondary Menu', 'themeStarter'),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Switch default core markup for search form, comment form, and comments
|
||||||
|
* to output valid HTML5.
|
||||||
|
*/
|
||||||
|
|
||||||
|
add_theme_support(
|
||||||
|
'html5',
|
||||||
|
array(
|
||||||
|
'search-form',
|
||||||
|
'comment-form',
|
||||||
|
'comment-list',
|
||||||
|
'gallery',
|
||||||
|
'caption',
|
||||||
|
'style',
|
||||||
|
'script'
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Enable support for Post Formats.
|
||||||
|
*/
|
||||||
|
|
||||||
|
add_theme_support(
|
||||||
|
'post-formats',
|
||||||
|
array(
|
||||||
|
'aside',
|
||||||
|
'image',
|
||||||
|
'video',
|
||||||
|
'quote',
|
||||||
|
'link',
|
||||||
|
'gallery',
|
||||||
|
'status',
|
||||||
|
'audio',
|
||||||
|
'chat'
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Enable support for Page excerpts.
|
||||||
|
*/
|
||||||
|
add_post_type_support('page', 'excerpt');
|
||||||
|
}
|
||||||
|
|
||||||
|
function themeStarter_init()
|
||||||
|
{
|
||||||
|
// Use categories and tags with attachments
|
||||||
|
register_taxonomy_for_object_type('category', 'attachment');
|
||||||
|
register_taxonomy_for_object_type('post_tag', 'attachment');
|
||||||
|
}
|
47
index.php
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
<!-- Get Header -->
|
||||||
|
<?php get_header(); ?>
|
||||||
|
|
||||||
|
<!-- Padder Section -->
|
||||||
|
<div id="padder" class="hidden lg:flex h-24 w-full z-20 lg:h-28">
|
||||||
|
</div>
|
||||||
|
<div class="bg-yellow-400 mx-auto page-header pb-8 px-4 md:px-8">
|
||||||
|
<div class="max-w-7xl mb-8 mx-auto pt-40 px-4 md:px-8">
|
||||||
|
<div>
|
||||||
|
<h1 class="font-bold text-4xl text-white tracking-tight">Blog</h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
|
||||||
|
<article <?php post_class('my-8'); ?>>
|
||||||
|
<h2 class="text-2xl font-bold"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
|
||||||
|
<p class="text-gray-600"><?php the_time(get_option('date_format')); ?> by <?php the_author(); ?></p>
|
||||||
|
<div class="mt-4">
|
||||||
|
<?php the_content(); ?>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
<?php endwhile;
|
||||||
|
else : ?>
|
||||||
|
<div class="max-w-7xl my-8 mx-auto px-8">
|
||||||
|
<div class="rounded-md bg-red-50 p-4">
|
||||||
|
<div class="flex">
|
||||||
|
<div class="flex-shrink-0">
|
||||||
|
<svg class="h-5 w-5 text-red-400" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
|
||||||
|
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z" clip-rule="evenodd" />
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<div class="ml-3">
|
||||||
|
<h3 class="text-sm font-medium text-red-800">Sorry, no posts matched your criteria</h3>
|
||||||
|
<div class="mt-2 text-sm text-red-700">
|
||||||
|
<ul role="list" class="list-disc space-y-1 pl-5">
|
||||||
|
<li>Check back for posts</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<!-- Get Footer -->
|
||||||
|
<?php get_footer(); ?>
|
21746
package-lock.json
generated
Normal file
35
package.json
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"name": "starter",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"dev:tailwind": "npx tailwindcss -i ./src/scss/vendors/tailwind/_source.scss -o ./src/scss/vendors/tailwind/_tailwind.scss --watch",
|
||||||
|
"build:tailwind": "npx tailwindcss -i ./src/scss/vendors/tailwind/_source.scss -o ../src/scss/vendors/tailwind/_tailwind.scss --minify",
|
||||||
|
"dev:sass": "npx sass --watch --no-source-map ./src/scss/styles.scss:./assets/css/styles.css",
|
||||||
|
"build:wp": "wp-scripts build",
|
||||||
|
"dev:wp": "wp-scripts start --output-path=assets/js --webpack-no-externals",
|
||||||
|
"sync": "browser-sync start --proxy \"http://romag.test\" --serveStatic \"public\" --files \"public\"",
|
||||||
|
"dev": "npm-run-all --parallel dev:tailwind dev:sass dev:wp"
|
||||||
|
},
|
||||||
|
"keywords": [],
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC",
|
||||||
|
"devDependencies": {
|
||||||
|
"@tailwindcss/container-queries": "^0.1.1",
|
||||||
|
"@tailwindcss/forms": "^0.5.3",
|
||||||
|
"@tailwindcss/typography": "^0.5.9",
|
||||||
|
"@wordpress/scripts": "*",
|
||||||
|
"autoprefixer": "^10.4.14",
|
||||||
|
"axios": "^1.6.0",
|
||||||
|
"browser-sync": "^2.29.3",
|
||||||
|
"cssnano": "^6.0.0",
|
||||||
|
"npm-run-all": "^4.1.5",
|
||||||
|
"postcss": "^8.4.21",
|
||||||
|
"postcss-cli": "^10.1.0",
|
||||||
|
"postcss-import": "^15.1.0",
|
||||||
|
"postcss-preset-env": "^8.3.1",
|
||||||
|
"sass": "^1.61.0",
|
||||||
|
"tailwindcss": "^3.3.1"
|
||||||
|
}
|
||||||
|
}
|
102
page-about.php
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
<!-- Get Header -->
|
||||||
|
<?php get_header(); ?>
|
||||||
|
|
||||||
|
<!-- About Us Page Template -->
|
||||||
|
|
||||||
|
<!-- Padder Section -->
|
||||||
|
<div id="padder" class="hidden lg:flex h-24 w-full z-20 lg:h-28">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Page Header -->
|
||||||
|
<div class="bg-yellow-400 mx-auto about-header pb-8 px-4 md:px-8">
|
||||||
|
<div class="max-w-7xl mb-8 mx-auto pt-40 px-4 md:px-8">
|
||||||
|
<div>
|
||||||
|
<h1 class="font-bold text-4xl text-white tracking-tight"><?php the_title(); ?></h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Header Section -->
|
||||||
|
<section class="bg-blue-500 text-white text-center py-4">
|
||||||
|
<h1 class="text-3xl px-4 py-8 font-bold">Medical Place Health Solutions</h1>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Our Pharmacy Section -->
|
||||||
|
<section>
|
||||||
|
<div class="">
|
||||||
|
<div class="gap-8 grid lg:grid-cols-2 max-w-7xl mx-auto px-8 py-12 items-center">
|
||||||
|
<div>
|
||||||
|
<p class="font-bold text-3xl text-left mb-8">Our Pharmacy</p>
|
||||||
|
<img src="<?php echo get_template_directory_uri(); ?>/assets/images/bgs/anjema-building.jpg" alt="Anjema Building">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="mb-8 space-y-4">
|
||||||
|
<p>Medical Place Health Solutions is located conveniently inside the Anjema Eye Institue building at 735 St. Clair Street, Chatham.</p>
|
||||||
|
<p>Our pharmacy is equipped with a state of the art certified ISO class 7 cleanroom and ISO class 5 laminar airflow hood, so we are able to offer sterile preparations to fit various needs for our clients.</p>
|
||||||
|
<p>Our sister pharmacy is Medical Place Pharmacy on Emma St. in Chatham. Visit their website www.chathamkentpharmacy.ca for more information on the health services they provide.</p>
|
||||||
|
<p>If you need help finding our location, you can find directions here.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex mt-8 space-x-4">
|
||||||
|
<a class="items-center justify-center capitalize ease-in-out duration-700 py-2 px-5 font-normal hover:bg-gray-200 hover:text-black text-center text-white bg-blue-500 min-w-max transition hover:-translate-y-1" href="<?php echo get_post_type_archive_link('project'); ?>"><?php _e('Services', 'themeStarter'); ?>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ABOUT TEAMS SECTION -->
|
||||||
|
<section id="about-teams">
|
||||||
|
<div class="bg-gray-200 max-w-screen mx-auto px-4 py-4 my-2">
|
||||||
|
|
||||||
|
<!-- Team Section -->
|
||||||
|
<section class="py-16">
|
||||||
|
<div class="max-w-7xl mx-auto">
|
||||||
|
<h2 class="capitalize font-medium text-xl md:text-2xl lg:text-4xl text-blue-500 text-center"><?php _e('Our Team', 'themeStarter'); ?></h2>
|
||||||
|
<div class="bg-blue-500 mx-auto mb-8 mt-4 pt-1 w-36"></div>
|
||||||
|
<p class="text-center px-8 max-w-6xl mx-auto py-4">Our health professionals are ready to answer all of your questions.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="max-w-7xl mx-auto px-4 flex flex-col">
|
||||||
|
|
||||||
|
<ul role="list" class="mx-auto mt-8 grid max-w-2xl grid-cols-2 gap-x-8 gap-y-12 lg:mx-0 lg:max-w-none md:grid-cols-3">
|
||||||
|
<?php
|
||||||
|
$teams = new WP_Query(
|
||||||
|
array(
|
||||||
|
'posts_per_page' => -1,
|
||||||
|
'post_type' => 'team',
|
||||||
|
'orderby' => 'title',
|
||||||
|
'order' => 'ASC'
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
while ($teams->have_posts()) {
|
||||||
|
$teams->the_post();
|
||||||
|
$teamTitle = get_the_title();
|
||||||
|
$teamThumbnailURL = get_field('team_photo');
|
||||||
|
$team_bio = get_field('team_bio') ?>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<div class="flex">
|
||||||
|
<img class="aspect-video rounded-2xl w-full object-cover" src="<?= $teamThumbnailURL ?>" alt="Pharmacist Thumbnail">
|
||||||
|
</div>
|
||||||
|
<div class="text-center">
|
||||||
|
<h3 class="mt-2 text-lg font-semibold leading-8 tracking-tight text-gray-900"><?= $teamTitle ?></h3>
|
||||||
|
<p class="text-base leading-7 text-gray-600"><?= the_field('team_title'); ?> </p>
|
||||||
|
<p><?= $team_bio ?> </p>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<?php }
|
||||||
|
|
||||||
|
wp_reset_postdata(); ?>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Get Footer -->
|
||||||
|
<?php get_footer(); ?>
|
159
page-contact.php
Normal file
@@ -0,0 +1,159 @@
|
|||||||
|
<!-- Get Header -->
|
||||||
|
<?php get_header(); ?>
|
||||||
|
|
||||||
|
<!-- Contact Us Page Template -->
|
||||||
|
|
||||||
|
<!-- Padder Section -->
|
||||||
|
<div id="padder" class="hidden lg:flex h-24 w-full z-20 lg:h-28">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Page Header -->
|
||||||
|
<div class="bg-yellow-400 mx-auto page-header pb-8 px-4 md:px-8">
|
||||||
|
<div class="max-w-7xl mb-8 mx-auto pt-40 px-4 md:px-8">
|
||||||
|
<div>
|
||||||
|
<h1 class="font-bold text-4xl text-white tracking-tight"><?php the_title(); ?></h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Contact section -->
|
||||||
|
<section class="py-4" aria-labelledby="contact-heading">
|
||||||
|
<!-- Decorative dot pattern -->
|
||||||
|
<div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
|
||||||
|
<div class="relative bg-white shadow-xl">
|
||||||
|
<h2 id="contact-heading" class="sr-only"><?php _e('Contact us', 'themeStarter'); ?></h2>
|
||||||
|
<div class="grid grid-cols-1 lg:grid-cols-3">
|
||||||
|
<!-- Contact information -->
|
||||||
|
<div class="bg-gradient-to-b from-blue-400 overflow-hidden px-6 py-10 relative to-blue-700 sm:px-10 xl:p-12">
|
||||||
|
|
||||||
|
<!-- Decorative angle backgrounds -->
|
||||||
|
<div class="pointer-events-none absolute inset-0 sm:hidden" aria-hidden="true">
|
||||||
|
<svg class="absolute inset-0 h-full w-full" width="343" height="388" viewBox="0 0 343 388" fill="none" preserveAspectRatio="xMidYMid slice" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M-99 461.107L608.107-246l707.103 707.107-707.103 707.103L-99 461.107z" fill="url(#linear1)" fill-opacity=".1" />
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="linear1" x1="254.553" y1="107.554" x2="961.66" y2="814.66" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#fff"></stop>
|
||||||
|
<stop offset="1" stop-color="#fff" stop-opacity="0"></stop>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="pointer-events-none absolute top-0 right-0 bottom-0 hidden w-1/2 sm:block lg:hidden" aria-hidden="true">
|
||||||
|
<svg class="absolute inset-0 h-full w-full" width="359" height="339" viewBox="0 0 359 339" fill="none" preserveAspectRatio="xMidYMid slice" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M-161 382.107L546.107-325l707.103 707.107-707.103 707.103L-161 382.107z" fill="url(#linear2)" fill-opacity=".1" />
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="linear2" x1="192.553" y1="28.553" x2="899.66" y2="735.66" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#fff"></stop>
|
||||||
|
<stop offset="1" stop-color="#fff" stop-opacity="0"></stop>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="pointer-events-none absolute top-0 right-0 bottom-0 hidden w-1/2 lg:block" aria-hidden="true">
|
||||||
|
<svg class="absolute inset-0 h-full w-full" width="160" height="678" viewBox="0 0 160 678" fill="none" preserveAspectRatio="xMidYMid slice" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M-161 679.107L546.107-28l707.103 707.107-707.103 707.103L-161 679.107z" fill="url(#linear3)" fill-opacity=".1" />
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="linear3" x1="192.553" y1="325.553" x2="899.66" y2="1032.66" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#fff"></stop>
|
||||||
|
<stop offset="1" stop-color="#fff" stop-opacity="0"></stop>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3 class="font-medium text-white text-lg"><?php _e('Contact Us', 'themeStarter'); ?></h3>
|
||||||
|
<dl class="mt-8 space-y-6">
|
||||||
|
|
||||||
|
<dt><span class="sr-only"><?php _e('Phone number', 'themeStarter'); ?></span></dt>
|
||||||
|
<dd class="flex text-base text-white">
|
||||||
|
<a href="tel:226-996-9246" class="flex">
|
||||||
|
<svg class="flex-shrink-0 h-6 text-white w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" d="M2.25 6.75c0 8.284 6.716 15 15 15h2.25a2.25 2.25 0 002.25-2.25v-1.372c0-.516-.351-.966-.852-1.091l-4.423-1.106c-.44-.11-.902.055-1.173.417l-.97 1.293c-.282.376-.769.542-1.21.38a12.035 12.035 0 01-7.143-7.143c-.162-.441.004-.928.38-1.21l1.293-.97c.363-.271.527-.734.417-1.173L6.963 3.102a1.125 1.125 0 00-1.091-.852H4.5A2.25 2.25 0 002.25 4.5v2.25z" />
|
||||||
|
</svg><span class="ml-3"><?php _e('226-996-9246', 'themeStarter'); ?></span>
|
||||||
|
</a>
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt><span class="sr-only"><?php _e('Email', 'themeStarter'); ?></span></dt>
|
||||||
|
<dd class="flex text-base text-white">
|
||||||
|
<a href="mailto:info@medicalplacehealthsolutions.com" class="flex">
|
||||||
|
<svg class="flex-shrink-0 h-6 text-white w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" d="M21.75 6.75v10.5a2.25 2.25 0 01-2.25 2.25h-15a2.25 2.25 0 01-2.25-2.25V6.75m19.5 0A2.25 2.25 0 0019.5 4.5h-15a2.25 2.25 0 00-2.25 2.25m19.5 0v.243a2.25 2.25 0 01-1.07 1.916l-7.5 4.615a2.25 2.25 0 01-2.36 0L3.32 8.91a2.25 2.25 0 01-1.07-1.916V6.75" />
|
||||||
|
</svg><span class="ml-3"><?php _e('info@medicalplacehealthsolutions.com', 'themeStarter'); ?></span>
|
||||||
|
</a>
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt><span class="sr-only"><?php _e('Email', 'themeStarter'); ?></span></dt>
|
||||||
|
<dd class="flex text-base text-white">
|
||||||
|
<a href="https://goo.gl/maps/Y8BXswrisc22" class="flex">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="flex-shrink-0 w-6 h-6">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" d="M15 10.5a3 3 0 11-6 0 3 3 0 016 0z" />
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" d="M19.5 10.5c0 7.142-7.5 11.25-7.5 11.25S4.5 17.642 4.5 10.5a7.5 7.5 0 1115 0z" />
|
||||||
|
</svg>
|
||||||
|
<span class="ml-3"><?php _e('735 St. Clair St. Chatham, Ontario N7L 0E9 Canada', 'themeStarter'); ?></span>
|
||||||
|
</a>
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
<!-- Contact form -->
|
||||||
|
<div class="py-10 px-6 sm:px-10 lg:col-span-2 xl:p-12">
|
||||||
|
<h3 class="text-lg font-medium text-warm-gray-900"><?php _e('Send us a message', 'themeStarter'); ?></h3>
|
||||||
|
<?php $mailer = new PG_Simple_Form_Mailer(); ?>
|
||||||
|
<?php $mailer->process(array(
|
||||||
|
'form_id' => 'contact_us_form_mailer_id',
|
||||||
|
'send_to_email' => true,
|
||||||
|
'save_to_post_type' => true,
|
||||||
|
'email' => 'hr@romagcontracting.ca',
|
||||||
|
'post_type' => 'contact_submissions',
|
||||||
|
'title' => 'New Message',
|
||||||
|
'intro' => 'New Contact Form Submission'
|
||||||
|
)); ?>
|
||||||
|
<?php if (!$mailer->processed || $mailer->error) : ?>
|
||||||
|
<form action="<?php echo '#contact_us_form_mailer_id'; ?>" method="post" class="mt-6 grid grid-cols-1 gap-y-6 sm:grid-cols-2 sm:gap-x-8" id="contact_us_form_mailer_id" onsubmit="event.stopImmediatePropagation();event.stopPropagation();">
|
||||||
|
<div class="sm:col-span-2">
|
||||||
|
<label for="full-name" class="block text-sm font-medium text-warm-gray-900">
|
||||||
|
<?php _e('Name', 'themeStarter'); ?>
|
||||||
|
</label>
|
||||||
|
<div class="mt-1">
|
||||||
|
<input type="text" id="full-name" autocomplete="given-name" class="block border-warm-gray-300 focus:border-blue-500 focus:ring-blue-400 px-4 py-3 rounded-md shadow-sm text-warm-gray-900 w-full" name="Full Name" placeholder="Enter your name" value="<?php echo (isset($_POST['Full Name']) ? $_POST['Full Name'] : ''); ?>" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sm:col-span-2">
|
||||||
|
<label for="subject" class="block text-sm font-medium text-warm-gray-900">
|
||||||
|
<?php _e('Subject', 'themeStarter'); ?>
|
||||||
|
</label>
|
||||||
|
<div class="mt-1">
|
||||||
|
<input type="text" name="Subject" id="subject" class="block border-warm-gray-300 focus:border-blue-500 focus:ring-blue-400 px-4 py-3 rounded-md shadow-sm text-warm-gray-900 w-full" placeholder="What is the subject of this message" value="<?php echo (isset($_POST['Subject']) ? $_POST['Subject'] : ''); ?>" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="sm:col-span-2">
|
||||||
|
<div class="flex justify-between">
|
||||||
|
<label for="message" class="block text-sm font-medium text-warm-gray-900">
|
||||||
|
<?php _e('Message', 'themeStarter'); ?>
|
||||||
|
</label><span id="message-max" class="text-sm text-warm-gray-500"><?php _e('Max. 500 characters', 'themeStarter'); ?></span>
|
||||||
|
</div>
|
||||||
|
<div class="mt-1">
|
||||||
|
<textarea id="message" name="Message" rows="4" class="block border-warm-gray-300 focus:border-blue-500 focus:ring-blue-400 px-4 py-3 rounded-md shadow-sm text-warm-gray-900 w-full" aria-describedby="message-max" placeholder="Enter your message"><?php echo (isset($_POST['Message']) ? $_POST['Message'] : ''); ?></textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="sm:col-span-2 sm:flex sm:justify-end">
|
||||||
|
<button type="submit" class="cursor-pointer capitalize duration-700 text-white hover:text-black inline-flex items-center justify-center font-normal hover:bg-gray-200 ease-in-out bg-blue-500 min-w-max py-2 px-8 hover:-translate-y-1 hover:ease-linear transition" href="#"><?php _e('Send Message', 'themeStarter'); ?>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<input type="hidden" name="contact_us_form_mailer_id" value="1" />
|
||||||
|
</form>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php if ($mailer->processed) : ?>
|
||||||
|
<?php echo $mailer->message; ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Get Footer -->
|
||||||
|
<?php get_footer(); ?>
|
88
page-faqs.php
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
<!-- Get Header -->
|
||||||
|
<?php get_header();
|
||||||
|
|
||||||
|
$faqs = [
|
||||||
|
[
|
||||||
|
'question' => 'What is compounding? ',
|
||||||
|
'answer' => 'Compounding is the process of creating pharmaceuticals from raw materials to meet specific patient’s needs. It allows us to get a greater benefit with few potential side effects, as well as to produce certain pharmaceuticals that are not available through commercial channels. Compounding can make medications easier to take and allergy-friendly.'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'question' => 'Who can take compounded medications?',
|
||||||
|
'answer' => 'Anyone! Children and the elderly often benefit the most from compounded medications. Anyone with allergies, intolerances, disabilities or dietary restrictions are good candidates as well. Pets and farm animals also frequently require compounded medications.'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'question' => 'What are the benefits of compounding?',
|
||||||
|
'answer' => 'A compounding pharmacist can work closely with your physicians to help with the following: <br> - adjust strength of medications for required dosages that differ from the standard drug strengths <br> - avoid unwanted ingredients such as dyes, preservatives, lactose, gluten or sugar <br>- add flavour to make medication more palatable <br> - prepare unique delivery systems such as, topical gels or creams, suppositories, sublingual troches, liquid preparations, nasal sprays or even lollipops.'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'question' => 'Will my insurance cover compounded medications?',
|
||||||
|
'answer' => 'Most insurance companies do cover compounded medications, they differ from person to person depending on coverage. We will contact your insurance company directly to see exactly what is covered and what is not. Then we can work closely with your physician to get you the best covered compounded medication. This is where we differ from most compounding pharmacies, we will do online billing with private insurance companies. Most pharmacies will make you pay upfront and submit to insurance yourself.'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'question' => 'What kind of prescriptions can be compounded?',
|
||||||
|
'answer' => 'ALmost any kind, including: Pediatrics, Pain Management, Ophthalmology, Dentistry, Otic, Dermatology, Medication Flavouring, Sports Medicine, Infertility, Wound Therapy, Foot Care, Scar Therapy, Gastroenterology'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'question' => 'How long will it take to receive my medication?',
|
||||||
|
'answer' => 'Medications are compounded specifically for you. Most medications can be made the same day. However, some medications or ingredients will need to be ordered in. You will be informed about when to expect the medication when you drop off your prescription.'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'question' => 'Will Ontario Drug Benefit cover compounded medications?',
|
||||||
|
'answer' => 'For those patients over the age of 65, on social assistance or disability the Ontario government does not cover certain compounded medications. There is a standard preparation formulary that ODB makes no exception from, we would contact them to check coverage and would inform you before the medication is ever made. If a prescription is not covered it can still be claimed on income tax as a medical expense.'
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div id="padder" class="h-24 w-full z-20 lg:h-28">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- FAQ Page Header -->
|
||||||
|
<div class="page-header mx-auto pb-8 px-4 md:px-8">
|
||||||
|
<div class="max-w-7xl mb-8 mx-auto pt-40 px-4 md:px-8">
|
||||||
|
<div>
|
||||||
|
<h1 class="font-bold text-4xl text-white tracking-tight"><?php the_title(); ?></h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- FAQ Section -->
|
||||||
|
<div class="max-w-7xl mx-auto pb-16 px-4 lg:grid lg:grid-cols-4">
|
||||||
|
|
||||||
|
<div class="bg-gray-100 max-w-7xl mb-4 mt-4 overflow-hidden pb-8 relative lg:col-span-3 lg:px-0">
|
||||||
|
|
||||||
|
<div class="min-w-full px-4 lg:px-8 py-8 prose">
|
||||||
|
|
||||||
|
<h3 class="underline text-center">Frequently asked questions</h3>
|
||||||
|
|
||||||
|
<ul class="list-none not-prose">
|
||||||
|
<?php foreach ($faqs as $faq) : ?>
|
||||||
|
<li class="faq-collapse">
|
||||||
|
<div class="faq-container">
|
||||||
|
<div class="faq">
|
||||||
|
<h3 class="font-bold faq-title"><?= $faq['question'] ?></h3>
|
||||||
|
<p class="faq-text"><?= $faq['answer'] ?></p>
|
||||||
|
<button class="faq-toggle">
|
||||||
|
<i class="fas fa-chevron-down"></i>
|
||||||
|
<i class="fas fa-times"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Get Footer -->
|
||||||
|
<?php get_footer(); ?>
|
51
page-resources.php
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
<!-- Get Header -->
|
||||||
|
<?php get_header(); ?>
|
||||||
|
|
||||||
|
<!-- Resources Page -->
|
||||||
|
|
||||||
|
<!-- Padder Section -->
|
||||||
|
<div id="padder" class="hidden lg:flex h-24 w-full z-20 lg:h-28">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Page Header -->
|
||||||
|
<div class="bg-yellow-400 mx-auto page-header pb-8 px-4 md:px-8">
|
||||||
|
<div class="max-w-7xl mb-8 mx-auto pt-40 px-4 md:px-8">
|
||||||
|
<div>
|
||||||
|
<h1 class="font-bold text-4xl text-white tracking-tight">Resources</h1>
|
||||||
|
<p class="text-white mt-4 font-medium text-xl">Our Affiliated Health Providers and Medication Suppliers</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="max-w-7xl mx-auto pt-8 pb-16 px-8">
|
||||||
|
<ul class="gap-1 grid grid-cols-2 lg:grid-cols-4">
|
||||||
|
<li><a href="http://www.chathamkentpharmacy.ca/"><img src="<?= get_template_directory_uri() ?>/assets/images/logos/medical_place_pharmacy.png" alt="Medical Place Pharmacy"></a></li>
|
||||||
|
|
||||||
|
<li><a href="http://anjemaeyeinstitute.com/"><img src="<?= get_template_directory_uri() ?>/assets/images/logos/anjema_eye_institute.png" alt="Anjema Eye Institute"></a></li>
|
||||||
|
|
||||||
|
<li><a href="http://www.rulehearingcentre.com/"><img src="<?= get_template_directory_uri() ?>/assets/images/logos/rule_hearing_center.png" alt="Rule Hearing Center"></a></li>
|
||||||
|
|
||||||
|
<li><a href="http://www.ckvets.com/"><img src="<?= get_template_directory_uri() ?>/assets/images/logos/chatham_kent_vet.png" alt="Chatham Kent Veterinary Professional Corporation"></a></li>
|
||||||
|
|
||||||
|
<li><a href="http://www.ocpinfo.com/"><img src="<?= get_template_directory_uri() ?>/assets/images/logos/ontario_college_pharmacists.png" alt="Ontario College of Pharmacists"></a></li>
|
||||||
|
|
||||||
|
<li><a href="http://www.hepainc.com/"><img src="<?= get_template_directory_uri() ?>/assets/images/logos/hepa_filter_services.png" alt="HEPA"></a></li>
|
||||||
|
|
||||||
|
<li><a href="http://www.pccarx.ca/"><img src="<?= get_template_directory_uri() ?>/assets/images/logos/pcca.png" alt="PCCA"></a></li>
|
||||||
|
|
||||||
|
<li><a href="https://www.medisca.ca/"><img src="<?= get_template_directory_uri() ?>/assets/images/logos/medisca.png" alt="Medisca"></a></li>
|
||||||
|
|
||||||
|
<li><a href="https://www.novartis.ca/en"><img src="<?= get_template_directory_uri() ?>/assets/images/logos/novartis.png" alt="Novartis"></a></li>
|
||||||
|
|
||||||
|
<li><a href="https://www.bayer.ca/en/home/"><img src="<?= get_template_directory_uri() ?>/assets/images/logos/bayer.png" alt="Bayer"></a></li>
|
||||||
|
|
||||||
|
<li><a href="https://www.alcon.ca/en"><img src="<?= get_template_directory_uri() ?>/assets/images/logos/alcon.png" alt="Alcon"></a></li>
|
||||||
|
|
||||||
|
<li><a href="http://www.bausch.ca/en-ca/"><img src="<?= get_template_directory_uri() ?>/assets/images/logos/bausch_lomb.png" alt="Bausch Lomb"></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
get_footer();
|
286
page-services.php
Normal file
@@ -0,0 +1,286 @@
|
|||||||
|
<!-- Get Header -->
|
||||||
|
<?php get_header(); ?>
|
||||||
|
|
||||||
|
<!-- Page Padder Section -->
|
||||||
|
<section id="padder" class="hidden lg:flex h-24 w-full z-20 lg:h-28">
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Header Section -->
|
||||||
|
<section class="mx-auto services-header pb-8 px-4 md:px-8">
|
||||||
|
<header class="max-w-7xl mb-8 mx-auto pt-40 px-4 md:px-8">
|
||||||
|
<div>
|
||||||
|
<h1 class="font-bold text-4xl text-white tracking-tight"><?php the_title(); ?></h1>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Banner Section -->
|
||||||
|
<section class="bg-blue-500 text-white text-center py-4">
|
||||||
|
<h1 class="text-3xl px-4 py-8 font-bold">Compounded medication for all applications</h1>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Our Services Section -->
|
||||||
|
<section>
|
||||||
|
|
||||||
|
<div class="py-8">
|
||||||
|
|
||||||
|
<h2 class="capitalize font-medium text-xl md:text-2xl lg:text-4xl text-blue-500 text-center"><?php _e('Our Services', 'themeStarter'); ?></h2>
|
||||||
|
|
||||||
|
<div class="bg-blue-500 mx-auto mb-8 mt-4 pt-1 w-36"></div>
|
||||||
|
|
||||||
|
<p class="text-center px-8 max-w-6xl mx-auto py-4">Medical Place Health Solutions is a brand new retail and compounding pharmacy in Chatham. We can tailor medications that are prescribed to fit every patient’s specific needs, maximizing the benefits and minimizing the risk of adverse side effects. We offer specialty compounding services which you can find below. For more details click on the icon to continue to our Services page.</p>
|
||||||
|
|
||||||
|
<div class="max-w-7xl mx-auto grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 md:gap-8 text-center">
|
||||||
|
|
||||||
|
<div class="hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8 flex flex-col items-center">
|
||||||
|
<a class="font-medium underline flex flex-col items-center" href="" target="_blank">
|
||||||
|
<img class="w-1/4" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/oral_solids.png" alt="">Oral Solids
|
||||||
|
</a>
|
||||||
|
<p class="mt-4">Compounded Tablets, Capsules, Gummies, etc.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8 flex flex-col items-center">
|
||||||
|
<a class="font-medium underline flex flex-col items-center" href="" target="_blank">
|
||||||
|
<img class="w-1/4" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/topicals.png" alt="">Topicals
|
||||||
|
</a>
|
||||||
|
<p class="mt-4">Creams, Gels, Ointments, etc.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8 flex flex-col items-center">
|
||||||
|
<a class="font-medium underline flex flex-col items-center" href="" target="_blank">
|
||||||
|
<img class="w-1/4" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/pain_management.png" alt="">Pain Management
|
||||||
|
</a>
|
||||||
|
<p class="mt-4">Inflammatory Pain, Nerve Pain, Plantar Fasciitis, etc.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8 flex flex-col items-center">
|
||||||
|
<a class="font-medium underline flex flex-col items-center" href="" target="_blank">
|
||||||
|
<img class="w-1/4" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/wound_care.png" alt="">Wound Care
|
||||||
|
</a>
|
||||||
|
<p class="mt-4">Burns, scars, infections, etc.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8 flex flex-col items-center">
|
||||||
|
<a class="font-medium underline flex flex-col items-center" href="" target="_blank">
|
||||||
|
<img class="w-1/4" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/oral_liquids.png" alt="">Oral Liquids
|
||||||
|
</a>
|
||||||
|
<p class="mt-4">Solutions and Suspensions.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8 flex flex-col items-center">
|
||||||
|
<a class="font-medium underline flex flex-col items-center" href="" target="_blank">
|
||||||
|
<img class="w-1/4" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/dental-preparations.png" alt="">Dental Preparations
|
||||||
|
</a>
|
||||||
|
<p class="mt-4">Mouthwashes, Pastes and Sprays.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8 flex flex-col items-center">
|
||||||
|
<a class="font-medium underline flex flex-col items-center" href="" target="_blank">
|
||||||
|
<img class="w-1/4" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/ophthalmic_preparations.png" alt="">Ophthalmic Preparations
|
||||||
|
</a>
|
||||||
|
<p class="mt-4">Eye Drops and Ointments.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8 flex flex-col items-center">
|
||||||
|
<a class="font-medium underline flex flex-col items-center" href="" target="_blank">
|
||||||
|
<img class="w-1/4" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/ear_nose_throat.png" alt="">Ear, Nose and Throat
|
||||||
|
</a>
|
||||||
|
<p class="mt-4">Ear Drops, Nose Sprays, Lozenges, etc.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8 flex flex-col items-center">
|
||||||
|
<a class="font-medium underline flex flex-col items-center" href="" target="_blank">
|
||||||
|
<img class="w-1/4" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/suppositories.png" alt="">Suppositories
|
||||||
|
</a>
|
||||||
|
<p class="mt-4">Suppositories and Ovules</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8 flex flex-col items-center">
|
||||||
|
<a class="font-medium underline flex flex-col items-center" href="" target="_blank">
|
||||||
|
<img class="w-1/4" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/foot_care.png" alt="">Foot Care
|
||||||
|
</a>
|
||||||
|
<p class="mt-4">Warts, Calluses, Heel Spurs, circulation, etc.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8 flex flex-col items-center">
|
||||||
|
<a class="font-medium underline flex flex-col items-center" href="" target="_blank">
|
||||||
|
<img class="w-1/4" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/injectables.png" alt="">Injectibles
|
||||||
|
</a>
|
||||||
|
<p class="mt-4">A variety of sterile injectable preparations.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex justify-center align-middle hover:-translate-y-4 transition-transform duration-300 shadow-sm p-8">
|
||||||
|
<a class="font-medium underline flex flex-col items-center justify-center align-middle" href="<?= site_url('/services') ?>"><i class="text-2xl bi-caret-right-fill"></i>All Services</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Additional Services Section -->
|
||||||
|
<section class="max-w-7xl mx-auto py-8 px-4">
|
||||||
|
|
||||||
|
<ul class="space-y-8">
|
||||||
|
|
||||||
|
<li class="lg:flex lg:space-x-8 items-center bg-service">
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
<h3 class="capitalize font-medium text-xl text-blue-500 text-center"><?php _e('Retail Prescriptions', 'themeStarter'); ?></h3>
|
||||||
|
<div class="bg-blue-500 mx-auto mb-8 mt-4 pt-1 w-36"></div>
|
||||||
|
</div>
|
||||||
|
<img src="<?php echo get_template_directory_uri(); ?>/assets/images/bgs/retail_prescriptions.png" width="400" alt="Service Image" class="p-8 mb-4 mx-auto rounded-md shadow-md">
|
||||||
|
</div>
|
||||||
|
<p class="text-lg flex-1">
|
||||||
|
We are able to do all the things a regular retail pharmacy can and more. We carry a wide variety of medications related to Dr. Anjema’s practice and service many of his patients regarding their ophthalmic prescriptions. We have a large selection of prescription eye drops in stock, even the most uncommon and hard to find ones. If by chance we do not have something that is prescribed, we have twice daily product delivery, so in many cases we can order your medication and have it delivered to you in 24 hours.
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="lg:flex lg:space-x-8 items-center bg-service">
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
<h3 class="capitalize font-medium text-xl text-blue-500 text-center"><?php _e('Over-The-Counter Products', 'themeStarter'); ?></h3>
|
||||||
|
<div class="bg-blue-500 mx-auto mb-8 mt-4 pt-1 w-36"></div>
|
||||||
|
</div>
|
||||||
|
<img src="<?php echo get_template_directory_uri(); ?>/assets/images/bgs/over-the-counter-products.png" width="400" alt="Service Image" class="p-8 mb-4 mx-auto rounded-md shadow-md">
|
||||||
|
</div>
|
||||||
|
<p class="text-lg flex-1">
|
||||||
|
We carry a wide variety of eye related over-the-counter medications and first aid supplies, as well as smaller selection of other common over-the-counter medications. The majority of our over-the-counter products are closely related to Dr. Anjema’s recommendations for patients. Most of the first aid supplies we carry are the products advised by Dr. Anjema to use in post surgery and/or procedure care. If there’s something we do not have we can order it with minimal turnaround time. We also have competitive prices compared to other local pharmacies.
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
<li class="lg:flex lg:space-x-8 items-center bg-service">
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
<h3 class="capitalize font-medium text-xl text-blue-500 text-center"><?php _e('Sterile Compounding', 'themeStarter'); ?></h3>
|
||||||
|
<div class="bg-blue-500 mx-auto mb-8 mt-4 pt-1 w-36"></div>
|
||||||
|
</div>
|
||||||
|
<img src="<?php echo get_template_directory_uri(); ?>/assets/images/bgs/sterile_compounding.png" width="400" alt="Service Image" class="p-8 mb-4 mx-auto rounded-md shadow-md">
|
||||||
|
</div>
|
||||||
|
<p class="text-lg flex-1">
|
||||||
|
Sterile compounding is defined as any manipulation of a sterile or nonsterile product intended to produce a sterile final product. We have a certified ISO class 7 cleanroom and ISO class 5 laminar airflow hood on site which allows us to compound sterile medications such as ophthalmic (related to the eye) and other (intravenous, intramuscular & subcutaneous) injections. Common injections include antibiotics, antifungals, pain relief and vitamins as dietary supplements.
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="lg:flex lg:space-x-8 items-center bg-service">
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
<h3 class="capitalize font-medium text-xl text-blue-500 text-center"><?php _e('Oral Compounding', 'themeStarter'); ?></h3>
|
||||||
|
<div class="bg-blue-500 mx-auto mb-8 mt-4 pt-1 w-36"></div>
|
||||||
|
</div>
|
||||||
|
<img src="<?php echo get_template_directory_uri(); ?>/assets/images/bgs/taking_pills.png" width="400" alt="Service Image" class="p-8 mb-4 mx-auto rounded-md shadow-md">
|
||||||
|
</div>
|
||||||
|
<div class="text-lg flex-1 space-y-4">
|
||||||
|
<p>
|
||||||
|
Oral compounding has many different uses. It is a great alternative to traditional medication delivery systems. Many commercially available products can be compounded into liquid or sublingual tablets to aid with swallowing issues and increase compliance. A few conditions oral compounded medications are useful for are:
|
||||||
|
</p>
|
||||||
|
<ul class="grid grid-cols-2 md:grid-cols-4 text-center font-bold">
|
||||||
|
<li>Autism</li>
|
||||||
|
<li>Seizure Disorder</li>
|
||||||
|
<li>ADHD</li>
|
||||||
|
<li>Pain</li>
|
||||||
|
</ul>
|
||||||
|
<p> Oral compounding also includes flavouring options and dosage strength adjustments. If a unique strength is not commercially available we are able to compound the medication into a liquid solution with a yummy flavour or we offer capsules, gummies, rapid dissolving tablets, troches, lozenges and lollipops.</p>
|
||||||
|
<p> There are also a variety of dental compounds available, including oral pastes, gels, rinses and sprays used to treat mouth ulcers, dry mouth and dry socket.</p>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="lg:flex lg:space-x-8 items-center bg-service">
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
<h3 class="capitalize font-medium text-xl text-blue-500 text-center"><?php _e('Topical Compounding', 'themeStarter'); ?></h3>
|
||||||
|
<div class="bg-blue-500 mx-auto mb-8 mt-4 pt-1 w-36"></div>
|
||||||
|
</div>
|
||||||
|
<img src="<?php echo get_template_directory_uri(); ?>/assets/images/bgs/applying_ointment.png" width="400" alt="Service Image" class="p-8 mb-4 mx-auto rounded-md shadow-md">
|
||||||
|
</div>
|
||||||
|
<div class="bg-gray-200 my-8 p-4 grid grid-cols-1 gap-4 text-sm sm:grid-cols-2 flex-1">
|
||||||
|
<p class="text-lg col-span-2">
|
||||||
|
Topical compounding has a variety of different formulations. These include creams, ointments, gels, washes, sprays and suppositories. We offer compounds helpful for the following:
|
||||||
|
</p>
|
||||||
|
<div>
|
||||||
|
<h3 class="font-medium text-gray-900">Skin Care</h3>
|
||||||
|
<ul class="mt-2 text-gray-500 list-disc list-inside">
|
||||||
|
<li>Acne</li>
|
||||||
|
<li>Rashes</li>
|
||||||
|
<li>Psoriasis</li>
|
||||||
|
<li>Rosacea</li>
|
||||||
|
<li>Dandruff</li>
|
||||||
|
<li>Cosmetic</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 class="font-medium text-gray-900">Pain Management</h3>
|
||||||
|
<ul class="mt-2 text-gray-500 list-disc list-inside">
|
||||||
|
<li>Diabetic Neuropathy</li>
|
||||||
|
<li>Amputation Pain</li>
|
||||||
|
<li>Migraines</li>
|
||||||
|
<li>Rheumatoid Arthritis/Joint Pain</li>
|
||||||
|
<li>Complex Regional Pain Syndrome</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 class="font-medium text-gray-900">Wound Care</h3>
|
||||||
|
<ul class="mt-2 text-gray-500 list-disc list-inside">
|
||||||
|
<li>Infected Wounds</li>
|
||||||
|
<li>Non-Infected wounds</li>
|
||||||
|
<li>Painful Wounds</li>
|
||||||
|
<li>Viral Infections (ie. Oral Herpes)</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 class="font-medium text-gray-900">Scar Therapy</h3>
|
||||||
|
<ul class="mt-2 text-gray-500 list-disc list-inside">
|
||||||
|
<li>Burns</li>
|
||||||
|
<li>Keloids</li>
|
||||||
|
<li>Surgical Scars</li>
|
||||||
|
<li>Stretch Marks</li>
|
||||||
|
<li>Acne Scars</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 class="font-medium text-gray-900">Foot Care</h3>
|
||||||
|
<ul class="mt-2 text-gray-500 list-disc list-inside">
|
||||||
|
<li>Circulation & Leg Cramps</li>
|
||||||
|
<li>Fungal Infections</li>
|
||||||
|
<li>Gout Pain</li>
|
||||||
|
<li>Nail Fungus</li>
|
||||||
|
<li>Plantar Fasciitis</li>
|
||||||
|
<li>Corns/Callouses</li>
|
||||||
|
<li>Warts</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 class="font-medium text-gray-900">Suppositories</h3>
|
||||||
|
<ul class="mt-2 text-gray-500 list-disc list-inside">
|
||||||
|
<li>Hemorrhoids</li>
|
||||||
|
<li>Pain & Fever Relief</li>
|
||||||
|
<li>Nausea Relief</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</dl>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="lg:flex lg:space-x-8 items-center bg-service">
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
<h3 class="capitalize font-medium text-xl text-blue-500 text-center"><?php _e('Bio-Identical Hormones', 'themeStarter'); ?></h3>
|
||||||
|
<div class="bg-blue-500 mx-auto mb-8 mt-4 pt-1 w-36"></div>
|
||||||
|
</div>
|
||||||
|
<img src="<?php echo get_template_directory_uri(); ?>/assets/images/bgs/hormone_replacement_therapy.png" width="400" alt="Service Image" class="p-8 mb-4 mx-auto rounded-md shadow-md">
|
||||||
|
</div>
|
||||||
|
<div class="text-lg flex-1 space-y-4">
|
||||||
|
<p>
|
||||||
|
Hormone Replacement Therapy (HRT) is the replacement of deficient hormones with naturally occuring hormones that the body produces, but have declined due to aging or illness. Hormone replacement therapy offers amazing benefits for menopausal and postmenopausal women as well as androgen deficiency in men. Hormone replacement therapy is also used to treat infertility, endometriosis and postpartum depression.
|
||||||
|
</p>
|
||||||
|
<p> We have the ability to compound capsules and a variety of topical options including creams, gels, ointments and ovules. These can be prescribed by your family physician, OB/OBGYN or naturopathic doctor.</p>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Get Footer -->
|
||||||
|
<?php get_footer(); ?>
|
19
page.php
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<!-- Get Header -->
|
||||||
|
<?php get_header(); ?>
|
||||||
|
|
||||||
|
<!-- Padder Section -->
|
||||||
|
<div id="padder" class="hidden lg:flex h-24 w-full z-20 lg:h-28">
|
||||||
|
</div>
|
||||||
|
<div class="bg-yellow-400 mb-4 mx-auto page-header pb-8 px-4 md:px-8">
|
||||||
|
<div class="max-w-7xl mb-8 mx-auto pt-40 px-4 md:px-8">
|
||||||
|
<div>
|
||||||
|
<h1 class="font-bold text-4xl text-white tracking-tight"><?php the_title(); ?></h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="max-w-7xl mb-28 mx-auto pb-16 px-8">
|
||||||
|
<?php the_content(); ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Get Footer -->
|
||||||
|
<?php get_footer(); ?>
|
BIN
screenshot.png
Normal file
After Width: | Height: | Size: 247 KiB |
65
single.php
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
<!-- Get Header -->
|
||||||
|
<?php get_header(); ?>
|
||||||
|
|
||||||
|
<div id="padder" class="hidden lg:flex h-24 w-full z-20 lg:h-28">
|
||||||
|
</div>
|
||||||
|
<div class="bg-gray-100">
|
||||||
|
<div class="max-w-7xl mx-auto md:flex">
|
||||||
|
<div class="flex flex-1 flex-col justify-center max-w-7xl mx-auto p-4 space-y-2">
|
||||||
|
<?php $breadcrumbs = PG_Helper_v2::getBreadcrumbs('categories', true, 'Home'); ?>
|
||||||
|
<?php if (!empty($breadcrumbs)) : ?>
|
||||||
|
<nav class="bg-blue-500 flex mb-4 px-4 py-2 rounded-md text-white" aria-label="Breadcrumb">
|
||||||
|
<div role="list" class="flex">
|
||||||
|
<?php $breadcrumb = $breadcrumbs[0]; ?>
|
||||||
|
<a href="<?php echo esc_url($breadcrumb['link']); ?>"><svg class="h-5 w-5 flex-shrink-0" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
|
||||||
|
<path fill-rule="evenodd" d="M9.293 2.293a1 1 0 011.414 0l7 7A1 1 0 0117 11h-1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-3a1 1 0 00-1-1H9a1 1 0 00-1 1v3a1 1 0 01-1 1H5a1 1 0 01-1-1v-6H3a1 1 0 01-.707-1.707l7-7z" clip-rule="evenodd" />
|
||||||
|
</svg> </a>
|
||||||
|
<?php for ($breadcrumbs_i = 1; $breadcrumbs_i < count($breadcrumbs); $breadcrumbs_i++) : ?>
|
||||||
|
<?php $breadcrumb = $breadcrumbs[$breadcrumbs_i]; ?>
|
||||||
|
<span class="flex items-center"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" class="h-5">
|
||||||
|
<path fill-rule="evenodd" d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z" clip-rule="evenodd" />
|
||||||
|
</svg><a href="<?php echo esc_url($breadcrumb['link']); ?>" class="font-medium min-w-max text-sm"><?php echo $breadcrumb['name']; ?></a></span>
|
||||||
|
<?php endfor; ?>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<?php endif; ?>
|
||||||
|
<h1 class="font-bold text-2xl text-left tracking-tight md:text-4xl lg:text-5xl"><?php the_title(); ?></h1>
|
||||||
|
<?php $terms = get_the_terms(get_the_ID(), 'category') ?>
|
||||||
|
<?php if (!empty($terms)) : ?>
|
||||||
|
<?php foreach ($terms as $term_i => $term) : ?>
|
||||||
|
<?php if ($term_i == 0) : ?>
|
||||||
|
<a class="font-medium text-base text-purple-900" href="<?php echo esc_url(get_term_link($term, 'category')) ?>"><?php echo $term->name; ?></a>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php if (has_excerpt()) : ?>
|
||||||
|
<?php the_excerpt(); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
<h3 class="font-normal text-purple-900 text-xs"><?php the_time(get_option('date_format')); ?></h3>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-1 items-center justify-end md:my-4">
|
||||||
|
<?php echo PG_Image::getPostImage(null, 'full', array(
|
||||||
|
'class' => 'max-h-full object-center object-cover',
|
||||||
|
'sizes' => '(max-width: 768px) 100vw, (max-width: 1024px) 22vw, (max-width: 1280px) 29vw, 370px'
|
||||||
|
), 'both', null) ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="max-w-7xl mx-auto pb-16 px-2 lg:grid lg:grid-cols-4">
|
||||||
|
<div class="bg-gray-200 max-w-7xl mb-12 mt-4 overflow-hidden pb-8 relative lg:col-span-3 lg:px-0">
|
||||||
|
<div class="min-w-full mt-4 px-4 prose">
|
||||||
|
<?php the_content(); ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<?php if (is_active_sidebar('archive')) : ?>
|
||||||
|
<div class="mb-28 sticky top-8 lg:mb-0 lg:pl-4">
|
||||||
|
<?php dynamic_sidebar('archive'); ?>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<section class="bg-white dark:bg-gray-900 py-8 lg:py-16 antialiased"></section>
|
||||||
|
|
||||||
|
<!-- Get Footer -->
|
||||||
|
<?php get_footer(); ?>
|
11
style.css
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
/*
|
||||||
|
Theme Name: Medical Place Health Solutions
|
||||||
|
Theme URI: https://HarpLabs.com
|
||||||
|
Author: Prospect Ogujiuba
|
||||||
|
Author URI: https://thecreatorpriz.com/
|
||||||
|
Description: This theme was created for Medical Place Health Solutions.
|
||||||
|
Version: 1.0
|
||||||
|
License: GNU General Public License v2 or later
|
||||||
|
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
Text Domain: romag
|
||||||
|
*/
|
27
tailwind.config.js
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
const theme_starter_colors = {
|
||||||
|
gray: { 50: '#f9fafb', 100: '#f3f4f6', 200: '#e5e7eb', 300: '#d1d5db', 400: '#9ca3af', 500: '#6b7280', 600: '#4b5563', 700: '#374151', 800: '#1f2937', 900: '#111827' },
|
||||||
|
red: { 50: '#f6d9d9', 100: '#f3b5ab', 200: '#eb9280', 300: '#e06e56', 400: '#d2462d', 500: '#c00000', 600: '#a50004', 700: '#8b0005', 800: '#720005', 900: '#5a0003', 950: '#430000' },
|
||||||
|
yellow: { 50: '#fef7dc', 100: '#ffefbc', 200: '#ffe69b', 300: '#ffdd77', 400: '#fed44e', 500: '#facc15', 600: '#d7b013', 700: '#b59410', 800: '#95790d', 900: '#75600a', 950: '#574707' },
|
||||||
|
green: { 50: '#ecfdf5', 100: '#d1fae5', 200: '#a7f3d0', 300: '#6ee7b7', 400: '#34d399', 500: '#10b981', 600: '#059669', 700: '#047857', 800: '#065f46', 900: '#064e3b' },
|
||||||
|
blue: { 50: '#dadfe3', 100: '#afb6c1', 200: '#858fa0', 300: '#5d6a80', 400: '#364761', 500: '#0a2744', 600: '#0b2138', 700: '#0b1b2d', 800: '#091522', 900: '#040e18' },
|
||||||
|
|
||||||
|
indigo: { 50: '#eef2ff', 100: '#e0e7ff', 200: '#c7d2fe', 300: '#a5b4fc', 400: '#818cf8', 500: '#6366f1', 600: '#4f46e5', 700: '#4338ca', 800: '#3730a3', 900: '#312e81' },
|
||||||
|
purple: { 50: '#f8ebf3', 100: '#f3d7ea', 200: '#eab7d9', 300: '#dc8abe', 400: '#ce66a4', 500: '#ba4887', 600: '#a0366d', 700: '#84305b', 800: '#6f2c4e', 900: '#43142c' },
|
||||||
|
pink: { 50: '#fdf2f8', 100: '#fce7f3', 200: '#fbcfe8', 300: '#f9a8d4', 400: '#f472b6', 500: '#ec4899', 600: '#db2777', 700: '#be185d', 800: '#9d174d', 900: '#831843' },
|
||||||
|
}
|
||||||
|
|
||||||
|
const theme_starter_fonts = {}
|
||||||
|
|
||||||
|
const theme_starter_backgrounds = {}
|
||||||
|
|
||||||
|
/** @type {import('tailwindcss').Config} */
|
||||||
|
module.exports = {
|
||||||
|
content: ['./*.{html,js,cjs,php}', './src/*.{html,js,cjs,php}'],
|
||||||
|
theme: {
|
||||||
|
extend: {
|
||||||
|
colors: theme_starter_colors, //<-- Use the theme_starter_colors for colors
|
||||||
|
fontFamily: theme_starter_fonts, //<-- Use the theme_starter_fonts for fonts
|
||||||
|
},
|
||||||
|
},
|
||||||
|
plugins: [require('@tailwindcss/typography'), require('@tailwindcss/forms'), require('@tailwindcss/container-queries')],
|
||||||
|
}
|
440
theme.json
Normal file
@@ -0,0 +1,440 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://schemas.wp.org/trunk/theme.json",
|
||||||
|
"version": 2,
|
||||||
|
"settings": {
|
||||||
|
"color": {
|
||||||
|
"palette": [
|
||||||
|
{
|
||||||
|
"color": "white",
|
||||||
|
"name": "current",
|
||||||
|
"slug": "current"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(0,0,0,0)",
|
||||||
|
"name": "transparent",
|
||||||
|
"slug": "transparent"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "black",
|
||||||
|
"name": "black",
|
||||||
|
"slug": "black"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "white",
|
||||||
|
"name": "white",
|
||||||
|
"slug": "white"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(249,250,251,1)",
|
||||||
|
"name": "gray-50",
|
||||||
|
"slug": "gray-50"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(243,244,246,1)",
|
||||||
|
"name": "gray-100",
|
||||||
|
"slug": "gray-100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(229,231,235,1)",
|
||||||
|
"name": "gray-200",
|
||||||
|
"slug": "gray-200"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(209,213,219,1)",
|
||||||
|
"name": "gray-300",
|
||||||
|
"slug": "gray-300"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(156,163,175,1)",
|
||||||
|
"name": "gray-400",
|
||||||
|
"slug": "gray-400"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(107,114,128,1)",
|
||||||
|
"name": "gray-500",
|
||||||
|
"slug": "gray-500"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(75,85,99,1)",
|
||||||
|
"name": "gray-600",
|
||||||
|
"slug": "gray-600"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(55,65,81,1)",
|
||||||
|
"name": "gray-700",
|
||||||
|
"slug": "gray-700"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(31,41,55,1)",
|
||||||
|
"name": "gray-800",
|
||||||
|
"slug": "gray-800"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(17,24,39,1)",
|
||||||
|
"name": "gray-900",
|
||||||
|
"slug": "gray-900"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#fff1f2",
|
||||||
|
"name": "red-50",
|
||||||
|
"slug": "red-50"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#ffe0e1",
|
||||||
|
"name": "red-100",
|
||||||
|
"slug": "red-100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#ffc6c8",
|
||||||
|
"name": "red-200",
|
||||||
|
"slug": "red-200"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#ff9ea2",
|
||||||
|
"name": "red-300",
|
||||||
|
"slug": "red-300"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#ff666c",
|
||||||
|
"name": "red-400",
|
||||||
|
"slug": "red-400"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#fd363e",
|
||||||
|
"name": "red-500",
|
||||||
|
"slug": "red-500"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#eb1720",
|
||||||
|
"name": "red-600",
|
||||||
|
"slug": "red-600"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#c60f16",
|
||||||
|
"name": "red-700",
|
||||||
|
"slug": "red-700"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#a31117",
|
||||||
|
"name": "red-800",
|
||||||
|
"slug": "red-800"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#87151a",
|
||||||
|
"name": "red-900",
|
||||||
|
"slug": "red-900"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#4a0508",
|
||||||
|
"name": "red-950",
|
||||||
|
"slug": "red-950"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#fffdeb",
|
||||||
|
"name": "yellow-50",
|
||||||
|
"slug": "yellow-50"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#fffac6",
|
||||||
|
"name": "yellow-100",
|
||||||
|
"slug": "yellow-100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#fff487",
|
||||||
|
"name": "yellow-200",
|
||||||
|
"slug": "yellow-200"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#ffe749",
|
||||||
|
"name": "yellow-300",
|
||||||
|
"slug": "yellow-300"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#ffd71f",
|
||||||
|
"name": "yellow-400",
|
||||||
|
"slug": "yellow-400"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#fbbc13",
|
||||||
|
"name": "yellow-500",
|
||||||
|
"slug": "yellow-500"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#de8d01",
|
||||||
|
"name": "yellow-600",
|
||||||
|
"slug": "yellow-600"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#b86405",
|
||||||
|
"name": "yellow-700",
|
||||||
|
"slug": "yellow-700"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#954d0b",
|
||||||
|
"name": "yellow-800",
|
||||||
|
"slug": "yellow-800"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#7b3f0c",
|
||||||
|
"name": "yellow-900",
|
||||||
|
"slug": "yellow-900"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#472101",
|
||||||
|
"name": "yellow-950",
|
||||||
|
"slug": "yellow-950"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(236,253,245,1)",
|
||||||
|
"name": "green-50",
|
||||||
|
"slug": "green-50"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(209,250,229,1)",
|
||||||
|
"name": "green-100",
|
||||||
|
"slug": "green-100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(167,243,208,1)",
|
||||||
|
"name": "green-200",
|
||||||
|
"slug": "green-200"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(110,231,183,1)",
|
||||||
|
"name": "green-300",
|
||||||
|
"slug": "green-300"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(52,211,153,1)",
|
||||||
|
"name": "green-400",
|
||||||
|
"slug": "green-400"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(16,185,129,1)",
|
||||||
|
"name": "green-500",
|
||||||
|
"slug": "green-500"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(5,150,105,1)",
|
||||||
|
"name": "green-600",
|
||||||
|
"slug": "green-600"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(4,120,87,1)",
|
||||||
|
"name": "green-700",
|
||||||
|
"slug": "green-700"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(6,95,70,1)",
|
||||||
|
"name": "green-800",
|
||||||
|
"slug": "green-800"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(6,78,59,1)",
|
||||||
|
"name": "green-900",
|
||||||
|
"slug": "green-900"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(239,246,255,1)",
|
||||||
|
"name": "blue-50",
|
||||||
|
"slug": "blue-50"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(219,234,254,1)",
|
||||||
|
"name": "blue-100",
|
||||||
|
"slug": "blue-100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(191,219,254,1)",
|
||||||
|
"name": "blue-200",
|
||||||
|
"slug": "blue-200"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(147,197,253,1)",
|
||||||
|
"name": "blue-300",
|
||||||
|
"slug": "blue-300"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(96,165,250,1)",
|
||||||
|
"name": "blue-400",
|
||||||
|
"slug": "blue-400"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(59,130,246,1)",
|
||||||
|
"name": "blue-500",
|
||||||
|
"slug": "blue-500"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(37,99,235,1)",
|
||||||
|
"name": "blue-600",
|
||||||
|
"slug": "blue-600"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(29,78,216,1)",
|
||||||
|
"name": "blue-700",
|
||||||
|
"slug": "blue-700"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(30,64,175,1)",
|
||||||
|
"name": "blue-800",
|
||||||
|
"slug": "blue-800"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(30,58,138,1)",
|
||||||
|
"name": "blue-900",
|
||||||
|
"slug": "blue-900"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(238,242,255,1)",
|
||||||
|
"name": "indigo-50",
|
||||||
|
"slug": "indigo-50"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(224,231,255,1)",
|
||||||
|
"name": "indigo-100",
|
||||||
|
"slug": "indigo-100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(199,210,254,1)",
|
||||||
|
"name": "indigo-200",
|
||||||
|
"slug": "indigo-200"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(165,180,252,1)",
|
||||||
|
"name": "indigo-300",
|
||||||
|
"slug": "indigo-300"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(129,140,248,1)",
|
||||||
|
"name": "indigo-400",
|
||||||
|
"slug": "indigo-400"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(99,102,241,1)",
|
||||||
|
"name": "indigo-500",
|
||||||
|
"slug": "indigo-500"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(79,70,229,1)",
|
||||||
|
"name": "indigo-600",
|
||||||
|
"slug": "indigo-600"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(67,56,202,1)",
|
||||||
|
"name": "indigo-700",
|
||||||
|
"slug": "indigo-700"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(55,48,163,1)",
|
||||||
|
"name": "indigo-800",
|
||||||
|
"slug": "indigo-800"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(49,46,129,1)",
|
||||||
|
"name": "indigo-900",
|
||||||
|
"slug": "indigo-900"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#f8ebf3",
|
||||||
|
"name": "purple-50",
|
||||||
|
"slug": "purple-50"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#f3d7ea",
|
||||||
|
"name": "purple-100",
|
||||||
|
"slug": "purple-100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#eab7d9",
|
||||||
|
"name": "purple-200",
|
||||||
|
"slug": "purple-200"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#dc8abe",
|
||||||
|
"name": "purple-300",
|
||||||
|
"slug": "purple-300"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#ce66a4",
|
||||||
|
"name": "purple-400",
|
||||||
|
"slug": "purple-400"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#ba4887",
|
||||||
|
"name": "purple-500",
|
||||||
|
"slug": "purple-500"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#a0366d",
|
||||||
|
"name": "purple-600",
|
||||||
|
"slug": "purple-600"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#84305b",
|
||||||
|
"name": "purple-700",
|
||||||
|
"slug": "purple-700"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#6f2c4e",
|
||||||
|
"name": "purple-800",
|
||||||
|
"slug": "purple-800"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#43142c",
|
||||||
|
"name": "purple-900",
|
||||||
|
"slug": "purple-900"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(253,242,248,1)",
|
||||||
|
"name": "pink-50",
|
||||||
|
"slug": "pink-50"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(252,231,243,1)",
|
||||||
|
"name": "pink-100",
|
||||||
|
"slug": "pink-100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(251,207,232,1)",
|
||||||
|
"name": "pink-200",
|
||||||
|
"slug": "pink-200"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(249,168,212,1)",
|
||||||
|
"name": "pink-300",
|
||||||
|
"slug": "pink-300"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(244,114,182,1)",
|
||||||
|
"name": "pink-400",
|
||||||
|
"slug": "pink-400"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(236,72,153,1)",
|
||||||
|
"name": "pink-500",
|
||||||
|
"slug": "pink-500"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(219,39,119,1)",
|
||||||
|
"name": "pink-600",
|
||||||
|
"slug": "pink-600"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(190,24,93,1)",
|
||||||
|
"name": "pink-700",
|
||||||
|
"slug": "pink-700"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(157,23,77,1)",
|
||||||
|
"name": "pink-800",
|
||||||
|
"slug": "pink-800"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "rgba(131,24,67,1)",
|
||||||
|
"name": "pink-900",
|
||||||
|
"slug": "pink-900"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|