URL fieldtype for the Craft content management system
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
resources/img
src
.craftplugin
.gitignore
CHANGELOG.md
LICENSE.md
README.md
composer.json
package-lock.json
package.json
postcss.config.js
webpack.config.js

README.md

VZ URL Fieldtype for Craft

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.

Screenshot of VZ URL for Craft

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.

Requirements

This plugin requires Craft CMS 3.0 or later.

Installation

To install the plugin, follow these instructions.

  1. Open your terminal and go to your Craft project:

    cd /path/to/project
    
  2. Then tell Composer to load the plugin:

    composer require elivz/vzurl
    
  3. In the Control Panel, go to Settings → Plugins and click the “Install” button for VZ URL.

Template Variables

Simple output

Just output the URL that was entered.

<a href="{{ entry.fieldName }}">Link</a>

Redirect

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 %}

URL Parts

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. http
  • host e.g. www.google.com
  • root e.g. http://www.google.com
  • port
  • user
  • pass
  • path e.g. /about
  • query (without the question mark)
  • params an associative array containing any query parameters
  • fragment (without the hash)
  • filetype e.g. pdf

Support

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.

Roadmap

  • Cache validation results
  • More output options
  • Retrieve additional information about the webpage (OpenGraph, etc) and make it available in templates