brandcom/silverstripe-softgarden

此包最新版本(dev-ss4)没有可用的许可信息。

安装: 155

依赖项: 0

建议者: 0

安全: 0

星级: 0

关注者: 1

分支: 0

开放问题: 0

类型:silverstripe-vendormodule

dev-ss4 2024-07-03 14:41 UTC

This package is auto-updated.

Last update: 2024-09-03 15:03:04 UTC


README

安装

composer require brandcom/silverstripe-softgarden:dev-ss4

实现

  • 准备
    • 在项目app/src/BaseElements中存在BaseElement.php文件吗?(否则从Silverstripe Starter复制。基本上在项目中必须安装Silverstripe-Elemental)
    • 在Softgarden获取API密钥
    • 获取ChannelID(通过Fetch请求)
    • 在项目中填充.env文件中的变量
  • 安装插件:composer require brandcom/silverstripe-softgarden:dev-ss4
  • 开发构建刷新
  • 现在在管理区域应该有两个新的Modal Admin。 (职位导入 & 职位福利)
  • 现在在“职位福利”Modal Admin中设置默认福利,名称为“standard”,图标为标准图标
  • 切换到“职位导入”Modal Admin并手动导入职位,点击“职位公告导入”按钮(如果职位没有显示,请检查Softgarden中是否有职位公告)
  • 为了以概览形式显示职位,在任意位置使用BaseElement“Softgarden职位概览”并设置一个标题。
  • 创建一个新的类型为“Softgarden职位详细页面”的页面。页面必须命名为“职位详情”。
  • 在职位详情页面的设置中取消“菜单 & 搜索显示”的勾选。
  • 应该有一个可用。在此之上可以设置职位的标准图片。 -在头部图片文本字段中,通过Tiny HTML Editor添加以下内容
    <div>
        <h1><span id="softgarden__job_name_label" class="h1">Jobbezeichnung</span></h1>
        <h2><span id="softgarden__job_infos_label" class="h4">Infos:</span></h2>
    </div>
    

.ENV变量

#Softgarden API

SOFTGARDEN_API_KEY='ClientId'

SOFTGARDEN_API_PASSWORD='' # 可以留空,因为基本认证

SOFTGARDEN_API_CHANNEL_ID='channelID'

SOFTGARDEN_AUTO_BUILDTASK_TOKEN='' # 对于Cron作业 - 可以在此处设置一个token。示例:BaseUrl/jobdetails/jobAutoImport?token={TOKEN}

API Fetch触发 - WIP

目前位于 "BASEURL/dev/tasks/JobImportBuildTask" URL下

在项目后端

在页面上显示职位

要显示现有职位,在任意位置设置BaseElement "Softgarden职位概览"。在这里还可以维护一个标题。

在详细页面上显示职位

必须设置一个名为"职位详情"的类型为"Softgarden职位详细页面"的页面。在设置中取消“可见性(菜单和搜索)”的勾选。在职位详情页面下方的“头部”选择合适的图片。图片必须适合每个职业,因为这里不会播放单个图片。

新内容

限制福利

  • 现在在详细页面上显示的福利可以限制了。
  • 在职位详情页面上有一个名为“最大福利数量”的输入字段。
  • 如果没有输入,将显示所有内容。
  • 将显示一个动态标题,显示福利数量,例如“我们这里的最佳3个福利”

Softgarden职位基本元素的地点过滤器

  • 在Base-Element "Softgarden-Job-Base-Element"中可以启用地点过滤器。
  • 需要额外的JS代码,这些代码必须集成到项目中。

在App.js中

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

...

filter_jobs();

在创建的文件SoftgardenBaseElementFilter.js中


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 ;
                    });
            })
        })
    }
}

多个API密钥的特殊情况

如果每个页面上有多个API密钥,必须在这些.env文件中进行编号。

SOFTGARDEN_API_KEY1='KEY1'

SOFTGARDEN_API_KEY2='KEY2'

SOFTGARDEN_API_CHANNEL_ID1='ID1'

SOFTGARDEN_API_CHANNEL_ID2='ID2'