By default, separate VLANs cannot communicate with other VLANs. In order to communicate with other VLANs or networks, a layer 3 device, such as a router or layer-3 switch is required to connect the VLANs using InterVLAN Routing. This is similar to any network or subnet.
Blog
-
WordPress error: Unable to determine if Ghostscript is installed
Description
WordPress Site Health showing “Ghostscript version: Unable to determine if Ghostscript is installed”
Solutions
- From my research, Ghostscript require the PHP function exec(). To fix this problem,
- Edit your php.ini file,
- Find the
disable_functionsdirective, - Remove the
execfunction from the list, - Save the edited php.ini configuration.
- Alternatively, if you have Imagick installed, it can be configured to support Ghostscript.
- From my research, Ghostscript require the PHP function exec(). To fix this problem,
-
Install Drupal CMS in Root Directory
Table of Content
Using Composer
Access Your Server via SSH and Navigate to the Directory where Drupal Will be Installed
- In Command Line Interface, type:
ssh username@serverip -p yourportnumber, replacing username, serverip, and yourportnumber with your specific credentials for your server, - Once prompted for your password, type it or paste it,
- Once your SSH session has been authenticated, navigate to the directory where Drupal will be installed by using a command similar to the following:
cd path/to/your/drupal/directory, or - Make the directory with command:
mkdir directorynamehere.
Using a web browser
- Go to drupal.org/download and copy the provided composer command,
- Add the
--no-installoption, - Your command should look similar to this:
composer create-project --no-install drupal/cms, - Paste the command into your SSH command line interface.
Move the ‘web’ directory to the root directory
- There should be a directory named, “cms” with some files and a folder called “web”,
- Move all files and directories from “cms” folder to root directory:
mv cms/* ./, - Delete “cms” folder:
rmdir cms, - Move all files and directories from web folder to root directory:
mv web/* ./, - Delete web folder:
rmdir web.
Edit composer.json File
- Type:
vi composer.json, - Type:
ito enable insert mode, - Find and change
web-rootandinstaller-pathsdirectives from web directory to root directory.
"drupal-scaffold": { "locations": { "web-root": "web/" } }, "installer-paths": { " web/core": ["type:drupal-core"], " web/libraries/{$name}": ["type:drupal-library"], " web/modules/contrib/{$name}": ["type:drupal-module"], " web/profiles/contrib/{$name}": ["type:drupal-profile"], " web/themes/contrib/{$name}": ["type:drupal-theme"], "./drush/Commands/contrib/{$name}": ["type:drupal-drush"], " web/modules/custom/{$name}": ["type:drupal-custom-module"], " web/profiles/custom/{$name}": ["type:drupal-custom-profile"], "./recipes/{$name}": ["type:drupal-recipe"], "web/themes/custom/{$name}": ["type:drupal-custom-theme"] },- Change the above to:
"drupal-scaffold": { "locations": { "web-root": "./" } }, "installer-paths": { "./core": ["type:drupal-core"], "./libraries/{$name}": ["type:drupal-library"], "./modules/contrib/{$name}": ["type:drupal-module"], "./profiles/contrib/{$name}": ["type:drupal-profile"], "./themes/contrib/{$name}": ["type:drupal-theme"], "./drush/Commands/contrib/{$name}": ["type:drupal-drush"], "./modules/custom/{$name}": ["type:drupal-custom-module"], "./profiles/custom/{$name}": ["type:drupal-custom-profile"], "./recipes/{$name}": ["type:drupal-recipe"], "./themes/custom/{$name}": ["type:drupal-custom-theme"] },- Press
Esckey to exit insert mode, - Type:
:wqto save file and exit.
Install Drupal
- For developer site, type:
composer install. - For production site, type:
composer install --no-dev. - Create your database.
- Run the interactive installer via a web browser.
- Follow the steps provided in the INSTALL.txt file located in the core directory to complete your setup and secure your site.
- In Command Line Interface, type:
-
Add Custom Structured Data to Invision Community Pages Database
Table of content shortcode can be used only once on a page, this page is using the shortcode more than once. Please remove the extra table of content shortcodes for this warning to go away.
Notice: This article is for providing insight on how to add custom schema markup to “Databases” in Invision Community’s Pages application.
There are a few ways to structured data an Invision Community Pages’ Database:
- Implement Microdata, RDFa, or JSON-LD into a Database template and custom fields,
- Create a custom field that allows authors to create customized JSON-LD schema markup,
- Use a custom field to implement JSON-LD and map variables to properties.
Basic Implementation: Create a custom field where static JSON-LD structured data can be added
This is the simplest method and will require post authors to create custom JSON-LD structured markup for each post. See Moderate Implementation below for automatically generating structured markup.
- In your Invision Community AdminCP, navigate to “Pages” menu item and click the “fields” menu item for your database.
- Create a new field and give a title, such as “Schema Markup” or whatever you’d like.
- For the “Type”, select “Code”.
- Optional: If you are to generated forum topics for posts in your database, you can include this schema markup to help search engine understand what the topic is and about.
- You can add
<script type="application/jd+json">{value}</script>to the “Topic Format” field box.
- You can add
- Toggle the Accept HTML option.
- In the “Display Options” tab, you can give the field any template key name you want as in will not specifically be called to display it on a post page, i.e., visitors will not see it or know it is on the page.
- Optional: As with forum topics, you can include JSON-LD structured data in the listings pages of your database. This can be beneficial for search engines to understand the data on the listing pages as their in no schema markup including on these pages by default. Keep in mind that adding this data to each post can affect the performance of your website, which can affect SEO.
- To add JSON-LD structured data to listing post:
- Make sure the “show in listing template” option is toggled to on,
- Listing View Format: Custom,
- Enter:
{{if $formValue}}<script type="application/jd+json">{$value|raw}</script>{{endif}}into the editor box.
- Display View section:
- Make sure the “show in display template” option is toggled to on,
- Display View Format: Custom,
- Enter:
{{if $formValue}}<script type="application/jd+json">{$value}</script>{{endif}}into the editor box.
Congrats, you can now enter custom JSON-LD structured data into your posts. To learn more about constructing JSON-LD schema, visit Schema.org vocabulary website.
Moderate Implementation: Create a custom field that dynamically calls and maps variables and properties
This is a more advanced method for dynamically embedded values into JSON-LD structured data. This is likely the best way to implement custom data because once setup, markup is added to each post automatically based on custom fields values.
Necessary Variables
Variable Title Description {$record->_title}Record Title {$record->truncated()|raw}Record Content {$record->container()->url()}{$record->container()->_title}Record Container/Category {$record->fieldValues()['field_{id#}']}fieldValues Accessing $valuesfor Text fields or the key (rather than value) for Selectbox and Checkbox Set.{$record->customFieldDisplayByKey('{Template Key}')}customFieldDisplayByKey Accessing the formatted input from the Display View Format option. Note: For fields that will be displayed with any format other than just the value of the field, the ID of those fields are required to populate JSON-LD data with just the field value without the formatting data. The ID will be used with the {$record->fieldValues()[‘field_{id#}’]} variable, replacing {id#} with the ID number, e.g. {$record->fieldValues()[‘field_123’]}.
Note: For Select box and Checkbox Set fields with multiple options, the fieldValues variable will pull the key of the individual option(s). So, it is important to give the options a key that comply with the format of your structured data type from the Schema.org vocabulary. For example, if you are making a “Books” database, and you want to populate the bookFormat property with options from a Checkbox set. In order to have valid schema markup, you have to comply with the Schema.org enumeration members for the enumeration type: BookFormatType, which are limited to: AudiobookFormat, EBook, GraphicNovel, Hardcover, Paperback. enumeration will be the key for your options even if your options value is in another language.
Schema.org Properties and DB Field Types
Schema.org Properties Database Field Type Notes genre Select box or Checkbox Set isbn Text or Number inLanguage Select box or Checkbox Set author Text editor Text illustrator Text contributor Text publisher Select box or Checkbox Set publisherImprint Select box or Checkbox Set isPartOf Select box or Checkbox Set Used with the BookSeries schema.org type. abridged Checkbox, Radio, or Yes/No bookFormat Select box or Checkbox Set bookEdition Text Basic Instructions
- Create a Database,
- Add your custom fields, including any of the above that will be mapped to Schema.org Properties.
- Create the field that will hold the JSON-LD structured data.
- “General Options” tab:
- Title: your choice,
- Type: Checkbox or Radio,
- Default Value:
1.
- “Display options” tab:
- Template Key: your choice; if you leave this blank, it will be generated automatically when you save the field,
- List View section: If you want the structured data to be included on listing pages, you can follow and use the steps below:
- Display View section:
- Display View Format: Custom,
- Display: your choice; If you select Under the item content and there are no other fields are there will be a horizontal line with a nothing under it.
- “General Options” tab:
Display Custom Format
{{if $formValue}} <script type="application/ld+json"> { "@context": "https://schema.org", "@graph": { "@type": "Book", "name": "{$record->_title}", {{if $record->customFieldDisplayByKey('pages', 'display')}} "numberOfPages": "{$record->fieldValues()['field_123']}", {{endif}} {{if $record->customFieldDisplayByKey('genre', 'display')}} "genre": "{$record->fieldValues()['field_123']}", {{endif}} {{if $record->customFieldDisplayByKey('isbn', 'display')}} "isbn": "{$record->fieldValues()['field_11']}", {{endif}} "description": "{$record->truncated()|raw}", {{if $record->customFieldDisplayByKey('date', 'display')}} "datePublished": "{$record->fieldValues()['field_123']}", {{endif}} {{if $record->customFieldDisplayByKey('language', 'display')}} "inLanguage": { "@type": "Language", "name": "{$record->fieldValues()['field_123']}" }, {{endif}} "url": "{$record->url()}", "discussionUrl": "{$record->url()?&tab=comments}", {{if $record->customFieldDisplayByKey('author', 'display')}} "author": { "@type": "Person", "name": "{$record->fieldValues()['field_123']}" }, {{endif}} {{if $record->customFieldDisplayByKey('editor', 'display')}} "editor": { "@type": "Person", "name": "{$record->fieldValues()['field_123']}" }, {{endif}} {{if $record->customFieldDisplayByKey('illustrator', 'display')}} "illustrator": { "@type": "Person", "name": "{$record->fieldValues()['field_123']}" }, {{endif}} {{if $record->customFieldDisplayByKey('contributor', 'display')}} "contributor": { "@type": "Person", "name": "{$record->fieldValues()['field_123']}" }, {{endif}} {{if $record->record_image}} "thumbnail": { "@type": "ImageObject", "url": "{file="$record->_record_image_thumb" extension="cms_Records"}" }, {{endif}} {{if $record->customFieldDisplayByKey('publisher', 'display')}} "publisher": { "@type": "Organization", "name": "{$record->fieldValues()['field_123']}" }, "copyrightHolder": { "@type": "Organization", "name": "{$record->fieldValues()['field_123']}" }, {{endif}} {{if $record->customFieldDisplayByKey('imprint', 'display')}} "publisherImprint": { "@type": "Organization", "name": "{$record->fieldValues()['field_123']}" }, {{endif}} {{if $record->customFieldDisplayByKey('series', 'display')}} "isPartOf": { "@type": "BookSeries", "name": "{$record->fieldValues()['field_123']}" }, {{endif}} {{if $record->customFieldDisplayByKey('abridged', 'display')}} "abridged": "http://schema.org/True", {{endif}} {{if $record->customFieldDisplayByKey('format', 'display')}} "bookFormat": "{$record->fieldValues()['field_123']}", {{endif}} {{if $record->customFieldDisplayByKey('edition', 'display')}} "bookEdition": "{$record->fieldValues()['field_123']}", {{endif}} "awards": "{$record->fieldValues()['field_123']}" } } </script> {{endif}}Frequently Asked Questions
According to Google, it is recommended to place JSON-LD in the <head>, but it is okay and valid to place it in the <body>.
yes, you can ass property values in other languages, but at this time, Im not sure that the actually JSON-LD language has been translated to other languages. This means that you would have to use the JSON-LD language in English and structure it with values in your language.