Giter Club home page Giter Club logo

google_for_jobs's Introduction

TYPO3 Extension google_for_jobs

google for Jobs

1. Features

  • easy integration
  • decide to hide/display fluidtemplate in frontend
  • render structured data to your job posting
  • more features coming soon

2. Usage

1) Installation

Installation using Composer

The recommended way to install the extension is by using Composer. In your Composer based TYPO3 project root, just do composer require pegasus/google-for-jobs.

Installation as extension from TYPO3 Extension Repository (TER)

Download and install the extension with the extension manager module.

2) Setup

  1. Include the static TypoScript of the extension.
  2. Create some location and job records on a sysfolder.
  3. Create a plugin on a page and select at least the sysfolder as startingpoint.

3) Sitemap

Add the following code to your setup.typoscript

plugin.tx_seo.config {
  xmlSitemap {
    sitemaps {
      jobs {
        provider = TYPO3\CMS\Seo\XmlSitemap\RecordsXmlSitemapDataProvider
        config {
          table = tx_googleforjobs_domain_model_job
          sortField = uid
          lastModifiedField = tstamp
          pid = <page id containing job records>
          url {
            pageId = <your detail page id>
            fieldToParameterMap {
              uid = tx_googleforjobs_job[job]
            }
            additionalGetParameters {
              tx_googleforjobs_job.controller = Job
              tx_googleforjobs_job.action = show
            }
            useCacheHash = 1
          }
        }
      }
    }
  }
}

4) Routing Enhancer

Add the following code to your config.yaml

routeEnhancers:
  JobsPlugin:
    type: Extbase
    extension: GoogleForJobs
    plugin: Job
    routes:
      -
        routePath: '/{job_title}'
        _controller: 'Job::show'
        _arguments:
          job_title: job
    defaultController: 'Job::show'
    aspects:
      job_title:
        type: PersistedAliasMapper
        tableName: tx_googleforjobs_domain_model_job
        routeFieldName: path_segment

3. Administration

3.1. Versions and support

google_for_jobs TYPO3 PHP Support/Development
2.x 10.4.x 7.2 - 7.4 Features, Bugfixes, Security Updates
1.x 9.5.x 7.0 - 7.2 Bugfixes, Security Updates

Update from 1.3 to higher Versions

  • Install Update via composer or from TYPO3 TER
  • Run the Upgrade Wizard from Admin Tools > Upgrade > Upgrade Wizard. You will be promted to create missing tables and fields, please do so
  • Next, execute the "Google For Jobs: migrate locations into seperate table" wizard. This will migrate your existing job locations into a seperate table
  • Modify your fluid templates accordingly

3.2. Contribution

Pull requests are welcome in general! Nevertheless please don't forget to add an issue and connect it to your pull requests. This is very helpful to understand what kind of issue the PR is going to solve.

  • Bugfixes: Please describe what kind of bug your fix solve and give us feedback how to reproduce the issue. We're going to accept only bugfixes if I can reproduce the issue.
  • Features: Feel free to contact us if u have some cool ideas or wishes.

3.3. Changelog

Read the full Changelog here.

google_for_jobs's People

Contributors

ayacoo avatar micha-sus avatar muellerp avatar muellerpp avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

google_for_jobs's Issues

Jobs with multiple locations, joblist titles

Hi, a very useful and cool extension, thx!
I would have two feature requests/issues, if I may. At the moment it is only possible to post a job at one location. But if a company has multiple subsidiaries, and the same job is offered at multiple locations, one has to copy the job for each branch. It would be nice, if the editor could add several locations to the same job, and the json script would contain all jobLocation entries.

A second issue is the Joblist in the container. At the moment it is very difficult to find the job to be edited, as the joblist contains the datum of each job. It would be much more useful, if the editor could see the tite of each job instead.
joblist
Thanks, Ákos

Logo URL in generated JSON looks like: t3://file.... when added not as full Img-URL

