{% 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', 'hasIssues', 'name'], [SORT_DESC, SORT_DESC, SORT_DESC, SORT_ASC], [SORT_NUMERIC, SORT_NUMERIC, SORT_NUMERIC, SORT_NATURAL] ) %} {% block content %} {% if info|length %} {% for handle, config in info %} {% endfor %}
{{ svg(craft.app.plugins.getPluginIconSvg(handle)) }} {% if config.licenseKeyStatus == 'valid' or config.hasIssues %} {% endif %}

{{ config.name }} {{ 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' %} {% if showLicenseKey and config.licenseStatusMessage %}

{{ config.licenseStatusMessage|raw }}

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

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