TypoScript Setup¶
Configuring with TypoScript Setup¶
All of the following settings are configured at
plugin.tx_zvoove {
settings {
// ... HERE!
}
}
detailPid¶
Property
detailPid
Data type
int
Description
Define the page-ID that is used to display the detail view of the jobs. This PID can be overriden in the individual flexform.
Default
none
listPid¶
Property
listPid
Data type
int
Description
Define the page-ID that is used to display the list view of the jobs. This PID can be overriden in the individual flexform.
Default
none
bookmarksPid¶
Property
bookmarksPid
Data type
int
Description
Define the page-ID that is used to display the bookmarks / wishlist. This PID can be overriden in the individual flexform.
Default
none
applicationFormPid¶
Property
applicationFormPid
Data type
int
Description
Define the page-ID that is used to display the application form. This PID can be overriden in the individual flexform.
Default
none
list.itemsPerPage¶
Property
list.itemsPerPage
Data type
int
Description
Maximum number of jobs to display per page in the list view.
Default
none
fallbackImages.stelle¶
Property
fallbackImages.stelle
Data type
string
Description
Fallback image to show, in case no image exists for the job.
fallbackImages {
stelle = EXT:zvoove/Resources/Public/Images/fallback-vacancy.jpg
}
Default
EXT:zvoove/Resources/Public/Images/fallback-vacancy.jpg
application.*¶
Property
application.*
Data type
array
Description
Various settings to decide, if storing of applications in local database is enabled or not
# settings for the application form (based on tx_form)
application {
# send application-data to zvoove?
sendToZvoove {
enabled = 1
}
# save application-data in the local database?
saveInDatabase {
enabled = 1
pidApplicant =
pidApplication =
}
}
search.*¶
Property
search.*
Data type
array
Description
Various settings for defining search-options and filter-criteria to sync with zvoove
# setting for searchform and filter-criteria
search {
# These options will be retrieved from the API in \nn\t3::Stelle()->getAllFilters()
filters {
contract {
label = Type of contract
entity = StelleVertragsart.ChildEntity
queryParam = vaUuids
fieldInStelle = Vertragsarten
fieldLocal = catVa
}
department {
label = Department
entity = StelleAbteilung.Abteilung
queryParam = abtUuids
fieldInStelle = Abteilung
fieldLocal = catAbt
}
}
# Service to find cities
location {
# class / method to convert location input in searchform to lng / lat coordinates
geoCoding = Nng\Zvoove\Services\GoogleApiService::convertAddressToCoordinates
# class / method to convert lng / lat coordinates to address
reverseGeoCoding = Nng\Zvoove\Services\GoogleApiService::convertCoordinatesToAddress
# class / method to return a list of suggestions for location searchform during typing
suggest = Nng\Zvoove\Services\SuggestService::getLocations
# Maximum number of results from suggest
suggestMax = 20
}
jobs {
# class / method to return a list of suggestions for jobs during typing
suggest = Nng\Zvoove\Services\SuggestService::getJobs
}
}
fileUpload.*¶
Property
fileUpload.*
Data type
array
Description
If you are saving the application data and uploads locally, you can define the path to the upload-folder here.
Make sure, the path is not accessibly by public!!!
# where to upload new files.
fileUpload {
path = 1:/zoove/
protectDirectory = 1
appendHash = 1
}
externalMedia.*¶
Property
externalMedia.*
Data type
array
Description
Where to copy the files (job-images) from zvoove
# where to copy the files from zvoove
externalMedia {
path = 1:/zvoove_media/
}
sync.*¶
Property
sync.*
Data type
array
Description
How to sync the jobs with zvoove.
Option 1: Sync all entries in one run.
The script will loop until all items have been updated
- setup your cronjob interval to 15+ minutes
- set
processInterval
to the interval you want to update the database. - It doesn’t matter which interval was set in the cronjob or scheduler. This time is the one that is relevant for the update frequency
- set
- set
processAll = 1
- set
maxItemsPerRequest
andmaxItemsPerLocalSync
to the number of items to request per batch. - This means, that during the loop, only this number of items will be retrieved from the API and updated. The script will run until all items were updated.
- set
Option 2: Sync entries in batches
The script will process the entries step by step
- setup your cronjob to a small interval (e.g. 5 minutes)
- set
processAll = 0
- with every call from the scheduler only a small batch of jobs will be processed.
- It might take several runs until everything is updated.
sync {
# if external media should be copied to fileadmin. Path is defined in `externalMedia.path`
copyMedia = 1
# process all entries in a single run? (`0` will execute the update in small portions with every scheduler call)
processAll = 1
# if `processAll = 1`: Total max number of loop-runs to prevent DoS.
# Must be higher than `( [number_of_jobs_in_zvoove] / $maxItemsPerRequest) + ([number_of_jobs_in_zvoove] / $maxItemsPerLocalSync)`
processAllMaxRuns = 2000
# how often to update the list from the API (in seconds, 3600 = every hour)
processInterval = 3600
# in case there was a problem during last execution, restart the sync after a max duration of (in seconds)
maxExecutionTime = 7200
# only update entries with newer modification date
respectModificationDate = 1
# Max items during loading the overview of all vacancies to sync
maxItemsPerRequest = 15
# Max items during syncing detail-data with local database
maxItemsPerLocalSync = 15
# automatically append (m/w/d) if not already in title?
appendGender = 1
# automatically clean HTML-code from zvoove?
cleanHtml = Aufgaben,Stellenziel,description
# where to save objects (categories / filters)
objectsPid =
}