Hi,
if I set "hiring_organization_logo_url" for a jobposting via "File" in the link assistant/pop up
the code in the generated JSON looks like:
logo":"t3://file?uid=74"

If I set it via "External URL", everything is fine. But that's maybe too complicated. (especially for an editor)
Is there any easier way I can set it correctly via selecting the image from fileadmin directly.

Thanks
Michael

ERROR: Valid Through is not required

If you leave this field empty then TYPO3 shows error:

Return value of Pegasus\GoogleForJobs\Domain\Model\Job::getValidThrough() must be an instance of DateTime, null returned.

So it has to be required, i think (TCA).

base_salary_button has no effect on structured data

If the base_salary_enable button is disabled, the baseSalary attribute still gets added to the structured data. I believe this is a bug. This would be fixed in #23
As the baseSalary attribute is optional (at least for Google), I believe it should be possible not to add it.

Change action rendering

I am using your extension, thanks a lot!

Are you interested in changing the flexforms to switch the desired action directly instead of using redirects in the indexAction? I would then contribute the patch

Add direct_apply option

Would you be interested in adding a direct_apply option to the structured data. This indicates if users can apply for a job directly on the website e.g. with a form. This would be added with #23

Feature request: Usage of System Categories

Since TYPO3 6.2 it is possible to categorize pages, content elements and
files (default setting) by using the internal generic categorization system.

Activating categorization by providing category flexform element for job
entries would be great as sys_category could be used to f.e. colorize
job-items according their category in List- and Detail-View.

(sys_category UID - only first category if more than one category is
selected per job entry - could be set f.e. as class on wrapping div)

Missing Logo in Frontend JSON

On selecting the hiring Organization Logo the entry will be made on the backend, but the JSON script created on the front end does not contain it.

understanding installation documentation

Hello together,
maybe you could help me with this, but I'm not really sure what you mean with the following items in your installation steps:

  • "Create a plugin on a page"
    I guess you mean a plugin content element and select Google for Jobs? But on which page should I create the plugin? On every page where a job posting is located?
  • "pid = "
    ??? Which news records do you mean here? Or which page id do I need here?
  • "pageId = "
    Same here. Which page id do I need?

I'd really love to use your plugin, but as I'm at the beginning with typo3 I'd really appreciate your help with this!

Adding a PageTitleProvider

Would you be interested in adding a title provider to the plugin? This way the job detail pages, could have a title corresponding to a job name e.g. JobName - MySite? If so I could create a pull request for pageTitle branch

Also would an opt-in or opt-out approach to this be preferred? You could always manually remove or add the page title provider like this in TypoScript:

config.pageTitleProviders {
    googleforjobs {
        provider = Pegasus\GoogleForJobs\PageTitle\GoogleForJobsPageTitleProvider
        before = altPageTitle,record,seo
    }
}

Routing Issues and unwanted URL Parameters

First of all, my compliments for the great extension.

But I have the following problem (google_for_jobs 2.1, TYPO3 10.4.18, PHP 7.2).
On all pages with the list view plugin, parameters are automatically appended to the URLs.
They look like this
https://www.mydomain.de/karriere/stellenangebote?tx_googleforjobs_job[action]=listSelected&tx_googleforjobs_job[controller]=Job&cHash=105f0d079ba8b884872de3430df4d555
but should be:
https://www.mydomain.de/karriere/stellenangebote/

I added the following routeEnhancer to my config.yaml:

routeEnhancers:
  JobsPlugin:
    type: Extbase
    extension: GoogleForJobs
    plugin: Job
    routes:
      -
        routePath: '/{job-title}'
        _controller: 'Job::show'
        _arguments:
          job-title: job
    defaultController: 'Job::show' _arguments
    aspects:
      job-title:
        type: PersistedAliasMapper
        tableName: tx_googleforjobs_domain_model_job
        routeFieldName: path_segment

The links to the detail page are generated and working correctly.
Only the pages with the list views should not have anything appended to the URL.

What could be the reason for this?
Have I done something wrong?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.