A VZ URL field displays a text input where the user can enter a URL. It will ping the URL they entered and display an error message if it doesn't find a valid webpage there. It also prompts the user to update URLs that are redirected to a different location.
Please note that VZ URL will not prevent the user from saving their entry if if cannot validate the URL - it just warns them. This is intentional, perhaps they are linking to a page they have not yet created, or the site they are linking to is currently down but they know the URL is correct.
This plugin requires Craft CMS 3.0 or later.
To install the plugin, follow these instructions.
-
Open your terminal and go to your Craft project:
cd /path/to/project
-
Then tell Composer to load the plugin:
composer require elivz/vzurl
-
In the Control Panel, go to Settings → Plugins and click the “Install” button for VZ URL.
Just output the URL that was entered.
<a href="{{ entry.fieldName }}">Link</a>
Immediately redirects a visitor's browser to the specified URL. Any other code in a template containing this tag will never be displayed.
{% redirect entry.fieldName %}
A helper function, craft.vzUrl.parse
makes available an array of all the pieces of a URL. Keep in mind that many of these components are likely to be empty for any particular URL. You may also use this to get the components of any URL by passing in a string or other variable in place of the field name.
Domain: {{ craft.vzUrl.parse(entry.fieldName).host }}
The following components are available:
scheme
e.g. httphost
e.g. www.google.comroot
e.g. http://www.google.comport
user
pass
path
e.g. /aboutquery
(without the question mark)params
an associative array containing any query parametersfragment
(without the hash)filetype
e.g. pdf
Please post all bugs or feature requests in GitHub Issues. I maintain this fieldtype in my spare time, but I will try to respond to questions as quickly as possible.
- Cache validation results
- More output options
- Retrieve additional information about the webpage (OpenGraph, etc) and make it available in templates