WIP
2
.gitignore
vendored
@@ -1,3 +1 @@
|
|||||||
node_modules/
|
node_modules/
|
||||||
vendor/
|
|
||||||
dist/
|
|
||||||
|
|||||||
328
acf-json/group_681154755e23d.json
Normal file
@@ -0,0 +1,328 @@
|
|||||||
|
{
|
||||||
|
"key": "group_681154755e23d",
|
||||||
|
"title": "Site Settings",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"key": "field_681154d818817",
|
||||||
|
"label": "General",
|
||||||
|
"name": "",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "tab",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"placement": "top",
|
||||||
|
"endpoint": 0,
|
||||||
|
"selected": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_68115475f02b7",
|
||||||
|
"label": "Tagline",
|
||||||
|
"name": "tagline",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_681154e618818",
|
||||||
|
"label": "Footer Address",
|
||||||
|
"name": "",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "tab",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"placement": "top",
|
||||||
|
"endpoint": 0,
|
||||||
|
"selected": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_68115485f02b8",
|
||||||
|
"label": "Address",
|
||||||
|
"name": "address",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_68115496f02b9",
|
||||||
|
"label": "City",
|
||||||
|
"name": "city",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6811549cf02ba",
|
||||||
|
"label": "State",
|
||||||
|
"name": "state",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_681154ef18819",
|
||||||
|
"label": "Contact",
|
||||||
|
"name": "",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "tab",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"placement": "top",
|
||||||
|
"endpoint": 0,
|
||||||
|
"selected": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_681154a3f02bb",
|
||||||
|
"label": "Contact Email",
|
||||||
|
"name": "contact_email",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_681154adf02bc",
|
||||||
|
"label": "Contact Phone",
|
||||||
|
"name": "contact_phone",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_681154f41881a",
|
||||||
|
"label": "Social Media",
|
||||||
|
"name": "",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "tab",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"placement": "top",
|
||||||
|
"endpoint": 0,
|
||||||
|
"selected": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_682519ed2e995",
|
||||||
|
"label": "Facebook URL",
|
||||||
|
"name": "facebook_url",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_682519f52e996",
|
||||||
|
"label": "Twitter URL",
|
||||||
|
"name": "twitter_url",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_682519ff2e997",
|
||||||
|
"label": "LinkedIn URL",
|
||||||
|
"name": "linkedin_url",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_68251a0e2e998",
|
||||||
|
"label": "YouTube URL",
|
||||||
|
"name": "youtube_url",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_68251a212e999",
|
||||||
|
"label": "Instagram URL",
|
||||||
|
"name": "instagram_url",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"location": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"param": "options_page",
|
||||||
|
"operator": "==",
|
||||||
|
"value": "site_options"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"menu_order": 0,
|
||||||
|
"position": "normal",
|
||||||
|
"style": "default",
|
||||||
|
"label_placement": "top",
|
||||||
|
"instruction_placement": "label",
|
||||||
|
"hide_on_screen": "",
|
||||||
|
"active": true,
|
||||||
|
"description": "",
|
||||||
|
"show_in_rest": 0,
|
||||||
|
"modified": 1747261994
|
||||||
|
}
|
||||||
581
acf-json/group_6824d74596f5f.json
Normal file
@@ -0,0 +1,581 @@
|
|||||||
|
{
|
||||||
|
"key": "group_6824d74596f5f",
|
||||||
|
"title": "Flex Content Items",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"key": "field_6824d745f276f",
|
||||||
|
"label": "Content",
|
||||||
|
"name": "content",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "flexible_content",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"layouts": {
|
||||||
|
"layout_6824d7542753b": {
|
||||||
|
"key": "layout_6824d7542753b",
|
||||||
|
"name": "background_image_cta",
|
||||||
|
"label": "Background Image CTA",
|
||||||
|
"display": "block",
|
||||||
|
"sub_fields": [
|
||||||
|
{
|
||||||
|
"key": "field_6824d79bf2775",
|
||||||
|
"label": "Content",
|
||||||
|
"name": "",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "tab",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"placement": "top",
|
||||||
|
"endpoint": 0,
|
||||||
|
"selected": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6824d76af2770",
|
||||||
|
"label": "Headline",
|
||||||
|
"name": "headline",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6824d775f2771",
|
||||||
|
"label": "Description",
|
||||||
|
"name": "description",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6824d780f2772",
|
||||||
|
"label": "Button Text",
|
||||||
|
"name": "button_text",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6824d786f2773",
|
||||||
|
"label": "Button Target",
|
||||||
|
"name": "button_target",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6824d78df2774",
|
||||||
|
"label": "Background Image",
|
||||||
|
"name": "background_image",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "image",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"return_format": "url",
|
||||||
|
"library": "all",
|
||||||
|
"min_width": "",
|
||||||
|
"min_height": "",
|
||||||
|
"min_size": "",
|
||||||
|
"max_width": "",
|
||||||
|
"max_height": "",
|
||||||
|
"max_size": "",
|
||||||
|
"mime_types": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"preview_size": "medium"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6824d7a6f2776",
|
||||||
|
"label": "Configuration",
|
||||||
|
"name": "",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "tab",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"placement": "top",
|
||||||
|
"endpoint": 0,
|
||||||
|
"selected": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6824d7b2f2777",
|
||||||
|
"label": "Tag Type",
|
||||||
|
"name": "tag_type",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "select",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 1,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"choices": {
|
||||||
|
"h1": "H1",
|
||||||
|
"h2": "H2",
|
||||||
|
"h3": "H3"
|
||||||
|
},
|
||||||
|
"default_value": "h1",
|
||||||
|
"return_format": "value",
|
||||||
|
"multiple": 0,
|
||||||
|
"allow_null": 0,
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"ui": 0,
|
||||||
|
"ajax": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"create_options": 0,
|
||||||
|
"save_options": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6824d874f2778",
|
||||||
|
"label": "Overlay Color",
|
||||||
|
"name": "overlay_color",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "select",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"choices": {
|
||||||
|
"White": "White",
|
||||||
|
"Black": "Black"
|
||||||
|
},
|
||||||
|
"default_value": false,
|
||||||
|
"return_format": "value",
|
||||||
|
"multiple": 0,
|
||||||
|
"allow_null": 0,
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"ui": 0,
|
||||||
|
"ajax": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"create_options": 0,
|
||||||
|
"save_options": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"min": "",
|
||||||
|
"max": ""
|
||||||
|
},
|
||||||
|
"layout_6824ded287362": {
|
||||||
|
"key": "layout_6824ded287362",
|
||||||
|
"name": "plain_text",
|
||||||
|
"label": "Plain Text",
|
||||||
|
"display": "block",
|
||||||
|
"sub_fields": [
|
||||||
|
{
|
||||||
|
"key": "field_6824ded287363",
|
||||||
|
"label": "Content",
|
||||||
|
"name": "",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "tab",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"placement": "top",
|
||||||
|
"endpoint": 0,
|
||||||
|
"selected": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6824ded287364",
|
||||||
|
"label": "Headline",
|
||||||
|
"name": "headline",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6824ded287365",
|
||||||
|
"label": "Description",
|
||||||
|
"name": "description",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "wysiwyg",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"allow_in_bindings": 1,
|
||||||
|
"tabs": "all",
|
||||||
|
"toolbar": "full",
|
||||||
|
"media_upload": 1,
|
||||||
|
"delay": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6824ded287369",
|
||||||
|
"label": "Configuration",
|
||||||
|
"name": "",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "tab",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"placement": "top",
|
||||||
|
"endpoint": 0,
|
||||||
|
"selected": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6824ded28736a",
|
||||||
|
"label": "Tag Type",
|
||||||
|
"name": "tag_type",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "select",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 1,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"choices": {
|
||||||
|
"h1": "H1",
|
||||||
|
"h2": "H2",
|
||||||
|
"h3": "H3"
|
||||||
|
},
|
||||||
|
"default_value": "h1",
|
||||||
|
"return_format": "value",
|
||||||
|
"multiple": 0,
|
||||||
|
"allow_null": 0,
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"ui": 0,
|
||||||
|
"ajax": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"create_options": 0,
|
||||||
|
"save_options": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"min": "",
|
||||||
|
"max": ""
|
||||||
|
},
|
||||||
|
"layout_6824e05313d93": {
|
||||||
|
"key": "layout_6824e05313d93",
|
||||||
|
"name": "block_links",
|
||||||
|
"label": "Block Links",
|
||||||
|
"display": "block",
|
||||||
|
"sub_fields": [
|
||||||
|
{
|
||||||
|
"key": "field_6824e06c13d95",
|
||||||
|
"label": "Block",
|
||||||
|
"name": "block",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "repeater",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"layout": "table",
|
||||||
|
"min": 0,
|
||||||
|
"max": 0,
|
||||||
|
"collapsed": "",
|
||||||
|
"button_label": "Add Row",
|
||||||
|
"rows_per_page": 20,
|
||||||
|
"sub_fields": [
|
||||||
|
{
|
||||||
|
"key": "field_6824e07913d96",
|
||||||
|
"label": "Target",
|
||||||
|
"name": "target",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "post_object",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"post_type": "",
|
||||||
|
"post_status": "",
|
||||||
|
"taxonomy": "",
|
||||||
|
"return_format": "object",
|
||||||
|
"multiple": 0,
|
||||||
|
"allow_null": 0,
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"bidirectional": 0,
|
||||||
|
"ui": 1,
|
||||||
|
"bidirectional_target": [],
|
||||||
|
"parent_repeater": "field_6824e06c13d95"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"min": "",
|
||||||
|
"max": ""
|
||||||
|
},
|
||||||
|
"layout_6824f3d3eb907": {
|
||||||
|
"key": "layout_6824f3d3eb907",
|
||||||
|
"name": "logo_slider",
|
||||||
|
"label": "Logo Slider",
|
||||||
|
"display": "block",
|
||||||
|
"sub_fields": [
|
||||||
|
{
|
||||||
|
"key": "field_6824f3dceb90d",
|
||||||
|
"label": "Logos",
|
||||||
|
"name": "logos",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "repeater",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"layout": "table",
|
||||||
|
"min": 0,
|
||||||
|
"max": 0,
|
||||||
|
"collapsed": "",
|
||||||
|
"button_label": "Add Logo",
|
||||||
|
"rows_per_page": 20,
|
||||||
|
"sub_fields": [
|
||||||
|
{
|
||||||
|
"key": "field_6824f3e7eb90e",
|
||||||
|
"label": "Logo",
|
||||||
|
"name": "logo",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "image",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"return_format": "array",
|
||||||
|
"library": "all",
|
||||||
|
"min_width": "",
|
||||||
|
"min_height": "",
|
||||||
|
"min_size": "",
|
||||||
|
"max_width": "",
|
||||||
|
"max_height": "",
|
||||||
|
"max_size": "",
|
||||||
|
"mime_types": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"preview_size": "medium",
|
||||||
|
"parent_repeater": "field_6824f3dceb90d"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"min": "",
|
||||||
|
"max": ""
|
||||||
|
},
|
||||||
|
"layout_68277c371ca0c": {
|
||||||
|
"key": "layout_68277c371ca0c",
|
||||||
|
"name": "testimonials",
|
||||||
|
"label": "Testimonials",
|
||||||
|
"display": "block",
|
||||||
|
"sub_fields": [
|
||||||
|
{
|
||||||
|
"key": "field_68277c3e1ca0e",
|
||||||
|
"label": "Headline",
|
||||||
|
"name": "headline",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_68277c511ca0f",
|
||||||
|
"label": "Testimonials",
|
||||||
|
"name": "testimonials",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "repeater",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"layout": "table",
|
||||||
|
"min": 0,
|
||||||
|
"max": 0,
|
||||||
|
"collapsed": "",
|
||||||
|
"button_label": "Add Row",
|
||||||
|
"rows_per_page": 20,
|
||||||
|
"sub_fields": [
|
||||||
|
{
|
||||||
|
"key": "field_68277c681ca10",
|
||||||
|
"label": "Testimonial",
|
||||||
|
"name": "testimonial",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "post_object",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"post_type": [
|
||||||
|
"testimonial"
|
||||||
|
],
|
||||||
|
"post_status": "",
|
||||||
|
"taxonomy": "",
|
||||||
|
"return_format": "object",
|
||||||
|
"multiple": 0,
|
||||||
|
"allow_null": 0,
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"bidirectional": 0,
|
||||||
|
"ui": 1,
|
||||||
|
"bidirectional_target": [],
|
||||||
|
"parent_repeater": "field_68277c511ca0f"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"min": "",
|
||||||
|
"max": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"min": "",
|
||||||
|
"max": "",
|
||||||
|
"button_label": "Add Row"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"location": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"param": "page_template",
|
||||||
|
"operator": "==",
|
||||||
|
"value": "tpl-flex.php"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"menu_order": 0,
|
||||||
|
"position": "normal",
|
||||||
|
"style": "default",
|
||||||
|
"label_placement": "top",
|
||||||
|
"instruction_placement": "label",
|
||||||
|
"hide_on_screen": [
|
||||||
|
"the_content"
|
||||||
|
],
|
||||||
|
"active": true,
|
||||||
|
"description": "",
|
||||||
|
"show_in_rest": 0,
|
||||||
|
"modified": 1747418238
|
||||||
|
}
|
||||||
101
acf-json/group_682777331a711.json
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
{
|
||||||
|
"key": "group_682777331a711",
|
||||||
|
"title": "Testimonial Fields",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"key": "field_6827773326bd6",
|
||||||
|
"label": "Position",
|
||||||
|
"name": "position",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6827779b26bd7",
|
||||||
|
"label": "Quote",
|
||||||
|
"name": "quote",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "textarea",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"rows": "",
|
||||||
|
"placeholder": "",
|
||||||
|
"new_lines": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_682777b526bd8",
|
||||||
|
"label": "Rating",
|
||||||
|
"name": "rating",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "select",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"choices": {
|
||||||
|
"5": "5",
|
||||||
|
"4": "4",
|
||||||
|
"3": "3",
|
||||||
|
"2": "2",
|
||||||
|
"1": "1"
|
||||||
|
},
|
||||||
|
"default_value": 5,
|
||||||
|
"return_format": "value",
|
||||||
|
"multiple": 0,
|
||||||
|
"allow_null": 0,
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"ui": 0,
|
||||||
|
"ajax": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"create_options": 0,
|
||||||
|
"save_options": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"location": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"param": "post_type",
|
||||||
|
"operator": "==",
|
||||||
|
"value": "testimonial"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"menu_order": 0,
|
||||||
|
"position": "normal",
|
||||||
|
"style": "default",
|
||||||
|
"label_placement": "top",
|
||||||
|
"instruction_placement": "label",
|
||||||
|
"hide_on_screen": [
|
||||||
|
"the_content"
|
||||||
|
],
|
||||||
|
"active": true,
|
||||||
|
"description": "",
|
||||||
|
"show_in_rest": 0,
|
||||||
|
"modified": 1747417078
|
||||||
|
}
|
||||||
93
acf-json/group_68279f15907f1.json
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
{
|
||||||
|
"key": "group_68279f15907f1",
|
||||||
|
"title": "Locations Settings",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"key": "field_68279f150b6ea",
|
||||||
|
"label": "Top Image",
|
||||||
|
"name": "locations_top_image",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "image",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"return_format": "url",
|
||||||
|
"library": "all",
|
||||||
|
"min_width": "",
|
||||||
|
"min_height": "",
|
||||||
|
"min_size": "",
|
||||||
|
"max_width": "",
|
||||||
|
"max_height": "",
|
||||||
|
"max_size": "",
|
||||||
|
"mime_types": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"preview_size": "medium"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_68279f3a0b6eb",
|
||||||
|
"label": "Headline",
|
||||||
|
"name": "locations_headline",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_68279f440b6ec",
|
||||||
|
"label": "Intro Text",
|
||||||
|
"name": "locations_intro_text",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "textarea",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"rows": "",
|
||||||
|
"placeholder": "",
|
||||||
|
"new_lines": "br"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"location": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"param": "options_page",
|
||||||
|
"operator": "==",
|
||||||
|
"value": "locations_landing_page"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"menu_order": 0,
|
||||||
|
"position": "normal",
|
||||||
|
"style": "default",
|
||||||
|
"label_placement": "top",
|
||||||
|
"instruction_placement": "label",
|
||||||
|
"hide_on_screen": "",
|
||||||
|
"active": true,
|
||||||
|
"description": "",
|
||||||
|
"show_in_rest": 0,
|
||||||
|
"modified": 1747427158
|
||||||
|
}
|
||||||
237
acf-json/group_6827a1d4cc554.json
Normal file
@@ -0,0 +1,237 @@
|
|||||||
|
{
|
||||||
|
"key": "group_6827a1d4cc554",
|
||||||
|
"title": "Location Fields",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"key": "field_6827a1d5e73bb",
|
||||||
|
"label": "Intro",
|
||||||
|
"name": "intro",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "textarea",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"rows": "",
|
||||||
|
"placeholder": "",
|
||||||
|
"new_lines": "br"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6827a221e73bc",
|
||||||
|
"label": "Address 1",
|
||||||
|
"name": "address_1",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6827a228e73bd",
|
||||||
|
"label": "Address 2",
|
||||||
|
"name": "address_2",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6827a4199d542",
|
||||||
|
"label": "City",
|
||||||
|
"name": "city",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6827a233e73bf",
|
||||||
|
"label": "State",
|
||||||
|
"name": "state",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6827a23fe73c0",
|
||||||
|
"label": "Zip",
|
||||||
|
"name": "zip",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6827a244e73c1",
|
||||||
|
"label": "Phone",
|
||||||
|
"name": "phone",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6827a24ce73c2",
|
||||||
|
"label": "Hours",
|
||||||
|
"name": "hours",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "textarea",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"rows": "",
|
||||||
|
"placeholder": "",
|
||||||
|
"new_lines": "br"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6827a25ae73c3",
|
||||||
|
"label": "Latitude",
|
||||||
|
"name": "latitude",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_6827a261e73c4",
|
||||||
|
"label": "Longitude",
|
||||||
|
"name": "longitude",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"location": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"param": "post_type",
|
||||||
|
"operator": "==",
|
||||||
|
"value": "location"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"menu_order": 0,
|
||||||
|
"position": "normal",
|
||||||
|
"style": "default",
|
||||||
|
"label_placement": "top",
|
||||||
|
"instruction_placement": "label",
|
||||||
|
"hide_on_screen": [
|
||||||
|
"the_content"
|
||||||
|
],
|
||||||
|
"active": true,
|
||||||
|
"description": "",
|
||||||
|
"show_in_rest": 0,
|
||||||
|
"modified": 1747434256
|
||||||
|
}
|
||||||
95
acf-json/group_682b909552599.json
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
{
|
||||||
|
"key": "group_682b909552599",
|
||||||
|
"title": "Shop Landing Page Fields",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"key": "field_682b9095f94b9",
|
||||||
|
"label": "Headline",
|
||||||
|
"name": "headline",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_682b922499813",
|
||||||
|
"label": "Intro Text",
|
||||||
|
"name": "intro_text",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "text",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"default_value": "",
|
||||||
|
"maxlength": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"placeholder": "",
|
||||||
|
"prepend": "",
|
||||||
|
"append": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "field_682b923599814",
|
||||||
|
"label": "Background Image",
|
||||||
|
"name": "background_image",
|
||||||
|
"aria-label": "",
|
||||||
|
"type": "image",
|
||||||
|
"instructions": "",
|
||||||
|
"required": 0,
|
||||||
|
"conditional_logic": 0,
|
||||||
|
"wrapper": {
|
||||||
|
"width": "",
|
||||||
|
"class": "",
|
||||||
|
"id": ""
|
||||||
|
},
|
||||||
|
"return_format": "url",
|
||||||
|
"library": "all",
|
||||||
|
"min_width": "",
|
||||||
|
"min_height": "",
|
||||||
|
"min_size": "",
|
||||||
|
"max_width": "",
|
||||||
|
"max_height": "",
|
||||||
|
"max_size": "",
|
||||||
|
"mime_types": "",
|
||||||
|
"allow_in_bindings": 0,
|
||||||
|
"preview_size": "medium"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"location": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"param": "page",
|
||||||
|
"operator": "==",
|
||||||
|
"value": "70"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"menu_order": 0,
|
||||||
|
"position": "normal",
|
||||||
|
"style": "default",
|
||||||
|
"label_placement": "top",
|
||||||
|
"instruction_placement": "label",
|
||||||
|
"hide_on_screen": [
|
||||||
|
"the_content"
|
||||||
|
],
|
||||||
|
"active": true,
|
||||||
|
"description": "",
|
||||||
|
"show_in_rest": 0,
|
||||||
|
"modified": 1747688097
|
||||||
|
}
|
||||||
22
archive-location.php
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
get_header();
|
||||||
|
|
||||||
|
echo site()->render("locations", [
|
||||||
|
"top_image" => get_field("locations_top_image", "options"),
|
||||||
|
"headline" => get_field("locations_headline", "options"),
|
||||||
|
"intro" => get_field("locations_intro_text", "options"),
|
||||||
|
"locations" => site()->getDefaultPosts([
|
||||||
|
"title",
|
||||||
|
"latitude",
|
||||||
|
"longitude",
|
||||||
|
"address_1",
|
||||||
|
"city",
|
||||||
|
"state",
|
||||||
|
"zip",
|
||||||
|
"phone",
|
||||||
|
"url",
|
||||||
|
])
|
||||||
|
]);
|
||||||
|
|
||||||
|
get_footer();
|
||||||
3
archive-testimonial.php
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
header("Location: /");
|
||||||
4
assets/cart-plus.svg
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-cart-plus" viewBox="0 0 16 16">
|
||||||
|
<path d="M9 5.5a.5.5 0 0 0-1 0V7H6.5a.5.5 0 0 0 0 1H8v1.5a.5.5 0 0 0 1 0V8h1.5a.5.5 0 0 0 0-1H9z"/>
|
||||||
|
<path d="M.5 1a.5.5 0 0 0 0 1h1.11l.401 1.607 1.498 7.985A.5.5 0 0 0 4 12h1a2 2 0 1 0 0 4 2 2 0 0 0 0-4h7a2 2 0 1 0 0 4 2 2 0 0 0 0-4h1a.5.5 0 0 0 .491-.408l1.5-8A.5.5 0 0 0 14.5 3H2.89l-.405-1.621A.5.5 0 0 0 2 1zm3.915 10L3.102 4h10.796l-1.313 7zM6 14a1 1 0 1 1-2 0 1 1 0 0 1 2 0m7 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 554 B |
3
assets/chevron-down.svg
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-chevron-down" viewBox="0 0 16 16">
|
||||||
|
<path fill-rule="evenodd" d="M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 289 B |
3
assets/chevron-left.svg
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-chevron-left" viewBox="0 0 16 16">
|
||||||
|
<path fill-rule="evenodd" d="M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 288 B |
3
assets/chevron-right.svg
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-chevron-right" viewBox="0 0 16 16">
|
||||||
|
<path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 290 B |
3
assets/facebook.svg
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-facebook" viewBox="0 0 16 16">
|
||||||
|
<path d="M16 8.049c0-4.446-3.582-8.05-8-8.05C3.58 0-.002 3.603-.002 8.05c0 4.017 2.926 7.347 6.75 7.951v-5.625h-2.03V8.05H6.75V6.275c0-2.017 1.195-3.131 3.022-3.131.876 0 1.791.157 1.791.157v1.98h-1.009c-.993 0-1.303.621-1.303 1.258v1.51h2.218l-.354 2.326H9.25V16c3.824-.604 6.75-3.934 6.75-7.951"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 435 B |
3
assets/instagram.svg
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-instagram" viewBox="0 0 16 16">
|
||||||
|
<path d="M8 0C5.829 0 5.556.01 4.703.048 3.85.088 3.269.222 2.76.42a3.9 3.9 0 0 0-1.417.923A3.9 3.9 0 0 0 .42 2.76C.222 3.268.087 3.85.048 4.7.01 5.555 0 5.827 0 8.001c0 2.172.01 2.444.048 3.297.04.852.174 1.433.372 1.942.205.526.478.972.923 1.417.444.445.89.719 1.416.923.51.198 1.09.333 1.942.372C5.555 15.99 5.827 16 8 16s2.444-.01 3.298-.048c.851-.04 1.434-.174 1.943-.372a3.9 3.9 0 0 0 1.416-.923c.445-.445.718-.891.923-1.417.197-.509.332-1.09.372-1.942C15.99 10.445 16 10.173 16 8s-.01-2.445-.048-3.299c-.04-.851-.175-1.433-.372-1.941a3.9 3.9 0 0 0-.923-1.417A3.9 3.9 0 0 0 13.24.42c-.51-.198-1.092-.333-1.943-.372C10.443.01 10.172 0 7.998 0zm-.717 1.442h.718c2.136 0 2.389.007 3.232.046.78.035 1.204.166 1.486.275.373.145.64.319.92.599s.453.546.598.92c.11.281.24.705.275 1.485.039.843.047 1.096.047 3.231s-.008 2.389-.047 3.232c-.035.78-.166 1.203-.275 1.485a2.5 2.5 0 0 1-.599.919c-.28.28-.546.453-.92.598-.28.11-.704.24-1.485.276-.843.038-1.096.047-3.232.047s-2.39-.009-3.233-.047c-.78-.036-1.203-.166-1.485-.276a2.5 2.5 0 0 1-.92-.598 2.5 2.5 0 0 1-.6-.92c-.109-.281-.24-.705-.275-1.485-.038-.843-.046-1.096-.046-3.233s.008-2.388.046-3.231c.036-.78.166-1.204.276-1.486.145-.373.319-.64.599-.92s.546-.453.92-.598c.282-.11.705-.24 1.485-.276.738-.034 1.024-.044 2.515-.045zm4.988 1.328a.96.96 0 1 0 0 1.92.96.96 0 0 0 0-1.92m-4.27 1.122a4.109 4.109 0 1 0 0 8.217 4.109 4.109 0 0 0 0-8.217m0 1.441a2.667 2.667 0 1 1 0 5.334 2.667 2.667 0 0 1 0-5.334"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.6 KiB |
BIN
assets/lady-face.jpg
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
3
assets/linkedin.svg
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-linkedin" viewBox="0 0 16 16">
|
||||||
|
<path d="M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854zm4.943 12.248V6.169H2.542v7.225zm-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248S2.4 3.226 2.4 3.934c0 .694.521 1.248 1.327 1.248zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016l.016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 666 B |
3
assets/list.svg
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-list" viewBox="0 0 16 16">
|
||||||
|
<path fill-rule="evenodd" d="M2.5 12a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5m0-4a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5m0-4a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 341 B |
BIN
assets/main-logo.png
Normal file
|
After Width: | Height: | Size: 169 KiB |
BIN
assets/map-marker.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
4
assets/person-circle.svg
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-person-circle" viewBox="0 0 16 16">
|
||||||
|
<path d="M11 6a3 3 0 1 1-6 0 3 3 0 0 1 6 0"/>
|
||||||
|
<path fill-rule="evenodd" d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8m8-7a7 7 0 0 0-5.468 11.37C3.242 11.226 4.805 10 8 10s4.757 1.225 5.468 2.37A7 7 0 0 0 8 1"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 345 B |
3
assets/search.svg
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-search" viewBox="0 0 16 16">
|
||||||
|
<path d="M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001q.044.06.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1 1 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 315 B |
3
assets/star.svg
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<svg width="34" height="30" viewBox="0 0 34 30" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M17.0833 23.8048L27.3833 29.5217L24.65 18.7469L33.75 11.4973L21.7666 10.5624L17.0833 0.400635L12.4 10.5624L0.416626 11.4973L9.51663 18.7469L6.78329 29.5217L17.0833 23.8048Z" fill="#FFB109"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 303 B |
7
assets/stars.svg
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<svg width="217" height="38" viewBox="0 0 217 38" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M20.0833 27.8048L30.3833 33.5217L27.65 22.7469L36.75 15.4973L24.7666 14.5624L20.0833 4.40063L15.4 14.5624L3.41663 15.4973L12.5166 22.7469L9.78329 33.5217L20.0833 27.8048Z" fill="#FFB109"/>
|
||||||
|
<path d="M64.0833 27.8048L74.3833 33.5217L71.65 22.7469L80.75 15.4973L68.7666 14.5624L64.0833 4.40063L59.4 14.5624L47.4166 15.4973L56.5166 22.7469L53.7833 33.5217L64.0833 27.8048Z" fill="#FFB109"/>
|
||||||
|
<path d="M108.083 27.8048L118.383 33.5217L115.65 22.7469L124.75 15.4973L112.767 14.5624L108.083 4.40063L103.4 14.5624L91.4166 15.4973L100.517 22.7469L97.7833 33.5217L108.083 27.8048Z" fill="#FFB109"/>
|
||||||
|
<path d="M152.083 27.8048L162.383 33.5217L159.65 22.7469L168.75 15.4973L156.767 14.5624L152.083 4.40063L147.4 14.5624L135.417 15.4973L144.517 22.7469L141.783 33.5217L152.083 27.8048Z" fill="#FFB109"/>
|
||||||
|
<path d="M196.083 27.8048L206.383 33.5217L203.65 22.7469L212.75 15.4973L200.767 14.5624L196.083 4.40063L191.4 14.5624L179.417 15.4973L188.517 22.7469L185.783 33.5217L196.083 27.8048Z" fill="#FFB109"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.1 KiB |
3
assets/telephone.svg
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-telephone" viewBox="0 0 16 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.6 17.6 0 0 0 4.168 6.608 17.6 17.6 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.68.68 0 0 0-.58-.122l-2.19.547a1.75 1.75 0 0 1-1.657-.459L5.482 8.062a1.75 1.75 0 0 1-.46-1.657l.548-2.19a.68.68 0 0 0-.122-.58zM1.884.511a1.745 1.745 0 0 1 2.612.163L6.29 2.98c.329.423.445.974.315 1.494l-.547 2.19a.68.68 0 0 0 .178.643l2.457 2.457a.68.68 0 0 0 .644.178l2.189-.547a1.75 1.75 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.6 18.6 0 0 1-7.01-4.42 18.6 18.6 0 0 1-4.42-7.009c-.362-1.03-.037-2.137.703-2.877z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 840 B |
3
assets/twitter.svg
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-twitter" viewBox="0 0 16 16">
|
||||||
|
<path d="M5.026 15c6.038 0 9.341-5.003 9.341-9.334q.002-.211-.006-.422A6.7 6.7 0 0 0 16 3.542a6.7 6.7 0 0 1-1.889.518 3.3 3.3 0 0 0 1.447-1.817 6.5 6.5 0 0 1-2.087.793A3.286 3.286 0 0 0 7.875 6.03a9.32 9.32 0 0 1-6.767-3.429 3.29 3.29 0 0 0 1.018 4.382A3.3 3.3 0 0 1 .64 6.575v.045a3.29 3.29 0 0 0 2.632 3.218 3.2 3.2 0 0 1-.865.115 3 3 0 0 1-.614-.057 3.28 3.28 0 0 0 3.067 2.277A6.6 6.6 0 0 1 .78 13.58a6 6 0 0 1-.78-.045A9.34 9.34 0 0 0 5.026 15"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 586 B |
3
assets/x-lg.svg
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-x-lg" viewBox="0 0 16 16">
|
||||||
|
<path d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 308 B |
3
assets/youtube.svg
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-youtube" viewBox="0 0 16 16">
|
||||||
|
<path d="M8.051 1.999h.089c.822.003 4.987.033 6.11.335a2.01 2.01 0 0 1 1.415 1.42c.101.38.172.883.22 1.402l.01.104.022.26.008.104c.065.914.073 1.77.074 1.957v.075c-.001.194-.01 1.108-.082 2.06l-.008.105-.009.104c-.05.572-.124 1.14-.235 1.558a2.01 2.01 0 0 1-1.415 1.42c-1.16.312-5.569.334-6.18.335h-.142c-.309 0-1.587-.006-2.927-.052l-.17-.006-.087-.004-.171-.007-.171-.007c-1.11-.049-2.167-.128-2.654-.26a2.01 2.01 0 0 1-1.415-1.419c-.111-.417-.185-.986-.235-1.558L.09 9.82l-.008-.104A31 31 0 0 1 0 7.68v-.123c.002-.215.01-.958.064-1.778l.007-.103.003-.052.008-.104.022-.26.01-.104c.048-.519.119-1.023.22-1.402a2.01 2.01 0 0 1 1.415-1.42c.487-.13 1.544-.21 2.654-.26l.17-.007.172-.006.086-.003.171-.007A100 100 0 0 1 7.858 2zM6.4 5.209v4.818l4.157-2.408z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 893 B |
15
composer.lock
generated
@@ -57,16 +57,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "open-function-computers-llc/rad-theme-engine",
|
"name": "open-function-computers-llc/rad-theme-engine",
|
||||||
"version": "v1.0.25",
|
"version": "v1.0.34",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/open-function-computers-llc/rad-theme-engine.git",
|
"url": "https://github.com/open-function-computers-llc/rad-theme-engine.git",
|
||||||
"reference": "59e337a405555e2eff7aca8de1da9714077aab96"
|
"reference": "c0b814bdd0ee1f093a051ed2e78efdf8c1f4f94e"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/open-function-computers-llc/rad-theme-engine/zipball/59e337a405555e2eff7aca8de1da9714077aab96",
|
"url": "https://api.github.com/repos/open-function-computers-llc/rad-theme-engine/zipball/c0b814bdd0ee1f093a051ed2e78efdf8c1f4f94e",
|
||||||
"reference": "59e337a405555e2eff7aca8de1da9714077aab96",
|
"reference": "c0b814bdd0ee1f093a051ed2e78efdf8c1f4f94e",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -77,6 +77,9 @@
|
|||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpunit/phpunit": "^9.5"
|
"phpunit/phpunit": "^9.5"
|
||||||
},
|
},
|
||||||
|
"bin": [
|
||||||
|
"bin/getIcon"
|
||||||
|
],
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
@@ -95,9 +98,9 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/open-function-computers-llc/rad-theme-engine/issues",
|
"issues": "https://github.com/open-function-computers-llc/rad-theme-engine/issues",
|
||||||
"source": "https://github.com/open-function-computers-llc/rad-theme-engine/tree/v1.0.25"
|
"source": "https://github.com/open-function-computers-llc/rad-theme-engine/tree/v1.0.34"
|
||||||
},
|
},
|
||||||
"time": "2024-01-25T19:02:08+00:00"
|
"time": "2025-05-20T21:03:45+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "salesforce/handlebars-php",
|
"name": "salesforce/handlebars-php",
|
||||||
|
|||||||
86
config.php
@@ -1,6 +1,13 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
"debug" => true,
|
||||||
|
"flex-file-prefix" => "flex",
|
||||||
|
|
||||||
|
"options-pages" => [
|
||||||
|
"Site Options",
|
||||||
|
],
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* excerpt-length
|
* excerpt-length
|
||||||
*
|
*
|
||||||
@@ -26,6 +33,7 @@ return [
|
|||||||
*/
|
*/
|
||||||
"menu-locations" => [
|
"menu-locations" => [
|
||||||
"main-nav" => "Main Navigation",
|
"main-nav" => "Main Navigation",
|
||||||
|
"footer-nav" => "Footer Customer Support Navigation",
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
||||||
@@ -34,7 +42,22 @@ return [
|
|||||||
*
|
*
|
||||||
* here is where you can define your custom post types easily
|
* here is where you can define your custom post types easily
|
||||||
*/
|
*/
|
||||||
"custom-post-types" => [],
|
"custom-post-types" => [
|
||||||
|
[
|
||||||
|
"slug" => "location",
|
||||||
|
"archive" => true,
|
||||||
|
"options-pages" => "Locations Landing Page",
|
||||||
|
"options" => [
|
||||||
|
"supports" => ["title", "thumbnail"],
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"slug" => "testimonial",
|
||||||
|
"options" => [
|
||||||
|
"supports" => ["title", "thumbnail"],
|
||||||
|
]
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -47,7 +70,9 @@ return [
|
|||||||
*/
|
*/
|
||||||
"handlebars" => [
|
"handlebars" => [
|
||||||
"additional-helpers" => [
|
"additional-helpers" => [
|
||||||
"formatDate" => \Helpers\DateFormatter::monthDayYear(),
|
"testimonial" => \Helpers\McCansHelpers::testimonial(),
|
||||||
|
"locationTile" => \Helpers\McCansHelpers::locationTile(),
|
||||||
|
"productTile" => \Helpers\McCansHelpers::productTile(),
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
@@ -60,6 +85,7 @@ return [
|
|||||||
"enable" => [
|
"enable" => [
|
||||||
"post-thumbnails",
|
"post-thumbnails",
|
||||||
"menus",
|
"menus",
|
||||||
|
"woocommerce",
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
||||||
@@ -70,5 +96,61 @@ return [
|
|||||||
*/
|
*/
|
||||||
"disable" => [
|
"disable" => [
|
||||||
"editor",
|
"editor",
|
||||||
|
"customizer",
|
||||||
|
"gutenberg",
|
||||||
|
"patterns",
|
||||||
|
"emojis",
|
||||||
|
"meta-generator",
|
||||||
|
"woocommerce.breadcrumb",
|
||||||
|
"woocommerce.sidebar",
|
||||||
|
"woocommerce.result_count",
|
||||||
|
"woocommerce.page_title",
|
||||||
|
],
|
||||||
|
|
||||||
|
"hooks" => [
|
||||||
|
"woocommerce_before_main_content" => function () {
|
||||||
|
// shop page
|
||||||
|
if (is_shop()) {
|
||||||
|
echo site()->render("shop-top", site()->getPost(wc_get_page_id('shop'), ["headline", "intro_text", 'thumbnail']));
|
||||||
|
echo site()->render('woocommerce-before-content');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo site()->render('woocommerce-before-content');
|
||||||
|
},
|
||||||
|
"woocommerce_after_main_content" => function () {
|
||||||
|
echo site()->render('woocommerce-after-content');
|
||||||
|
},
|
||||||
|
"init" => function() {
|
||||||
|
remove_all_actions( 'woocommerce_before_shop_loop_item' );
|
||||||
|
remove_all_actions( 'woocommerce_before_shop_loop_item_title' );
|
||||||
|
remove_all_actions( 'woocommerce_shop_loop_item_title' );
|
||||||
|
remove_all_actions( 'woocommerce_after_shop_loop_item_title' );
|
||||||
|
remove_all_actions( 'woocommerce_after_shop_loop_item' );
|
||||||
|
add_action( 'woocommerce_shop_loop_item_title', function() {
|
||||||
|
global $product;
|
||||||
|
|
||||||
|
$data = site()->getPost($product->id, [
|
||||||
|
"url",
|
||||||
|
"id",
|
||||||
|
"title",
|
||||||
|
"thumbnail",
|
||||||
|
"woocommerce.price",
|
||||||
|
"woocommerce.attribute.msrp",
|
||||||
|
"woocommerce.cartUrl",
|
||||||
|
"woocommerce.sku",
|
||||||
|
]);
|
||||||
|
|
||||||
|
if ($data["price"] && $data["msrp"]) {
|
||||||
|
$difference = $data["msrp"] - $data["price"];
|
||||||
|
|
||||||
|
if ($difference > 0) {
|
||||||
|
$data["savings"] = round(($difference / $data["msrp"]) * 100);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo site()->render("product-tile", $data);
|
||||||
|
});
|
||||||
|
}
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
12894
dist/app.css
vendored
Normal file
14026
dist/app.js
vendored
Normal file
BIN
dist/fonts/vendor/slick-carousel/slick/slick.eot
vendored
Normal file
14
dist/fonts/vendor/slick-carousel/slick/slick.svg
vendored
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<metadata>Generated by Fontastic.me</metadata>
|
||||||
|
<defs>
|
||||||
|
<font id="slick" horiz-adv-x="512">
|
||||||
|
<font-face font-family="slick" units-per-em="512" ascent="480" descent="-32"/>
|
||||||
|
<missing-glyph horiz-adv-x="512" />
|
||||||
|
|
||||||
|
<glyph unicode="→" d="M241 113l130 130c4 4 6 8 6 13 0 5-2 9-6 13l-130 130c-3 3-7 5-12 5-5 0-10-2-13-5l-29-30c-4-3-6-7-6-12 0-5 2-10 6-13l87-88-87-88c-4-3-6-8-6-13 0-5 2-9 6-12l29-30c3-3 8-5 13-5 5 0 9 2 12 5z m234 143c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
|
||||||
|
<glyph unicode="←" d="M296 113l29 30c4 3 6 7 6 12 0 5-2 10-6 13l-87 88 87 88c4 3 6 8 6 13 0 5-2 9-6 12l-29 30c-3 3-8 5-13 5-5 0-9-2-12-5l-130-130c-4-4-6-8-6-13 0-5 2-9 6-13l130-130c3-3 7-5 12-5 5 0 10 2 13 5z m179 143c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
|
||||||
|
<glyph unicode="•" d="M475 256c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
|
||||||
|
<glyph unicode="a" d="M475 439l0-128c0-5-1-9-5-13-4-4-8-5-13-5l-128 0c-8 0-13 3-17 11-3 7-2 14 4 20l40 39c-28 26-62 39-100 39-20 0-39-4-57-11-18-8-33-18-46-32-14-13-24-28-32-46-7-18-11-37-11-57 0-20 4-39 11-57 8-18 18-33 32-46 13-14 28-24 46-32 18-7 37-11 57-11 23 0 44 5 64 15 20 9 38 23 51 42 2 1 4 3 7 3 3 0 5-1 7-3l39-39c2-2 3-3 3-6 0-2-1-4-2-6-21-25-46-45-76-59-29-14-60-20-93-20-30 0-58 5-85 17-27 12-51 27-70 47-20 19-35 43-47 70-12 27-17 55-17 85 0 30 5 58 17 85 12 27 27 51 47 70 19 20 43 35 70 47 27 12 55 17 85 17 28 0 55-5 81-15 26-11 50-26 70-45l37 37c6 6 12 7 20 4 8-4 11-9 11-17z"/>
|
||||||
|
</font></defs></svg>
|
||||||
|
After Width: | Height: | Size: 2.1 KiB |
BIN
dist/fonts/vendor/slick-carousel/slick/slick.ttf
vendored
Normal file
BIN
dist/fonts/vendor/slick-carousel/slick/slick.woff
vendored
Normal file
BIN
dist/images/vendor/slick-carousel/slick/ajax-loader.gif
vendored
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
4
dist/mix-manifest.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"/app.js": "/app.js?id=dba67887fc4ea12d32fe1c2757aaa5c1",
|
||||||
|
"/app.css": "/app.css?id=4a8b4a07b6234e03881bacb9bf94454f"
|
||||||
|
}
|
||||||
15
footer.php
@@ -5,7 +5,18 @@
|
|||||||
// php file.
|
// php file.
|
||||||
|
|
||||||
echo site()->render("footer", [
|
echo site()->render("footer", [
|
||||||
"powered-by" => "ofco-rad-theme-engine",
|
"menu" => site()->renderMenu("footer-nav"),
|
||||||
"powered-by-url" => "https://github.com/open-function-computers-llc/rad-theme-engine",
|
"locations" => site()->getPosts(["type" => "location", "posts_per_page" => 99], ["title", "url"]),
|
||||||
|
"tagline" => get_field("tagline", "options"),
|
||||||
|
"address" => get_field("address", "options"),
|
||||||
|
"city" => get_field("city", "options"),
|
||||||
|
"state" => get_field("state", "options"),
|
||||||
|
"contact_email" => get_field("contact_email", "options"),
|
||||||
|
"contact_phone" => get_field("contact_phone", "options"),
|
||||||
"year" => date("Y"),
|
"year" => date("Y"),
|
||||||
|
"facebook_url" => get_field("facebook_url", "options"),
|
||||||
|
"twitter_url" => get_field("twitter_url", "options"),
|
||||||
|
"linkedin_url" => get_field("linkedin_url", "options"),
|
||||||
|
"youtube_url" => get_field("youtube_url", "options"),
|
||||||
|
"instagram_url" => get_field("instagram_url", "options"),
|
||||||
]);
|
]);
|
||||||
|
|||||||
@@ -5,12 +5,9 @@ require __DIR__ . '/vendor/autoload.php';
|
|||||||
|
|
||||||
use ofc\Site;
|
use ofc\Site;
|
||||||
|
|
||||||
# Declare a new Site object
|
|
||||||
$site = new Site();
|
|
||||||
|
|
||||||
# Allow the Site object to be accessed in other files
|
# Allow the Site object to be accessed in other files
|
||||||
function site()
|
function site(): Site
|
||||||
{
|
{
|
||||||
global $site;
|
return Site::getInstance();
|
||||||
return $site;
|
|
||||||
}
|
}
|
||||||
|
add_action("after_setup_theme", "site");
|
||||||
|
|||||||
@@ -5,4 +5,10 @@
|
|||||||
// RAD. Check out the docs here:
|
// RAD. Check out the docs here:
|
||||||
// https://rad-theme-engine.ofco.cloud/docs/guides/helpers/
|
// https://rad-theme-engine.ofco.cloud/docs/guides/helpers/
|
||||||
|
|
||||||
echo site()->render("header");
|
echo site()->render("header", [
|
||||||
|
"logo" => site()->getAssetURL("main-logo.jpg"),
|
||||||
|
"accountHref" => get_permalink(73),
|
||||||
|
"person-icon" => site()->getAssetContents("person-circle.svg"),
|
||||||
|
"phone-icon" => site()->getAssetContents("telephone.svg"),
|
||||||
|
"menu" => site()->renderMenu("main-nav"),
|
||||||
|
]);
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Helpers;
|
|
||||||
|
|
||||||
class DateFormatter
|
|
||||||
{
|
|
||||||
public static function monthDayYear()
|
|
||||||
{
|
|
||||||
return function ($template, $context, $args, $source) {
|
|
||||||
$dateString = strtotime($context->get($args));
|
|
||||||
|
|
||||||
return date("M d, Y", $dateString);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
52
helpers/McCansHelpers.php
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Helpers;
|
||||||
|
|
||||||
|
class McCansHelpers
|
||||||
|
{
|
||||||
|
public static function testimonial()
|
||||||
|
{
|
||||||
|
return function ($template, $context, $args, $source) {
|
||||||
|
$post = $context->get($args);
|
||||||
|
return site()->render('testimonial-block', site()->getPost($post, [
|
||||||
|
'title',
|
||||||
|
'thumbnail',
|
||||||
|
'position',
|
||||||
|
'quote',
|
||||||
|
'rating',
|
||||||
|
]));
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function locationTile()
|
||||||
|
{
|
||||||
|
return function ($template, $context, $args, $source) {
|
||||||
|
return site()->render("location-tile", $context->get($args));
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function productTile()
|
||||||
|
{
|
||||||
|
return function ($template, $context, $args, $source) {
|
||||||
|
$data = site()->getPost($context->get($args), [
|
||||||
|
"title",
|
||||||
|
"thumbnail",
|
||||||
|
"url",
|
||||||
|
"woocommerce.price",
|
||||||
|
"woocommerce.cartUrl",
|
||||||
|
"woocommerce.attribute.msrp",
|
||||||
|
]);
|
||||||
|
if ((float) $data["msrp"] && (float) $data["price"]) {
|
||||||
|
if ($data["price"] != 0) {
|
||||||
|
$difference = $data["msrp"] - $data["price"];
|
||||||
|
if ($difference > 0) {
|
||||||
|
$savingsPercent = round(($difference / $data["msrp"])*100);
|
||||||
|
}
|
||||||
|
|
||||||
|
$data["savings"] = $savingsPercent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return site()->render("product-tile", $data);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
12
index.php
@@ -1,15 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
// First, render the page header. You'll likely do this on every custom theme
|
|
||||||
// php file.
|
|
||||||
get_header();
|
get_header();
|
||||||
|
|
||||||
// Next, gather any data that you want, and pass it to the render method to bind
|
echo site()->render("index");
|
||||||
// your data to a template file. In the example below, the ./tpl/index.tpl file
|
|
||||||
// will be given the current page content, and today's timestamp.
|
|
||||||
echo site()->render("index", [
|
|
||||||
"post" => site()->getCurrentPost(["content", "title", "published_at"]),
|
|
||||||
"now" => date("Y-m-d H:i:s"),
|
|
||||||
]);
|
|
||||||
|
|
||||||
// ...and finally, make sure you close out your page render the WordPress way!
|
|
||||||
get_footer();
|
get_footer();
|
||||||
|
|||||||
11635
package-lock.json
generated
@@ -6,17 +6,12 @@
|
|||||||
"bootstrap": "^5.0.1",
|
"bootstrap": "^5.0.1",
|
||||||
"jquery": "^3.6.0",
|
"jquery": "^3.6.0",
|
||||||
"laravel-mix": "^6.0.19",
|
"laravel-mix": "^6.0.19",
|
||||||
"postcss": "^8.2.15",
|
"postcss": "^8.4",
|
||||||
"resolve-url-loader": "^3.1.3",
|
"resolve-url-loader": "^3.1.3",
|
||||||
"sass": "^1.32.13",
|
"sass": "^1.32.13",
|
||||||
"sass-loader": "^11.1.1",
|
"sass-loader": "^11.1.1",
|
||||||
"slick-carousel": "^1.8.1",
|
"slick-carousel": "^1.8.1"
|
||||||
"vue": "^2.6.12",
|
|
||||||
"vue-loader": "^15.9.7",
|
|
||||||
"vue-template-compiler": "^2.6.12",
|
|
||||||
"vue2-google-maps": "^0.10.7"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {},
|
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
}
|
}
|
||||||
|
|||||||
6
page.php
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?php
|
||||||
|
get_header(is_woocommerce() ? "shop" : "");
|
||||||
|
|
||||||
|
echo site()->render("page", site()->getCurrentPost(["content"]));
|
||||||
|
|
||||||
|
get_footer(is_woocommerce() ? "shop" : "");
|
||||||
22
single-location.php
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
get_header();
|
||||||
|
|
||||||
|
echo site()->render("location", [
|
||||||
|
...site()->getCurrentPost([
|
||||||
|
"title",
|
||||||
|
"thumbnail",
|
||||||
|
"intro",
|
||||||
|
"latitude",
|
||||||
|
"longitude",
|
||||||
|
"address_1",
|
||||||
|
"city",
|
||||||
|
"state",
|
||||||
|
"zip",
|
||||||
|
"phone",
|
||||||
|
"hours",
|
||||||
|
]),
|
||||||
|
"form" => do_shortcode('[contact-form-7 id="05c2e50" title="Contact form"]'),
|
||||||
|
]);
|
||||||
|
|
||||||
|
get_footer();
|
||||||
13
single-product.php
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
get_header('shop');
|
||||||
|
do_action('woocommerce_before_main_content');
|
||||||
|
|
||||||
|
while (have_posts()):
|
||||||
|
the_post();
|
||||||
|
wc_get_template_part('content', 'single-product');
|
||||||
|
endwhile;
|
||||||
|
|
||||||
|
do_action('woocommerce_after_main_content');
|
||||||
|
do_action('woocommerce_sidebar');
|
||||||
|
get_footer('shop');
|
||||||
3
single-testimonial.php
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
header("Location: /");
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
import $ from 'jquery';
|
||||||
|
import 'slick-carousel';
|
||||||
|
|
||||||
|
|
||||||
|
// slick sliders
|
||||||
|
$('.logo-slider .logos').slick({
|
||||||
|
infinite: true,
|
||||||
|
slidesToShow: 5,
|
||||||
|
pauseOnHover: false,
|
||||||
|
arrows: false,
|
||||||
|
autoplay: true,
|
||||||
|
responsive: [
|
||||||
|
{
|
||||||
|
breakpoint: 1200,
|
||||||
|
settings: {
|
||||||
|
slidesToShow: 4,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
breakpoint: 992,
|
||||||
|
settings: {
|
||||||
|
slidesToShow: 3,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
breakpoint: 768,
|
||||||
|
settings: {
|
||||||
|
slidesToShow: 2,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
breakpoint: 576,
|
||||||
|
settings: {
|
||||||
|
slidesToShow: 1,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.testimonials').slick({
|
||||||
|
infinite: true,
|
||||||
|
slidesToShow: 1,
|
||||||
|
arrows: true,
|
||||||
|
autoplay: true,
|
||||||
|
autoplaySpeed: 7000,
|
||||||
|
adaptiveHeight: true,
|
||||||
|
dots: true,
|
||||||
|
prevArrow: '<button type="button" class="slick-prev"><img src="/wp-content/themes/mccans-theme/assets/chevron-left.svg" alt="" /></button>',
|
||||||
|
nextArrow: '<button type="button" class="slick-next"><img src="/wp-content/themes/mccans-theme/assets/chevron-right.svg" alt="" /></button>',
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// dynamic maps
|
||||||
|
const customIcon = L.icon({
|
||||||
|
iconUrl: '/wp-content/themes/mccans-theme/assets/map-marker.png',
|
||||||
|
iconSize: [33, 50], // width and height of the icon
|
||||||
|
iconAnchor: [16, 50], // point of the icon which will correspond to marker's location
|
||||||
|
popupAnchor: [0, -50] // point from which the popup should open relative to the iconAnchor
|
||||||
|
});
|
||||||
|
document.addEventListener("DOMContentLoaded", function () {
|
||||||
|
document.querySelectorAll(".leaflet-map").forEach((el) => {
|
||||||
|
const lat = parseFloat(el.dataset.lat);
|
||||||
|
const lng = parseFloat(el.dataset.lng);
|
||||||
|
const title = el.dataset.title;
|
||||||
|
|
||||||
|
if (isNaN(lat) || isNaN(lng)) return;
|
||||||
|
|
||||||
|
const map = L.map(el).setView([lat, lng], 13);
|
||||||
|
L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png', {
|
||||||
|
attribution: '© <a href="https://carto.com/">CARTO</a> | © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>',
|
||||||
|
subdomains: 'abcd',
|
||||||
|
maxZoom: 19,
|
||||||
|
}).addTo(map);
|
||||||
|
|
||||||
|
|
||||||
|
L.marker([lat, lng], {icon: customIcon})
|
||||||
|
.addTo(map)
|
||||||
|
.bindPopup(`${title} Location`);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// top nav expand items
|
||||||
|
$(".menu-item-has-children").append("<button class='toggle-sub-nav'></button>");
|
||||||
|
$("body").on("click", ".toggle-sub-nav", (e) => {
|
||||||
|
$(e.target).parent("li").toggleClass("children-showing");
|
||||||
|
});
|
||||||
|
// mobile nav toggle
|
||||||
|
document.getElementById("mobile-nav-toggle").addEventListener("click", (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
document.getElementsByTagName("body")[0].classList.toggle("mobile-nav-open");
|
||||||
|
});
|
||||||
|
|||||||
@@ -1,2 +1,22 @@
|
|||||||
// dependancies - bootstrap
|
@import "variables";
|
||||||
|
|
||||||
|
// dependancies
|
||||||
@import "../../node_modules/bootstrap/scss/bootstrap";
|
@import "../../node_modules/bootstrap/scss/bootstrap";
|
||||||
|
@import "../../node_modules/slick-carousel/slick/slick";
|
||||||
|
@import "../../node_modules/slick-carousel/slick/slick-theme";
|
||||||
|
|
||||||
|
@import "global";
|
||||||
|
|
||||||
|
@import "header";
|
||||||
|
@import "footer";
|
||||||
|
@import "flex-background-image-cta";
|
||||||
|
@import "flex-plain-text";
|
||||||
|
@import "flex-logo-slider";
|
||||||
|
@import "flex-testimonials";
|
||||||
|
@import "top-image";
|
||||||
|
@import "intro-slide";
|
||||||
|
|
||||||
|
@import "shop";
|
||||||
|
|
||||||
|
@import "locations";
|
||||||
|
@import "location";
|
||||||
|
|||||||
32
src/scss/flex-background-image-cta.scss
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
.background-image-cta {
|
||||||
|
padding: 5rem 0;
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: linear-gradient(to right, rgba(255, 255, 255, 0.8), transparent);
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1, h2, h3 {
|
||||||
|
@extend .headline-xl;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-size: 27px;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
9
src/scss/flex-logo-slider.scss
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
.logo-slider {
|
||||||
|
.logo {
|
||||||
|
filter: grayscale(100%);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
filter: grayscale(0%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
16
src/scss/flex-plain-text.scss
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
.plain-text {
|
||||||
|
padding: 6rem 0;
|
||||||
|
|
||||||
|
h1, h2, h3 {
|
||||||
|
@extend .headline-lg;
|
||||||
|
text-transform: uppercase;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
text-align: center;
|
||||||
|
max-width: 950px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
133
src/scss/flex-testimonials.scss
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
.testimonials-section {
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
h1, h2, h3 {
|
||||||
|
@extend .headline-lg;
|
||||||
|
text-transform: uppercase;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
.testimonials {
|
||||||
|
padding: 0 2rem;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.slick-arrow {
|
||||||
|
width: 60px;
|
||||||
|
height: 55px;
|
||||||
|
z-index: 99;
|
||||||
|
|
||||||
|
img {
|
||||||
|
@extend .change-black-to-red;
|
||||||
|
width: 60px;
|
||||||
|
height: 55px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.slick-next {
|
||||||
|
right: 4rem;
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
content: ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.slick-prev {
|
||||||
|
left: 4rem;
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
content: ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.slick-dots {
|
||||||
|
bottom: 3rem;
|
||||||
|
|
||||||
|
li {
|
||||||
|
button {
|
||||||
|
&:before {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.slick-active {
|
||||||
|
button {
|
||||||
|
&:before {
|
||||||
|
color: $c-red;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.testimonial {
|
||||||
|
background: $c-white;
|
||||||
|
border-radius: 15px;
|
||||||
|
box-shadow: 0 0 30px rgba($c-black, 0.1);
|
||||||
|
margin: 1rem 3rem;
|
||||||
|
width: calc(100% - 3rem) !important;
|
||||||
|
transform: translateX(-1.5rem);
|
||||||
|
|
||||||
|
.stars {
|
||||||
|
background-image: url(/wp-content/themes/mccans-theme/assets/stars.svg);
|
||||||
|
display: block;
|
||||||
|
height: 40px;
|
||||||
|
width: 0;
|
||||||
|
margin: 2rem auto;
|
||||||
|
|
||||||
|
|
||||||
|
&.stars-5 {
|
||||||
|
width: 213px;
|
||||||
|
}
|
||||||
|
&.stars-4 {
|
||||||
|
width: 170px;
|
||||||
|
}
|
||||||
|
&.stars-3 {
|
||||||
|
width: 130px;
|
||||||
|
}
|
||||||
|
&.stars-2 {
|
||||||
|
width: 90px;
|
||||||
|
}
|
||||||
|
&.stars-1 {
|
||||||
|
width: 50px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 25px;
|
||||||
|
line-height: 45px;
|
||||||
|
padding: 0 4rem;
|
||||||
|
margin-bottom: 3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.person-details {
|
||||||
|
display: flex;
|
||||||
|
gap: 1rem;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
padding-bottom: 8rem;
|
||||||
|
font-size: 26px;
|
||||||
|
line-height: 35px;
|
||||||
|
|
||||||
|
.image-wrapper {
|
||||||
|
width: 105px;
|
||||||
|
height: 105px;
|
||||||
|
border-radius: 50%;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin-bottom: 0;
|
||||||
|
|
||||||
|
&.name {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
82
src/scss/footer.scss
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
footer.site-footer {
|
||||||
|
background-color: $c-offWhite;
|
||||||
|
padding: 2rem 0;
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
@extend .montserrat;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 25px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
list-style-type: none;
|
||||||
|
|
||||||
|
li {
|
||||||
|
a {
|
||||||
|
font-size: 20px;
|
||||||
|
color: $c-black;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
nav#social-nav {
|
||||||
|
ul {
|
||||||
|
list-style-type: none;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
display: flex;
|
||||||
|
gap: 1rem;
|
||||||
|
|
||||||
|
a {
|
||||||
|
display: flex;
|
||||||
|
color: $c-black;
|
||||||
|
background-color: $c-lightGrey;
|
||||||
|
width: 36px;
|
||||||
|
height: 36px;
|
||||||
|
border-radius: 18px;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
transition: all $transition-time ease;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: $c-white;
|
||||||
|
color: $c-red;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo-col {
|
||||||
|
max-width: 336px;
|
||||||
|
text-align: center;
|
||||||
|
@extend .montserrat;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 27px;
|
||||||
|
letter-spacing: -2%;
|
||||||
|
font-weight: 600;
|
||||||
|
|
||||||
|
img {
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
max-width: 336px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-down(lg) {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
footer.sub-footer {
|
||||||
|
@extend .montserrat;
|
||||||
|
background-color: $c-offWhite;
|
||||||
|
border-top: 1px solid $c-grey;
|
||||||
|
padding: 1.5rem 0;
|
||||||
|
}
|
||||||
80
src/scss/global.scss
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
img {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.montserrat {
|
||||||
|
font-family: 'Montserrat', sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.change-black-to-red {
|
||||||
|
filter: invert(10%) sepia(79%) saturate(7388%) hue-rotate(2deg) brightness(86%) contrast(111%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.headline-lg {
|
||||||
|
@extend .montserrat;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 60px;
|
||||||
|
line-height: 60px;
|
||||||
|
letter-spacing: -3%;
|
||||||
|
|
||||||
|
@include media-breakpoint-down(md) {
|
||||||
|
font-size: 45px;
|
||||||
|
line-height: 45px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.headline-xl {
|
||||||
|
@extend .montserrat;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 91px;
|
||||||
|
line-height: 89px;
|
||||||
|
letter-spacing: -3%;
|
||||||
|
|
||||||
|
@include media-breakpoint-down(md) {
|
||||||
|
font-size: 65px;
|
||||||
|
line-height: 65px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.cta-button {
|
||||||
|
margin: 0;
|
||||||
|
|
||||||
|
a, input {
|
||||||
|
@extend .montserrat;
|
||||||
|
text-transform: uppercase;
|
||||||
|
background-color: $c-red;
|
||||||
|
color: $c-white !important;
|
||||||
|
text-decoration: none;
|
||||||
|
display: inline-block;
|
||||||
|
min-height: 47px;
|
||||||
|
line-height: 47px;
|
||||||
|
border: 1px solid $c-red;
|
||||||
|
border-radius: 25px;
|
||||||
|
padding: 0 60px;
|
||||||
|
transition: all $transition-time ease;
|
||||||
|
font-size: 20px;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: $c-offWhite;
|
||||||
|
color: $c-red !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.small {
|
||||||
|
a {
|
||||||
|
padding: 0 25px;
|
||||||
|
min-height: 32px;
|
||||||
|
line-height: 32px;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.leaflet-map {
|
||||||
|
height: 360px;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
input, label, textarea {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
195
src/scss/header.scss
Normal file
@@ -0,0 +1,195 @@
|
|||||||
|
.top-bar {
|
||||||
|
background-color: $c-offWhite;
|
||||||
|
padding: 25px 0 25px;
|
||||||
|
|
||||||
|
input[type=text] {
|
||||||
|
border: 0;
|
||||||
|
border-radius: 25px;
|
||||||
|
height: 38px;
|
||||||
|
line-height: 30px;
|
||||||
|
padding-left: 30px;
|
||||||
|
background: url("/wp-content/themes/mccans-theme/assets/search.svg") 10px center no-repeat;
|
||||||
|
background-color: $c-white;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.account-button {
|
||||||
|
border: 0;
|
||||||
|
text-transform: uppercase;
|
||||||
|
color: $c-red;
|
||||||
|
font-weight: bold;
|
||||||
|
background: transparent;
|
||||||
|
text-decoration: none;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-nav {
|
||||||
|
padding: 2rem 0;
|
||||||
|
|
||||||
|
.logo-wrapper {
|
||||||
|
max-width: 400px;
|
||||||
|
width: 20%;
|
||||||
|
|
||||||
|
@include media-breakpoint-down(md) {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
max-width: 100%;
|
||||||
|
gap: 3rem;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
img {
|
||||||
|
max-width: 250px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: $c-black;
|
||||||
|
}
|
||||||
|
|
||||||
|
svg {
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-down(sm) {
|
||||||
|
gap: 1rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mobile-nav-toggle {
|
||||||
|
@include media-breakpoint-up(md) {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
svg:first-of-type {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
svg:last-of-type {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mobile-nav-open & {
|
||||||
|
svg:first-of-type {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
svg:last-of-type {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
nav.main-nav {
|
||||||
|
display: none;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
.mobile-nav-open & {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-up(md) {
|
||||||
|
display: flex;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu-main-menu-container {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
@include media-breakpoint-down(md) {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
& > ul {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#menu-main-menu {
|
||||||
|
display: flex;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
list-style-type: none;
|
||||||
|
gap: 1rem;
|
||||||
|
|
||||||
|
@include media-breakpoint-down(md) {
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
text-transform: uppercase;
|
||||||
|
color: $c-black;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
& > li {
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
@include media-breakpoint-up(lg) {
|
||||||
|
&:hover {
|
||||||
|
& > ul {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
top: 100%;
|
||||||
|
left: 0;
|
||||||
|
list-style-type: none;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-down(md) {
|
||||||
|
&.children-showing {
|
||||||
|
ul {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
list-style-type: none;
|
||||||
|
|
||||||
|
li {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.toggle-sub-nav {
|
||||||
|
transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.toggle-sub-nav {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
background-image: url("/wp-content/themes/mccans-theme/assets/chevron-down.svg");
|
||||||
|
background-position: center;
|
||||||
|
background-size: contain;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
border: 0;
|
||||||
|
background-color: transparent;
|
||||||
|
|
||||||
|
@include media-breakpoint-down(md) {
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
34
src/scss/intro-slide.scss
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
section.intro-slide {
|
||||||
|
position: relative;
|
||||||
|
background-position: center;
|
||||||
|
background-size: cover;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
padding: 12rem 0;
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
content: "";
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
z-index: 1;
|
||||||
|
background-color: rgba($c-black, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
color: $c-white;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
@extend .headline-xl;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-size: 34px;
|
||||||
|
}
|
||||||
|
}
|
||||||
52
src/scss/location.scss
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
.single-location {
|
||||||
|
.top-image {
|
||||||
|
margin-bottom: 6rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
@extend .headline-lg;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-wrapper {
|
||||||
|
margin-bottom: 8rem;
|
||||||
|
|
||||||
|
label {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wpcf7-checkbox {
|
||||||
|
.wpcf7-list-item {
|
||||||
|
display: block;
|
||||||
|
margin: 0 0 0.5rem 0;
|
||||||
|
|
||||||
|
&:last-of-type {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
p:has(input[type=submit]) {
|
||||||
|
@extend .cta-button;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
color: $c-textAlt;
|
||||||
|
|
||||||
|
strong {
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.address {
|
||||||
|
a {
|
||||||
|
color: $c-textAlt;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
41
src/scss/locations.scss
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
.post-type-archive-location {
|
||||||
|
.intro {
|
||||||
|
text-align: center;
|
||||||
|
padding-top: 6rem;
|
||||||
|
padding-bottom: 6rem;
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
@extend .headline-lg;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
& > * {
|
||||||
|
max-width: 850px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.location-tile {
|
||||||
|
width: calc(50% - 2.5rem);
|
||||||
|
margin-bottom: 3rem;
|
||||||
|
color: $c-textAlt;
|
||||||
|
|
||||||
|
&:first-of-type {
|
||||||
|
width: 100%;
|
||||||
|
.leaflet-map {
|
||||||
|
height: 500px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
color: $c-red;
|
||||||
|
text-transform: uppercase;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: $c-textAlt;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
122
src/scss/shop.scss
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
section.woocommerce-wrapper {
|
||||||
|
margin-top: 4rem;
|
||||||
|
|
||||||
|
ul.products {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
div.product-tile {
|
||||||
|
border-radius: 15px;
|
||||||
|
box-shadow: 0 0 20px rgba($c-black, 0.1);
|
||||||
|
padding: 1rem;
|
||||||
|
position: relative;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
a.add_to_cart_button {
|
||||||
|
position: absolute;
|
||||||
|
top: 1rem;
|
||||||
|
right: 1rem;
|
||||||
|
width: 35px;
|
||||||
|
height: 35px;
|
||||||
|
padding: 0 !important;
|
||||||
|
display: flex !important;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
margin: 0 !important;
|
||||||
|
// opacity: 0;
|
||||||
|
transition: all $transition-time ease;
|
||||||
|
border-radius: 50%;
|
||||||
|
|
||||||
|
img {
|
||||||
|
margin: 0 !important;
|
||||||
|
width: 20px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
position: absolute;
|
||||||
|
left: 80%;
|
||||||
|
margin: 0 !important;
|
||||||
|
top: -20%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
a.added_to_cart {
|
||||||
|
@extend .montserrat;
|
||||||
|
padding-top: 0;
|
||||||
|
position: absolute;
|
||||||
|
display: block;
|
||||||
|
color: $c-brightRed;
|
||||||
|
font-size: 0.8rem;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-weight: bold;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
@extend .change-black-to-red;
|
||||||
|
content:"";
|
||||||
|
width: 13px;
|
||||||
|
height: 14px;
|
||||||
|
display: block;
|
||||||
|
background-image: url("/wp-content/themes/mccans-theme/assets/chevron-right.svg");
|
||||||
|
position: absolute;
|
||||||
|
left: 103%;
|
||||||
|
top: 3px;
|
||||||
|
background-size: contain;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
&::after {
|
||||||
|
left: 105%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
.add_to_cart_button {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 26px;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: $c-black;
|
||||||
|
text-decoration: none;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: $c-brightRed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
p.price {
|
||||||
|
color: $c-brightRed !important;
|
||||||
|
font-size: 25px !important;
|
||||||
|
line-height: 26px;
|
||||||
|
text-align: center;
|
||||||
|
margin: 2rem 0 0 !important;
|
||||||
|
font-weight: bold !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.msrp {
|
||||||
|
color: $c-midGrey !important;
|
||||||
|
font-size: 15px !important;
|
||||||
|
line-height: 21px;
|
||||||
|
text-align: center;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.savings {
|
||||||
|
color: $c-brightRed !important;
|
||||||
|
font-size: 16px !important;
|
||||||
|
line-height: 16px;
|
||||||
|
text-align: center;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
17
src/scss/top-image.scss
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
.top-image {
|
||||||
|
position: relative;
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
height: 500px;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
background-color: $c-black;
|
||||||
|
opacity: 0.3;
|
||||||
|
}
|
||||||
|
}
|
||||||
20
src/scss/variables.scss
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
$c-black: #000;
|
||||||
|
$c-white: #fff;
|
||||||
|
$c-offWhite: #f5f5f5;
|
||||||
|
$c-lightGrey: #d9d9d9;
|
||||||
|
$c-grey: #cbcbcb;
|
||||||
|
$c-midGrey: #acacac;
|
||||||
|
$c-textAlt: #505050;
|
||||||
|
$c-brightRed: #c80000;
|
||||||
|
$c-red: #ae1716;
|
||||||
|
|
||||||
|
$transition-time: 0.3s;
|
||||||
|
|
||||||
|
// bootstrap overrides
|
||||||
|
$font-family-sans-serif: 'Inter', sans-serif;
|
||||||
|
$body-color: $c-black;
|
||||||
|
|
||||||
|
|
||||||
|
// slick overrides
|
||||||
|
$slick-font-path: "/wp-content/themes/mccans-theme/dist/fonts/vendor/slick-carousel/slick/";
|
||||||
|
$slick-loader-path: "/wp-content/themes/mccans-theme/dist/images/vendor/slick-carousel/slick/";
|
||||||
3
taxonomy-product-category.php
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
echo "here?";
|
||||||
7
tpl-flex.php
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<?php
|
||||||
|
/** Template Name: Flexible Content */
|
||||||
|
get_header();
|
||||||
|
|
||||||
|
echo site()->render("flex", site()->getCurrentPost(["acf.content"]));
|
||||||
|
|
||||||
|
get_footer();
|
||||||
1
tpl/flex.tpl
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{{#flex content}}
|
||||||
17
tpl/flex_background_image_cta.tpl
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<section class="background-image-cta" style="background-image: url({{ background_image }})">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<{{tag_type}}>{{ headline }}</{{tag_type}}>
|
||||||
|
<p>{{ description }}</p>
|
||||||
|
|
||||||
|
{{#if button_target}}
|
||||||
|
<p class="cta-button">
|
||||||
|
<a href="{{ button_target }}">{{ button_text }}</a>
|
||||||
|
</p>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
<div class="col"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
15
tpl/flex_logo_slider.tpl
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<section class="logo-slider">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<div class="logos">
|
||||||
|
{{#each logos}}
|
||||||
|
<div class="logo">
|
||||||
|
<img src="{{ logo.url }}" alt="{{ logo.alt }}" />
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
10
tpl/flex_plain_text.tpl
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<section class="plain-text">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<{{tag_type}}>{{ headline }}</{{tag_type}}>
|
||||||
|
{{{ description }}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
15
tpl/flex_testimonials.tpl
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<section class="testimonials-section">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<h2>{{headline}}</h2>
|
||||||
|
|
||||||
|
<div class="testimonials">
|
||||||
|
{{#each testimonials}}
|
||||||
|
{{#testimonial this.testimonial }}
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
@@ -1,10 +1,71 @@
|
|||||||
{{#wp-footer}}
|
|
||||||
|
|
||||||
<footer class="site-footer mt-5">
|
<footer class="site-footer">
|
||||||
<div class="container">
|
<div class="container-fluid">
|
||||||
<p class="text-center">© {{ year }}. Powered by <a id="bottom-link" href="{{ powered-by-url }}" target="_blank">{{ powered-by }}</a></p>
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
|
||||||
|
<div class="d-flex justify-content-around flex-column flex-lg-row gap-3">
|
||||||
|
<div class="logo-col">
|
||||||
|
<a href="/"><img src="{{#assetUrl main-logo.png }}" alt="{{#wp-title}}" /></a>
|
||||||
|
{{ tagline }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="locations-col">
|
||||||
|
<h2>Contact your store</h2>
|
||||||
|
<ul>
|
||||||
|
{{#each locations}}
|
||||||
|
<li><a href="{{ url }}">{{ title }}</a></li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="service-col">
|
||||||
|
<h2>Customer Service</h2>
|
||||||
|
{{{ menu }}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="social-col">
|
||||||
|
<h2>Follow Us</h2>
|
||||||
|
|
||||||
|
<nav id="social-nav">
|
||||||
|
<ul>
|
||||||
|
{{#if facebook_url}}
|
||||||
|
<li><a href="{{ facebook_url }}" target="_blank">{{#assetContents facebook.svg}}</a></li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if twitter_url}}
|
||||||
|
<li><a href="{{ twitter_url }}" target="_blank">{{#assetContents twitter.svg}}</a></li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if instagram_url}}
|
||||||
|
<li><a href="{{ instagram_url }}" target="_blank">{{#assetContents instagram.svg}}</a></li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if youtube_url}}
|
||||||
|
<li><a href="{{ youtube_url }}" target="_blank">{{#assetContents youtube.svg}}</a></li>
|
||||||
|
{{/if}}
|
||||||
|
{{#if linkedin_url}}
|
||||||
|
<li><a href="{{ linkedin_url }}" target="_blank">{{#assetContents linkedin.svg}}</a></li>
|
||||||
|
{{/if}}
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
|
<footer class="sub-footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<div class="text-center">
|
||||||
|
© {{ year }} {{#wp-title}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
{{#wp-footer}}
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -6,56 +6,56 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>{{#wp-title}}</title>
|
<title>{{#wp-title}}</title>
|
||||||
|
|
||||||
<!-- the following CSS is included for a fancy pants intro page. Feel free
|
|
||||||
to delete it! -->
|
|
||||||
<link rel="preconnect" href="https://fonts.bunny.net">
|
<link rel="preconnect" href="https://fonts.bunny.net">
|
||||||
<link href="https://fonts.bunny.net/css?family=montserrat:400,400i,700,700i" rel="stylesheet" />
|
<link href="https://fonts.bunny.net/css?family=inter:400,400i,700,700i|montserrat:400,400i,600,600i,700,700i,800,800i" rel="stylesheet" />
|
||||||
<style>
|
<link rel="stylesheet" href="https://unpkg.com/leaflet/dist/leaflet.css" />
|
||||||
* {
|
<script src="https://unpkg.com/leaflet/dist/leaflet.js"></script>
|
||||||
font-family: 'Montserrat', sans-serif;
|
|
||||||
}
|
|
||||||
body, html {
|
|
||||||
background-color: #212529;
|
|
||||||
color: #dee2e6;
|
|
||||||
font-size: 1.1rem;
|
|
||||||
line-height: 1.5;
|
|
||||||
}
|
|
||||||
.container {
|
|
||||||
max-width: 900px;
|
|
||||||
padding: 0 1rem;
|
|
||||||
display: block;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
a {
|
|
||||||
color: #f472b6;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
.text-center {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.m-0 {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
.mb-4 {
|
|
||||||
margin-bottom: 1.25rem;
|
|
||||||
}
|
|
||||||
code {
|
|
||||||
font-family: monospace;
|
|
||||||
color: white;
|
|
||||||
background-color: black;
|
|
||||||
display: inline-block;
|
|
||||||
line-height: 1.1;
|
|
||||||
font-size: 1rem;
|
|
||||||
padding: 2px 4px;
|
|
||||||
}
|
|
||||||
.outro h2 {
|
|
||||||
font-size: 1.2rem;
|
|
||||||
}
|
|
||||||
footer {
|
|
||||||
font-size: .8rem;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
{{#wp-header}}
|
{{#wp-header}}
|
||||||
</head>
|
</head>
|
||||||
<body {{#body-classes}}>
|
<body {{#body-classes}}>
|
||||||
|
|
||||||
|
<section class="top-bar">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<div class="d-flex gap-5 justify-content-end">
|
||||||
|
<input type="text" placeholder="What are you searching for?" />
|
||||||
|
<div>
|
||||||
|
<a href="{{ accountHref }}" class="account-button">
|
||||||
|
{{{ person-icon }}}
|
||||||
|
My Account
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="main-nav">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<div class="d-flex justify-content-between flex-wrap align-items-center">
|
||||||
|
|
||||||
|
<div class="logo-wrapper">
|
||||||
|
<a href="/"><img src="{{#assetUrl main-logo.png }}" alt="McCann's Medical" /></a>
|
||||||
|
|
||||||
|
<a href="#" id="mobile-nav-toggle">
|
||||||
|
{{#assetContents list.svg}}
|
||||||
|
{{#assetContents x-lg.svg}}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<nav class="align-items-center gap-3 main-nav">
|
||||||
|
{{{ menu }}}
|
||||||
|
<p class="cta-button small">
|
||||||
|
<a href="tel:855-622-2661">{{{ phone-icon }}} 855-622-2661</a>
|
||||||
|
</p>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|||||||
@@ -1,39 +1,11 @@
|
|||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
|
||||||
|
<hr />
|
||||||
|
<h1 class="text-center my-5">This fell back to the index file, not good, catch it upstream!</h1>
|
||||||
|
<hr class="mb-5" />
|
||||||
|
|
||||||
<section class="intro">
|
|
||||||
<div class="container">
|
|
||||||
<h1 class="text-center">
|
|
||||||
<a href = "https://rad-theme-engine.ofco.cloud/" target = "_blank">Welcome to Rad Theme Engine!</a>
|
|
||||||
</h1>
|
|
||||||
<div class="col-lg-12 text-center mb-4">
|
|
||||||
<a href = "https://rad-theme-engine.ofco.cloud/" target = "_blank">
|
|
||||||
<h1>
|
|
||||||
<img class="title-logo" src="https://rad-theme-engine.ofco.cloud/images/rebrand/Rad%20Logo%201%20OF-TOP.png" alt="Check out the RAD Theme Engine Docs">
|
|
||||||
</h1>
|
|
||||||
</a>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p id="get-started">Get started by editing these template files to build out your site layouts and content.</p>
|
|
||||||
<p id="description">All template files need to be valid <a href="https://rad-theme-engine.ofco.cloud/docs/guides/handlebars/" target="_blank">handlebars</a> files, with tags that look like this: <code>{{#raw}}{{#formatDate now}}{{/raw}}</code>. Note: the <code>now</code> variable got its value passed by the PHP file to this template, and the <code>#formatDate</code> prefix is a <a href="https://rad-theme-engine.ofco.cloud/docs/guides/helpers/" target="_blank">handlebars helper</a>. You can write your own helpers very easily, and RAD comes preloaded with a bunch of really useful ones!</p>
|
|
||||||
|
|
||||||
<p>That tag is rendered into this: <code>{{#formatDate now }}</code></p>
|
|
||||||
<hr/>
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</div>
|
||||||
|
|
||||||
<section>
|
|
||||||
<div class="container">
|
|
||||||
<p>We also passed the WordPress saved content to this template, asking specifically for the content, title, and published_at date. Here is a quick example of how to use that data:</p>
|
|
||||||
<p class="m-0">Title: {{ post.title }}</p>
|
|
||||||
<p class="m-0">Published: {{ post.published_at }}</p>
|
|
||||||
<p class="m-0">Content:</p>
|
|
||||||
{{{ post.content }}}
|
|
||||||
<hr/>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section class="outro">
|
|
||||||
<h2 class="text-center">
|
|
||||||
For more help getting started on your new <em>RAD</em> project, visit the <br />
|
|
||||||
<a class="bottom-link" href="https://rad-theme-engine.ofco.cloud" target="_blank">RAD Theme Engine Docs</a>
|
|
||||||
</h2>
|
|
||||||
</section>
|
|
||||||
|
|||||||
21
tpl/location-tile.tpl
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<div class="location-tile">
|
||||||
|
<div class="leaflet-map" data-lat="{{ latitude }}" data-lng="{{ longitude }}" data-title="{{ title }}"></div>
|
||||||
|
<div class="d-flex justify-content-between">
|
||||||
|
<div class="left">
|
||||||
|
<h2>{{ title }}</h2>
|
||||||
|
<p class="address">{{ address_1 }}<br />
|
||||||
|
{{#if city}}
|
||||||
|
{{ city }},
|
||||||
|
{{else}}
|
||||||
|
{{ title }},
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{ state }} {{ zip }}<br />
|
||||||
|
<a href="tel:{{ phone }}">{{ phone }}</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="right">
|
||||||
|
<p class="cta-button"><a href="{{ url }}">Contact Us</a></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
44
tpl/location.tpl
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
<section class="top-image" style="background-image: url({{ thumbnail }})">
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="location">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<h1>{{ title }} Location</h1>
|
||||||
|
<p>{{{ intro }}}</p>
|
||||||
|
|
||||||
|
<div class="form-wrapper">
|
||||||
|
{{{ form }}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col">
|
||||||
|
<div class="leaflet-map" data-lat="{{ latitude }}" data-lng="{{ longitude }}" data-title="{{ title }}"></div>
|
||||||
|
|
||||||
|
<div class="d-flex justify-content-between">
|
||||||
|
<div class="address">
|
||||||
|
<p><strong>{{ title }} Store:</strong><br />
|
||||||
|
{{ address_1 }}<br />
|
||||||
|
{{#if city}}
|
||||||
|
{{ city }},
|
||||||
|
{{else}}
|
||||||
|
{{ title }},
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{ state }} {{ zip }}<br />
|
||||||
|
<a href="tel:{{ phone }}">{{ phone }}</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="hours">
|
||||||
|
<p><strong>Hours:</strong><br />
|
||||||
|
{{#nl2br hours }}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
22
tpl/locations.tpl
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<section class="top-image" style="background-image: url({{ top_image}})">
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="locations">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col intro">
|
||||||
|
<h1>{{ headline }}</h1>
|
||||||
|
<p>{{{ intro }}}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col d-flex flex-wrap justify-content-between">
|
||||||
|
{{#each locations}}
|
||||||
|
{{#locationTile .}}
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
9
tpl/page.tpl
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<section class="page-content">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
{{{ content }}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
26
tpl/product-tile.tpl
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<div class="product-tile">
|
||||||
|
<a href="{{ cartUrl }}"
|
||||||
|
class="button product_type_simple add_to_cart_button ajax_add_to_cart"
|
||||||
|
data-product_id="{{ id }}"
|
||||||
|
data-product_sku="{{ sku }}"
|
||||||
|
data-quantity="1"
|
||||||
|
aria-label="Add to cart: {{ title }}"
|
||||||
|
data-success_message="“{{ title }}” has been added to your cart"
|
||||||
|
rel="nofollow"
|
||||||
|
>
|
||||||
|
<img src="{{#assetUrl cart-plus.svg }}" alt="Add To Cart" />
|
||||||
|
</a>
|
||||||
|
<a href="{{ url }}">
|
||||||
|
<img src="{{ thumbnail }}" alt="{{ title }}" />
|
||||||
|
</a>
|
||||||
|
<h2>
|
||||||
|
<a href="{{ url }}">{{ title }}</a>
|
||||||
|
</h2>
|
||||||
|
<p class="price">${{ price }}</p>
|
||||||
|
{{#if msrp}}
|
||||||
|
<p class="msrp">MSRP: ${{ msrp }}</p>
|
||||||
|
{{/if}}
|
||||||
|
{{#if savings}}
|
||||||
|
<p class="savings">(You save {{ savings }}%)</p>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
10
tpl/shop-top.tpl
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<section class="intro-slide" style="background-image: url({{ thumbnail }})">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<h1>{{ headline }}</h1>
|
||||||
|
<p>{{ intro_text }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
18
tpl/testimonial-block.tpl
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<div class="testimonial">
|
||||||
|
<div class="stars stars-{{rating}}"> </div>
|
||||||
|
<p class="quote">“{{ quote }}”</p>
|
||||||
|
<div class="person-details">
|
||||||
|
<div class="image-wrapper">
|
||||||
|
{{#if thumbnail}}
|
||||||
|
<img src="{{ thumbnail }}" alt="{{ title }}" />
|
||||||
|
{{else}}
|
||||||
|
<img src="{{#assetUrl lady-face.jpg }}" alt="{{ title }}" />
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="details">
|
||||||
|
<p class="name">{{ title }}</p>
|
||||||
|
<p class="position">{{ position }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
5
tpl/woocommerce-after-content.tpl
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
4
tpl/woocommerce-before-content.tpl
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<section class="woocommerce-wrapper">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
6
vendor/.htaccess
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# Apache 2.2
|
||||||
|
Order Allow,Deny
|
||||||
|
Deny from all
|
||||||
|
|
||||||
|
# Apache 2.4+
|
||||||
|
Require all denied
|
||||||
25
vendor/autoload.php
vendored
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// autoload.php @generated by Composer
|
||||||
|
|
||||||
|
if (PHP_VERSION_ID < 50600) {
|
||||||
|
if (!headers_sent()) {
|
||||||
|
header('HTTP/1.1 500 Internal Server Error');
|
||||||
|
}
|
||||||
|
$err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
|
||||||
|
if (!ini_get('display_errors')) {
|
||||||
|
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
|
||||||
|
fwrite(STDERR, $err);
|
||||||
|
} elseif (!headers_sent()) {
|
||||||
|
echo $err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
trigger_error(
|
||||||
|
$err,
|
||||||
|
E_USER_ERROR
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once __DIR__ . '/composer/autoload_real.php';
|
||||||
|
|
||||||
|
return ComposerAutoloaderInit3607194100d6f07e79a6cf21cb37ba8f::getLoader();
|
||||||
119
vendor/bin/getIcon
vendored
Executable file
@@ -0,0 +1,119 @@
|
|||||||
|
#!/usr/bin/env php
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Proxy PHP file generated by Composer
|
||||||
|
*
|
||||||
|
* This file includes the referenced bin path (../open-function-computers-llc/rad-theme-engine/bin/getIcon)
|
||||||
|
* using a stream wrapper to prevent the shebang from being output on PHP<8
|
||||||
|
*
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Composer;
|
||||||
|
|
||||||
|
$GLOBALS['_composer_bin_dir'] = __DIR__;
|
||||||
|
$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
|
||||||
|
|
||||||
|
if (PHP_VERSION_ID < 80000) {
|
||||||
|
if (!class_exists('Composer\BinProxyWrapper')) {
|
||||||
|
/**
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
final class BinProxyWrapper
|
||||||
|
{
|
||||||
|
private $handle;
|
||||||
|
private $position;
|
||||||
|
private $realpath;
|
||||||
|
|
||||||
|
public function stream_open($path, $mode, $options, &$opened_path)
|
||||||
|
{
|
||||||
|
// get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
|
||||||
|
$opened_path = substr($path, 17);
|
||||||
|
$this->realpath = realpath($opened_path) ?: $opened_path;
|
||||||
|
$opened_path = $this->realpath;
|
||||||
|
$this->handle = fopen($this->realpath, $mode);
|
||||||
|
$this->position = 0;
|
||||||
|
|
||||||
|
return (bool) $this->handle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stream_read($count)
|
||||||
|
{
|
||||||
|
$data = fread($this->handle, $count);
|
||||||
|
|
||||||
|
if ($this->position === 0) {
|
||||||
|
$data = preg_replace('{^#!.*\r?\n}', '', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->position += strlen($data);
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stream_cast($castAs)
|
||||||
|
{
|
||||||
|
return $this->handle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stream_close()
|
||||||
|
{
|
||||||
|
fclose($this->handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stream_lock($operation)
|
||||||
|
{
|
||||||
|
return $operation ? flock($this->handle, $operation) : true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stream_seek($offset, $whence)
|
||||||
|
{
|
||||||
|
if (0 === fseek($this->handle, $offset, $whence)) {
|
||||||
|
$this->position = ftell($this->handle);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stream_tell()
|
||||||
|
{
|
||||||
|
return $this->position;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stream_eof()
|
||||||
|
{
|
||||||
|
return feof($this->handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stream_stat()
|
||||||
|
{
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function stream_set_option($option, $arg1, $arg2)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function url_stat($path, $flags)
|
||||||
|
{
|
||||||
|
$path = substr($path, 17);
|
||||||
|
if (file_exists($path)) {
|
||||||
|
return stat($path);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
(function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
|
||||||
|
|| (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
|
||||||
|
) {
|
||||||
|
return include("phpvfscomposer://" . __DIR__ . '/..'.'/open-function-computers-llc/rad-theme-engine/bin/getIcon');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return include __DIR__ . '/..'.'/open-function-computers-llc/rad-theme-engine/bin/getIcon';
|
||||||
579
vendor/composer/ClassLoader.php
vendored
Normal file
@@ -0,0 +1,579 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of Composer.
|
||||||
|
*
|
||||||
|
* (c) Nils Adermann <naderman@naderman.de>
|
||||||
|
* Jordi Boggiano <j.boggiano@seld.be>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Composer\Autoload;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
|
||||||
|
*
|
||||||
|
* $loader = new \Composer\Autoload\ClassLoader();
|
||||||
|
*
|
||||||
|
* // register classes with namespaces
|
||||||
|
* $loader->add('Symfony\Component', __DIR__.'/component');
|
||||||
|
* $loader->add('Symfony', __DIR__.'/framework');
|
||||||
|
*
|
||||||
|
* // activate the autoloader
|
||||||
|
* $loader->register();
|
||||||
|
*
|
||||||
|
* // to enable searching the include path (eg. for PEAR packages)
|
||||||
|
* $loader->setUseIncludePath(true);
|
||||||
|
*
|
||||||
|
* In this example, if you try to use a class in the Symfony\Component
|
||||||
|
* namespace or one of its children (Symfony\Component\Console for instance),
|
||||||
|
* the autoloader will first look for the class under the component/
|
||||||
|
* directory, and it will then fallback to the framework/ directory if not
|
||||||
|
* found before giving up.
|
||||||
|
*
|
||||||
|
* This class is loosely based on the Symfony UniversalClassLoader.
|
||||||
|
*
|
||||||
|
* @author Fabien Potencier <fabien@symfony.com>
|
||||||
|
* @author Jordi Boggiano <j.boggiano@seld.be>
|
||||||
|
* @see https://www.php-fig.org/psr/psr-0/
|
||||||
|
* @see https://www.php-fig.org/psr/psr-4/
|
||||||
|
*/
|
||||||
|
class ClassLoader
|
||||||
|
{
|
||||||
|
/** @var \Closure(string):void */
|
||||||
|
private static $includeFile;
|
||||||
|
|
||||||
|
/** @var string|null */
|
||||||
|
private $vendorDir;
|
||||||
|
|
||||||
|
// PSR-4
|
||||||
|
/**
|
||||||
|
* @var array<string, array<string, int>>
|
||||||
|
*/
|
||||||
|
private $prefixLengthsPsr4 = array();
|
||||||
|
/**
|
||||||
|
* @var array<string, list<string>>
|
||||||
|
*/
|
||||||
|
private $prefixDirsPsr4 = array();
|
||||||
|
/**
|
||||||
|
* @var list<string>
|
||||||
|
*/
|
||||||
|
private $fallbackDirsPsr4 = array();
|
||||||
|
|
||||||
|
// PSR-0
|
||||||
|
/**
|
||||||
|
* List of PSR-0 prefixes
|
||||||
|
*
|
||||||
|
* Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2')))
|
||||||
|
*
|
||||||
|
* @var array<string, array<string, list<string>>>
|
||||||
|
*/
|
||||||
|
private $prefixesPsr0 = array();
|
||||||
|
/**
|
||||||
|
* @var list<string>
|
||||||
|
*/
|
||||||
|
private $fallbackDirsPsr0 = array();
|
||||||
|
|
||||||
|
/** @var bool */
|
||||||
|
private $useIncludePath = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array<string, string>
|
||||||
|
*/
|
||||||
|
private $classMap = array();
|
||||||
|
|
||||||
|
/** @var bool */
|
||||||
|
private $classMapAuthoritative = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array<string, bool>
|
||||||
|
*/
|
||||||
|
private $missingClasses = array();
|
||||||
|
|
||||||
|
/** @var string|null */
|
||||||
|
private $apcuPrefix;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array<string, self>
|
||||||
|
*/
|
||||||
|
private static $registeredLoaders = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string|null $vendorDir
|
||||||
|
*/
|
||||||
|
public function __construct($vendorDir = null)
|
||||||
|
{
|
||||||
|
$this->vendorDir = $vendorDir;
|
||||||
|
self::initializeIncludeClosure();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array<string, list<string>>
|
||||||
|
*/
|
||||||
|
public function getPrefixes()
|
||||||
|
{
|
||||||
|
if (!empty($this->prefixesPsr0)) {
|
||||||
|
return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
|
||||||
|
}
|
||||||
|
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array<string, list<string>>
|
||||||
|
*/
|
||||||
|
public function getPrefixesPsr4()
|
||||||
|
{
|
||||||
|
return $this->prefixDirsPsr4;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return list<string>
|
||||||
|
*/
|
||||||
|
public function getFallbackDirs()
|
||||||
|
{
|
||||||
|
return $this->fallbackDirsPsr0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return list<string>
|
||||||
|
*/
|
||||||
|
public function getFallbackDirsPsr4()
|
||||||
|
{
|
||||||
|
return $this->fallbackDirsPsr4;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array<string, string> Array of classname => path
|
||||||
|
*/
|
||||||
|
public function getClassMap()
|
||||||
|
{
|
||||||
|
return $this->classMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array<string, string> $classMap Class to filename map
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function addClassMap(array $classMap)
|
||||||
|
{
|
||||||
|
if ($this->classMap) {
|
||||||
|
$this->classMap = array_merge($this->classMap, $classMap);
|
||||||
|
} else {
|
||||||
|
$this->classMap = $classMap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers a set of PSR-0 directories for a given prefix, either
|
||||||
|
* appending or prepending to the ones previously set for this prefix.
|
||||||
|
*
|
||||||
|
* @param string $prefix The prefix
|
||||||
|
* @param list<string>|string $paths The PSR-0 root directories
|
||||||
|
* @param bool $prepend Whether to prepend the directories
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function add($prefix, $paths, $prepend = false)
|
||||||
|
{
|
||||||
|
$paths = (array) $paths;
|
||||||
|
if (!$prefix) {
|
||||||
|
if ($prepend) {
|
||||||
|
$this->fallbackDirsPsr0 = array_merge(
|
||||||
|
$paths,
|
||||||
|
$this->fallbackDirsPsr0
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$this->fallbackDirsPsr0 = array_merge(
|
||||||
|
$this->fallbackDirsPsr0,
|
||||||
|
$paths
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$first = $prefix[0];
|
||||||
|
if (!isset($this->prefixesPsr0[$first][$prefix])) {
|
||||||
|
$this->prefixesPsr0[$first][$prefix] = $paths;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ($prepend) {
|
||||||
|
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
||||||
|
$paths,
|
||||||
|
$this->prefixesPsr0[$first][$prefix]
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
||||||
|
$this->prefixesPsr0[$first][$prefix],
|
||||||
|
$paths
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers a set of PSR-4 directories for a given namespace, either
|
||||||
|
* appending or prepending to the ones previously set for this namespace.
|
||||||
|
*
|
||||||
|
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||||
|
* @param list<string>|string $paths The PSR-4 base directories
|
||||||
|
* @param bool $prepend Whether to prepend the directories
|
||||||
|
*
|
||||||
|
* @throws \InvalidArgumentException
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function addPsr4($prefix, $paths, $prepend = false)
|
||||||
|
{
|
||||||
|
$paths = (array) $paths;
|
||||||
|
if (!$prefix) {
|
||||||
|
// Register directories for the root namespace.
|
||||||
|
if ($prepend) {
|
||||||
|
$this->fallbackDirsPsr4 = array_merge(
|
||||||
|
$paths,
|
||||||
|
$this->fallbackDirsPsr4
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$this->fallbackDirsPsr4 = array_merge(
|
||||||
|
$this->fallbackDirsPsr4,
|
||||||
|
$paths
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
|
||||||
|
// Register directories for a new namespace.
|
||||||
|
$length = strlen($prefix);
|
||||||
|
if ('\\' !== $prefix[$length - 1]) {
|
||||||
|
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
||||||
|
}
|
||||||
|
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
||||||
|
$this->prefixDirsPsr4[$prefix] = $paths;
|
||||||
|
} elseif ($prepend) {
|
||||||
|
// Prepend directories for an already registered namespace.
|
||||||
|
$this->prefixDirsPsr4[$prefix] = array_merge(
|
||||||
|
$paths,
|
||||||
|
$this->prefixDirsPsr4[$prefix]
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
// Append directories for an already registered namespace.
|
||||||
|
$this->prefixDirsPsr4[$prefix] = array_merge(
|
||||||
|
$this->prefixDirsPsr4[$prefix],
|
||||||
|
$paths
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers a set of PSR-0 directories for a given prefix,
|
||||||
|
* replacing any others previously set for this prefix.
|
||||||
|
*
|
||||||
|
* @param string $prefix The prefix
|
||||||
|
* @param list<string>|string $paths The PSR-0 base directories
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function set($prefix, $paths)
|
||||||
|
{
|
||||||
|
if (!$prefix) {
|
||||||
|
$this->fallbackDirsPsr0 = (array) $paths;
|
||||||
|
} else {
|
||||||
|
$this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers a set of PSR-4 directories for a given namespace,
|
||||||
|
* replacing any others previously set for this namespace.
|
||||||
|
*
|
||||||
|
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||||
|
* @param list<string>|string $paths The PSR-4 base directories
|
||||||
|
*
|
||||||
|
* @throws \InvalidArgumentException
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setPsr4($prefix, $paths)
|
||||||
|
{
|
||||||
|
if (!$prefix) {
|
||||||
|
$this->fallbackDirsPsr4 = (array) $paths;
|
||||||
|
} else {
|
||||||
|
$length = strlen($prefix);
|
||||||
|
if ('\\' !== $prefix[$length - 1]) {
|
||||||
|
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
||||||
|
}
|
||||||
|
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
||||||
|
$this->prefixDirsPsr4[$prefix] = (array) $paths;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Turns on searching the include path for class files.
|
||||||
|
*
|
||||||
|
* @param bool $useIncludePath
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setUseIncludePath($useIncludePath)
|
||||||
|
{
|
||||||
|
$this->useIncludePath = $useIncludePath;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Can be used to check if the autoloader uses the include path to check
|
||||||
|
* for classes.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function getUseIncludePath()
|
||||||
|
{
|
||||||
|
return $this->useIncludePath;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Turns off searching the prefix and fallback directories for classes
|
||||||
|
* that have not been registered with the class map.
|
||||||
|
*
|
||||||
|
* @param bool $classMapAuthoritative
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setClassMapAuthoritative($classMapAuthoritative)
|
||||||
|
{
|
||||||
|
$this->classMapAuthoritative = $classMapAuthoritative;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Should class lookup fail if not found in the current class map?
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function isClassMapAuthoritative()
|
||||||
|
{
|
||||||
|
return $this->classMapAuthoritative;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
|
||||||
|
*
|
||||||
|
* @param string|null $apcuPrefix
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setApcuPrefix($apcuPrefix)
|
||||||
|
{
|
||||||
|
$this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The APCu prefix in use, or null if APCu caching is not enabled.
|
||||||
|
*
|
||||||
|
* @return string|null
|
||||||
|
*/
|
||||||
|
public function getApcuPrefix()
|
||||||
|
{
|
||||||
|
return $this->apcuPrefix;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers this instance as an autoloader.
|
||||||
|
*
|
||||||
|
* @param bool $prepend Whether to prepend the autoloader or not
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function register($prepend = false)
|
||||||
|
{
|
||||||
|
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
||||||
|
|
||||||
|
if (null === $this->vendorDir) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($prepend) {
|
||||||
|
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
|
||||||
|
} else {
|
||||||
|
unset(self::$registeredLoaders[$this->vendorDir]);
|
||||||
|
self::$registeredLoaders[$this->vendorDir] = $this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unregisters this instance as an autoloader.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function unregister()
|
||||||
|
{
|
||||||
|
spl_autoload_unregister(array($this, 'loadClass'));
|
||||||
|
|
||||||
|
if (null !== $this->vendorDir) {
|
||||||
|
unset(self::$registeredLoaders[$this->vendorDir]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Loads the given class or interface.
|
||||||
|
*
|
||||||
|
* @param string $class The name of the class
|
||||||
|
* @return true|null True if loaded, null otherwise
|
||||||
|
*/
|
||||||
|
public function loadClass($class)
|
||||||
|
{
|
||||||
|
if ($file = $this->findFile($class)) {
|
||||||
|
$includeFile = self::$includeFile;
|
||||||
|
$includeFile($file);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds the path to the file where the class is defined.
|
||||||
|
*
|
||||||
|
* @param string $class The name of the class
|
||||||
|
*
|
||||||
|
* @return string|false The path if found, false otherwise
|
||||||
|
*/
|
||||||
|
public function findFile($class)
|
||||||
|
{
|
||||||
|
// class map lookup
|
||||||
|
if (isset($this->classMap[$class])) {
|
||||||
|
return $this->classMap[$class];
|
||||||
|
}
|
||||||
|
if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (null !== $this->apcuPrefix) {
|
||||||
|
$file = apcu_fetch($this->apcuPrefix.$class, $hit);
|
||||||
|
if ($hit) {
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$file = $this->findFileWithExtension($class, '.php');
|
||||||
|
|
||||||
|
// Search for Hack files if we are running on HHVM
|
||||||
|
if (false === $file && defined('HHVM_VERSION')) {
|
||||||
|
$file = $this->findFileWithExtension($class, '.hh');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (null !== $this->apcuPrefix) {
|
||||||
|
apcu_add($this->apcuPrefix.$class, $file);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (false === $file) {
|
||||||
|
// Remember that this class does not exist.
|
||||||
|
$this->missingClasses[$class] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the currently registered loaders keyed by their corresponding vendor directories.
|
||||||
|
*
|
||||||
|
* @return array<string, self>
|
||||||
|
*/
|
||||||
|
public static function getRegisteredLoaders()
|
||||||
|
{
|
||||||
|
return self::$registeredLoaders;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $class
|
||||||
|
* @param string $ext
|
||||||
|
* @return string|false
|
||||||
|
*/
|
||||||
|
private function findFileWithExtension($class, $ext)
|
||||||
|
{
|
||||||
|
// PSR-4 lookup
|
||||||
|
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
|
||||||
|
|
||||||
|
$first = $class[0];
|
||||||
|
if (isset($this->prefixLengthsPsr4[$first])) {
|
||||||
|
$subPath = $class;
|
||||||
|
while (false !== $lastPos = strrpos($subPath, '\\')) {
|
||||||
|
$subPath = substr($subPath, 0, $lastPos);
|
||||||
|
$search = $subPath . '\\';
|
||||||
|
if (isset($this->prefixDirsPsr4[$search])) {
|
||||||
|
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
|
||||||
|
foreach ($this->prefixDirsPsr4[$search] as $dir) {
|
||||||
|
if (file_exists($file = $dir . $pathEnd)) {
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// PSR-4 fallback dirs
|
||||||
|
foreach ($this->fallbackDirsPsr4 as $dir) {
|
||||||
|
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// PSR-0 lookup
|
||||||
|
if (false !== $pos = strrpos($class, '\\')) {
|
||||||
|
// namespaced class name
|
||||||
|
$logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
|
||||||
|
. strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
|
||||||
|
} else {
|
||||||
|
// PEAR-like class name
|
||||||
|
$logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($this->prefixesPsr0[$first])) {
|
||||||
|
foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
|
||||||
|
if (0 === strpos($class, $prefix)) {
|
||||||
|
foreach ($dirs as $dir) {
|
||||||
|
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// PSR-0 fallback dirs
|
||||||
|
foreach ($this->fallbackDirsPsr0 as $dir) {
|
||||||
|
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// PSR-0 include paths.
|
||||||
|
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
private static function initializeIncludeClosure()
|
||||||
|
{
|
||||||
|
if (self::$includeFile !== null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Scope isolated include.
|
||||||
|
*
|
||||||
|
* Prevents access to $this/self from included files.
|
||||||
|
*
|
||||||
|
* @param string $file
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
self::$includeFile = \Closure::bind(static function($file) {
|
||||||
|
include $file;
|
||||||
|
}, null, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
359
vendor/composer/InstalledVersions.php
vendored
Normal file
@@ -0,0 +1,359 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of Composer.
|
||||||
|
*
|
||||||
|
* (c) Nils Adermann <naderman@naderman.de>
|
||||||
|
* Jordi Boggiano <j.boggiano@seld.be>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Composer;
|
||||||
|
|
||||||
|
use Composer\Autoload\ClassLoader;
|
||||||
|
use Composer\Semver\VersionParser;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class is copied in every Composer installed project and available to all
|
||||||
|
*
|
||||||
|
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
||||||
|
*
|
||||||
|
* To require its presence, you can require `composer-runtime-api ^2.0`
|
||||||
|
*
|
||||||
|
* @final
|
||||||
|
*/
|
||||||
|
class InstalledVersions
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var mixed[]|null
|
||||||
|
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
|
||||||
|
*/
|
||||||
|
private static $installed;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var bool|null
|
||||||
|
*/
|
||||||
|
private static $canGetVendors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array[]
|
||||||
|
* @psalm-var array<string, array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
|
||||||
|
*/
|
||||||
|
private static $installedByVendor = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a list of all package names which are present, either by being installed, replaced or provided
|
||||||
|
*
|
||||||
|
* @return string[]
|
||||||
|
* @psalm-return list<string>
|
||||||
|
*/
|
||||||
|
public static function getInstalledPackages()
|
||||||
|
{
|
||||||
|
$packages = array();
|
||||||
|
foreach (self::getInstalled() as $installed) {
|
||||||
|
$packages[] = array_keys($installed['versions']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (1 === \count($packages)) {
|
||||||
|
return $packages[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a list of all package names with a specific type e.g. 'library'
|
||||||
|
*
|
||||||
|
* @param string $type
|
||||||
|
* @return string[]
|
||||||
|
* @psalm-return list<string>
|
||||||
|
*/
|
||||||
|
public static function getInstalledPackagesByType($type)
|
||||||
|
{
|
||||||
|
$packagesByType = array();
|
||||||
|
|
||||||
|
foreach (self::getInstalled() as $installed) {
|
||||||
|
foreach ($installed['versions'] as $name => $package) {
|
||||||
|
if (isset($package['type']) && $package['type'] === $type) {
|
||||||
|
$packagesByType[] = $name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $packagesByType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks whether the given package is installed
|
||||||
|
*
|
||||||
|
* This also returns true if the package name is provided or replaced by another package
|
||||||
|
*
|
||||||
|
* @param string $packageName
|
||||||
|
* @param bool $includeDevRequirements
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public static function isInstalled($packageName, $includeDevRequirements = true)
|
||||||
|
{
|
||||||
|
foreach (self::getInstalled() as $installed) {
|
||||||
|
if (isset($installed['versions'][$packageName])) {
|
||||||
|
return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks whether the given package satisfies a version constraint
|
||||||
|
*
|
||||||
|
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
|
||||||
|
*
|
||||||
|
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
|
||||||
|
*
|
||||||
|
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
|
||||||
|
* @param string $packageName
|
||||||
|
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
||||||
|
{
|
||||||
|
$constraint = $parser->parseConstraints((string) $constraint);
|
||||||
|
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
||||||
|
|
||||||
|
return $provided->matches($constraint);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a version constraint representing all the range(s) which are installed for a given package
|
||||||
|
*
|
||||||
|
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
|
||||||
|
* whether a given version of a package is installed, and not just whether it exists
|
||||||
|
*
|
||||||
|
* @param string $packageName
|
||||||
|
* @return string Version constraint usable with composer/semver
|
||||||
|
*/
|
||||||
|
public static function getVersionRanges($packageName)
|
||||||
|
{
|
||||||
|
foreach (self::getInstalled() as $installed) {
|
||||||
|
if (!isset($installed['versions'][$packageName])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$ranges = array();
|
||||||
|
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||||
|
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
||||||
|
}
|
||||||
|
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
||||||
|
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
||||||
|
}
|
||||||
|
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
||||||
|
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
||||||
|
}
|
||||||
|
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
||||||
|
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
||||||
|
}
|
||||||
|
|
||||||
|
return implode(' || ', $ranges);
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $packageName
|
||||||
|
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||||
|
*/
|
||||||
|
public static function getVersion($packageName)
|
||||||
|
{
|
||||||
|
foreach (self::getInstalled() as $installed) {
|
||||||
|
if (!isset($installed['versions'][$packageName])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($installed['versions'][$packageName]['version'])) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $installed['versions'][$packageName]['version'];
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $packageName
|
||||||
|
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||||
|
*/
|
||||||
|
public static function getPrettyVersion($packageName)
|
||||||
|
{
|
||||||
|
foreach (self::getInstalled() as $installed) {
|
||||||
|
if (!isset($installed['versions'][$packageName])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $installed['versions'][$packageName]['pretty_version'];
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $packageName
|
||||||
|
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
|
||||||
|
*/
|
||||||
|
public static function getReference($packageName)
|
||||||
|
{
|
||||||
|
foreach (self::getInstalled() as $installed) {
|
||||||
|
if (!isset($installed['versions'][$packageName])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($installed['versions'][$packageName]['reference'])) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $installed['versions'][$packageName]['reference'];
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $packageName
|
||||||
|
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
|
||||||
|
*/
|
||||||
|
public static function getInstallPath($packageName)
|
||||||
|
{
|
||||||
|
foreach (self::getInstalled() as $installed) {
|
||||||
|
if (!isset($installed['versions'][$packageName])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
* @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}
|
||||||
|
*/
|
||||||
|
public static function getRootPackage()
|
||||||
|
{
|
||||||
|
$installed = self::getInstalled();
|
||||||
|
|
||||||
|
return $installed[0]['root'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the raw installed.php data for custom implementations
|
||||||
|
*
|
||||||
|
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
||||||
|
* @return array[]
|
||||||
|
* @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}
|
||||||
|
*/
|
||||||
|
public static function getRawData()
|
||||||
|
{
|
||||||
|
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
|
||||||
|
|
||||||
|
if (null === self::$installed) {
|
||||||
|
// only require the installed.php file if this file is loaded from its dumped location,
|
||||||
|
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||||
|
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||||
|
self::$installed = include __DIR__ . '/installed.php';
|
||||||
|
} else {
|
||||||
|
self::$installed = array();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return self::$installed;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
||||||
|
*
|
||||||
|
* @return array[]
|
||||||
|
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
|
||||||
|
*/
|
||||||
|
public static function getAllRawData()
|
||||||
|
{
|
||||||
|
return self::getInstalled();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lets you reload the static array from another file
|
||||||
|
*
|
||||||
|
* This is only useful for complex integrations in which a project needs to use
|
||||||
|
* this class but then also needs to execute another project's autoloader in process,
|
||||||
|
* and wants to ensure both projects have access to their version of installed.php.
|
||||||
|
*
|
||||||
|
* A typical case would be PHPUnit, where it would need to make sure it reads all
|
||||||
|
* the data it needs from this class, then call reload() with
|
||||||
|
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
|
||||||
|
* the project in which it runs can then also use this class safely, without
|
||||||
|
* interference between PHPUnit's dependencies and the project's dependencies.
|
||||||
|
*
|
||||||
|
* @param array[] $data A vendor/composer/installed.php data set
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $data
|
||||||
|
*/
|
||||||
|
public static function reload($data)
|
||||||
|
{
|
||||||
|
self::$installed = $data;
|
||||||
|
self::$installedByVendor = array();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array[]
|
||||||
|
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
|
||||||
|
*/
|
||||||
|
private static function getInstalled()
|
||||||
|
{
|
||||||
|
if (null === self::$canGetVendors) {
|
||||||
|
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
||||||
|
}
|
||||||
|
|
||||||
|
$installed = array();
|
||||||
|
|
||||||
|
if (self::$canGetVendors) {
|
||||||
|
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
||||||
|
if (isset(self::$installedByVendor[$vendorDir])) {
|
||||||
|
$installed[] = self::$installedByVendor[$vendorDir];
|
||||||
|
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
||||||
|
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
|
||||||
|
$required = require $vendorDir.'/composer/installed.php';
|
||||||
|
$installed[] = self::$installedByVendor[$vendorDir] = $required;
|
||||||
|
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
||||||
|
self::$installed = $installed[count($installed) - 1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (null === self::$installed) {
|
||||||
|
// only require the installed.php file if this file is loaded from its dumped location,
|
||||||
|
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||||
|
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||||
|
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
|
||||||
|
$required = require __DIR__ . '/installed.php';
|
||||||
|
self::$installed = $required;
|
||||||
|
} else {
|
||||||
|
self::$installed = array();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (self::$installed !== array()) {
|
||||||
|
$installed[] = self::$installed;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $installed;
|
||||||
|
}
|
||||||
|
}
|
||||||
21
vendor/composer/LICENSE
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
Copyright (c) Nils Adermann, Jordi Boggiano
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is furnished
|
||||||
|
to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
|
||||||
10
vendor/composer/autoload_classmap.php
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// autoload_classmap.php @generated by Composer
|
||||||
|
|
||||||
|
$vendorDir = dirname(__DIR__);
|
||||||
|
$baseDir = dirname($vendorDir);
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
|
||||||
|
);
|
||||||
10
vendor/composer/autoload_namespaces.php
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// autoload_namespaces.php @generated by Composer
|
||||||
|
|
||||||
|
$vendorDir = dirname(__DIR__);
|
||||||
|
$baseDir = dirname($vendorDir);
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'Handlebars' => array($vendorDir . '/salesforce/handlebars-php/src'),
|
||||||
|
);
|
||||||
12
vendor/composer/autoload_psr4.php
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// autoload_psr4.php @generated by Composer
|
||||||
|
|
||||||
|
$vendorDir = dirname(__DIR__);
|
||||||
|
$baseDir = dirname($vendorDir);
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'ofc\\' => array($vendorDir . '/open-function-computers-llc/rad-theme-engine/src'),
|
||||||
|
'PostTypes\\' => array($vendorDir . '/jjgrainger/posttypes/src'),
|
||||||
|
'Helpers\\' => array($baseDir . '/helpers'),
|
||||||
|
);
|
||||||
38
vendor/composer/autoload_real.php
vendored
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// autoload_real.php @generated by Composer
|
||||||
|
|
||||||
|
class ComposerAutoloaderInit3607194100d6f07e79a6cf21cb37ba8f
|
||||||
|
{
|
||||||
|
private static $loader;
|
||||||
|
|
||||||
|
public static function loadClassLoader($class)
|
||||||
|
{
|
||||||
|
if ('Composer\Autoload\ClassLoader' === $class) {
|
||||||
|
require __DIR__ . '/ClassLoader.php';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Composer\Autoload\ClassLoader
|
||||||
|
*/
|
||||||
|
public static function getLoader()
|
||||||
|
{
|
||||||
|
if (null !== self::$loader) {
|
||||||
|
return self::$loader;
|
||||||
|
}
|
||||||
|
|
||||||
|
require __DIR__ . '/platform_check.php';
|
||||||
|
|
||||||
|
spl_autoload_register(array('ComposerAutoloaderInit3607194100d6f07e79a6cf21cb37ba8f', 'loadClassLoader'), true, true);
|
||||||
|
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
|
||||||
|
spl_autoload_unregister(array('ComposerAutoloaderInit3607194100d6f07e79a6cf21cb37ba8f', 'loadClassLoader'));
|
||||||
|
|
||||||
|
require __DIR__ . '/autoload_static.php';
|
||||||
|
call_user_func(\Composer\Autoload\ComposerStaticInit3607194100d6f07e79a6cf21cb37ba8f::getInitializer($loader));
|
||||||
|
|
||||||
|
$loader->register(true);
|
||||||
|
|
||||||
|
return $loader;
|
||||||
|
}
|
||||||
|
}
|
||||||
63
vendor/composer/autoload_static.php
vendored
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// autoload_static.php @generated by Composer
|
||||||
|
|
||||||
|
namespace Composer\Autoload;
|
||||||
|
|
||||||
|
class ComposerStaticInit3607194100d6f07e79a6cf21cb37ba8f
|
||||||
|
{
|
||||||
|
public static $prefixLengthsPsr4 = array (
|
||||||
|
'o' =>
|
||||||
|
array (
|
||||||
|
'ofc\\' => 4,
|
||||||
|
),
|
||||||
|
'P' =>
|
||||||
|
array (
|
||||||
|
'PostTypes\\' => 10,
|
||||||
|
),
|
||||||
|
'H' =>
|
||||||
|
array (
|
||||||
|
'Helpers\\' => 8,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
public static $prefixDirsPsr4 = array (
|
||||||
|
'ofc\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/open-function-computers-llc/rad-theme-engine/src',
|
||||||
|
),
|
||||||
|
'PostTypes\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/jjgrainger/posttypes/src',
|
||||||
|
),
|
||||||
|
'Helpers\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/../..' . '/helpers',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
public static $prefixesPsr0 = array (
|
||||||
|
'H' =>
|
||||||
|
array (
|
||||||
|
'Handlebars' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/salesforce/handlebars-php/src',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
public static $classMap = array (
|
||||||
|
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
|
||||||
|
);
|
||||||
|
|
||||||
|
public static function getInitializer(ClassLoader $loader)
|
||||||
|
{
|
||||||
|
return \Closure::bind(function () use ($loader) {
|
||||||
|
$loader->prefixLengthsPsr4 = ComposerStaticInit3607194100d6f07e79a6cf21cb37ba8f::$prefixLengthsPsr4;
|
||||||
|
$loader->prefixDirsPsr4 = ComposerStaticInit3607194100d6f07e79a6cf21cb37ba8f::$prefixDirsPsr4;
|
||||||
|
$loader->prefixesPsr0 = ComposerStaticInit3607194100d6f07e79a6cf21cb37ba8f::$prefixesPsr0;
|
||||||
|
$loader->classMap = ComposerStaticInit3607194100d6f07e79a6cf21cb37ba8f::$classMap;
|
||||||
|
|
||||||
|
}, null, ClassLoader::class);
|
||||||
|
}
|
||||||
|
}
|
||||||
168
vendor/composer/installed.json
vendored
Normal file
@@ -0,0 +1,168 @@
|
|||||||
|
{
|
||||||
|
"packages": [
|
||||||
|
{
|
||||||
|
"name": "jjgrainger/posttypes",
|
||||||
|
"version": "v2.2.1",
|
||||||
|
"version_normalized": "2.2.1.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/jjgrainger/PostTypes.git",
|
||||||
|
"reference": "2f20f628ec44404960df4b1ae5d623397a66aec1"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/jjgrainger/PostTypes/zipball/2f20f628ec44404960df4b1ae5d623397a66aec1",
|
||||||
|
"reference": "2f20f628ec44404960df4b1ae5d623397a66aec1",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=7.2"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "^9.6",
|
||||||
|
"squizlabs/php_codesniffer": "3.*"
|
||||||
|
},
|
||||||
|
"time": "2024-10-13T17:23:48+00:00",
|
||||||
|
"type": "library",
|
||||||
|
"installation-source": "dist",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"PostTypes\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Joe Grainger",
|
||||||
|
"homepage": "https://jjgrainger.co.uk"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Simple WordPress custom post types.",
|
||||||
|
"homepage": "https://posttypes.jjgrainger.co.uk",
|
||||||
|
"keywords": [
|
||||||
|
"post-types",
|
||||||
|
"wordpress"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/jjgrainger/posttypes/issues",
|
||||||
|
"source": "https://github.com/jjgrainger/posttypes"
|
||||||
|
},
|
||||||
|
"install-path": "../jjgrainger/posttypes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "open-function-computers-llc/rad-theme-engine",
|
||||||
|
"version": "v1.0.34",
|
||||||
|
"version_normalized": "1.0.34.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/open-function-computers-llc/rad-theme-engine.git",
|
||||||
|
"reference": "c0b814bdd0ee1f093a051ed2e78efdf8c1f4f94e"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/open-function-computers-llc/rad-theme-engine/zipball/c0b814bdd0ee1f093a051ed2e78efdf8c1f4f94e",
|
||||||
|
"reference": "c0b814bdd0ee1f093a051ed2e78efdf8c1f4f94e",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"jjgrainger/posttypes": "^2.1",
|
||||||
|
"php": ">=7.4",
|
||||||
|
"salesforce/handlebars-php": "^2.3"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "^9.5"
|
||||||
|
},
|
||||||
|
"time": "2025-05-20T21:03:45+00:00",
|
||||||
|
"bin": [
|
||||||
|
"bin/getIcon"
|
||||||
|
],
|
||||||
|
"type": "library",
|
||||||
|
"installation-source": "dist",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"ofc\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"description": "A suite of classes to make WordPress theme development cleaner",
|
||||||
|
"keywords": [
|
||||||
|
"handlebars",
|
||||||
|
"theme",
|
||||||
|
"wordpress"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/open-function-computers-llc/rad-theme-engine/issues",
|
||||||
|
"source": "https://github.com/open-function-computers-llc/rad-theme-engine/tree/v1.0.34"
|
||||||
|
},
|
||||||
|
"install-path": "../open-function-computers-llc/rad-theme-engine"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "salesforce/handlebars-php",
|
||||||
|
"version": "2.3.0",
|
||||||
|
"version_normalized": "2.3.0.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/salesforce/handlebars-php.git",
|
||||||
|
"reference": "59fc47c7b2701659cb483d0f3461c4f712693b2b"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/salesforce/handlebars-php/zipball/59fc47c7b2701659cb483d0f3461c4f712693b2b",
|
||||||
|
"reference": "59fc47c7b2701659cb483d0f3461c4f712693b2b",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.4.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "^4"
|
||||||
|
},
|
||||||
|
"time": "2020-06-08T17:23:52+00:00",
|
||||||
|
"type": "library",
|
||||||
|
"installation-source": "dist",
|
||||||
|
"autoload": {
|
||||||
|
"psr-0": {
|
||||||
|
"Handlebars": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "fzerorubigd",
|
||||||
|
"email": "fzerorubigd@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Behrooz Shabani (everplays)",
|
||||||
|
"email": "everplays@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Mardix",
|
||||||
|
"homepage": "https://github.com/mardix"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Handlebars processor for php",
|
||||||
|
"homepage": "http://www.github.com/salesforce/handlebars-php",
|
||||||
|
"keywords": [
|
||||||
|
"handlebars",
|
||||||
|
"mustache",
|
||||||
|
"templating"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/salesforce/handlebars-php/issues",
|
||||||
|
"source": "https://github.com/salesforce/handlebars-php/tree/2.3.0"
|
||||||
|
},
|
||||||
|
"install-path": "../salesforce/handlebars-php"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"dev-package-names": []
|
||||||
|
}
|
||||||
50
vendor/composer/installed.php
vendored
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
<?php return array(
|
||||||
|
'root' => array(
|
||||||
|
'name' => 'open-function-computers-llc/wp-theme',
|
||||||
|
'pretty_version' => 'dev-main',
|
||||||
|
'version' => 'dev-main',
|
||||||
|
'reference' => 'c074a5ef18d6702ae4abe09fa1289fc93726117d',
|
||||||
|
'type' => 'library',
|
||||||
|
'install_path' => __DIR__ . '/../../',
|
||||||
|
'aliases' => array(),
|
||||||
|
'dev' => true,
|
||||||
|
),
|
||||||
|
'versions' => array(
|
||||||
|
'jjgrainger/posttypes' => array(
|
||||||
|
'pretty_version' => 'v2.2.1',
|
||||||
|
'version' => '2.2.1.0',
|
||||||
|
'reference' => '2f20f628ec44404960df4b1ae5d623397a66aec1',
|
||||||
|
'type' => 'library',
|
||||||
|
'install_path' => __DIR__ . '/../jjgrainger/posttypes',
|
||||||
|
'aliases' => array(),
|
||||||
|
'dev_requirement' => false,
|
||||||
|
),
|
||||||
|
'open-function-computers-llc/rad-theme-engine' => array(
|
||||||
|
'pretty_version' => 'v1.0.34',
|
||||||
|
'version' => '1.0.34.0',
|
||||||
|
'reference' => 'c0b814bdd0ee1f093a051ed2e78efdf8c1f4f94e',
|
||||||
|
'type' => 'library',
|
||||||
|
'install_path' => __DIR__ . '/../open-function-computers-llc/rad-theme-engine',
|
||||||
|
'aliases' => array(),
|
||||||
|
'dev_requirement' => false,
|
||||||
|
),
|
||||||
|
'open-function-computers-llc/wp-theme' => array(
|
||||||
|
'pretty_version' => 'dev-main',
|
||||||
|
'version' => 'dev-main',
|
||||||
|
'reference' => 'c074a5ef18d6702ae4abe09fa1289fc93726117d',
|
||||||
|
'type' => 'library',
|
||||||
|
'install_path' => __DIR__ . '/../../',
|
||||||
|
'aliases' => array(),
|
||||||
|
'dev_requirement' => false,
|
||||||
|
),
|
||||||
|
'salesforce/handlebars-php' => array(
|
||||||
|
'pretty_version' => '2.3.0',
|
||||||
|
'version' => '2.3.0.0',
|
||||||
|
'reference' => '59fc47c7b2701659cb483d0f3461c4f712693b2b',
|
||||||
|
'type' => 'library',
|
||||||
|
'install_path' => __DIR__ . '/../salesforce/handlebars-php',
|
||||||
|
'aliases' => array(),
|
||||||
|
'dev_requirement' => false,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
26
vendor/composer/platform_check.php
vendored
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// platform_check.php @generated by Composer
|
||||||
|
|
||||||
|
$issues = array();
|
||||||
|
|
||||||
|
if (!(PHP_VERSION_ID >= 70400)) {
|
||||||
|
$issues[] = 'Your Composer dependencies require a PHP version ">= 7.4.0". You are running ' . PHP_VERSION . '.';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($issues) {
|
||||||
|
if (!headers_sent()) {
|
||||||
|
header('HTTP/1.1 500 Internal Server Error');
|
||||||
|
}
|
||||||
|
if (!ini_get('display_errors')) {
|
||||||
|
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
|
||||||
|
fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
|
||||||
|
} elseif (!headers_sent()) {
|
||||||
|
echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
trigger_error(
|
||||||
|
'Composer detected issues in your platform: ' . implode(' ', $issues),
|
||||||
|
E_USER_ERROR
|
||||||
|
);
|
||||||
|
}
|
||||||
1
vendor/jjgrainger/posttypes/.gitattributes
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
/examples export-ignore
|
||||||
3
vendor/jjgrainger/posttypes/.gitbook.yml
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
root: ./docs/
|
||||||
|
structure:
|
||||||
|
readme: ../README.md
|
||||||