commit e2a4c0fa5bbaba32b2ba3b81133637b6d10b4f95 Author: pmoreno.rodriguez <60596353+pmoreno-rodriguez@users.noreply.github.com> Date: Fri Feb 4 07:12:18 2022 +0100 Initial commit diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..034a322 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,14 @@ +# v1.0.0 +## 05/12/2021 + +1. [](#new) + * Drop down menu functionality + * Fixed autoescaping in all twig templates + * Added slidedown functionality for sidebar menu with JQuery + * Full translation English and Spanish for administration and frontend + * Added Back-to-Top button + * Added Offline template + * Added option to choose the number of miniposts will be showed in sidebar (in Theme options) + * Added the order option in the blog item to order the miniposts as you want + * Add shadown to header + * Added avatarImage and subtitle options in blueprints diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..60cafa1 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,103 @@ +## creative commons + +# Attribution 3.0 Unported + +CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. + +*License* + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +### 1. Definitions + +a. __"Adaptation"__ means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. + +b. __"Collection"__ means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. + +c. __"Distribute"__ means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership. + +d. __"Licensor"__ means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. + +e. __"Original Author""__ means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. + +f. __"Work"__ means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. + +g. __"You"__ means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. + +h. __"Publicly Perform"__ means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. + +i. __"Reproduce"__ means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. + +### 2. Fair Dealing Rights + +Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. + +### 3. License Grant + +Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + +a. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; + +b. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; + +c. to Distribute and Publicly Perform the Work including as incorporated in Collections; and, + +d. to Distribute and Publicly Perform Adaptations. + +e. For the avoidance of doubt: + + 1. __Non-waivable Compulsory License Schemes.__ In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; + + 2. __Waivable Compulsory License Schemes.__ In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and, + + 3. __Voluntary License Schemes.__ The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License. + +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved. + +### 4. Restrictions + +The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + +a. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(b), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(b), as requested. + +b. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4 (b) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. + +c. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. + +### 5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +### 6. Limitation on Liability + +EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +### 7. Termination + +a. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. + +b. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. + +### 8. Miscellaneous + +a. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. + +b. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. + +c. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. + +d. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. + +e. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. + +f. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. + +``` +Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor. + +Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, Creative Commons does not authorize the use by either party of the trademark "Creative Commons" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time. For the avoidance of doubt, this trademark restriction does not form part of this License. + +Creative Commons may be contacted at https://creativecommons.org/. +``` diff --git a/README.md b/README.md new file mode 100644 index 0000000..bfed76d --- /dev/null +++ b/README.md @@ -0,0 +1,50 @@ +# Future Theme for Grav CMS + +Future Imperfect theme by HTML5UP ported from scratch to Grav. Version 2021 + +![future_screenshot](https://user-images.githubusercontent.com/60596353/139574049-72553855-d447-4405-a364-c39f6eb8665c.png) + +Future Imperfect by HTML5UP, features a clean, minimalistic design, styling for all basic page elements and HTML5/CSS3 code designed for quick and easy customization. + +# Features +Redesigned from scratch (version 2021) + +- HTML5 and CSS3 +- Fully Responsive +- Microdata for blogs +- ARIA accessibility conformance +- Various templates for presenting your content +- Full dropdown menu integrated in menu bar and sidebar. +- Styling for all basic page elements +- Styling for various modules +- Cross browser compatible +- Dynamic avatar images based on author +- ~~Sharing buttons for Facebook and Twitter with share count.~~ +- Randomised page content in sidebar +- Top content pages in sidebar +- Fully responsive with full-page mobile navigation +- SCSS based CSS source files for easy customization +- Blueprints for Footer, Slogan and Social icons. +- Full Portfolio template with Glightbox library + +# Supported Page Templates +- Default view template +- Error view template +- Blog view template +- Blog item view template +- Single view template +- Portfolio view template +- Form view template +- Modular view templates: + - Features Modular view template + - Banner Modular view template + - Contact Modular view template + + +# Installation + +Installing the Future 2021 theme can be done in one of two ways. Our GPM (Grav Package Manager) installation method enables you to quickly and easily install the theme with a simple terminal command, while the manual method enables you to do so via a zip file. + +# Future plans + +- ~~Translations English - Spanish for administration and front-end~~ diff --git a/blueprints.yaml b/blueprints.yaml new file mode 100644 index 0000000..56d6585 --- /dev/null +++ b/blueprints.yaml @@ -0,0 +1,176 @@ +name: Future 2021 +slug: future2021 +type: theme +version: 1.0.0 +description: Grav Future Imperfect by HTML5 UP (Version 2021) +icon: microchip +author: + name: Pedro Moreno + email: webmaster@juanvillen.es + url: +homepage: https://github.com/pmoreno-rodriguez/future2021 +demo: http://future.juanvillen.es +keywords: future imperfect, html5up, theme, core, modern, fast, responsive, html5, css3 +bugs: https://github.com/pmoreno-rodriguez/future2021/issues +license: MIT + +dependencies: + - { name: grav, version: '>=1.6.0' } + +form: + validation: loose + + fields: + dropdown.enabled: + type: toggle + label: FUTURE.ADMIN.THEME.DROPDOWN_MENU + highlight: 1 + default: 0 + options: + 1: PLUGIN_ADMIN.ENABLED + 0: PLUGIN_ADMIN.DISABLED + validate: + type: bool + production-mode: + type: toggle + label: FUTURE.ADMIN.THEME.PRODUCTION_MODE + help: FUTURE.ADMIN.THEME.PRODUCTION_MODE_HELP + highlight: 1 + default: 1 + options: + 1: PLUGIN_ADMIN.ENABLED + 0: PLUGIN_ADMIN.DISABLED + validate: + type: bool + + favicon: + type: file + label: FUTURE.ADMIN.THEME.FAVICON + destination: 'theme@:/images' + multiple: false + avoid_overwriting: false + random_name: false + toggleable: true + filesize: 3 + accept: ['image/png', '.ico'] + + custom_logo: + type: file + label: FUTURE.ADMIN.THEME.CUSTOM_LOGO + size: large + destination: 'theme://images/logo' + multiple: false + markdown: true + description: FUTURE.ADMIN.THEME.CUSTOM_LOGO_DESCRIPTION + accept: + - image/png + + custom_logo_mobile: + type: file + label: FUTURE.ADMIN.THEME.CUSTOM_LOGO_MOBILE + size: large + destination: 'theme://images/logo' + multiple: false + accept: + - image/png + + slogan: + type: text + label: FUTURE.ADMIN.THEME.SLOGAN + + blog_section: + type: columns + fields: + blog_fields: + type: column + fields: + blog: + type: fieldset + collapsible: true + collapsed: true + icon: rss + title: FUTURE.ADMIN.THEME.BLOG_DEFAULTS + fields: + + blog_page: + type: text + label: FUTURE.ADMIN.THEME.BLOG_PAGE + help: FUTURE.ADMIN.THEME.BLOG_PAGE_DESCRIPTION + size: medium + default: '/blog' + + miniposts: + type: toggle + label: FUTURE.ADMIN.THEME.MINIPOSTS + highlight: 1 + default: 1 + options: + 1: PLUGIN_ADMIN.ENABLED + 0: PLUGIN_ADMIN.DISABLED + validate: + type: bool + + miniposts_number: + type: range + label: FUTURE.ADMIN.THEME.MINIPOSTS_NUMBER + description: FUTURE.ADMIN.THEME.MINIPOSTS_NUMBER_DESCRIPTION + default: 3 + validate: + min: 1 + max: 5 + + footer_section: + type: columns + fields: + footer_fields: + type: column + fields: + footer: + type: fieldset + collapsible: true + collapsed: true + icon: list-alt + title: FUTURE.ADMIN.THEME.FOOTER + fields: + footer.title: + type: text + label: FUTURE.ADMIN.THEME.FOOTER_TITLE + footer.description: + type: textarea + rows: 5 + markdown: true + label: FUTURE.ADMIN.THEME.FOOTER_DESCRIPTION + footer.copyright_text: + type: text + label: FUTURE.ADMIN.THEME.FOOTER_COPYRIGHT + footer.button_text: + type: text + label: FUTURE.ADMIN.THEME.FOOTER_BUTTON_TEXT + footer.button_url: + type: text + label: FUTURE.ADMIN.THEME.FOOTER_BUTTON_URL + social_icons: + type: fieldset + collapsible: true + collapsed: true + icon: share-alt + title: FUTURE.ADMIN.THEME.FOOTER_SOCIALS_ICONS + fields: + social: + name: social + type: list + style: vertical + collapsed: false + max: 5 + fields: + .name: + type: text + label: FUTURE.ADMIN.THEME.FOOTER_SOCIALS_ICON_NAME + .url: + type: text + label: FUTURE.ADMIN.THEME.FOOTER_SOCIALS_ICON_URL + .icon: + type: iconpicker + label: FUTURE.ADMIN.THEME.FOOTER_SOCIALS_ICON_ICON + + diff --git a/blueprints/asset/file.yaml b/blueprints/asset/file.yaml new file mode 100644 index 0000000..7226c11 --- /dev/null +++ b/blueprints/asset/file.yaml @@ -0,0 +1,70 @@ +media: + video: + mp4: video/mp4 + mov: video/quicktime + m4v: video/x-m4v + swf: video/x-flv + + image: + jpg: image/jpeg + jpeg: image/jpeg + png: image/png + gif: image/gif + + file: + txt: text/plain + doc: application/msword + html: text/html + pdf: application/pdf + zip: application/zip + gz: application/gzip + +form: + key: filename + fields: + upload: + type: upload + label: Upload + allow: + '@media.*.keys' + accept: + '@media.*.values' + + filename: + type: text + label: Filename + + type: + type: hidden + default: video + + name: + type: unset + + description: + type: textarea + label: Description + + url: + type: unset + + path: + type: unset + + thumb: + type: unset + + width: + type: text + label: Width + + height: + type: text + label: Height + + mime: + type: hidden + default: 'application/octet-stream' + + modified: + type: unset diff --git a/blueprints/blog.yaml b/blueprints/blog.yaml new file mode 100644 index 0000000..c3e31a2 --- /dev/null +++ b/blueprints/blog.yaml @@ -0,0 +1,95 @@ +title: Blog +'@extends': + type: default + context: blueprints://pages + +child_type: item + + +title: Default + +rules: + slug: + pattern: "[a-z][a-z0-9_-]+" + min: 2 + max: 80 + +form: + fields: + tabs: + type: tabs + active: 1 + + fields: + advanced: + fields: + overrides: + fields: + header.child_type: + default: item + blog: + type: tab + title: FUTURE.ADMIN.BLOG.BLOG_TAB + + fields: + + content_title: + type: spacer + title: FUTURE.ADMIN.BLOG.BLOG_CONTENT_TITLE + + header.content.items: + type: textarea + yaml: true + label: FUTURE.ADMIN.BLOG.BLOG_CONTENT_ITEMS + default: '-@self.children' + validate: + type: yaml + + header.content.limit: + type: text + label: FUTURE.ADMIN.BLOG.BLOG_CONTENT_ITEMS_LIMIT + default: 5 + validate: + required: true + type: int + min: 1 + + header.content.order.by: + type: select + label: FUTURE.ADMIN.BLOG.BLOG_CONTENT_ITEMS_ORDER_BY + default: date + options: + folder: FUTURE.ADMIN.BLOG.BLOG_CONTENT_ITEMS_ORDER_BY_FOLDER + title: FUTURE.ADMIN.BLOG.BLOG_CONTENT_ITEMS_ORDER_BY_TITLE + date: FUTURE.ADMIN.BLOG.BLOG_CONTENT_ITEMS_ORDER_BY_DATE + default: FUTURE.ADMIN.BLOG.BLOG_CONTENT_ITEMS_ORDER_BY_DEFAULT + + header.content.order.dir: + type: select + label: FUTURE.ADMIN.BLOG.BLOG_CONTENT_ITEMS_ORDER_DIR + default: desc + options: + asc: FUTURE.ADMIN.BLOG.BLOG_CONTENT_ITEMS_ORDER_DIR_ASC + desc: FUTURE.ADMIN.BLOG.BLOG_CONTENT_ITEMS_ORDER_DIR_DESC + + header.content.pagination: + type: toggle + label: FUTURE.ADMIN.BLOG.BLOG_CONTENT_ITEMS_PAGINATION + highlight: 1 + default: 1 + options: + 1: PLUGIN_ADMIN.ENABLED + 0: PLUGIN_ADMIN.DISABLED + validate: + type: bool + + header.content.url_taxonomy_filters: + type: toggle + label: FUTURE.ADMIN.BLOG.BLOG_CONTENT_ITEMS_URL_TAXONOMY_FILTERS + highlight: 1 + default: 1 + options: + 1: PLUGIN_ADMIN.ENABLED + 0: PLUGIN_ADMIN.DISABLED + validate: + type: bool diff --git a/blueprints/default.yaml b/blueprints/default.yaml new file mode 100644 index 0000000..9bd504e --- /dev/null +++ b/blueprints/default.yaml @@ -0,0 +1,37 @@ +title: Generic Page +'@extends': + type: default + context: blueprints://pages + +form: + fields: + tabs: + type: tabs + active: 1 + fields: + content: + type: tab + fields: + header.options: + type: columns + ordering@: header.title + fields: + header.content: + type: column + fields: + header.subtitle: + type: text + style: vertical + label: FUTURE.ADMIN.ITEM.ITEM_SUBTITLE + header.image: + type: column + fields: + header.primaryImage: + type: pagemediaselect + label: FUTURE.ADMIN.DEFAULT.PRIMARY_IMAGE + preview_images: true + header.avatarImage: + ordering@: header.primaryImage + type: pagemediaselect + label: FUTURE.ADMIN.ITEM.ITEM_AVATAR + preview_images: true diff --git a/blueprints/form.yaml b/blueprints/form.yaml new file mode 100644 index 0000000..71e2a19 --- /dev/null +++ b/blueprints/form.yaml @@ -0,0 +1,2 @@ +title: Nopad +'@extends': default diff --git a/blueprints/item.yaml b/blueprints/item.yaml new file mode 100644 index 0000000..8024ce7 --- /dev/null +++ b/blueprints/item.yaml @@ -0,0 +1,56 @@ +title: Item +'@extends': + type: default + context: blueprints://pages + +form: + fields: + tabs: + + fields: + blog: + type: tab + title: FUTURE.ADMIN.ITEM.ITEM_TAB + + fields: + + summary: + type: section + title: FUTURE.ADMIN.ITEM.ITEM_SUMMARY + underline: true + + + header.summary.enabled: + type: toggle + toggleable: true + label: FUTURE.ADMIN.ITEM.ITEM_SUMMARY_ENABLED + highlight: 1 + options: + 1: Enabled + 0: Disabled + + header.summary.format: + type: select + toggleable: true + label: FUTURE.ADMIN.ITEM.ITEM_SUMMARY_FORMAT + classes: fancy + options: + 'short': FUTURE.ADMIN.ITEM.ITEM_SUMMARY_FORMAT_SHORT + 'long': FUTURE.ADMIN.ITEM.ITEM_SUMMARY_FORMAT_LONG + + header.summary.size: + type: text + toggleable: true + label: FUTURE.ADMIN.ITEM.ITEM_SUMMARY_SIZE + classes: large + placeholder: 300 + validate: + type: int + min: 1 + + header.summary.delimiter: + type: text + toggleable: true + label: FUTURE.ADMIN.ITEM.ITEM_SUMMARY_DELIMITER + classes: large + placeholder: === \ No newline at end of file diff --git a/blueprints/modular/banner.yaml b/blueprints/modular/banner.yaml new file mode 100644 index 0000000..0d068a5 --- /dev/null +++ b/blueprints/modular/banner.yaml @@ -0,0 +1,27 @@ +title: Banner +'@extends': default + +form: + fields: + tabs: + fields: + banner: + type: tab + title: FUTURE.ADMIN.MODULAR.BANNER.BANNER_TAB + fields: + header.subtitle: + type: text + label: FUTURE.ADMIN.MODULAR.BANNER.BANNER_SUBTITLE + header.buttontext: + type: text + label: FUTURE.ADMIN.MODULAR.BANNER.BANNER_BUTTON_TEXT + header.buttonurl: + type: text + label: FUTURE.ADMIN.MODULAR.BANNER.BANNER_BUTTON_URL + header.image: + type: pagemediaselect + label: FUTURE.ADMIN.MODULAR.BANNER.BANNER_IMAGE + preview_images: true + description: FUTURE.ADMIN.MODULAR.BANNER.BANNER_IMAGE_DESCRIPTION + + diff --git a/blueprints/modular/features.yaml b/blueprints/modular/features.yaml new file mode 100644 index 0000000..6f0c1b8 --- /dev/null +++ b/blueprints/modular/features.yaml @@ -0,0 +1,46 @@ +title: Features +'@extends': default + +form: + fields: + tabs: + fields: + features: + type: tab + title: FUTURE.ADMIN.MODULAR.FEATURES.FEATURES_TAB + fields: + header.class: + type: select + label: FUTURE.ADMIN.MODULAR.FEATURES.FEATURES_LAYOUT + default: standard + size: medium + options: + medium: FUTURE.ADMIN.MODULAR.FEATURES.FEATURES_LAYOUT_TWOCOLS + standard: FUTURE.ADMIN.MODULAR.FEATURES.FEATURES_LAYOUT_THREECOLS + header.features: + name: features + type: list + label: FUTURE.ADMIN.MODULAR.FEATURES.FEATURES_HEADER + fields: + .image: + type: pagemediaselect + label: FUTURE.ADMIN.MODULAR.FEATURES.FEATURES_IMAGE + preview_images: true + .title: + type: text + label: FUTURE.ADMIN.MODULAR.FEATURES.FEATURES_TITLE + .text: + type: textarea + autofocus: true + label: FUTURE.ADMIN.MODULAR.FEATURES.FEATURES_TEXT + maxlength: 500 + rows: 5 + .buttontext: + type: text + label: FUTURE.ADMIN.MODULAR.FEATURES.FEATURES_BUTTON_TEXT + .buttonurl: + type: text + label: FUTURE.ADMIN.MODULAR.FEATURES.FEATURES_BUTTON_URL + .buttonurl_target: + type: checkbox + label: FUTURE.ADMIN.MODULAR.FEATURES.FEATURES_BUTTON_URL_TARGET \ No newline at end of file diff --git a/blueprints/portfolio.yaml b/blueprints/portfolio.yaml new file mode 100644 index 0000000..fcaa835 --- /dev/null +++ b/blueprints/portfolio.yaml @@ -0,0 +1,60 @@ +extends@: default + +form: + fields: + tabs: + type: tabs + active: 1 + + fields: + + portfolio: + type: tab + title: FUTURE.ADMIN.PORTFOLIO.PORTFOLIO_TAB + + fields: + + content_title: + type: spacer + title: FUTURE.ADMIN.PORTFOLIO.PORTFOLIO_TITLE + + header.class: + type: select + label: FUTURE.ADMIN.PORTFOLIO.PORTFOLIO_LAYOUT + default: standard + size: medium + options: + medium: FUTURE.ADMIN.PORTFOLIO.PORTFOLIO_LAYOUT_TWOCOLS + standard: FUTURE.ADMIN.PORTFOLIO.PORTOFOLIO_LAYOUT_THREECOLS + + header.images: + type: list + style: vertical + label: FUTURE.ADMIN.PORTFOLIO.PORTFOLIO_IMAGES + collapsed: true + fields: + .image: + type: pagemediaselect + label: FUTURE.ADMIN.PORTFOLIO.PORTFOLIO_IMAGE + preview_images: true + accept: + - .png + - .jpg + - .gif + - .svg + .title: + type: text + label: FUTURE.ADMIN.PORTFOLIO.PORTFOLIO_IMAGE_TITLE + .description: + type: text + label: FUTURE.ADMIN.PORTFOLIO.PORTFOLIO_IMAGE_DESCRIPTION + .thumb: + type: filepicker + folder: 'self@' + label: FUTURE.ADMIN.PORTFOLIO.PORTFOLIO_IMAGE_THUMB + preview_images: true + accept: + - .png + - .jpg + - .gif + - .svg \ No newline at end of file diff --git a/future2021.php b/future2021.php new file mode 100644 index 0000000..04907aa --- /dev/null +++ b/future2021.php @@ -0,0 +1,9 @@ +HTML5 UP. IMAGES: WALLPAPESWIDE.' + button_url: about + button_text: 'Show more' +social: + - + name: Twitter + url: 'https://www.twitter.com' + icon: 'fa fa-twitter' + - + name: Facebook + url: 'https://www.facebook.com' + icon: 'fa fa-facebook' + - + name: Instagram + url: 'https://www.instagram.com' + icon: 'fa fa-instagram' +dropdown: + enabled: true +miniposts: true +miniposts_number: 3 \ No newline at end of file diff --git a/images/avatar.jpg b/images/avatar.jpg new file mode 100644 index 0000000..106b4af Binary files /dev/null and b/images/avatar.jpg differ diff --git a/images/error/403.png b/images/error/403.png new file mode 100644 index 0000000..43a6b5a Binary files /dev/null and b/images/error/403.png differ diff --git a/images/error/404.png b/images/error/404.png new file mode 100644 index 0000000..d71335f Binary files /dev/null and b/images/error/404.png differ diff --git a/images/logo.jpg b/images/logo.jpg new file mode 100644 index 0000000..cfca877 Binary files /dev/null and b/images/logo.jpg differ diff --git a/images/logo/Grav_logo.png b/images/logo/Grav_logo.png new file mode 100644 index 0000000..caae4a7 Binary files /dev/null and b/images/logo/Grav_logo.png differ diff --git a/images/pic01.jpg b/images/pic01.jpg new file mode 100644 index 0000000..30b3d66 Binary files /dev/null and b/images/pic01.jpg differ diff --git a/images/pic02.jpg b/images/pic02.jpg new file mode 100644 index 0000000..f2ca5a4 Binary files /dev/null and b/images/pic02.jpg differ diff --git a/images/pic03.jpg b/images/pic03.jpg new file mode 100644 index 0000000..9fbd19d Binary files /dev/null and b/images/pic03.jpg differ diff --git a/images/pic04.jpg b/images/pic04.jpg new file mode 100644 index 0000000..c7dd458 Binary files /dev/null and b/images/pic04.jpg differ diff --git a/images/pic05.jpg b/images/pic05.jpg new file mode 100644 index 0000000..1993045 Binary files /dev/null and b/images/pic05.jpg differ diff --git a/images/pic06.jpg b/images/pic06.jpg new file mode 100644 index 0000000..67ec82a Binary files /dev/null and b/images/pic06.jpg differ diff --git a/images/pic07.jpg b/images/pic07.jpg new file mode 100644 index 0000000..0628368 Binary files /dev/null and b/images/pic07.jpg differ diff --git a/images/pic08.jpg b/images/pic08.jpg new file mode 100644 index 0000000..b9087e0 Binary files /dev/null and b/images/pic08.jpg differ diff --git a/images/pic09.jpg b/images/pic09.jpg new file mode 100644 index 0000000..a9c828f Binary files /dev/null and b/images/pic09.jpg differ diff --git a/images/pic10.jpg b/images/pic10.jpg new file mode 100644 index 0000000..7c8322a Binary files /dev/null and b/images/pic10.jpg differ diff --git a/images/pic11.jpg b/images/pic11.jpg new file mode 100644 index 0000000..ac309cd Binary files /dev/null and b/images/pic11.jpg differ diff --git a/images/pic12.jpg b/images/pic12.jpg new file mode 100644 index 0000000..9c632f9 Binary files /dev/null and b/images/pic12.jpg differ diff --git a/languages.yaml b/languages.yaml new file mode 100644 index 0000000..387ee05 --- /dev/null +++ b/languages.yaml @@ -0,0 +1,249 @@ +en: + FUTURE: + ADMIN: + THEME: + DROPDOWN_MENU: Dropdown in navbar + PRODUCTION_MODE: Production Mode + PRODUCTION_MODE_HELP: When enabled, Future will render with minified CSS + FAVICON: Choose your own favicon + CUSTOM_LOGO: Custom Logo + CUSTOM_LOGO_DESCRIPTION: Will be used instead of default logo `theme://images/grav-logo.svg` + CUSTOM_LOGO_MOBILE: Mobile Custom Logo + SLOGAN: Slogan + BLOG_DEFAULTS: Blog Defaults + BLOG_PAGE: Blog Page + BLOG_PAGE_DESCRIPTION: The route to the blog page when working with blog sidebar + MINIPOSTS: Enable Miniposts in Sidebar + MINIPOSTS_NUMBER: Miniposts number to show + MINIPOSTS_NUMBER_DESCRIPTION: Number of miniposts that will be showed in sidebar + FOOTER: Footer + FOOTER_TITLE: Footer Title + FOOTER_DESCRIPTION: Footer Description + FOOTER_COPYRIGHT: Copyright Text + FOOTER_BUTTON_TEXT: Button Text + FOOTER_BUTTON_URL: Button URL + FOOTER_SOCIALS_ICONS: Social Icons + FOOTER_SOCIALS_ICON_NAME: Social Name + FOOTER_SOCIALS_ICON_URL: URL Link to Social + FOOTER_SOCIALS_ICON_ICON: Icon to Social + DEFAULT: + PRIMARY_IMAGE: Primary image + MODULAR: + BANNER: + BANNER_TAB: Banner + BANNER_SUBTITLE: Subtitle + BANNER_BUTTON_TEXT: Button Text + BANNER_BUTTON_URL: Button URL + BANNER_IMAGE: Image + BANNER_IMAGE_DESCRIPTION: Select one image + FEATURES: + FEATURES_TAB: Features + FEATURES_LAYOUT: Layout + FEATURES_LAYOUT_TWOCOLS: Medium = 2 / 1 columns + FEATURES_LAYOUT_THREECOLS: Standard = 3 / 2 / 1 columns + FEATURES_HEADER: Features + FEATURES_IMAGE: Image + FEATURES_TITLE: Title + FEATURES_TEXT: Text + FEATURES_BUTTON_TEXT: Button Text + FEATURES_BUTTON_URL: Button URL + FEATURES_BUTTON_URL_TARGET: Open URL in a new window + + + BLOG: + BLOG_TAB: Blog Config + BLOG_CONTENT_TITLE: Content Definition + BLOG_CONTENT_ITEMS: Items + BLOG_CONTENT_ITEMS_LIMIT: Max Item Count + BLOG_CONTENT_ITEMS_ORDER_BY: Order By + BLOG_CONTENT_ITEMS_ORDER_BY_DATE: Date + BLOG_CONTENT_ITEMS_ORDER_BY_TITLE: Title + BLOG_CONTENT_ITEMS_ORDER_BY_FOLDER: Folder + BLOG_CONTENT_ITEMS_ORDER_BY_DEFAULT: Default + BLOG_CONTENT_ITEMS_ORDER_DIR: Order + BLOG_CONTENT_ITEMS_ORDER_DIR_ASC: Ascending + BLOG_CONTENT_ITEMS_ORDER_DIR_DESC: Descending + BLOG_CONTENT_ITEMS_PAGINATION: Pagination + BLOG_CONTENT_ITEMS_URL_TAXONOMY_FILTERS: URL Taxonomy Filters + ITEM: + ITEM_TAB: Blog Item + ITEM_OPTIONS: Options + ITEM_SUMMARY: Summary Item + ITEM_SUMMARY_ENABLED: Enabled Summary + ITEM_SUMMARY_FORMAT: Summary Format + ITEM_SUMMARY_FORMAT_SHORT: Use the first occurence of delimter or size + ITEM_SUMMARY_FORMAT_LONG: Summary delimiter will be ignored + ITEM_SUMMARY_SIZE: Size + ITEM_SUMMARY_DELIMITER: Summary Delimiter + ITEM_ORDER: Minipost Order + ITEM_SUBTITLE: Subtitle + ITEM_AVATAR: Avatar Image + PORTFOLIO: + PORTFOLIO_TAB: Portfolio + PORTFOLIO_TITLE: Portfolio Images + PORTFOLIO_LAYOUT: Layout + PORTFOLIO_LAYOUT_TWOCOLS: Medium = 2 / 1 columns + PORTOFOLIO_LAYOUT_THREECOLS: Standard = 3 / 2 / 1 columns + PORTFOLIO_IMAGES: Images + PORTFOLIO_IMAGE: Image + PORTFOLIO_IMAGE_TITLE: Title + PORTFOLIO_IMAGE_DESCRIPTION: Description + PORTFOLIO_IMAGE_THUMB: Thumbnails + + BLOG: + ITEM: + CONTINUE_READING: Continue reading... + NEXT_POST: Next Post + PREV_POST: Previous Post + PAGINATION: + PREVIOUS: Previous + NEXT: Next + + SIDEBAR: + SIMPLE_SEARCH: + HEADLINE: Search + RELATED_POSTS: + HEADLINE: Related Posts + RANDOM_ARTICLE: + HEADLINE: Random Article + FEELING_LUCKY: I'm Feeling Lucky! + SOME_TEXT_WIDGET: + HEADLINE: Some Text Widget + TAGS: + HEADLINE: Tags + POPULAR_TAGS: + HEADLINE: Popular Tags + ARCHIVES: + HEADLINE: Archives + SYNDICATE: + HEADLINE: Syndicate + LOGIN: Log in + LATESTPOSTS: Latest posts + FEATURED: Featured + PRIVACY: By using this form you agree to our + FORM_SUMMARY: Here is the summary of what you wrote to us + +es: + FUTURE: + ADMIN: + THEME: + DROPDOWN_MENU: Menu Desplegable + PRODUCTION_MODE: Modo Producción + PRODUCTION_MODE_HELP: Si está activado, Future cargará con CSS minificado + FAVICON: Elige tu propio favicon + CUSTOM_LOGO: Logo personalizado + CUSTOM_LOGO_DESCRIPTION: Este logo se usará en lugar del log por defecto `theme://images/grav-logo.svg` + CUSTOM_LOGO_MOBILE: Logo personalizado para dispositivos móviles + SLOGAN: Slogan + BLOG_DEFAULTS: Opciones de Blog + BLOG_PAGE: Página de Blog + BLOG_PAGE_DESCRIPTION: Ruta de la página de Blog cuando funciona con el blog de barra lateral + MINIPOSTS: Activar Miniposts en la barra lateral + MINIPOSTS_NUMBER: Número de miniposts a mostrar + MINIPOSTS_NUMBER_DESCRIPTION: Número de miniposts que se mostrarán en la barra lateral + FOOTER: Pie de página + FOOTER_TITLE: Título del pie de página + FOOTER_DESCRIPTION: Descripción del pie de página + FOOTER_COPYRIGHT: Texto del Copyright + FOOTER_BUTTON_TEXT: Texto del botón + FOOTER_BUTTON_URL: URL del botón + FOOTER_SOCIALS_ICONS: Iconos Redes Sociales + FOOTER_SOCIALS_ICON_NAME: Nombre de Red Social + FOOTER_SOCIALS_ICON_URL: URL Link to Social + FOOTER_SOCIALS_ICON_ICON: Icono de Red Social + DEFAULT: + PRIMARY_IMAGE: Imagen principal + MODULAR: + BANNER: + BANNER_TAB: Banner + BANNER_SUBTITLE: Subtítulo + BANNER_BUTTON_TEXT: Texto del botón + BANNER_BUTTON_URL: URL del botón + BANNER_IMAGE: Imagen + BANNER_IMAGE_DESCRIPTION: Seleccione una imagen + FEATURES: + FEATURES_TAB: Funciones + FEATURES_LAYOUT: Diseño + FEATURES_LAYOUT_TWOCOLS: Medio = 2 / 1 columnas + FEATURES_LAYOUT_THREECOLS: Estándar = 3 / 2 / 1 columnas + FEATURES_HEADER: Funciones + FEATURES_IMAGE: Imagen + FEATURES_TITLE: Título + FEATURES_TEXT: Texto + FEATURES_BUTTON_TEXT: Texto del botón + FEATURES_BUTTON_URL: URL del botón + FEATURES_BUTTON_URL_TARGET: Abrir la URL en una nueva ventana + + BLOG: + BLOG_TAB: Configuración del Blog + BLOG_CONTENT_TITLE: Definición de Contenido + BLOG_CONTENT_ITEMS: Artículos + BLOG_CONTENT_ITEMS_LIMIT: Límite máximo de artículos + BLOG_CONTENT_ITEMS_ORDER_BY: Ordenar por + BLOG_CONTENT_ITEMS_ORDER_BY_DATE: Fecha + BLOG_CONTENT_ITEMS_ORDER_BY_TITLE: Título + BLOG_CONTENT_ITEMS_ORDER_BY_FOLDER: Carpeta + BLOG_CONTENT_ITEMS_ORDER_BY_DEFAULT: Por defecto + BLOG_CONTENT_ITEMS_ORDER_DIR: Orden + BLOG_CONTENT_ITEMS_ORDER_DIR_ASC: Ascendente + BLOG_CONTENT_ITEMS_ORDER_DIR_DESC: Descendente + BLOG_CONTENT_ITEMS_PAGINATION: Paginación + BLOG_CONTENT_ITEMS_URL_TAXONOMY_FILTERS: Filtros de taxonomía por URL + ITEM: + ITEM_TAB: Artículo de Blog + ITEM_OPTIONS: Opciones + ITEM_SUMMARY: Resumen de Artículo + ITEM_SUMMARY_ENABLED: Activar Resumen + ITEM_SUMMARY_FORMAT: Formato de Resumen + ITEM_SUMMARY_FORMAT_SHORT: Utilizar la primera aparición de delimitador o tamaño + ITEM_SUMMARY_FORMAT_LONG: Se ignorará el delimitador de resumen + ITEM_SUMMARY_SIZE: Tamaño + ITEM_SUMMARY_DELIMITER: Delimitador de Resumen + ITEM_ORDER: Orden del Minipost + ITEM_SUBTITLE: Subtítulo + ITEM_AVATAR: Imagen de Avatar + PORTFOLIO: + PORTFOLIO_TAB: Portafolio + PORTFOLIO_TITLE: Imágenes de Portafolio + PORTFOLIO_LAYOUT: Diseño + PORTFOLIO_LAYOUT_TWOCOLS: Medio = 2 / 1 columnas + PORTOFOLIO_LAYOUT_THREECOLS: Estándar = 3 / 2 / 1 columnas + PORTFOLIO_IMAGES: Imágenes + PORTFOLIO_IMAGE: Imagen + PORTFOLIO_IMAGE_TITLE: Título + PORTFOLIO_IMAGE_DESCRIPTION: Descripción + PORTFOLIO_IMAGE_THUMB: Miniatura + + + BLOG: + ITEM: + CONTINUE_READING: Continuar leyendo... + NEXT_POST: Siguiente Entrada + PREV_POST: Entrada Anterior + PAGINATION: + PREVIOUS: Anterior + NEXT: Siguiente + SIDEBAR: + SIMPLE_SEARCH: + HEADLINE: Buscar + RELATED_POSTS: + HEADLINE: Entradas Relacionadas + RANDOM_ARTICLE: + HEADLINE: Artículo Aleatorio + FEELING_LUCKY: Voy a tener suerte! + SOME_TEXT_WIDGET: + HEADLINE: Algunos Widget de Texto + TAGS: + HEADLINE: Etiquetas + POPULAR_TAGS: + HEADLINE: Etiquetas Populares + ARCHIVES: + HEADLINE: Últimas entradas + SYNDICATE: + HEADLINE: Distribuir + LOGIN: Iniciar sesión + LATESTPOSTS: Últimos posts + FEATURED: Destacados + PRIVACY: Al usar este formulario estás de acuerdo con nuestra + FORM_SUMMARY: Aquí está el resumen de lo que nos escribió. + diff --git a/readme.png b/readme.png new file mode 100644 index 0000000..7a0361c Binary files /dev/null and b/readme.png differ diff --git a/screenshot.jpg b/screenshot.jpg new file mode 100644 index 0000000..9cbaf1f Binary files /dev/null and b/screenshot.jpg differ diff --git a/templates/blog.html.twig b/templates/blog.html.twig new file mode 100644 index 0000000..941fb99 --- /dev/null +++ b/templates/blog.html.twig @@ -0,0 +1,39 @@ +{% embed 'partials/base.html.twig' %} + + {% set collection = page.collection() %} + {% set base_url = page.url %} + {% set feed_url = base_url %} + + {% if base_url == '/' %} + {% set base_url = '' %} + {% endif %} + + {% if base_url == base_url_relative %} + {% set feed_url = base_url~'/'~page.slug %} + {% endif %} + + {% block menu %} + {% include 'partials/sidebar_right.html.twig' %} + {% endblock %} + + {% block content %} + {% if config.plugins.breadcrumbs.enabled %} + {% include 'partials/breadcrumbs.html.twig' %} + {% endif %} + + {% for child in collection %} + {% include 'partials/blog_item.html.twig' with {'page':child, 'truncate':true} %} + {% endfor %} + + {% if config.plugins.pagination.enabled and collection.params.pagination %} + {% include 'partials/pagination.html.twig' with {'pagination':collection.params.pagination} %} + {% endif %} + {% endblock %} + + {% block sidebar %} + {% include 'partials/sidebar_left.html.twig' %} + {% endblock %} + +{% endembed %} + + diff --git a/templates/default.html.twig b/templates/default.html.twig new file mode 100644 index 0000000..ffdc1a6 --- /dev/null +++ b/templates/default.html.twig @@ -0,0 +1,34 @@ +{% extends 'partials/base.html.twig' %} + +{% block menu %} + {% include 'partials/sidebar_right.html.twig' %} +{% endblock %} + +{% block content %} +
+
+
+

