sgalinski / sg-jobs
sgalinski Jobs Extension - Manage and display your Job offers
Requires
- sgalinski/sg-ajax: >=4.0.0
- sgalinski/sg-mail: >=7.0.0
- typo3/cms-core: ^12.4.0
Suggests
- sgalinski/sg-seo: For additional SEO features
Replaces
- sgalinski/sg_jobs: 6.1.12
- dev-master
- 6.1.12
- 6.1.11
- 6.1.10
- 6.1.9
- 6.1.8
- 6.1.7
- 6.1.6
- 6.1.5
- 6.1.4
- 6.1.3
- 6.1.2
- 6.1.1
- 6.1.0
- 6.0.0
- v5.x-dev
- 5.7.5
- 5.7.4
- 5.7.3
- 5.7.2
- 5.7.1
- 5.7.0
- 5.6.6
- 5.6.5
- 5.5.5
- 5.5.4
- 5.5.3
- 5.5.2
- 5.5.1
- 5.5.0
- 5.4.1
- 5.4.0
- 5.3.9
- 5.3.8
- 5.3.7
- 5.3.6
- 5.3.5
- 5.3.4
- 5.3.3
- 5.3.2
- 5.3.1
- 5.3.0
- 5.2.7
- 5.2.6
- 5.2.5
- 5.2.4
- 5.2.3
- 5.2.2
- 5.2.1
- 5.2.0
- 5.1.13
- 5.1.12
- 5.1.11
- 5.1.10
- 5.1.9
- 5.1.8
- 5.1.7
- 5.1.6
- 5.1.5
- 5.1.4
- 5.1.3
- 5.1.2
- 5.1.1
- 5.1.0
- 5.0.4
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 4.4.1
- 4.4.0
- 4.3.7
- 4.3.6
- 4.3.5
- 4.3.4
- 4.3.3
- 4.3.2
- 4.3.1
- 4.3.0
- 4.2.2
- 4.2.1
- 4.2.0
- 4.1.4
- 4.1.3
- 4.1.2
- 4.1.0
- 4.0.21
- 4.0.20
- 4.0.19
- 4.0.18
- 4.0.17
- 4.0.16
- 4.0.15
- 4.0.14
- 4.0.13
- 4.0.12
- 4.0.11
- 4.0.10
- 4.0.9
- 4.0.8
- 4.0.7
- 4.0.6
- 4.0.5
- 4.0.4
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 3.8.7
- 3.8.6
- 3.8.5
- 3.8.4
- 3.8.3
- 3.8.2
- 3.8.1
- 3.8.0
- 3.7.0
- 3.6.2
- 3.6.1
- 3.6.0
- 3.5.8
- 3.5.7
- 3.5.6
- 3.5.5
- 3.5.4
- 3.5.3
- 3.5.2
- 3.5.1
- 3.5.0
- 3.4.1
- 3.4.0
- 3.3.1
- 3.3.0
- 3.2.8
- 3.2.7
- 3.2.6
- 3.2.5
- 3.2.4
- 3.2.3
- 3.2.2
- 3.2.1
- 3.2.0
- 3.1.1
- 3.1.0
- v3.0.x-dev
- 3.0.2
- 3.0.1
- 3.0.0
- 2.0.10
- 2.0.9
- 2.0.8
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.19.3
- 1.19.2
- 1.19.1
- 1.19.0
- 1.18.3
- 1.18.2
- 1.18.1
- 1.18.0
- 1.17.0
- 1.16.2
- 1.16.1
- 1.16.0
- 1.15.0
- 1.14.10
- 1.14.9
- 1.14.8
- 1.14.7
- 1.14.6
- 1.14.5
- 1.14.4
- 1.14.3
- 1.14.2
- 1.14.1
- 1.14.0
- 1.13.2
- 1.13.1
- 1.13.0
- 1.12.1
- 1.12.0
- 1.11.1
- 1.11.0
- 1.10.3
- 1.10.2
- 1.10.1
- 1.10.0
- 1.9.4
- 1.9.3
- 1.9.2
- 1.9.1
- 1.9.0
- 1.8.2
- 1.8.1
- 1.8.0
- 1.7.0
- 1.6.5
- 1.6.4
- 1.6.3
- 1.6.2
- 1.6.1
- 1.6.0
- 1.5.2
- 1.5.1
- 1.5.0
- 1.4.1
- 1.4.0
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.1
- 1.2.0
- 1.1.1
- 1.1.0
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-feature_5168-unifyRootPageSelector
This package is not auto-updated.
Last update: 2024-12-09 19:48:37 UTC
README
License: GNU GPL, Version 2
Repository: https://gitlab.sgalinski.de/typo3/sg_jobs
Please report bugs here: https://gitlab.sgalinski.de/typo3/sg_jobs
About
This extension provides job application functionality for a TYPO3 installation.
Features:
- Creating jobs, including related details like companies and contacts
- Applying for the created jobs
- Applications include file uploads
- Every application is saved conveniently in a CSV format, along with the uploaded files
- Sends mail notifications when applications are submitted
- Provides a JobTitleMapper for the TYPO3 9 route enhancers
Integration
Typoscript files need to be included manually.
plugin.tx_sgjobs {
settings {
allowedFileExtensions - allowed file extensions for the uploads (default pdf)
allowedMimeTypes - allowed mime types for the uploads (default application/pdf)
}
}
Upload file size
By default, the maximum file size for an upload is 5MB / 5000kB. You can change this limit in the constants.ts configuration file:
settings {
.....
# cat=plugin.tx_sgjobs/other; type=string; label=Allowed maximum file size for uploads in kB
allowedMaxFileSize = 5000
}
Backend Module
The Backend module is found in the WEB section under the name Job Offers.
You can create a new job offer by clicking on the New Job Offer button.
Setting the contact email
When a user applies to a job offer an email will be sent. The adress of this email comes either from the contact person assigned to the job, or if no contact person is set, the mail address is chosen from the selected location.
Simply supply the uid of the contact record and every job without a contact person will use the desired contact.
Setting the record page id for the Joblist plugin
You need to set the id of the page (or sys folder) where you store all your job offers, contacts and locations. To do this you can select the page/folder as Record Storage Page in the plugin settings.
Job form page
When inserting the joblist plugin on a page, make sure to select the page which contains the application form from Plugin -> Plugin Options -> Page containing the application form
Automated Email Messages
The extension uses sg_mail to configure email templates.
.htaccess
The folder which contains the applications folder should be blocked from outside access from the .htaccess file. Example:
RedirectMatch 403 ^/fileadmin/JobApplication/.*$
Implement job title mapping in TYPO3 9
To enable the job title mapping in TYPO3 9, you need to add this routeEnhancer configuration to your config.yaml.
routeEnhancers:
SgJobApplication:
type: Extbase
extension: SgJobs
plugin: JobApplication
routes:
- routePath: '/job/applyform/{job_title}'
_controller: 'Joblist::applyForm'
_arguments:
job_title: jobId
- routePath: '/job/apply'
_controller: 'Joblist::apply'
defaultController: 'Joblist::applyForm'
aspects:
job_title:
type: JobTitleMapper
SgJobList:
type: Extbase
extension: SgJobs
plugin: Joblist
routes:
- routePath: '/job/{job_title}'
_controller: 'Joblist::index'
_arguments:
job_title: jobId
defaultController: 'Joblist::index'
aspects:
job_title:
type: JobTitleMapper
This configuration will use the JobTitleMapper to map the job title to the jobs is. The routePath represents the speaking URL part where {job_title} is the placeholder for the job title. The JobTitleMapper is assigned to the job_title placeholder via aspects and will take care of the encoding and decoding of the job title and the according job id.
Migration from version 1 to version 2
If you update from sg_jobs version 1, you need to execute the Upgrade Wizard that migrates the old area field. To do so, please visit the Install Tool and click on Upgrade Wizards. Check the Job Upgrade Wizard and execute it. This Wizard will migrate your area data into department records.
Also, please be aware of changes to the Fluid template regarding the area -> department migration and change the area occurences of variables in the template to department records accordingly.
This version also introduces correct exclude field configurations for the tables, so check your backend user and backend usergroup permissions and adjust them accordingly.
Migration from version 3.2 to version 3.3
This is a purely optional step!
The new path_segment field was added to ensure that the proper URLs are used. In order to use it, add this code to your routes configuration file.
Furthermore, go to the list module and open your jobs directory in the TYPO3 backend. Select in the fields list the path_segment field after clicking on the jobs table to expand it to the table only view. You will get an edit icon above the path_segment title now. Click on it and generate for all of you jobs a new URL.
SgJobApplication:
type: Extbase
extension: SgJobs
plugin: JobApplication
routes:
- routePath: '/{localizedSegment}/{jobTitle}'
_controller: 'Joblist::applyForm'
_arguments: { 'jobTitle': jobId }
- routePath: '/{localizedSegment}'
_controller: 'Joblist::apply'
defaultController: 'Joblist::applyForm'
# The following issue prevents us from using this code. This patch is not good enough to use it yet as
# slashes are not converted and this causes to regex mismatches in the routing environment.
# https://review.typo3.org/c/Packages/TYPO3.CMS/+/61044
# aspects:
# jobTitle:
# type: PersistedPatternMapper
# tableName: tx_sgjobs_domain_model_job
# routeFieldPattern: '-(?P<uid>\d+)$'
# routeFieldResult: '{title}-{uid}'
aspects:
jobTitle:
type: PersistedAliasMapper
tableName: tx_sgjobs_domain_model_job
routeFieldName: path_segment
localizedSegment:
type: LocaleModifier
default: 'apply'
localeMap:
- locale: 'de_DE.*'
value: 'bewerbung'
SgJobList:
type: Extbase
extension: SgJobs
plugin: Joblist
routes:
- routePath: '/job/{jobTitle}'
_controller: 'Joblist::index'
_arguments: { 'jobTitle': jobId }
defaultController: 'Joblist::index'
aspects:
jobTitle:
type: PersistedAliasMapper
tableName: tx_sgjobs_domain_model_job
routeFieldName: path_segment