PHPackages                             brandcom/silverstripe-softgarden - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. brandcom/silverstripe-softgarden

ActiveSilverstripe-vendormodule

brandcom/silverstripe-softgarden
================================

0263PHP

Since Jul 3Pushed 3mo ago1 watchersCompare

[ Source](https://github.com/brandcom/silverstripe-softgarden)[ Packagist](https://packagist.org/packages/brandcom/silverstripe-softgarden)[ RSS](/packages/brandcom-silverstripe-softgarden/feed)WikiDiscussions ss4 Synced 1mo ago

READMEChangelogDependenciesVersions (3)Used By (0)

Silverstripe Softgarden
=======================

[](#silverstripe-softgarden)

Install
-------

[](#install)

```
composer require brandcom/silverstripe-softgarden:dev-ss4

```

Implementierung
---------------

[](#implementierung)

- Vorbereitung:
    - BaseElement.php Datei im Projekt unter app/src/BaseElements vorhanden? (Sonst aus Silverstripe Starter kopieren. Grundsätzlich muss im Projekt Silverstripe-Elemental installiert sein)
    - API Key bei Softgarden ermitteln
    - ChannelID ermitteln (Über Fetch Request)
    - .env im Projekt mit Variablen befüllen
- Plugin installieren: composer require brandcom/silverstripe-softgarden:dev-ss4
- Dev build flush
- Im Admin Bereich sollten sich nun zwei neue Modal Admins befinden. (Job-Import &amp; Job-Benefits)
- Nun im Modal Admin „Job-Benefits“ ein Default Benefit hinterlegen mit Name „standard“ und Icon welches sich als Standard Icon eignet
- In das Modal Admin Job-Import wechseln und die Jobs manuell importieren über Button „Stellenanzeigen IMORTIEREN“ (Wenn keine Jobs erscheinen, prüfen ob in Softgarden Stellenausschreibungen vorhanden sind)
- Um die Jobs als Übersicht anzuzeigen, an beliebiger Stelle das BaseElement „Softgarden Job Übersicht“ einsetzen und eine Headline vergeben.
- Eine neue Seite vom Typ „Softgarden Job Detail Page“ anlegen. Die Seite muss „Jobdetails“ heißen.
- Bei den Einstellungen der Jobdetails Seite den Haken für Menü &amp; Suche anzeigen entfernen.
- Es sollte ein Header verfügbar sein. Darüber kann ein Standard Bild für den Job hinterlegt werden. -Im Header-Image-Textfeld folgendes über den Tiny HTML Editor hinterlegen:

```

        Jobbezeichnung
        Infos:

```

.ENV Variablen
--------------

[](#env-variablen)

\#Softgarden API

SOFTGARDEN\_API\_KEY='ClientId'

SOFTGARDEN\_API\_Password='' # Kann leer bleiben, da basic auth

SOFTGARDEN\_API\_CHANNEL\_ID='channelID'

SOFTGARDEN\_AUTO\_BUILDTASK\_TOKEN='' # Für Cronjobs - hier kann ein token hinterlegt werden. Beispiel: BaseUrl/jobdetails/jobAutoImport?token={TOKEN}

API Fetch auslösen -WIP
-----------------------

[](#api-fetch-auslösen--wip)

Momentan unter der URL "BASEURL/dev/tasks/JobImportBuildTask"

Im Projekt Backend
==================

[](#im-projekt-backend)

Jobs auf Seite anzeigen
-----------------------

[](#jobs-auf-seite-anzeigen)

Um vorhandene Jobs anzuzeigen, setzt man an beliebiger Stelle das BaseElement "Softgarden Job Übersicht" ein. Hier kann noch eine Überschrift gepflegt werden.

Jobs auf Detailseite anzeigen
-----------------------------

[](#jobs-auf-detailseite-anzeigen)

Es muss eine Seite mit dem Namen "Jobdetails" vom Typ "Softgarden Job Detail Page" eingerichtet werden. In den Einstellungen den Haken bei Sichtbarkeit (Menü und Suche) entfernen. Auf der Jobdetails Seite unter dem Punkt Header ein geeignetes Bild wählen. Das Bild muss zu jedem Beruf passen, da hier kein individuelles Bild ausgespielt wird.

NEU
===

[](#neu)

### Benefits limitieren

[](#benefits-limitieren)

- Die auf der Detailseite angezeigten Benefits sind nun limitierbar.
- Auf der Jobdetails Page befindet sich hierfür folgendes Eingabefeld "Maximale Anzahl der Benefits".
- Wird nichts eingetragen, werden alle ausgegeben.
- Es wird eine dynamische Überschrift mit der Anzahl der Benefits angezeigt z.B. "DEINE TOP 3 BENEFITS BEI UNS"

Standort Filter für das Softgarden Job Base Element
===================================================

[](#standort-filter-für-das-softgarden-job-base-element)

- Im Base-Element "Softgarden-Job-Base-Element" kann ein Standortfilter aktiviert werden.
- Es wird extra JS Code benötigt, welcher in das Projekt eingebunden werden muss.

### In App.js

[](#in-appjs)

```
import { filter_jobs } from "./js/SoftgardenBaseElementFilter";

...

filter_jobs();

```

### In erstellter Datei SoftgardenBaseElementFilter.js

[](#in-erstellter-datei-softgardenbaseelementfilterjs)

```

export function filter_jobs() {

    const softgardenBaseElem = document.querySelectorAll(".bc-softgarden__job-base-element");

    if (softgardenBaseElem.length > 0) {
        const filterTriggers = document.querySelectorAll('.bc-softgarden__job-base-element-dropdown-locations');

        filterTriggers.forEach((filterTrigger) => {
            filterTrigger.addEventListener('change', () => {
                const jobElements = document.querySelectorAll(".bc-softgarden__job-base-element-overlay-job");
                    jobElements.forEach((jobElement) => {
                        if (filterTrigger.value === "empty") {
                            jobElement.style.display = "flex";
                        } else {
                            const CityData = jobElement.getAttribute("data-location");
                            if (CityData === filterTrigger.value) {
                                jobElement.style.display = "flex";
                            } else {
                                jobElement.style.display = "none";
                            }
                        }
                    });
                    //* Set all location filter values to selected location
                    const all_location_filter = document.querySelectorAll(".bc-softgarden__job-base-element-dropdown-locations");
                    all_location_filter.forEach((location_filter) => {
                        location_filter.value = filterTrigger.value ;
                    });
            })
        })
    }
}

```

Sonderfall mehrere API Keys pro Seite
=====================================

[](#sonderfall-mehrere-api-keys-pro-seite)

Sollten mehrere API Keys pro Seite vorhanden sein, müssen diese in der .env durchnummeriert werden.

SOFTGARDEN\_API\_KEY1='KEY1'

SOFTGARDEN\_API\_KEY2='KEY2'

SOFTGARDEN\_API\_CHANNEL\_ID1='ID1'

SOFTGARDEN\_API\_CHANNEL\_ID2='ID2'

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance55

Moderate activity, may be stable

Popularity14

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity21

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/86ac90232d8367beb9bc60f0a438881c9e44b5e9b17b740b5166b5119f9ae737?d=identicon)[brandcom](/maintainers/brandcom)

---

Top Contributors

[![DanielVierheilig](https://avatars.githubusercontent.com/u/106581456?v=4)](https://github.com/DanielVierheilig "DanielVierheilig (114 commits)")

---

Tags

silverstripe

### Embed Badge

![Health badge](/badges/brandcom-silverstripe-softgarden/health.svg)

```
[![Health](https://phpackages.com/badges/brandcom-silverstripe-softgarden/health.svg)](https://phpackages.com/packages/brandcom-silverstripe-softgarden)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
