brandcom / silverstripe-softgarden
此包最新版本(dev-ss4)没有可用的许可信息。
dev-ss4
2024-07-03 14:41 UTC
Requires
- php: ^8.0
- silverstripe/framework: ^4|^5
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'