hauerheinrich / hh-simple-job-posts
Adds plugins for list / show job postings with meta-data and schema.org stuff. Uses tt_address for job-contacts and job-location.
                                    Fund package maintenance!
                                                                            
                                                                                                                                        Paypal
                                                                                    
                                                                
Installs: 92
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 1
Open Issues: 0
Type:typo3-cms-extension
pkg:composer/hauerheinrich/hh-simple-job-posts
Requires
- friendsoftypo3/tt-address: ^9.0.0
- hauerheinrich/hh-tt-address-places: ^4.0.0
- typo3/cms-core: ^13.4.0
- typo3/cms-extbase: ^13.4.0
- typo3/cms-fluid: ^13.4.0
- typo3/cms-fluid-styled-content: ^13.4.0
- typo3/cms-frontend: ^13.4.0
Replaces
- hauer-heinrich/hh_simple_job_posts: 5.0.0
- typo3-ter/hh-simple-job-posts: 5.0.0
README
hh_simple_job_posts is a TYPO3 extension. Lists and shows job posts / job offers incl. schema.org stuff (e. g. for google jobs) and if you have EXT:hh_seo loaded meta-tags. Uses EXT:hh_tt_address_places.
optional
- [hh_seo] - works well with: https://github.com/Hauer-Heinrich/hh_seo - required if you want use Partial/MetaTags.html
Installation
... like any other TYPO3 extension
- 
create a folder at the TYPO3 backend tree in which addresses of hiring-organisations are stored. 
 Then set the UID of this folder at the TYPO3 constants editor ([plugin.tx_hhsimplejobposts.persistence.storagePidOrganizations])
 Optional: add PageTs from EXT:"hh_tt_address_places - Allow only Places".ATTENTION:- Make sure that the field "company" is not disabled!
- It is required that the field 'tx_extbase_type' is set to 'place'! This is done automatically if you have added the PageTs to this folder: "hh_tt_address_places - Allow only Places".
 
- 
create a folder at the TYPO3 backend tree in which addresses of contact-point-addresses are stored. 
 Then set the UID of this folder at the TYPO3 constants editor ([plugin.tx_hhsimplejobposts.persistence.storagePidContactPointAddresses])
 Optional: add PageTs from EXT:"hh_tt_address_places - Allow only people".
- 
create a folder at the TYPO3 backend tree in which jobs are stored. 
 Optional: add PageTs from EXT:hh_simple_job_posts "Additional / extra config for: jobposts". Optional: e. g. if you want see your jobs at Google-Jobs then you must meet the requirements of Google\- Sets requierd fields for Google add PageTs from EXT:hh_dimple_job_posts "Additional / extra config for: jobposts google jobs"
 
- 
Optional: for nice URLs you can use the example at EXT:hh_simple_job_posts/sites/config.yaml 
Job-list and Job-detail on the same page
Disable all other content on this site/page if detail view of job-posts is given
In this Example you should replace "MainContent" with your own one! TypoScript example (https://github.com/Hauer-Heinrich/hh_simple_job_posts/blob/master/Configuration/TypoScript/example.typoscript):
[request && (traverse(request.getQueryParams(), 'tx_hhsimplejobposts_jobslist/jobpost') > 0 || traverse(request.getQueryParams(), 'tx_hhsimplejobposts_jobsdetail/jobpost') > 0)]
    ### In our current opinion better solution:
    ### Create a new colPos for your TYPO3 backendlayout
    ### and show this colpos only if the detail view of job-posts is given
    ### Example if you have in your main typoscript theme config something like the following 2 lines
    ### page.10.variables.MainContent =< styles.content.get
    ### page.10.variables.MainContent.select.where = colPos = 1
    ### then add this "[traverse ...] from above with this next 3 lines in it
    # page.10.variables.MainContent >
    # page.10.variables.MainContent =< styles.content.get
    # page.10.variables.MainContent.select.where = colPos = 100
    ### alternative: most used way like for EXT:news
    # lib.leftcontent = USER
    # lib.leftcontent {
    #     userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
    #     pluginName = Jobslist
    #     extensionName = HhSimpleJobPosts
    #     vendorName = HauerHeinrich
    #     controller = Jobpost
    #     action = show
    #     view < plugin.tx_hhsimplejobposts.view
    #     persistence < plugin.tx_hhsimplejobposts.persistence
    #     settings < plugin.tx_hhsimplejobposts.settings
    # }
    # page.10.variables.MainContent =< lib.leftcontent
[global]
Translations via TypoScript
### Example:
plugin.tx_hhsimplejobposts {
    _LOCAL_LANG {
        de {
            detail.maintasks = Deine Aufgaben
            detail.profile = Dein Profil
            detail.skills = Deine Skills
            detail.weprovide = Das erwartet dich bei uns
            detail.hiringOrganization = Oder per Post an:
            detail.phone.before = Tel.:
            detail.contact_point_email.before = Ihre Anfrage/Bewerbung senden Sie bitte an:
            detail.contact_point_telephone.before = Tel.:
            detail.contact_point_telephone.after =
        }
    }
}
Features
- automatically generates config for sitemap (EXT:seo)
- compatible with EXT:hh_seo
- shippes default config for nice-urls see example: Configuration/Typo3/sites/config.yaml
- provides psr-14 events
prepare fields for json e. g. json-ld / schema.org
RTE fields are available in the Fluid template as “jobpost.escapedRteFields” for example “{jobpost.escapedRteFields.description}”.
Available events
When register to an event you can always access the class where the event is fired. For additional items see column "Access to" in the table below.
| Event class | Fired in class | Access to | 
|---|---|---|
| JobpostsListEvent | JobpostController | getAssignedValues(), getSettings() | 
Event description
- JobpostsListEvent: You can set your own Jobposts, for example from external API Example Usage see extension https://github.com/Hauer-Heinrich/hh_talentstorm_job_posts Add your own "useExternalApi" setting, see: Configuration\TsConfig\Page\TCEFORM.typoscript
Connect to event
To connect to an event, you need to register an event listener in your custom extension. All what it needs is an entry in your Configuration/Services.yaml file:
services: Vendor\Extension\EventListener\YourListener: tags: - name: event.listener identifier: 'your-self-choosen-identifier' method: 'yourMethodToConnectToEvent' event: HauerHeinrich\HhSimpleJobPosts\Event\JobpostsListEvent
Write your EventListener
An example event listener can look like this:
<?php declare(strict_types=1); namespace Vendor\Extension\EventListener; use HauerHeinrich\HhSimpleJobPosts\Event\JobpostsListEvent; /** * Use JobpostsListEvent from ext:hh_simple_job_posts */ class YourListener { /** * Do what you want... */ public function yourMethodToConnectToEvent(JobpostsListEvent $event): void { $values = $event->getAssignedValues(); // Do some stuff $event->setAssignedValues($values); } }
Todos
- improve readme
Copyright notice
This repository is part of the TYPO3 project. The TYPO3 project is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
The GNU General Public License can be found at http://www.gnu.org/copyleft/gpl.html.
This repository is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
This copyright notice MUST APPEAR in all copies of the repository!
License
GNU GENERAL PUBLIC LICENSE Version 3