{% 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) %} {% 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 %} {{ (config.upgradeAvailable ? ' {% if config.hasMultipleEditions %}
{{ config.edition }}
{% endif %} {% if config.isTrial %}
{{ 'Trial'|t('app') }}
{% endif %} {{ (config.upgradeAvailable ? '
' : '
')|raw }} {% endif %} {{ config.version }}
{% if config.description %}

{{ config.description }}

{% endif %} {% if config.developerUrl or config.developer or config.hasCpSettings or config.documentationUrl %} {% endif %} {% set showLicenseKey = config.licenseKey or config.licenseKeyStatus != 'unknown' %} {% for issue in config.licenseIssues %}

{% switch issue %} {% case 'wrong_edition' %} {{ 'This license is for the {name} edition.'|t('app', { name: config.licensedEdition|ucfirst }) }} {% case 'mismatched' %} {{ 'This license is tied to another Craft install. Visit {url} to resolve.'|t('app', { url: 'id.craftcms.com' })|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 %}