{{ page.header.title }}

+ {% if page.header.subtitle %} +

{{ page.header.subtitle }}

+ {% endif %} +
+ +
+ {% if page.header.primaryImage %} + {{ page.media[page.header.primaryImage].cropZoom(1038,437).loading('lazy').html(page.title, page.title, 'image featured')|raw }} + {% else %} + {{ page.media.images|first.cropZoom(1038,437).loading('lazy').html(page.title, page.title, 'image featured')|raw }} + {% endif %} + {{ page.content|raw}} + +
+ +{% endblock %} + + + diff --git a/templates/error.html.twig b/templates/error.html.twig new file mode 100644 index 0000000..8e55c3c --- /dev/null +++ b/templates/error.html.twig @@ -0,0 +1,16 @@ +{% extends 'partials/base.html.twig' %} + +{% block menu %} + {% include 'partials/sidebar_right.html.twig' %} +{% endblock %} + +{% block content %} +
+
+
+

Error {{ page.header.http_response_code }}

+

{{ page.content|raw }}

+
+
+
+{% endblock %} diff --git a/templates/form.html.twig b/templates/form.html.twig new file mode 100644 index 0000000..02fb8bd --- /dev/null +++ b/templates/form.html.twig @@ -0,0 +1,14 @@ +{% extends 'partials/base.html.twig' %} +{% block content %} +
+
+
+

