Challenge: You have to display and search a JSON like https://api.json-content-importer.com/extra/json/hrus.json
Solution:
Create two JCI-Templates and Pages and get that:
https://api.json-content-importer.com/hrus-list-all/?jobsea=digital
PAGE 1: Display-Page:
Shortcode:
[[jsoncontentimporterpro nameoftemplate=hrus]]
on page /hrus-list-all/ (you can change that, but then you have to change it in the Twig-code of both Templates too!)
JCI-Template 1:
Name: hrus
url: https://api.json-content-importer.com/extra/json/hrus.json
urlparam4twig: jobsea
Twig-Template:
<form action="/hrfuturebrandsus/"> <input type="text" name="jobsea" value="{{urlparam.jobsea}}"> <input type="submit"> </form> <hr> {% set jobanz = 0 %} {% set jobtxtout = '' %} {% for c in _context %} {% if c.title %} {% set jobtxt = ' <h1>' ~ c.title ~ '</h1> ' %} {% set jobtxt = jobtxt ~ c.summary ~ ' ' %} {% set jobtxt = jobtxt ~ '<i>' ~ c.employment_status ~ '</i>' %} {% set jobtxt = jobtxt ~ ' <a href="/hrus-detail/?slug=' ~ (c.slug | url_encode) ~ '">View Job</a>' %} {% set jobtxt = jobtxt ~ ' <hr> ' %} {% if urlparam.jobsea %} {% if (c.title matches '/'~urlparam.jobsea~'/i') or (c.summary matches '/'~urlparam.jobsea~'/i') %} {% set jobtxtout =jobtxtout ~ jobtxt %} {% set jobanz = jobanz +1 %} {% endif %} {% else %} {% set jobtxtout =jobtxtout ~ jobtxt %} {% set jobanz = jobanz +1 %} {% endif %} {% endif %} {% endfor %} {% if urlparam.jobsea %} {{ jobanz}} Jobs found {% else %} Current {{ jobanz}} Positions Open: {% endif %} {{jobtxtout}}
PAGE 2: Details-Page
Shortcode:
“orderofshortcodeeval=2” tells the plugin to execute the Contact Form first and then insert the JSON-Values
[[jsoncontentimporterpro nameoftemplate=hrusdetail orderofshortcodeeval=2]]
on page /hrus-detail/ (you can change that, but then you have to change it in the Twig-code of the Display-Page Templates !)
JCI-Template 2:
Name: hrusdetail
url: https://api.json-content-importer.com/extra/json/hrus.json
urlparam4twig: slug
Twig-Template:
{% set jobtitle = "" %} {% for c in _context %} {% if (c.title and (urlparam.slug==c.slug)) %} <h1>{{c.title}}</h1> {% set jobtitle = (c.title) %} {#{{c.web_content}}#} {% endif %} {% endfor %} <a href="/hrus-list-all//">Back to all Jobs</a><br> insert shortcode for contact form here, hereby insert info about selected job, here we go with "contact-form-7"<br> [[contact-form-7 id="NUMBER_SEE_BELOW" title="hrus"]]
contact-form-7 (option):
If you need to add a Contact-Form for the User the Plugin Contact-Form-7 is an option.
For that install Contact-Form-7 and add a new Form with this Code:
<label> Job [text* job "{{jobtitle}}"] </label> <label> Your name [text* your-name] </label> <label> Your email [email* your-email] </label> <label> Subject [text* your-subject] </label> <label> Your message (optional) [textarea your-message] </label> [submit "Submit"]
Name that, save it and then you get a Shortcode like [[contact-form-7 id="NUMBER_SEE_BELOW" title="hrus"]].
The {{jobtitle}} is transformed with the JSON-Data. For that, check the JCI-Options at “Shortcode Settings”: The Radiobox at “Usage of Shortcodes (JCI or other) in the JCI-twig-Template” must be at the “Or the other way round: Executing Shortcodes in the template first and then evaluate the twig-code”