workingconcept/craft-lever

此软件包已被废弃且不再维护。未建议替代软件包。

杠杆 + Craft CMS。

2.0.0 2022-10-12 20:29 UTC

This package is auto-updated.

Last update: 2023-01-03 23:33:31 UTC


README

Lever

Lever Craft CMS 4 插件

获取Lever职位详情并直接从Craft发布申请。

Scrutinizer status

安装 & 设置

  • 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中看到的名称完全相同的任何字段,其中jobIdnameemail是必需的。

<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 无任何关联。