Skip to content
Snippets Groups Projects
Commit 211a3f08 authored by Tim Wagner's avatar Tim Wagner
Browse files

Merge branch 'feature_extendedInformationTcas' into 'master'

[FEATURE] Extended TCAs for Structured Data (SEO)

See merge request !20
parents 5dad531f ee5bef6c
No related branches found
No related tags found
1 merge request!20[FEATURE] Extended TCAs for Structured Data (SEO)
...@@ -72,6 +72,11 @@ class Company extends AbstractEntity { ...@@ -72,6 +72,11 @@ class Company extends AbstractEntity {
*/ */
protected $contact; protected $contact;
/**
* @var string $identifyingUrl
*/
protected $identifyingUrl;
/** /**
* @return string * @return string
*/ */
...@@ -183,4 +188,18 @@ class Company extends AbstractEntity { ...@@ -183,4 +188,18 @@ class Company extends AbstractEntity {
public function setZip($zip) { public function setZip($zip) {
$this->zip = $zip; $this->zip = $zip;
} }
/**
* @return string
*/
public function getIdentifyingUrl(): string {
return $this->identifyingUrl;
}
/**
* @param string $identifyingUrl
*/
public function setIdentifyingUrl(string $identifyingUrl): void {
$this->identifyingUrl = $identifyingUrl;
}
} }
...@@ -102,6 +102,51 @@ class Job extends AbstractEntity { ...@@ -102,6 +102,51 @@ class Job extends AbstractEntity {
*/ */
protected $contact; protected $contact;
/**
* @var bool
*/
protected $telecommutePossible = FALSE;
/**
* @var bool
*/
protected $officeWorkPossible = TRUE;
/**
* @var string $employmentTypes
*/
protected $employmentTypes = '';
/**
* @var int $datePosted
*/
protected $datePosted = 0;
/**
* @var int $datePosted
*/
protected $validThrough = 0;
/**
* @var string $salaryCurrency
*/
protected $salaryCurrency = 'EUR';
/**
* @var string $salaryUnit
*/
protected $salaryUnit = '';
/**
* @var string $baseSalary
*/
protected $baseSalary = '';
/**
* @var string $maxSalary
*/
protected $maxSalary = '';
/** /**
* @return string * @return string
*/ */
...@@ -298,4 +343,129 @@ class Job extends AbstractEntity { ...@@ -298,4 +343,129 @@ class Job extends AbstractEntity {
$this->sorting = $sorting; $this->sorting = $sorting;
} }
/**
* @return bool
*/
public function getTelecommutePossible(): bool {
return $this->telecommutePossible;
}
/**
* @param bool $telecommutePossible
*/
public function setTelecommutePossible(bool $telecommutePossible): void {
$this->telecommutePossible = $telecommutePossible;
}
/**
* @return bool
*/
public function getOfficeWorkPossible(): bool {
return $this->officeWorkPossible;
}
/**
* @param bool $officeWorkPossible
*/
public function setOfficeWorkPossible(bool $officeWorkPossible): void {
$this->officeWorkPossible = $officeWorkPossible;
}
/**
* @return string
*/
public function getEmploymentTypes(): string {
return $this->employmentTypes;
}
/**
* @param string $employmentTypes
*/
public function setEmploymentTypes(string $employmentTypes): void {
$this->employmentTypes = $employmentTypes;
}
/**
* @return int
*/
public function getDatePosted(): int {
return $this->datePosted;
}
/**
* @param int $datePosted
*/
public function setDatePosted(int $datePosted): void {
$this->datePosted = $datePosted;
}
/**
* @return int
*/
public function getValidThrough(): int {
return $this->validThrough;
}
/**
* @param int $validThrough
*/
public function setValidThrough(int $validThrough): void {
$this->validThrough = $validThrough;
}
/**
* @return string
*/
public function getSalaryCurrency(): string {
return $this->salaryCurrency;
}
/**
* @param string $salaryCurrency
*/
public function setSalaryCurrency(string $salaryCurrency): void {
$this->salaryCurrency = $salaryCurrency;
}
/**
* @return string
*/
public function getSalaryUnit(): string {
return $this->salaryUnit;
}
/**
* @param string $salaryUnit
*/
public function setSalaryUnit(string $salaryUnit): void {
$this->salaryUnit = $salaryUnit;
}
/**
* @return string
*/
public function getBaseSalary(): string {
return $this->baseSalary;
}
/**
* @param string $baseSalary
*/
public function setBaseSalary(string $baseSalary): void {
$this->baseSalary = $baseSalary;
}
/**
* @return string
*/
public function getMaxSalary(): string {
return $this->maxSalary;
}
/**
* @param string $maxSalary
*/
public function setMaxSalary(string $maxSalary): void {
$this->maxSalary = $maxSalary;
}
} }
<?php
namespace SGalinski\SgJobs\ViewHelpers;
/***************************************************************
* Copyright notice
*
* (c) sgalinski Internet Services (https://www.sgalinski.de)
*
* All rights reserved
*
* This script is part of the AY project. The AY 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 3 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 script 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 script!
***************************************************************/
use TYPO3\CMS\Core\Utility\GeneralUtility;
/**
* Takes a string containing multiple values separated by a delimiter and returns an array of these values.
* @TODO: Replace this ViewHelper with a VHS ViewHelper when updating to TYPO3 10!
*
* Example:
* {namespace jobs=SGalinski\SgJobs\ViewHelpers}
* <jobs:explodeString string="1,2,3,4" delimiter=","/>
*/
class ExplodeStringViewHelper extends AbstractViewHelper {
/**
* Register the ViewHelper arguments
*/
public function initializeArguments(): void {
parent::initializeArguments();
$this->registerArgument('string', 'string', 'The string to explode', TRUE);
$this->registerArgument('delimiter', 'string', 'The string separating the values in the string', TRUE);
}
/**
* Returns the exploded array of the given string value, separated by the delimiter
*
* @return array
*/
public function render(): array {
return GeneralUtility::trimExplode($this->arguments['delimiter'], $this->arguments['string']);
}
}
...@@ -57,6 +57,8 @@ return call_user_func( ...@@ -57,6 +57,8 @@ return call_user_func(
'1' => [ '1' => [
'showitem' => '--palette--;;sysLanguageAndHidden, 'showitem' => '--palette--;;sysLanguageAndHidden,
job_id, zip, city, street,name, country, description, contact;;;richtext[*]:rte_transform[mode=ts], job_id, zip, city, street,name, country, description, contact;;;richtext[*]:rte_transform[mode=ts],
--div--; LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:tca.seo_tab,
identifying_url,
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, starttime, endtime', --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, starttime, endtime',
], ],
], ],
...@@ -232,8 +234,24 @@ return call_user_func( ...@@ -232,8 +234,24 @@ return call_user_func(
'disabled' => FALSE, 'disabled' => FALSE,
] ]
], ],
] ],
] ],
'identifying_url' => [
'exclude' => TRUE,
'label' => 'LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.identifyingUrl',
'config' => [
'type' => 'input',
'renderType' => 'inputLink',
'fieldControl' => [
'linkPopup' => [
'options' => [
'blindLinkFields' => 'class,target,title',
'blindLinkOptions' => 'file,folder,mail,spec'
],
],
],
],
],
], ],
]; ];
}, 'sg_jobs', 'tx_sgjobs_domain_model_company' }, 'sg_jobs', 'tx_sgjobs_domain_model_company'
......
...@@ -52,19 +52,24 @@ return call_user_func( ...@@ -52,19 +52,24 @@ return call_user_func(
], ],
'interface' => [ 'interface' => [
'showRecordFieldList' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, pid, title, path_segment, job_id, department, hide_apply_by_email, hide_apply_by_postal, featured_offer, start_date, alternative_start_date, 'showRecordFieldList' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, pid, title, path_segment, job_id, department, hide_apply_by_email, hide_apply_by_postal, featured_offer, start_date, alternative_start_date,
company, task, qualification, description, contact', company, task, qualification, description, contact, telecommute, employment_types, date_posted, valid_through, salary_currency, base_salary, max_salary, salary_unit,'
], ],
'types' => [ 'types' => [
'1' => [ '1' => [
'showitem' => '--palette--;;sysLanguageAndHidden, --palette--;;palette_title, 'showitem' => '--palette--;;sysLanguageAndHidden, --palette--;;palette_title,
--palette--;;palette_title_start, --palette--;;palette_title_start,
--palette--;;palette_apply_function, --palette--;;palette_apply_function,
department, department,
company, company,
contact, contact,
description, description,
--div--; LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:tca.qualification_tab, task, qualification, --div--; LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:tca.qualification_tab, task, qualification,
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, starttime, endtime', --div--; LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:tca.seo_tab,
--palette--;;palette_location_specifications,
employment_types,
--palette--;;palette_seo_dates,
--palette--;;palette_salary,
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, starttime, endtime',
], ],
], ],
'palettes' => [ 'palettes' => [
...@@ -74,7 +79,13 @@ return call_user_func( ...@@ -74,7 +79,13 @@ return call_user_func(
], ],
'palette_title' => ['showitem' => 'title, path_segment, job_id', 'canNotCollapse' => 1], 'palette_title' => ['showitem' => 'title, path_segment, job_id', 'canNotCollapse' => 1],
'palette_title_start' => ['showitem' => 'start_date, alternative_start_date', 'canNotCollapse' => 1], 'palette_title_start' => ['showitem' => 'start_date, alternative_start_date', 'canNotCollapse' => 1],
'palette_apply_function' => ['showitem' => 'hide_apply_by_email, hide_apply_by_postal, featured_offer', 'canNotCollapse' => 1] 'palette_apply_function' => ['showitem' => 'hide_apply_by_email, hide_apply_by_postal, featured_offer', 'canNotCollapse' => 1],
'palette_location_specifications' => ['showitem' => 'telecommute_possible, office_work_possible'],
'palette_seo_dates' => ['showitem' => 'date_posted, valid_through'],
'palette_salary' => [
'label' => 'LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:tca.salary_palette',
'showitem' => 'salary_currency, --linebreak--, base_salary, max_salary, --linebreak--, salary_unit,'
]
], ],
'columns' => [ 'columns' => [
'sorting' => [ 'sorting' => [
...@@ -350,7 +361,106 @@ return call_user_func( ...@@ -350,7 +361,106 @@ return call_user_func(
] ]
], ],
] ]
] ],
'telecommute_possible' => [
'exclude' => TRUE,
'l10n_mode' => 'exclude',
'label' => 'LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.telecommutePossible',
'config' => [
'type' => 'check',
],
],
'office_work_possible' => [
'exclude' => TRUE,
'l10n_mode' => 'exclude',
'label' => 'LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.officeWorkPossible',
'config' => [
'type' => 'check',
],
],
'employment_types' => [
'exclude' => TRUE,
'l10n_mode' => 'exclude',
'label' => 'LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.employment_types',
'config' => [
'type' => 'select',
'renderType' => 'selectMultipleSideBySide',
'items' => [
['LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.employment_types.full_time', 'FULL_TIME'],
['LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.employment_types.part_time', 'PART_TIME'],
['LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.employment_types.contractor', 'CONTRACTOR'],
['LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.employment_types.temporary', 'TEMPORARY'],
['LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.employment_types.intern', 'INTERN'],
['LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.employment_types.volunteer', 'VOLUNTEER'],
['LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.employment_types.per_diem', 'PER_DIEM'],
['LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.employment_types.other', 'OTHER']
]
]
],
'date_posted' => [
'exclude' => TRUE,
'l10n_mode' => 'exclude',
'label' => 'LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.date_posted',
'config' => [
'type' => 'input',
'renderType' => 'inputDateTime',
'eval' => 'date'
],
],
'valid_through' => [
'exclude' => TRUE,
'l10n_mode' => 'exclude',
'label' => 'LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.valid_through',
'config' => [
'type' => 'input',
'renderType' => 'inputDateTime',
'eval' => 'date'
],
],
'salary_currency' => [
'exclude' => TRUE,
'label' => 'LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.salary_currency',
'config' => [
'type' => 'input',
'eval' => 'alpha, upper',
'max' => 3,
'default' => 'EUR',
],
],
'salary_unit' => [
'exclude' => TRUE,
'l10n_mode' => 'exclude',
'label' => 'LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.salary_unit',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'items' => [
['LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.salary_unit.hour', 'HOUR'],
['LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.salary_unit.day', 'DAY'],
['LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.salary_unit.week', 'WEEK'],
['LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.salary_unit.month', 'MONTH'],
['LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.salary_unit.year', 'YEAR'],
]
]
],
'base_salary' => [
'exclude' => TRUE,
'label' => 'LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.base_salary',
'config' => [
'type' => 'input',
'eval' => 'double2',
'max' => 15,
],
],
'max_salary' => [
'exclude' => TRUE,
'label' => 'LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_db.xlf:' . $table . '.max_salary',
'config' => [
'type' => 'input',
'eval' => 'double2',
'max' => 15,
],
],
], ],
]; ];
}, 'sg_jobs', 'tx_sgjobs_domain_model_job' }, 'sg_jobs', 'tx_sgjobs_domain_model_job'
......
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<xliff version="1.0"> <xliff version="1.0">
<file source-language="en" target-language="de" datatype="plaintext" original="messages" date="2019-08-06T13:19:35Z"> <file source-language="en" target-language="de" datatype="plaintext" original="messages" date="2019-10-08T14:28:53Z">
<header> <header>
<type>database</type> <type>database</type>
<description>General language labels used in frontend and backend.</description> <description>General language labels used in frontend and backend.</description>
...@@ -21,6 +21,14 @@ ...@@ -21,6 +21,14 @@
<source><![CDATA[Qualification & Tasks]]></source> <source><![CDATA[Qualification & Tasks]]></source>
<target><![CDATA[Qualifikation & Aufgaben]]></target> <target><![CDATA[Qualifikation & Aufgaben]]></target>
</trans-unit> </trans-unit>
<trans-unit id="tca.salary_palette" approved="yes">
<source><![CDATA[Salary Information. Used only if currency and base salary are set.]]></source>
<target><![CDATA[Gehaltsinformationen. Wird nur verwendet, wenn Währung und Grundgehalt festgelegt sind.]]></target>
</trans-unit>
<trans-unit id="tca.seo_tab" approved="yes">
<source><![CDATA[SEO]]></source>
<target><![CDATA[SEO]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs.application_privacyPolicyPage" approved="yes"> <trans-unit id="tx_sgjobs.application_privacyPolicyPage" approved="yes">
<source><![CDATA[Privacy policy page]]></source> <source><![CDATA[Privacy policy page]]></source>
<target><![CDATA[Dateschutzinformationsseite]]></target> <target><![CDATA[Dateschutzinformationsseite]]></target>
...@@ -77,6 +85,10 @@ ...@@ -77,6 +85,10 @@
<source><![CDATA[Description]]></source> <source><![CDATA[Description]]></source>
<target><![CDATA[Beschreibung]]></target> <target><![CDATA[Beschreibung]]></target>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_company.identifyingUrl" approved="yes">
<source><![CDATA[Link to this company's website. Should properly identify the company.]]></source>
<target><![CDATA[Link zur Website des Unternehmens. Sollte das Unternehmen eindeutig identifizieren.]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_company.job_id" approved="yes"> <trans-unit id="tx_sgjobs_domain_model_company.job_id" approved="yes">
<source><![CDATA[Job ID]]></source> <source><![CDATA[Job ID]]></source>
<target><![CDATA[Job ID]]></target> <target><![CDATA[Job ID]]></target>
...@@ -161,6 +173,10 @@ ...@@ -161,6 +173,10 @@
<source><![CDATA[Display apply by postal service section]]></source> <source><![CDATA[Display apply by postal service section]]></source>
<target><![CDATA[Bewerbung per Post einblenden]]></target> <target><![CDATA[Bewerbung per Post einblenden]]></target>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.base_salary" approved="yes">
<source><![CDATA[Minimal/Base salary per pay period. Must be set greater than 0 for salary information to be embedded.]]></source>
<target><![CDATA[Minimal-/Basisgehalt pro Gehaltsperiode. Muss größer 0 gesetzt werden, damit Gehaltsinformationen hinterlegt werden.]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.company" approved="yes"> <trans-unit id="tx_sgjobs_domain_model_job.company" approved="yes">
<source><![CDATA[Company]]></source> <source><![CDATA[Company]]></source>
<target><![CDATA[Unternehmen]]></target> <target><![CDATA[Unternehmen]]></target>
...@@ -169,6 +185,10 @@ ...@@ -169,6 +185,10 @@
<source><![CDATA[Contact]]></source> <source><![CDATA[Contact]]></source>
<target><![CDATA[Kontakt]]></target> <target><![CDATA[Kontakt]]></target>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.date_posted" approved="yes">
<source><![CDATA[Date the job offer was posted]]></source>
<target><![CDATA[Datum der Veröffentlichung der Stellenanzeige]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.department" approved="yes"> <trans-unit id="tx_sgjobs_domain_model_job.department" approved="yes">
<source><![CDATA[Department]]></source> <source><![CDATA[Department]]></source>
<target><![CDATA[Bereich]]></target> <target><![CDATA[Bereich]]></target>
...@@ -181,6 +201,42 @@ ...@@ -181,6 +201,42 @@
<source><![CDATA[Job description]]></source> <source><![CDATA[Job description]]></source>
<target><![CDATA[Beschreibung]]></target> <target><![CDATA[Beschreibung]]></target>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.employment_types" approved="yes">
<source><![CDATA[Employment Type(s)]]></source>
<target><![CDATA[Art(en) der Beschäftigung]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.employment_types.contractor" approved="yes">
<source><![CDATA[Contractor]]></source>
<target><![CDATA[Auftragnehmer]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.employment_types.full_time" approved="yes">
<source><![CDATA[Full time]]></source>
<target><![CDATA[Vollzeit]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.employment_types.intern" approved="yes">
<source><![CDATA[Intern]]></source>
<target><![CDATA[Praktikant]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.employment_types.other" approved="yes">
<source><![CDATA[Other]]></source>
<target><![CDATA[Andere]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.employment_types.part_time" approved="yes">
<source><![CDATA[Part time]]></source>
<target><![CDATA[Teilzeit]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.employment_types.per_diem" approved="yes">
<source><![CDATA[Per diem]]></source>
<target><![CDATA[Nach Bedarf]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.employment_types.temporary" approved="yes">
<source><![CDATA[Temporary]]></source>
<target><![CDATA[Zeitarbeit]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.employment_types.volunteer" approved="yes">
<source><![CDATA[Volunteer]]></source>
<target><![CDATA[Freiwillig]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.featuredOffer" approved="yes"> <trans-unit id="tx_sgjobs_domain_model_job.featuredOffer" approved="yes">
<source><![CDATA[Featured Offer (will always show up in the job offer teaser)]]></source> <source><![CDATA[Featured Offer (will always show up in the job offer teaser)]]></source>
<target><![CDATA[Diese Stellenausschreibung in jedem Job-Teaser anzeigen]]></target> <target><![CDATA[Diese Stellenausschreibung in jedem Job-Teaser anzeigen]]></target>
...@@ -205,10 +261,18 @@ ...@@ -205,10 +261,18 @@
<source><![CDATA[Location]]></source> <source><![CDATA[Location]]></source>
<target><![CDATA[Arbeitsort]]></target> <target><![CDATA[Arbeitsort]]></target>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.max_salary" approved="yes">
<source><![CDATA[Maximal salary per pay period. Set equal to base salary to embed a fixed value instead of a salary range.]]></source>
<target><![CDATA[Maximalgehalt pro Lohnperiode. Gleich dem Grundgehalt einstellen, um einen festen Wert anstelle einer Gehaltsspanne einzubetten.]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.offers_page" approved="yes"> <trans-unit id="tx_sgjobs_domain_model_job.offers_page" approved="yes">
<source><![CDATA[Page that shows a list of all job offers in the frontend]]></source> <source><![CDATA[Page that shows a list of all job offers in the frontend]]></source>
<target><![CDATA[Seite auf der eine Liste aller Stellenanzeigen im Frontend angezeigt wird]]></target> <target><![CDATA[Seite auf der eine Liste aller Stellenanzeigen im Frontend angezeigt wird]]></target>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.officeWorkPossible" approved="yes">
<source><![CDATA[Job can be executed in the office of the specified company]]></source>
<target><![CDATA[Job kann im Büro der angegebenen Firma ausgeführt werden]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.orderBy" approved="yes"> <trans-unit id="tx_sgjobs_domain_model_job.orderBy" approved="yes">
<source><![CDATA[Sorting of job offers]]></source> <source><![CDATA[Sorting of job offers]]></source>
<target><![CDATA[Sortierung der Stellenangebote]]></target> <target><![CDATA[Sortierung der Stellenangebote]]></target>
...@@ -225,6 +289,10 @@ ...@@ -225,6 +289,10 @@
<source><![CDATA[By creation date (latest at top)]]></source> <source><![CDATA[By creation date (latest at top)]]></source>
<target><![CDATA[Nach Erstellungsdatum (neueste zuerst)]]></target> <target><![CDATA[Nach Erstellungsdatum (neueste zuerst)]]></target>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.path_segment" approved="yes">
<source><![CDATA[Path Segment]]></source>
<target><![CDATA[URL-Pfad]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.plugin_options" approved="yes"> <trans-unit id="tx_sgjobs_domain_model_job.plugin_options" approved="yes">
<source><![CDATA[Joblist plugin options]]></source> <source><![CDATA[Joblist plugin options]]></source>
<target><![CDATA[Joblist Plugin-Optionen]]></target> <target><![CDATA[Joblist Plugin-Optionen]]></target>
...@@ -233,6 +301,34 @@ ...@@ -233,6 +301,34 @@
<source><![CDATA[Qualification]]></source> <source><![CDATA[Qualification]]></source>
<target><![CDATA[Qualifikation]]></target> <target><![CDATA[Qualifikation]]></target>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.salary_currency" approved="yes">
<source><![CDATA[Currency code according to ISO 4217, consisting of three capital letters.]]></source>
<target><![CDATA[Währungscode nach ISO 4217, bestehend aus drei Großbuchstaben.]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.salary_unit" approved="yes">
<source><![CDATA[Salary period]]></source>
<target><![CDATA[Gehaltsperiode]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.salary_unit.day" approved="yes">
<source><![CDATA[Day]]></source>
<target><![CDATA[Tag]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.salary_unit.hour" approved="yes">
<source><![CDATA[Hour]]></source>
<target><![CDATA[Stunde]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.salary_unit.month" approved="yes">
<source><![CDATA[Month]]></source>
<target><![CDATA[Monat]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.salary_unit.week" approved="yes">
<source><![CDATA[Week]]></source>
<target><![CDATA[Woche]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.salary_unit.year" approved="yes">
<source><![CDATA[Year]]></source>
<target><![CDATA[Jahr]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.start_date" approved="yes"> <trans-unit id="tx_sgjobs_domain_model_job.start_date" approved="yes">
<source><![CDATA[Start date]]></source> <source><![CDATA[Start date]]></source>
<target><![CDATA[Einstiegsdatum]]></target> <target><![CDATA[Einstiegsdatum]]></target>
...@@ -257,13 +353,17 @@ ...@@ -257,13 +353,17 @@
<source><![CDATA[In the frontend all job offers are listed, in which the corresponding check mark is set and additionally all, which are assigned to the locations selected here.]]></source> <source><![CDATA[In the frontend all job offers are listed, in which the corresponding check mark is set and additionally all, which are assigned to the locations selected here.]]></source>
<target><![CDATA[Im Frontend werden alle Stellenangebote gelistet, in denen der entsprechende Haken gesetzt ist und zusätzlich alle, die den hier ausgewählten Standorten zugeordnet sind.]]></target> <target><![CDATA[Im Frontend werden alle Stellenangebote gelistet, in denen der entsprechende Haken gesetzt ist und zusätzlich alle, die den hier ausgewählten Standorten zugeordnet sind.]]></target>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.telecommutePossible" approved="yes">
<source><![CDATA[Job can be executed fully remotely (teleworking)]]></source>
<target><![CDATA[Job kann vollständig remote ausgeführt werden (Telearbeit)]]></target>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.title" approved="yes"> <trans-unit id="tx_sgjobs_domain_model_job.title" approved="yes">
<source><![CDATA[Job title]]></source> <source><![CDATA[Job title]]></source>
<target><![CDATA[Stellenbezeichnung]]></target> <target><![CDATA[Stellenbezeichnung]]></target>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.path_segment"> <trans-unit id="tx_sgjobs_domain_model_job.valid_through" approved="yes">
<source><![CDATA[Path Segment]]></source> <source><![CDATA[Application Deadline]]></source>
<target><![CDATA[URL-Pfad]]></target> <target><![CDATA[Bewerbungsschluss]]></target>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job_application" approved="yes"> <trans-unit id="tx_sgjobs_domain_model_job_application" approved="yes">
<source><![CDATA[Job application]]></source> <source><![CDATA[Job application]]></source>
......
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<xliff version="1.0"> <xliff version="1.0">
<file source-language="en" datatype="plaintext" original="messages" date="2019-08-06T13:19:35Z"> <file source-language="en" datatype="plaintext" original="messages" date="2019-10-08T14:28:53Z">
<header> <header>
<type>database</type> <type>database</type>
<description>General language labels used in frontend and backend.</description> <description>General language labels used in frontend and backend.</description>
...@@ -18,6 +18,12 @@ ...@@ -18,6 +18,12 @@
<trans-unit id="tca.qualification_tab"> <trans-unit id="tca.qualification_tab">
<source><![CDATA[Qualification & Tasks]]></source> <source><![CDATA[Qualification & Tasks]]></source>
</trans-unit> </trans-unit>
<trans-unit id="tca.salary_palette">
<source><![CDATA[Salary Information. Used only if currency and base salary are set.]]></source>
</trans-unit>
<trans-unit id="tca.seo_tab">
<source><![CDATA[SEO]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs.application_privacyPolicyPage"> <trans-unit id="tx_sgjobs.application_privacyPolicyPage">
<source><![CDATA[Privacy policy page]]></source> <source><![CDATA[Privacy policy page]]></source>
</trans-unit> </trans-unit>
...@@ -60,6 +66,9 @@ ...@@ -60,6 +66,9 @@
<trans-unit id="tx_sgjobs_domain_model_company.description"> <trans-unit id="tx_sgjobs_domain_model_company.description">
<source><![CDATA[Description]]></source> <source><![CDATA[Description]]></source>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_company.identifyingUrl">
<source><![CDATA[Link to this company's website. Should properly identify the company.]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_company.job_id"> <trans-unit id="tx_sgjobs_domain_model_company.job_id">
<source><![CDATA[Job ID]]></source> <source><![CDATA[Job ID]]></source>
</trans-unit> </trans-unit>
...@@ -126,12 +135,18 @@ ...@@ -126,12 +135,18 @@
<trans-unit id="tx_sgjobs_domain_model_job.applyByPostal"> <trans-unit id="tx_sgjobs_domain_model_job.applyByPostal">
<source><![CDATA[Display apply by postal service section]]></source> <source><![CDATA[Display apply by postal service section]]></source>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.base_salary">
<source><![CDATA[Minimal/Base salary per pay period. Must be set greater than 0 for salary information to be embedded.]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.company"> <trans-unit id="tx_sgjobs_domain_model_job.company">
<source><![CDATA[Company]]></source> <source><![CDATA[Company]]></source>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.contact"> <trans-unit id="tx_sgjobs_domain_model_job.contact">
<source><![CDATA[Contact]]></source> <source><![CDATA[Contact]]></source>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.date_posted">
<source><![CDATA[Date the job offer was posted]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.department"> <trans-unit id="tx_sgjobs_domain_model_job.department">
<source><![CDATA[Department]]></source> <source><![CDATA[Department]]></source>
</trans-unit> </trans-unit>
...@@ -141,6 +156,33 @@ ...@@ -141,6 +156,33 @@
<trans-unit id="tx_sgjobs_domain_model_job.description"> <trans-unit id="tx_sgjobs_domain_model_job.description">
<source><![CDATA[Job description]]></source> <source><![CDATA[Job description]]></source>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.employment_types">
<source><![CDATA[Employment Type(s)]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.employment_types.contractor">
<source><![CDATA[Contractor]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.employment_types.full_time">
<source><![CDATA[Full time]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.employment_types.intern">
<source><![CDATA[Intern]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.employment_types.other">
<source><![CDATA[Other]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.employment_types.part_time">
<source><![CDATA[Part time]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.employment_types.per_diem">
<source><![CDATA[Per diem]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.employment_types.temporary">
<source><![CDATA[Temporary]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.employment_types.volunteer">
<source><![CDATA[Volunteer]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.featuredOffer"> <trans-unit id="tx_sgjobs_domain_model_job.featuredOffer">
<source><![CDATA[Featured Offer (will always show up in the job offer teaser)]]></source> <source><![CDATA[Featured Offer (will always show up in the job offer teaser)]]></source>
</trans-unit> </trans-unit>
...@@ -159,9 +201,15 @@ ...@@ -159,9 +201,15 @@
<trans-unit id="tx_sgjobs_domain_model_job.location"> <trans-unit id="tx_sgjobs_domain_model_job.location">
<source><![CDATA[Location]]></source> <source><![CDATA[Location]]></source>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.max_salary">
<source><![CDATA[Maximal salary per pay period. Set equal to base salary to embed a fixed value instead of a salary range.]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.offers_page"> <trans-unit id="tx_sgjobs_domain_model_job.offers_page">
<source><![CDATA[Page that shows a list of all job offers in the frontend]]></source> <source><![CDATA[Page that shows a list of all job offers in the frontend]]></source>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.officeWorkPossible">
<source><![CDATA[Job can be executed in the office of the specified company]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.orderBy"> <trans-unit id="tx_sgjobs_domain_model_job.orderBy">
<source><![CDATA[Sorting of job offers]]></source> <source><![CDATA[Sorting of job offers]]></source>
</trans-unit> </trans-unit>
...@@ -174,12 +222,36 @@ ...@@ -174,12 +222,36 @@
<trans-unit id="tx_sgjobs_domain_model_job.orderBy_3"> <trans-unit id="tx_sgjobs_domain_model_job.orderBy_3">
<source><![CDATA[By creation date (latest at top)]]></source> <source><![CDATA[By creation date (latest at top)]]></source>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.path_segment">
<source><![CDATA[Path Segment]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.plugin_options"> <trans-unit id="tx_sgjobs_domain_model_job.plugin_options">
<source><![CDATA[Joblist plugin options]]></source> <source><![CDATA[Joblist plugin options]]></source>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.qualification"> <trans-unit id="tx_sgjobs_domain_model_job.qualification">
<source><![CDATA[Qualification]]></source> <source><![CDATA[Qualification]]></source>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.salary_currency">
<source><![CDATA[Currency code according to ISO 4217, consisting of three capital letters.]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.salary_unit">
<source><![CDATA[Salary period]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.salary_unit.day">
<source><![CDATA[Day]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.salary_unit.hour">
<source><![CDATA[Hour]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.salary_unit.month">
<source><![CDATA[Month]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.salary_unit.week">
<source><![CDATA[Week]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.salary_unit.year">
<source><![CDATA[Year]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.start_date"> <trans-unit id="tx_sgjobs_domain_model_job.start_date">
<source><![CDATA[Start date]]></source> <source><![CDATA[Start date]]></source>
</trans-unit> </trans-unit>
...@@ -198,11 +270,14 @@ ...@@ -198,11 +270,14 @@
<trans-unit id="tx_sgjobs_domain_model_job.teaser_locations.description"> <trans-unit id="tx_sgjobs_domain_model_job.teaser_locations.description">
<source><![CDATA[In the frontend all job offers are listed, in which the corresponding check mark is set and additionally all, which are assigned to the locations selected here.]]></source> <source><![CDATA[In the frontend all job offers are listed, in which the corresponding check mark is set and additionally all, which are assigned to the locations selected here.]]></source>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.telecommutePossible">
<source><![CDATA[Job can be executed fully remotely (teleworking)]]></source>
</trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.title"> <trans-unit id="tx_sgjobs_domain_model_job.title">
<source><![CDATA[Job title]]></source> <source><![CDATA[Job title]]></source>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job.path_segment"> <trans-unit id="tx_sgjobs_domain_model_job.valid_through">
<source><![CDATA[Path Segment]]></source> <source><![CDATA[Application Deadline]]></source>
</trans-unit> </trans-unit>
<trans-unit id="tx_sgjobs_domain_model_job_application"> <trans-unit id="tx_sgjobs_domain_model_job_application">
<source><![CDATA[Job application]]></source> <source><![CDATA[Job application]]></source>
......
...@@ -7,24 +7,64 @@ ...@@ -7,24 +7,64 @@
"@type": "JobPosting", "@type": "JobPosting",
"title": "{job.title}", "title": "{job.title}",
"description": "<f:format.htmlentities>{job.description}{job.task}{job.qualification}</f:format.htmlentities>", "description": "<f:format.htmlentities>{job.description}{job.task}{job.qualification}</f:format.htmlentities>",
"identifier": "<f:uri.page pageUid="{job.pid}" absolute="TRUE"/>",
"datePosted": "{sg:date(timestamp:'{job.crdate.timestamp}', format:'%Y-%m-%d')}",
"employmentType": [
<f:for each="{h:explodeString(string: '{job.employmentTypes}', delimiter: ',')}" as="employmentType" iteration="iterator">
"{employmentType}"{f:if(condition: '{iterator.isLast} == FALSE', then: ',')}
</f:for>
],
"datePosted": "{f:format.date(date: '{f:if(condition: job.datePosted, then: job.datePosted, else: \'now\')}', format: 'Y-m-d')}",
<f:if condition="{job.validThrough}">
"validThrough": "{f:format.date(date: job.validThrough, format: 'Y-m-d')}",
</f:if>
<f:if condition="{job.salaryCurrency} && {job.baseSalary} > 0">
"baseSalary": {leftBrace}
"@type": "MonetaryAmount",
"currency": "{job.salaryCurrency}",
"value": {leftBrace}
"@type": "QuantitativeValue",
<f:if condition="{job.baseSalary} === {job.maxSalary}">
<f:then>
"value": {job.baseSalary},
</f:then>
<f:else>
"minValue": {job.baseSalary},
"maxValue": {job.maxSalary},
</f:else>
</f:if>
"unitText": "{job.salaryUnit}"
{rightBrace}
{rightBrace},
</f:if>
<f:if condition="{job.telecommutePossible}">
"jobLocationType": "TELECOMMUTE",
</f:if>
<f:if condition="{job.officeWorkPossible}">
"jobLocation": {leftBrace}
"@type": "Place",
"address": {leftBrace}
"@type": "PostalAddress",
"streetAddress": "{job.company.street -> f:format.htmlentities()}",
"addressLocality": "{job.company.city -> f:format.htmlentities()}",
"postalCode": "{job.company.zip}",
"addressCountry": "{job.company.country -> f:format.htmlentities()}"
{rightBrace}
{rightBrace},
</f:if>
<f:comment><!--
We need a property that is certainly included to make sure the last property never ends with a comma.
--></f:comment>
"hiringOrganization": {leftBrace} "hiringOrganization": {leftBrace}
"@type": "Organization", "@type": "Organization",
"name": "{job.company.name}", "name": "{job.company.name}",
"sameAs": "<f:uri.page pageUid="1" absolute="TRUE"/>", "sameAs": "{f:uri.typolink(parameter: job.company.identifyingUrl, absolute: 'TRUE')}",
"logo": "<f:uri.image src="EXT:project_theme/Resources/Public/Images/logo-inverted.svg" absolute="TRUE"/>" "department": {leftBrace}
{rightBrace}, "@type": "Organization",
"name": "{job.department.title}"
"jobLocation": {leftBrace}
"@type": "Place",
"address": {leftBrace}
"@type": "PostalAddress",
"streetAddress": "{job.company.street}",
"addressLocality": "{job.company.city}",
"postalCode": "{job.company.zip}",
"addressCountry": "{job.company.country}"
{rightBrace} {rightBrace}
{rightBrace} {rightBrace}
{rightBrace} {rightBrace}
......
<f:alias map="{leftBrace: '{', rightBrace: '}'}">
<script type="application/ld+json">
{leftBrace}
"@context": "http://schema.org/",
"@type": "ItemList",
"itemListElement": [
<f:for each="{jobs}" as="job" iteration="iterator">
{leftBrace}
"@type": "ListItem",
"position": "{iterator.cycle}",
"url": "<f:uri.action pageUid="{settings.applyPage}" controller="Joblist" action="applyForm" arguments="{jobId: job.uid}" absolute="TRUE"/>"
{rightBrace}<f:if condition="{iterator.isLast} == FALSE">,</f:if>
</f:for>
],
"numberOfItems": "{jobs->f:count()}"
{rightBrace}
</script>
</f:alias>
{namespace sg=SGalinski\SgJobs\ViewHelpers} {namespace sg=SGalinski\SgJobs\ViewHelpers}
<f:layout name="Default" /> <f:layout name="Default" />
<f:section name="main"> <f:section name="main">
<f:alias map="{leftBrace: '{', rightBrace: '}'}"> <f:render partial="JoblistListSchema" arguments="{_all}" />
<script type="application/ld+json">
{leftBrace}
"@context": "http://schema.org/",
"@type": "ItemList",
"itemListElement": [
<f:for each="{jobs}" as="job" iteration="iterator">
{leftBrace}
"@type": "ListItem",
"position": "{iterator.cycle}",
"url": "<f:uri.action pageUid="{settings.applyPage}" controller="Joblist" action="applyForm" arguments="{jobId: job.uid}" absolute="TRUE"/>"
{rightBrace}<f:if condition="{iterator.isLast} == FALSE">,</f:if>
</f:for>
],
"numberOfItems": "{jobs->f:count()}"
{rightBrace}
</script>
</f:alias>
<div id="sgjobs-joblist"> <div id="sgjobs-joblist">
<f:render <f:render
......
...@@ -11,6 +11,15 @@ CREATE TABLE tx_sgjobs_domain_model_job ( ...@@ -11,6 +11,15 @@ CREATE TABLE tx_sgjobs_domain_model_job (
alternative_start_date text DEFAULT '' NOT NULL, alternative_start_date text DEFAULT '' NOT NULL,
start_date int(11) unsigned DEFAULT '0' NOT NULL, start_date int(11) unsigned DEFAULT '0' NOT NULL,
company text DEFAULT '' NOT NULL, company text DEFAULT '' NOT NULL,
telecommute_possible tinyint(4) unsigned DEFAULT '0' NOT NULL,
office_work_possible tinyint(4) unsigned DEFAULT '1' NOT NULL,
employment_types text DEFAULT '' NOT NULL,
date_posted int(11) unsigned DEFAULT '0' NOT NULL,
valid_through int(11) unsigned DEFAULT '0' NOT NULL,
salary_currency varchar(3) DEFAULT 'EUR' NOT NULL,
base_salary varchar(15) DEFAULT '' NOT NULL,
max_salary varchar(15) DEFAULT '' NOT NULL,
salary_unit varchar(5) DEFAULT '' NOT NULL,
description text DEFAULT '' NOT NULL, description text DEFAULT '' NOT NULL,
department int(11) DEFAULT '0' NOT NULL, department int(11) DEFAULT '0' NOT NULL,
contact int(11) unsigned DEFAULT '0' NOT NULL, contact int(11) unsigned DEFAULT '0' NOT NULL,
...@@ -105,6 +114,7 @@ CREATE TABLE tx_sgjobs_domain_model_company ( ...@@ -105,6 +114,7 @@ CREATE TABLE tx_sgjobs_domain_model_company (
description text DEFAULT '' NOT NULL, description text DEFAULT '' NOT NULL,
contact int(11) unsigned DEFAULT '0' NOT NULL, contact int(11) unsigned DEFAULT '0' NOT NULL,
job_id text DEFAULT '' NOT NULL, job_id text DEFAULT '' NOT NULL,
identifying_url varchar(255) DEFAULT '' NOT NULL,
-- TYPO3 fields -- TYPO3 fields
sorting int(11) unsigned DEFAULT '0' NOT NULL, sorting int(11) unsigned DEFAULT '0' NOT NULL,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment