workingconcept / craft-lever
杠杆 + Craft CMS。
Requires
- php: ^8.0.2
- ext-json: *
- craftcms/cms: ^4.0.0
Requires (Dev)
- craftcms/phpstan: dev-main
- craftcms/rector: dev-main
- phpstan/phpstan: ^1.8
This package is auto-updated.
Last update: 2023-01-03 23:33:31 UTC
README
Lever Craft CMS 4 插件
获取Lever职位详情并直接从Craft发布申请。
安装 & 设置
composer require workingconcept/craft-lever
php craft install lever
或在控制面板的 设置 → 插件 中安装- 通过 设置 → Lever 在控制面板中添加您的网站和API详情
开发
模板
craft.lever.jobs([])
返回一个职位数组。如果您需要定制结果,请为职位发布API提供有效参数。
craft.lever.job(id)
返回与提供的Lever ID匹配的特定职位,或返回false
。
职位属性
id
text
categories
country
description
descriptionPlain
lists
additional
additionalPlain
hostedUrl
applyUrl
createdAt
workplaceType
模板示例
列出职位
{% set positions = craft.lever.jobs %} <h2>Work with Us!</h2> <ul> {% for position in positions %} <li><a href="{{ position.hostedUrl }}" target="_blank">{{ position.text }}</a></li> {% endfor %} </ul>
自定义职位申请表单
您可以创建自己的表单和验证并使用action
字段设置为lever/apply
来提交它。使用与发布API中看到的名称完全相同的任何字段,其中jobId
、name
和email
是必需的。
<h3>Apply</h3> {% if application is defined and application.getErrors() | length %} {% for field in application.getErrors() %} {% for error in field %} <p class="error" role="alert">{{ error }}</p> {% endfor %} {% endfor %} {% endif %} <form id="job" action="" method="post" accept-charset="UTF-8" enctype="multipart/form-data"> {{ csrfInput() }} {{ redirectInput(craft.app.request.absoluteUrl ~ "?success=y") }} <input type="hidden" name="action" value="lever/apply"> <input type="hidden" name="jobId" value="{{ job.id }}"> <input type="text" name="name" value="{{ application.name ?? '' }}" required> <input type="email" name="email" value="{{ application.email ?? '' }}" required> <textarea name="comments">{{ application.comments ?? '' }}</textarea> <input type="file" name="resume" required> <button class="btn">Submit</button> </form>
建立自定义职位详情页面
如果您希望在自己的网站上显示所有职位详情,包括自定义详情页面,您可以创建一个详情页面模板,如jobs/_detail.twig
并为它设置一个自定义路由。
基本模板
{% extends "_layout" %} {% set job = craft.lever.job(id) %} {% if job is empty %} {% exit 404 %} {% endif %} {% block content %} ...
在config/routes.php
中的自定义路由
return [ 'jobs/<id>' => ['template' => 'jobs/_detail'], ];
这将处理类似https://site.foo/jobs/be9f3647-b59a-4272-94a0-8b937520a69f
的请求并将它们发送到您的模板,如果ID无效,则返回404。
事件
EVENT_BEFORE_VALIDATE_APPLICATION
在应用程序提交后且在验证之前触发。如果您需要进行自定义操作,例如处理 FilePond 上传并将其附加到 LeverJobApplication 模型,您可以调整 $event->application
。
EVENT_BEFORE_SEND_APPLICATION
在应用程序提交后且在发送到 Lever 之前触发。从 $event->application
中获取应用程序数据,并通过将 $event->isSpam
设置为 true
来防止其发送。
EVENT_AFTER_SEND_APPLICATION
在成功将应用程序发送到 Lever 后立即触发。同样提供 $event->application
和 $event->isSpam
属性。
支持
如果需要关注任何问题,请提交 一个问题 或 一个拉取请求。我们将尽力迅速回应。
此插件由 Working Concept 提供,与 Lever 无任何关联。