Content element "Job board" 

The extension registers one content element (CType jobboard_jobboard , plugin namespace tx_jobboard_jobboard) with four actions:

list
Default action. Shows the search form, the map and all current jobs. Cached.
search
Shows the jobs matching the submitted search form. Not cached, because the search criteria are arbitrary.
detail
Shows one job. Cached. The shipped templates render the detail view on the same page as the list.
rememberedJobs
Shows the jobs remembered by the current visitor. Not cached, see View of the remembered jobs.

The cached actions render the same output for every visitor. The remembered jobs are highlighted by JavaScript, see Caching.

The options of the content element are in the tab Configuration. See Insert the content element "Job board" for the editor's view.

Sheet "General" 

Sheet General with the options Job areas, Max entries to show and Show page browser

Sheet "General" of the content element

Name Type Default
occupational field records empty
integer 0
'', 1 or -1 '' (Use value from TypoScript)
Job areas
Type
occupational field records
Default
empty

FlexForm field settings.jobAreas. Shows only jobs that have at least one of the selected occupational fields. Empty: jobs of all occupational fields are shown.

The restriction applies to the list and to the search result. The select box of occupational fields in the search form and the number of jobs per occupational field only consider the selected fields. A submitted occupational field outside of the selection is ignored.

Max entries to show (0 for all)
Type
integer
Default
0

FlexForm field settings.maxEntries. Maximum number of jobs in the list and in the search result. The limit is part of the database query and applies after all other conditions, for example jobs without salary information (see jobboard.salary.required), so visitors always get up to this number of jobs. 0 shows all jobs.

A number greater than 0 also switches off the page browser: the limited list is shown on one page, independent of Show page browser and the site setting jobboard.pageBrowser.enable.

Show page browser
Type
'', 1 or -1
Default
'' (Use value from TypoScript)

FlexForm field settings.pageBrowser.enable. "Use value from TypoScript" uses the site setting jobboard.pageBrowser.enable. "Show" (1) and "Hide" (-1) override it for this content element. With "Hide", the list and the search result show all jobs on one page.

Has no effect, if Max entries to show (0 for all) is greater than 0. Then the page browser is never shown.

How the search works 

A job is part of the search result if it is currently open (see Why is my job not shown?) and matches all filled fields of the search form:

Occupational field
The job has this occupational field among its occupational fields. If the content element restricts the occupational fields (see Job areas), only jobs of these fields are found, and a submitted field outside of them is ignored.
Position, employment scope
The job has exactly this position or employment scope.
Location
An input like "12345 - Sample Town" is split at the hyphen. Jobs match if the ZIP code of their address is "12345" or the city contains "Sample Town". A number only is searched as ZIP code, other input as part of the city.
Keyword
The input is split at spaces. Every word must be found (AND). Each word may be found in the title, description, offer, requirements, further information, application guidelines, or the street or city of the address.

The list and the search result are sorted by application deadline, jobs without an application deadline first. Jobs with the same application deadline are sorted by their UID, so every job appears on exactly one page of the page browser. Remembered jobs keep their place in this order. The table layout can be sorted by the visitor afterwards.

The options of the select boxes in the search form (occupational fields with the number of jobs, positions, employment scopes and job locations) are calculated in the database with the same conditions as the listed jobs. With Max entries to show (0 for all), they only contain values of the listed jobs.

The search form sends these arguments to the action search , which you can also use in own forms:

  • tx_jobboard_jobboard[jobArea] (UID of an occupational field)
  • tx_jobboard_jobboard[jobRole] (UID of a position)
  • tx_jobboard_jobboard[jobType] (UID of an employment scope)
  • tx_jobboard_jobboard[address] (ZIP code and/or city)
  • tx_jobboard_jobboard[searchWord] (keywords)

Caching of the job list 

The list and the detail view are stored in the page cache of TYPO3. The page browser loads only the jobs of the current page from the database.

Changed records
TYPO3 does not know which pages show the jobs of the storage folder. Add TCEMAIN.clearCacheCmd with the UIDs of all pages with the job board to the page TSconfig of the storage folder, see Clear the cache of the job board pages. Otherwise, changes of editors and of the job import appear only when the cache expires.
Dates of the jobs
The list changes without any record being saved: a job appears at its publish date and disappears at its expiration date, after its application deadline or after its end of employment. The page cache of TYPO3 ( config.cache ) only considers the publish and expiration dates, not application deadlines or ending dates. The event listener \JWeiland\Jobboard\EventListener\LimitJobListCacheLifetimeEventListener therefore limits the cache lifetime of pages with the content element to the next of these points in time: the next publish or expiration date of a job, or the midnight after the earliest upcoming application deadline or end of employment. Only jobs of the storage pages of the content element are considered.
Salary grades
Publish and expiration dates of salary grades and steps are applied by the daily command jobboard:salary:update . It saves the changed jobs with the DataHandler, so TCEMAIN.clearCacheCmd clears the cache, see Update the effective salary of the jobs.