{{ page.header.title }}

+
+
+
+
+ {{ content|raw }} + {% include "forms/form.html.twig" %} +
+{% endblock %} diff --git a/templates/formdata.html.twig b/templates/formdata.html.twig new file mode 100644 index 0000000..bff3f77 --- /dev/null +++ b/templates/formdata.html.twig @@ -0,0 +1,17 @@ +{% extends 'partials/base.html.twig' %} +{% block content %} +
+
+

{{ form.message }}

+
+
+ +
+ +

{{'FUTURE.FORM_SUMMARY'|t}}

+ + {{ content|raw }} + + {% include "forms/data.html.twig" %} +
+{% endblock %} diff --git a/templates/forms/data.html.twig b/templates/forms/data.html.twig new file mode 100644 index 0000000..f8a2756 --- /dev/null +++ b/templates/forms/data.html.twig @@ -0,0 +1,51 @@ +{% macro render_field(form, fields, scope) %} + {% import _self as self %} + + {% for index, field in fields %} + {% set input = attribute(field, "input@") %} + + {% if input is null or input == true %} + + {% if form.value(scope ~ field.name) %} + {% block field %} +
+ {% block field_name %} + {{ field.name|t|e }}: + + {% endblock %} + + {% block field_value %} + {% if field.type == 'checkboxes' %} + + {% elseif field.type == 'checkbox' %} + {{ (form.value(scope ~ field.name) == 1) ? "GRAV.YES"|t|e : "GRAV.NO"|t|e }} + {% elseif field.type == 'privacy' %} + {{ (form.value(scope ~ field.name) == 1) ? "Acepta la Política de Privacidad, Si"|t|e : "GRAV.NO"|t|e }} + {% elseif field.type == 'select' %} + {{ field.options[form.value(scope ~ field.name)]|e }} + {% else %} + {{ string(form.value(scope ~ field.name))|nl2br }} + {% endif %} + {% endblock %} +
+ {% endblock %} + {% endif %} + {% else %} + {% if field.fields %} + {% set new_scope = field.nest_id ? scope ~ field.name ~ '.' : scope %} + {{ self.render_field(form, field.fields, new_scope) }} + {% endif %} + {% endif %} + {% endfor %} +{% endmacro %} + +{% import _self as macro %} + +{{ macro.render_field(form, form.fields, '') }} + diff --git a/templates/forms/data.txt.twig b/templates/forms/data.txt.twig new file mode 100644 index 0000000..20fe474 --- /dev/null +++ b/templates/forms/data.txt.twig @@ -0,0 +1,19 @@ +{%- macro render_field(form, fields, scope) %} +{%- import _self as self %} +{%- for index, field in fields %} + {%- set input = attribute(field, "input@") %} + {%- if input is null or input == true %} + {%- set value = form.value(scope ~ (field.name ?? index)) %} + {{- scope ~ (field.name ?? index) }}: {{ string(value is iterable ? value|json_encode : value|escape('yaml')) ~ "\r\n" }} + {%- else %} + {%- if field.fields %} + {%- set new_scope = field.nest_id ? scope ~ field.name ~ '.' : scope -%} + {{- self.render_field(form, field.fields, new_scope) }} + {%- endif %} + {%- endif %} +{%- endfor %} +{%- endmacro %} +{%- import _self as macro %} +{%- autoescape false %} +{{- macro.render_field(form, form.fields, '') ~ "\r\n" }} +{%- endautoescape %} \ No newline at end of file diff --git a/templates/forms/fields/privacy/privacy.html.twig b/templates/forms/fields/privacy/privacy.html.twig new file mode 100644 index 0000000..1227b4c --- /dev/null +++ b/templates/forms/fields/privacy/privacy.html.twig @@ -0,0 +1,39 @@ +{% extends "forms/field.html.twig" %} + +{% block label %} +{% endblock %} + +{% block input %} + {% set id = field.id|default(field.name) ~ '-' ~ key %} + +
+ + +
+ +{% endblock %} diff --git a/templates/item.html.twig b/templates/item.html.twig new file mode 100644 index 0000000..10ced84 --- /dev/null +++ b/templates/item.html.twig @@ -0,0 +1,29 @@ +{% embed 'partials/base.html.twig' %} + {% set base_url = page.parent.url %} + {% set feed_url = base_url %} + + {% if base_url == '/' %} + {% set base_url = '' %} + {% endif %} + + {% if base_url == base_url_relative %} + {% set feed_url = base_url~'/'~page.parent.slug %} + {% endif %} + + {% block menu %} + {% include 'partials/sidebar_right.html.twig' %} + {% endblock %} + + {% block content %} + {% if config.plugins.breadcrumbs.enabled %} + {% include 'partials/breadcrumbs.html.twig' %} + {% endif %} + + {% include 'partials/blog_item.html.twig' with {'truncate':false,'big_header':true} %} + + + {% endblock %} + +{% endembed %} diff --git a/templates/macros/topmenu.html.twig b/templates/macros/topmenu.html.twig new file mode 100644 index 0000000..a3aa674 --- /dev/null +++ b/templates/macros/topmenu.html.twig @@ -0,0 +1,36 @@ +{% macro nav_loop(page) %} +{% import _self as macros %} + {% for p in page.children.visible %} + {% set current_page = (p.active or p.activeChild) ? 'active' : '' %} + {% if p.children.visible.count > 0 %} +
  • + {% if p.routable == false %} + + {% if p.header.icon %}{% endif %} + {{ p.menu }} + + {% elseif p.routable != false and p.children.count > 0 %} + + {% if p.header.icon %}{% endif %} + {{ p.menu }} + + {% else %} + + {% if p.header.icon %}{% endif %} + {{ p.menu }} + + {% endif %} + +
  • + {% else %} +
  • + + {% if p.header.icon %}{% endif %} + {{ p.menu }} + +
  • + {% endif %} + {% endfor %} +{% endmacro %} \ No newline at end of file diff --git a/templates/modular.html.twig b/templates/modular.html.twig new file mode 100644 index 0000000..fd30fc8 --- /dev/null +++ b/templates/modular.html.twig @@ -0,0 +1,34 @@ +{% extends 'partials/base.html.twig' %} + +{% set show_onpage_menu = header.onpage_menu == true or header.onpage_menu is null %} +{% macro pageLinkName(text) %}{{ text|lower|replace({' ':'_'}) }}{% endmacro %} + +{% block menu %} + {% include 'partials/sidebar_right.html.twig' %} +{% endblock %} + +{% block content %} +
    +
    +
    +

    {{ page.header.title }}

    +
    +
    + + {% if big_header %} + {{ page.media.images|first.cropResize(1038,437).html(page.title, page.title, 'image featured')|raw }} + {% else %} + {{ page.media.images|first.cropZoom(1038,437).html(page.title, page.title, 'image featured')|raw }} + {% endif %} + {{ page.content}} + {% for module in page.collection() %} + {{ module.content|raw }} + {% endfor %} +
    +{% endblock %} + +{% block sidebar %} + {% include 'partials/sidebar_left.html.twig' %} +{% endblock %} + + diff --git a/templates/modular/banner.html.twig b/templates/modular/banner.html.twig new file mode 100644 index 0000000..516c3aa --- /dev/null +++ b/templates/modular/banner.html.twig @@ -0,0 +1,21 @@ + diff --git a/templates/modular/contact.html.twig b/templates/modular/contact.html.twig new file mode 100644 index 0000000..88fd263 --- /dev/null +++ b/templates/modular/contact.html.twig @@ -0,0 +1,5 @@ +
    +

    {{ page.content|raw }}

    + {% include "forms/form.html.twig" with { form: forms('contact-form')} %} +
    +
    diff --git a/templates/modular/features.html.twig b/templates/modular/features.html.twig new file mode 100644 index 0000000..fa5ee07 --- /dev/null +++ b/templates/modular/features.html.twig @@ -0,0 +1,30 @@ +
    +{% set columns = page.header.class == 'standard' ? 'col-4 col-6-medium col-12-small' : 'col-6 col-12-small' %} +
    +

    {{ page.title }}

    +
    + {{ content|raw }} + + +
    + {% for feature in page.header.features %} + +
    +
    + {% if feature.image %}{{feature.title}}{% endif %} +
    + {% if feature.title %}

    {{feature.title}}

    {% endif %} + {% if feature.text %}

    {{feature.text|raw}}

    {% endif %} + {% if feature.buttonurl %}

    {{feature.buttontext}}

    {% endif %} +
    + + + +
    +
    + + {% endfor %} +
    + +
    +
    diff --git a/templates/offline.html.twig b/templates/offline.html.twig new file mode 100644 index 0000000..5f8ad16 --- /dev/null +++ b/templates/offline.html.twig @@ -0,0 +1,18 @@ +{% extends 'partials/base.html.twig' %} + +{% block header %}{% endblock %} + +{% block content %} +
    +
    +
    +

    {{ site.title }}

    +

    Error {{ page.header.http_response_code }}

    +

    {{ page.content|raw }}

    +
    +
    +
    + +{% endblock %} diff --git a/templates/partials/archives.html.twig b/templates/partials/archives.html.twig new file mode 100644 index 0000000..a4ca12c --- /dev/null +++ b/templates/partials/archives.html.twig @@ -0,0 +1,23 @@ +
    + +
    diff --git a/templates/partials/base.html.twig b/templates/partials/base.html.twig new file mode 100644 index 0000000..4946c0f --- /dev/null +++ b/templates/partials/base.html.twig @@ -0,0 +1,87 @@ +{% set theme_config = attribute(config.themes, config.system.pages.theme) %} +{% set compress = theme_var('production-mode') ? '.min.css' : '.css' %} +{% set favicon = theme_config.favicon ? theme_config.favicon|first : { type:'image/png', path: url('theme://images/logo.png') } %} +{% set customlogo = theme_config.custom_logo ? theme_config.custom_logo|first : {type:'image/png', path: url('theme://images/logo.png') } %} +{% set new_base_url = base_url_absolute ~ theme_config.blog_page %} + + + + + {% block head deferred %} + {% if page.title %}{{ page.title|e('html') }} | {% endif %}{{ site.title|e('html') }} + + + + {% include 'partials/metadata.html.twig' %} + + + {% endblock head %} + + {% block stylesheets %} + {% do assets.addCss('theme://assets/css/main'~compress) %} + {% do assets.addCss('theme://assets/css/font-awesome.min.css') %} + {% do assets.addCss('theme://assets/css/custom.css', 10) %} + {% if page.template() == 'portfolio' %} + {% do assets.addCss('theme://assets/css/glightbox.min.css') %} + {% endif %} + {% endblock %} + {{ assets.css()|raw }} + + {% block javascripts %} + {% do assets.add('jquery',101) %} + {% do assets.addJs('theme://assets/js/browser.min.js', {group:'bottom'}) %} + {% do assets.addJs('theme://assets/js/breakpoints.min.js', {group:'bottom'}) %} + {% do assets.addJs('theme://assets/js/util.js', {group:'bottom'}) %} + {% do assets.addJs('theme://assets/js/main.js', {group:'bottom'}) %} + {% do assets.addJs('theme://assets/js/custom.js', {group:'bottom'}) %} + {% if page.template() == 'portfolio' %} + {% do assets.addJs('theme://assets/js/glightbox.min.js', {group:'bottom'}) %} + {% endif %} + {% endblock %} + {{ assets.js()|raw }} + + + + +
    + + {% block header %} + {% include 'partials/header.html.twig' %} + {% endblock %} + + {% block body %} + + {% block menu %}{% endblock %} + + {% block main %} +
    + {% block content %}{% endblock %} +
    + {% block sidebar %}{% endblock %} + {% endblock %} + + {% endblock %} + + {% block bottom %} + {{ assets.js('bottom')|raw }} + {% if page.template() == 'portfolio' %} + + {% endif %} + {% endblock %} +
    + + + + diff --git a/templates/partials/blog_item.html.twig b/templates/partials/blog_item.html.twig new file mode 100644 index 0000000..38dd6e9 --- /dev/null +++ b/templates/partials/blog_item.html.twig @@ -0,0 +1,93 @@ +
    + {% if page.header.author %} + {% set author = page.header.author %} + {% else %} + {% set author = page.header.taxonomy.author[0] %} + {% endif %} + {% if author %} + {% set avatar = author|replace(' ', '-')|lower %} + {% endif %} + +
    +
    + {% if page.header.link %} +

    + {% if page.header.continue_link is not sameas(false) %} + + {% endif %} + {{ page.title }} +

    + {% else %} +

    {{ page.title }}

    + {% endif %} + {% if page.header.subtitle %} +

    {{ page.header.subtitle|raw }}

    + {% endif %} +
    +
    + + {% if author %} + {{ tag }}{% if page.header.avatarImage %}{{ author }}{% endif %} + {% endif %} +
    +
    + + {% if page.header.primaryImage %} + {{ page.media[page.header.primaryImage].cropZoom(1038,437).loading('lazy').html(page.title, page.title, 'image featured')|raw }} + {% else %} + {{ page.media.images|first.cropZoom(1038,437).loading('lazy').html(page.title, page.title, 'image featured')|raw }} + {% endif %} + + +
    + + {% if page.header.continue_link is sameas(false) %} + {{ page.content|raw }} + {% if not truncate %} + {% set show_prev_next = true %} + {% endif %} + {% elseif truncate and page.summary != page.content %} + {{ page.summary|raw }} + {% elseif truncate %} + {{ page.content|truncate(550)|raw }} + {% else %} + {{ page.content|raw }} + {% set show_prev_next = true %} + {% endif %} + +
    + + + + +
    diff --git a/templates/partials/footer.html.twig b/templates/partials/footer.html.twig new file mode 100644 index 0000000..af096cd --- /dev/null +++ b/templates/partials/footer.html.twig @@ -0,0 +1,4 @@ + + diff --git a/templates/partials/header.html.twig b/templates/partials/header.html.twig new file mode 100644 index 0000000..7cc8e62 --- /dev/null +++ b/templates/partials/header.html.twig @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/templates/partials/langswitcher.html.twig b/templates/partials/langswitcher.html.twig new file mode 100644 index 0000000..0cd0f7c --- /dev/null +++ b/templates/partials/langswitcher.html.twig @@ -0,0 +1,31 @@ +
  • +{% set display_format = display_format ?? config.get('plugins.langswitcher.language_display', 'long') %} +{% for language in langswitcher.languages %} + + {% set show_language = true %} + {% if language == langswitcher.current %} + {% set lang_url = page.url %} + {% set active_class = ' active' %} + {% else %} + {% set base_lang_url = base_url_simple ~ grav.language.getLanguageURLPrefix(language) %} + {% set lang_url = base_lang_url ~ langswitcher.page_route ~ page.urlExtension %} + {% set untranslated_pages_behavior = grav.config.plugins.langswitcher.untranslated_pages_behavior %} + {% if untranslated_pages_behavior != 'none' %} + {% set translated_page = langswitcher.translated_pages[language] %} + {% if (not translated_page) or (not translated_page.published) %} + {% if untranslated_pages_behavior == 'redirect' %} + {% set lang_url = base_lang_url ~ '/' %} + {% elseif untranslated_pages_behavior == 'hide' %} + {% set show_language = false %} + {% endif %} + {% endif %} + {% endif %} + {% set active_class = '' %} + {% endif %} + + {% if show_language %} + {% include 'partials/langswitcher-' ~ display_format ~ '.html.twig' %} + {% endif %} + +{% endfor %} +
  • diff --git a/templates/partials/metadata.html.twig b/templates/partials/metadata.html.twig new file mode 100644 index 0000000..2f08a0e --- /dev/null +++ b/templates/partials/metadata.html.twig @@ -0,0 +1,3 @@ +{% for meta in page.metadata %} + +{% endfor %} diff --git a/templates/partials/miniposts.html.twig b/templates/partials/miniposts.html.twig new file mode 100644 index 0000000..fc169ed --- /dev/null +++ b/templates/partials/miniposts.html.twig @@ -0,0 +1,28 @@ +
    +
    +

    {{ 'FUTURE.FEATURED'|t }}

    +
    +
    + {% set slice_miniposts = config.theme.miniposts_number %} + {% for p in page.evaluate({'@taxonomy.category':'minipost'}).order('header.order', 'asc').slice(0,slice_miniposts) %} + + + {% endfor %} +
    +
    + + diff --git a/templates/partials/navigation.html.twig b/templates/partials/navigation.html.twig new file mode 100644 index 0000000..c9f85ba --- /dev/null +++ b/templates/partials/navigation.html.twig @@ -0,0 +1,6 @@ +{% import 'macros/topmenu.html.twig' as macros %} + + + diff --git a/templates/partials/pagination.html.twig b/templates/partials/pagination.html.twig new file mode 100644 index 0000000..5b6d1f5 --- /dev/null +++ b/templates/partials/pagination.html.twig @@ -0,0 +1,34 @@ +{% set pagination = pagination|default(page.collection.params.pagination) %} +{% set base_url = base_url|default(page.url) %} + +{% if pagination|length > 1 %} + + + +{% endif %} diff --git a/templates/partials/relatedpages.html.twig b/templates/partials/relatedpages.html.twig new file mode 100644 index 0000000..07cb74a --- /dev/null +++ b/templates/partials/relatedpages.html.twig @@ -0,0 +1,11 @@ + \ No newline at end of file diff --git a/templates/partials/sidebar_left.html.twig b/templates/partials/sidebar_left.html.twig new file mode 100644 index 0000000..3a3d733 --- /dev/null +++ b/templates/partials/sidebar_left.html.twig @@ -0,0 +1,30 @@ + \ No newline at end of file diff --git a/templates/partials/sidebar_navigation.html.twig b/templates/partials/sidebar_navigation.html.twig new file mode 100644 index 0000000..c23cea8 --- /dev/null +++ b/templates/partials/sidebar_navigation.html.twig @@ -0,0 +1,69 @@ +{% block menu_navigation %} + {% macro loop(page) %} + {% for p in page.children %} + {% if p.visible %} + {% set current_page = (p.active or p.activeChild) ? 'active' : '' %} +
  • + {% if p.routable == false and p.children.count > 0%} + + {% if p.header.icon %}{% endif %} + + {{ p.menu }} + + + {% elseif p.routable != false and p.children.count > 0 %} + + {% if p.header.icon %}{% endif %} + {{ p.menu }} + + + {% else %} + + {% if p.header.icon %}{% endif %} + {{ p.menu }} + + {% endif %} +
  • + {% endif %} + {% endfor %} + {% endmacro %} + +{% endblock %} \ No newline at end of file diff --git a/templates/partials/sidebar_right.html.twig b/templates/partials/sidebar_right.html.twig new file mode 100644 index 0000000..61f6c6e --- /dev/null +++ b/templates/partials/sidebar_right.html.twig @@ -0,0 +1,57 @@ + + \ No newline at end of file diff --git a/templates/partials/simplesearch_item.html.twig b/templates/partials/simplesearch_item.html.twig new file mode 100644 index 0000000..4a51d53 --- /dev/null +++ b/templates/partials/simplesearch_item.html.twig @@ -0,0 +1,23 @@ +
    + + {% set banner = page.media.images|first %} + + {% if banner %} +
    + {{ banner.cropZoom(100,100).html|raw }} +
    + {% endif %} +
    + + +
    + {{ page.date|date(config.system.pages.dateformat.short) }} +
    + +

    {{ page.summary|truncate(200)|raw }}

    + +
    +
    +
    diff --git a/templates/partials/simplesearch_searchbox.html.twig b/templates/partials/simplesearch_searchbox.html.twig new file mode 100644 index 0000000..7bb47b7 --- /dev/null +++ b/templates/partials/simplesearch_searchbox.html.twig @@ -0,0 +1,25 @@ +{% set min_chars = config.get('plugins.simplesearch.min_query_length', 3) %} + + \ No newline at end of file diff --git a/templates/partials/simplesearch_searchbox_results.html.twig b/templates/partials/simplesearch_searchbox_results.html.twig new file mode 100644 index 0000000..7fb0ecd --- /dev/null +++ b/templates/partials/simplesearch_searchbox_results.html.twig @@ -0,0 +1,24 @@ +{% set min_chars = config.get('plugins.simplesearch.min_query_length', 3) %} + +
    +
    + 0 %} data-min="{{- min_chars -}}" {% endif %} + required + placeholder="{{"PLUGIN_SIMPLESEARCH.SEARCH_PLACEHOLDER"|t}}" + value="{{ query|e }}" + data-search-invalid="{{ "PLUGIN_SIMPLESEARCH.SEARCH_FIELD_MINIMUM_CHARACTERS"|t(min_chars)|raw }}" + data-search-separator="{{ config.system.param_sep }}" + data-search-input="{{ base_url }}{{ config.plugins.simplesearch.route == '@self' ? '' : (config.plugins.simplesearch.route == '/' ? '' : config.plugins.simplesearch.route) }}/query" + /> + {% if config.plugins.simplesearch.display_button %} + + {% endif %} +
    +
    diff --git a/templates/partials/simplesearch_searchbox_sidebar.html.twig b/templates/partials/simplesearch_searchbox_sidebar.html.twig new file mode 100644 index 0000000..ba93861 --- /dev/null +++ b/templates/partials/simplesearch_searchbox_sidebar.html.twig @@ -0,0 +1,22 @@ +{% set min_chars = config.get('plugins.simplesearch.min_query_length', 3) %} + + diff --git a/templates/partials/social.html.twig b/templates/partials/social.html.twig new file mode 100644 index 0000000..4f516f3 --- /dev/null +++ b/templates/partials/social.html.twig @@ -0,0 +1,3 @@ +{% for item in theme_config.social %} +
  • {{item.name}}
  • +{% endfor %} \ No newline at end of file diff --git a/templates/partials/taxonomylist.html.twig b/templates/partials/taxonomylist.html.twig new file mode 100644 index 0000000..1519e31 --- /dev/null +++ b/templates/partials/taxonomylist.html.twig @@ -0,0 +1,12 @@ +{% set taxlist = children_only is defined ? taxonomylist.getChildPagesTags() : taxonomylist.get() %} + +{% if taxlist %} + +{% endif %} \ No newline at end of file diff --git a/templates/portfolio.html.twig b/templates/portfolio.html.twig new file mode 100644 index 0000000..0d832bc --- /dev/null +++ b/templates/portfolio.html.twig @@ -0,0 +1,36 @@ +{% extends 'partials/base.html.twig' %} + +{% block menu %} + {% include 'partials/sidebar_right.html.twig' %} +{% endblock %} + +{% block content %} + +
    +
    +
    +

    {{ page.header.title }}

    +
    +
    + {{ page.content|raw}} + + {% block portfolio %} +
    +
    + {% for item in page.header.images %} +
    + + image + +
    + {% endfor %} + +
    +
    + {% endblock %} +
    + + +{% endblock %} diff --git a/templates/simplesearch_results.html.twig b/templates/simplesearch_results.html.twig new file mode 100644 index 0000000..12dc73d --- /dev/null +++ b/templates/simplesearch_results.html.twig @@ -0,0 +1,42 @@ +{% extends 'partials/simplesearch_base.html.twig' %} + +{% block menu %} + {% include 'partials/sidebar_right.html.twig' %} +{% endblock %} + +{% block content %} +
    +
    +
    + + {% block results %} +
    +

    {{ "PLUGIN_SIMPLESEARCH.SEARCH_RESULTS"|t }}

    +
    + {% include 'partials/simplesearch_searchbox_results.html.twig' %} +
    +

    + {% if query %} + {% set count = search_results ? search_results.count : 0 %} + {% if count is same as( 1 ) %} + {{ "PLUGIN_SIMPLESEARCH.SEARCH_RESULTS_SUMMARY_SINGULAR"|t(query|e)|raw }} + {% else %} + {{ "PLUGIN_SIMPLESEARCH.SEARCH_RESULTS_SUMMARY_PLURAL"|t(query|e, count)|raw }} + {% endif %} + {% endif %} +

    +
    + {% endblock %} + +
    + +
    + {% for page in search_results %} + {% include 'partials/simplesearch_item.html.twig' with {'page':page} %} + {% endfor %} +
    + +{% endblock %} +{% block sidebar %} + {% include 'partials/sidebar_left.html.twig' %} +{% endblock %} diff --git a/thumbnail.jpg b/thumbnail.jpg new file mode 100644 index 0000000..59b0ced Binary files /dev/null and b/thumbnail.jpg differ