{% requireAdmin %} {% extends "_layouts/cp" %} {% set title = "Plugins"|t('app') %} {% do view.registerAssetBundle("craft\\web\\assets\\plugins\\PluginsAsset") %} {% set crumbs = [ { label: "Settings"|t('app'), url: url('settings') } ] %} {% set info = craft.app.plugins.getAllPluginInfo()|multisort( ['isEnabled', 'isInstalled', 'name'], [SORT_DESC, SORT_DESC, SORT_ASC], [SORT_NUMERIC, SORT_NUMERIC, SORT_NATURAL] ) %} {% set disabledPlugins = craft.app.config.general.disabledPlugins %} {% block content %} {% if info|length %}
{% for handle, config in info %} {% set pluginStoreUrl = url('plugin-store/' ~ handle) %} {% set forceDisabled = disabledPlugins == '*' or handle in disabledPlugins %} {% endfor %}
{{ svg(craft.app.plugins.getPluginIconSvg(handle), sanitize=true, namespace=true) }} {% if config.licenseKeyStatus == 'valid' or config.licenseIssues is not empty %} {% endif %}

{{ config.name }}

{% if config.hasMultipleEditions or config.isTrial %} {% tag (config.upgradeAvailable ? 'a' : 'div') with { class: 'edition', href: config.upgradeAvailable ? pluginStoreUrl : false, } %} {% if config.hasMultipleEditions %}
{{ config.edition }}
{% endif %} {% if config.isTrial %}
{{ 'Trial'|t('app') }}
{% endif %} {% endtag %} {% endif %} {{ config.version }}
{% if config.description %}

{{ config.description }}

{% endif %} {% if config.developer or config.documentationUrl or config.hasCpSettings %} {% endif %} {% set showLicenseKey = config.licenseKey or config.licenseKeyStatus != 'unknown' %}
{{ tag('a', { text: 'Buy now'|t('app'), class: [ 'btn', config.licenseIssues is not empty ? 'submit', config.licenseKeyStatus != 'trial' ? 'hidden', ]|filter, href: url('plugin-store/buy/'~handle~'/'~config.edition), }) }}
{% for issue in config.licenseIssues %}

{% switch issue %} {% case 'wrong_edition' %} {{ 'This license is for the {name} edition.'|t('app', { name: config.licensedEdition|ucfirst }) }} {% case 'no_trials' %} {{ 'Plugin trials are not allowed on this domain.'|t('app') }} {% case 'mismatched' %} {{ 'This license is tied to another Craft install. Visit {accountLink} to detach it, or buy a new license.'|t('app', { accountLink: 'id.craftcms.com', buyUrl: url('plugin-store/buy/'~handle~'/'~config.edition), })|raw }} {% case 'astray' %} {{ 'This license isn’t allowed to run version {version}.'|t('app', { version: config.version }) }} {% case 'required' %} {{ 'A license key is required.'|t('app') }} {% default %} {{ 'Your license key is invalid.'|t('app') }} {% endswitch %}

{% endfor %}
{% if config.isEnabled %} {{ "Installed"|t('app') }} {% elseif config.isInstalled %} {{ "Disabled"|t('app') }} {% else %} {{ "Not installed"|t('app') }} {% endif %}
{{ hiddenInput('pluginHandle', handle) }} {{ csrfInput() }}
{% else %}

{{ "There are no available plugins."|t('app') }} {% endif %} {% endblock %} {% js %} new Craft.PluginManager(); {% endjs %}