<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0">

<channel data-v-component-posts="feed" data-v-limit="50" data-v-type="post" data-v-direction="desc" data-v-order_by="updated_at">	<title>News Vvveb</title>
	<link>https://vvveb.com/feed/posts</link>
	<description>The latest news about Vvveb</description>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://vvveb.com</generator>

	<image>
		<url>/favicon.ico</url>
		<title>Vvveb News</title>
		<link>https://www.vvveb.com/feed/posts</link>
		<width>32</width>
		<height>32</height>
	</image> 

		<item data-v-post="post" data-v-id="477">
			<title data-v-post-name="name">Auth tokens</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/admin-auth-token</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 18:04:47 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Auth tokens let admin users access protected endpoints without a login session - used by external integrations, monitoring scripts or CI jobs that call the admin REST/API. 
 
Creating a token  
Go to Admin → Auth tokens Click Add, select the user the]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>Auth tokens let admin users access protected endpoints <strong>without a login session</strong>  -  used by external integrations, monitoring scripts or CI jobs that call the admin REST/API.</p>
<hr />
<h2>Creating a token</h2>
<ol>
<li>Go to <strong>Admin → Auth tokens</strong> Click <strong>Add</strong>, select the user the token acts as</li>
<li>Save  -  the generated token string is shown once; copy it immediately</li>
</ol>
<hr />
<h2>Using a token</h2>
<p>Send it with requests, e.g. as <code>Authorization: Bearer &lt;token&gt;</code> (or per integration instructions). Requests run with the permissions of the linked <a href="admin-user">admin user</a>.</p>
<hr />
<h2>Security</h2>
<ul>
<li>Treat tokens like passwords  -  revoke any token you can't account for</li>
<li>Delete tokens that are no longer used from the list</li>
<li>All token usage appears in logs like normal admin activity</li>
</ul>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="478">
			<title data-v-post-name="name">Plugins marketplace</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-market</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 18:04:47 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[The Plugins Marketplace is the official public repository of Vvveb plugins. 
It provides a collection of free and premium plugins that you can browse, preview, and install directly from your admin dashboard. 
Plugins extend your site with new features,]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>The <strong>Plugins Marketplace</strong> is the official public repository of Vvveb plugins.</p>
<p>It provides a collection of free and premium plugins that you can browse, preview, and install directly from your admin dashboard.</p>
<p>Plugins extend your site with new features, integrations, and enhancements that are not included in the Vvveb core.</p>
<p><a href="/media/docs/plugins-market.png"><img src="/media/docs/plugins-market.png" alt="Plugins marketplace" /></a></p>
<hr />
<h2><strong>What You Can Do in the Marketplace</strong></h2>
<p>From the marketplace, you can:</p>
<ul>
<li>Browse available plugins</li>
<li>View plugin descriptions and compatibility information</li>
<li>Check when each plugin was last updated</li>
<li>Install plugins with a single click</li>
<li>Open plugin detail pages for more information</li>
</ul>
<p>All plugins listed in the marketplace are compatible with your current Vvveb version.</p>
<hr />
<h2><strong>Accessing the Marketplace</strong></h2>
<p>You can open the Plugins Marketplace directly from your admin panel:</p>
<p><strong>Admin Dashboard → Plugins → Add New</strong></p>
<p>This will display all available plugins that you can install.</p>
<hr />
<h2><strong>Installing a Plugin</strong></h2>
<p>To install a plugin from the marketplace:</p>
<ol>
<li>Browse or search for a plugin</li>
<li>Click <strong>Install</strong> After installation, activate the plugin from the <strong>Plugins</strong> page</li>
</ol>
<p>Installed plugins can be activated, deactivated, configured, or removed at any time.</p>
<h2><strong>Why Use Marketplace Plugins</strong></h2>
<p>Marketplace plugins allow you to:</p>
<ul>
<li>Add payment methods</li>
<li>Improve SEO</li>
<li>Add security features like 2FA</li>
<li>Integrate external services</li>
<li>Add forms, newsletters, and widgets</li>
<li>Enhance ecommerce functionality</li>
<li>Improve performance (e.g., minification, caching)</li>
</ul>
<p>They make your Vvveb site more powerful and customizable.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="479">
			<title data-v-post-name="name">Newsletter</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugins-newsletter</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 18:04:47 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Create contact forms that sends email or saves data in the database. 
Builtin honeypot anti spam filter. 
Contact form component allows visual customization of forms from the page builder, add any fields visually. 
This plugin is included and activated]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[<p>Create contact forms that sends email or saves data in the database.</p>
<p>Builtin honeypot anti spam filter.</p>
<p>Contact form component allows visual customization of forms from the page builder, add any fields visually.</p>
<p>This plugin is included and activated by default</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="480">
			<title data-v-post-name="name">SEO plugin</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugins-seo</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 18:04:47 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[The SEO plugin gives Vvveb full on-page and technical SEO: it takes over the page &lt;title&gt;, generates meta tags and structured data, produces XML sitemaps, manages redirects, monitors 404s and audits your whole site - organized as independently]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>The SEO plugin gives Vvveb full on-page and technical SEO: it takes over the page <code>&lt;title&gt;</code>, generates meta tags and structured data, produces XML sitemaps, manages redirects, monitors 404s and audits your whole site  -  organized as independently togglable modules.</p>
<hr />
<h2>Quick start</h2>
<ol>
<li>Activate the plugin from <strong>Plugins</strong> Run the <strong>Setup Wizard</strong> (Settings → SEO → Setup Wizard): it verifies site basics, sets up Google/Bing verification codes, social profiles and enables the recommended modules</li>
<li>Edit any post or product  -  a new <strong>SEO tab</strong> shows the live SERP preview and content score</li>
</ol>
<hr />
<h2>Modules</h2>
<table class="table table-bordered">
<thead class="table-light">
<tr>
<th>Module</th>
<th>What you get</th>
</tr>
</thead>
<tbody>
<tr>
<td>On-page SEO &amp; Content Score</td>
<td>Focus keywords, robots meta per page, SERP preview, 0–100 score with to-do list</td>
</tr>
<tr>
<td>Schema Builder</td>
<td>Visual JSON-LD builder (Article, Product, Review, FAQ, HowTo, Recipe, LocalBusiness, Event)</td>
</tr>
<tr>
<td>XML Sitemaps</td>
<td><code>/sitemap.xml</code> index + posts/pages/products/categories sections</td>
</tr>
<tr>
<td>Redirections &amp; 404 Monitor</td>
<td>301/302 manager, automatic redirect suggestion when a slug changes, broken-URL log</td>
</tr>
<tr>
<td>SEO Audit</td>
<td>Site-wide technical checks scored 0–100 with prioritized fixes</td>
</tr>
<tr>
<td>Local SEO</td>
<td>Business info + LocalBusiness schema</td>
</tr>
<tr>
<td>Ecommerce SEO</td>
<td>Product schema &amp; storefront templates</td>
</tr>
<tr>
<td>Search Console &amp; Rank Tracker</td>
<td>Keyword rankings, clicks, impressions inside the dashboard</td>
</tr>
<tr>
<td>llms.txt</td>
<td><code>/llms.txt</code> for AI answer engines</td>
</tr>
<tr>
<td>AI Content Assist</td>
<td>Bulk meta description suggestions (review before apply)</td>
</tr>
<tr>
<td>Instant Indexing</td>
<td>IndexNow pings on publish/update</td>
</tr>
<tr>
<td>AI Search Tracking</td>
<td>Referral detection for ChatGPT, Perplexity, Gemini…</td>
</tr>
</tbody>
</table>
<p>See <a href="seo-settings">plugin settings</a> for every option.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="474">
			<title data-v-post-name="name">Weight class</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/settings-weight-types</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 18:04:46 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Weight classes are used to define the unit for product weight when entering product specifications this in turn can used for shipping purposes. By default both International System of Units and Imperial and US customary measurement systems are provided.]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>Weight classes are used to define the unit for product weight when entering product specifications this in turn can used for shipping purposes.
By default both International System of Units and Imperial and US customary measurement systems are provided.</p>
<p><a href="/media/docs/settings-weight-types.png"><img src="/media/docs/settings-weight-types.png" alt="Weight class" /></a></p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="475">
			<title data-v-post-name="name">Field groups</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/field-field-groups</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 18:04:46 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[A field group bundles custom fields together and attaches them to a content type - posts, products or a custom post type. Groups keep the editor organized: instead of one flat list of dozens of fields, each group appears as its own panel in the editor.]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>A <strong>field group</strong> bundles <a href="/content-fields">custom fields</a> together and attaches them to a content type  -  posts, products or a custom post type. Groups keep the editor organized: instead of one flat list of dozens of fields, each group appears as its own panel in the editor.</p>
<hr />
<h2>Creating a field group</h2>
<ol>
<li>Go to <strong>Custom Fields → Field groups</strong> Click <strong>Add</strong> and give the group a name (e.g. &quot;Book details&quot;)</li>
<li>Add the fields that belong to the group  -  any type from Text to Gallery or Relationship</li>
<li>Choose which content type(s) the group applies to</li>
<li>Save</li>
</ol>
<hr />
<h2>How groups appear in the editor</h2>
<p>When editing a post/product that matches the group's content type, the group shows up as a separate section with all its fields. Editors only see groups relevant to what they are writing.</p>
<hr />
<h2>Displaying values in themes</h2>
<p>Field values are stored per post and can be rendered in themes through template variables or components, keyed by the field slug. See the individual <a href="/content-fields">field type docs</a> for output details.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="476">
			<title data-v-post-name="name">Custom fields</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/content-fields</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 18:04:46 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Custom Fields allow you to attach additional structured data to posts, products, and other content types. They are fully configurable, easy to reuse, and designed to support everything from simple text inputs to complex media galleries, maps, and]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>Custom Fields allow you to attach additional structured data to posts, products, and other content types. They are fully configurable, easy to reuse, and designed to support everything from simple text inputs to complex media galleries, maps, and relational fields.</p>
<p>Each field type defines how data is entered in the admin panel and how it can be displayed in your theme. All fields share a consistent set of settings, making them predictable and easy to configure.</p>
<hr />
<h2>How Custom Fields Work</h2>
<p>A Custom Field consists of:</p>
<ul>
<li><strong>A field type</strong> (e.g., Text, Image, Gallery, Date, Product)</li>
<li><strong>A label</strong> (what editors see)</li>
<li><strong>A slug</strong> (used to retrieve the value in templates)</li>
<li><strong>Optional settings</strong> (default value, required, instructions, etc.)</li>
</ul>
<p>When a field is added to a post type, it appears in the editor and stores its value in the database. You can then display it in your theme using components or template variables.</p>
<hr />
<h2>Shared Field Settings</h2>
<p>All field types include the following settings:</p>
<ul>
<li><strong>Default Value</strong> - The value shown when creating a new post or product.</li>
<li><strong>Required</strong> - Prevents saving if the field is empty.</li>
<li><strong>Instructions</strong> - Helper text shown to editors.</li>
<li><strong>Placeholder Text</strong> - Text displayed when the field has no value.</li>
<li><strong>Prepend</strong> - Text displayed before the input.</li>
<li><strong>Append</strong> - Text displayed after the input.</li>
</ul>
<p>These settings ensure consistency across all field types and make the editing experience intuitive.</p>
<hr />
<h2>Field Types</h2>
<p>Each field type is designed for a specific kind of data. The following list summarizes the purpose of each field type.</p>
<h3>Accordion Field</h3>
<p>Creates an accordion-style input for storing expandable/collapsible list items.<br />
Useful for FAQs, feature lists, or structured content sections.</p>
<h3>Checkbox Field</h3>
<p>Stores a true/false value using a checkbox input.<br />
Ideal for toggles such as “Featured”, “Published”, or “Show in menu”.</p>
<h3>Color Field</h3>
<p>Provides a color picker for selecting HEX/RGB values.<br />
Useful for theme settings, UI customization, or product color attributes.</p>
<h3>Date Field</h3>
<p>Stores a date value using a calendar picker.<br />
Commonly used for events, schedules, or publication dates.</p>
<h3>Date Time Field</h3>
<p>Stores both date and time.<br />
Useful for appointments, event start times, or timed promotions.</p>
<h3>Email Field</h3>
<p>Validates and stores email addresses.<br />
Useful for contact information or form submissions.</p>
<h3>File Field</h3>
<p>Allows uploading files that can be downloaded on the website.<br />
Useful for PDFs, documents, or downloadable resources.</p>
<h3>Gallery Field</h3>
<p>Stores multiple images as a gallery.<br />
Ideal for product galleries, portfolios, or image collections.</p>
<h3>Google Map Field</h3>
<p>Stores map coordinates or addresses using a Google Maps input.<br />
Useful for locations, stores, or event venues.</p>
<h3>Image Field</h3>
<p>Stores a single image.<br />
Used for featured images, banners, or thumbnails.</p>
<h3>Link Field</h3>
<p>Stores a URL or internal link.<br />
Useful for buttons, CTAs, or external references.</p>
<h3>Message Field</h3>
<p>Displays a static message in the editor (info, warning, instructions).<br />
Does not store data.</p>
<h3>Month Field</h3>
<p>Stores a month value (YYYY‑MM).<br />
Useful for archives, billing cycles, or monthly scheduling.</p>
<h3>Number Field</h3>
<p>Stores numeric values.<br />
Useful for quantities, prices, ratings, or measurements.</p>
<h3>Oembed Field</h3>
<p>Accepts media URLs and automatically embeds them (YouTube, Twitter, etc.).<br />
Ideal for rich media content.</p>
<h3>Password Field</h3>
<p>Stores password values (masked input).<br />
Useful for protected content or integrations.</p>
<h3>Post Field</h3>
<p>Autocomplete selector for choosing a post.<br />
Useful for related posts, featured posts, or linking content.</p>
<h3>Product Field</h3>
<p>Autocomplete selector for choosing a product.<br />
Useful for cross‑selling, related products, or product references.</p>
<h3>Radio Field</h3>
<p>Displays a list of radio buttons for selecting one value.<br />
Useful for predefined options such as sizes, types, or modes.</p>
<h3>Range Field</h3>
<p>Creates a slider for selecting a numeric value within a range.<br />
Useful for ratings, filters, or adjustable settings.</p>
<h3>Select Field</h3>
<p>The Select field displays a dropdown list of predefined options, allowing the user to choose a single value. It is ideal for categories, types, modes, or any controlled vocabulary.</p>
<h3>Tab Field</h3>
<p>The Tab field stores tabbed content, enabling editors to organize information into multiple labeled sections. This is useful for product specifications, multi-section content blocks, or structured layouts.</p>
<h3>Taxonomy Field</h3>
<p>The Taxonomy field links a post to a taxonomy item, such as a category, tag, or custom taxonomy. It is essential for organizing content and enabling taxonomy-based filtering.</p>
<h3>Telephone Field</h3>
<p>The Telephone field stores phone numbers using a tel input. It is suitable for contact information, business listings, or user profiles.</p>
<h3>Text Field</h3>
<p>The Text field provides a simple single-line input for short strings. It supports an optional character limit and is one of the most commonly used field types.</p>
<h3>Textarea Field</h3>
<p>The Textarea field stores multi-line text, making it ideal for descriptions, notes, summaries, or any longer content that does not require rich formatting.</p>
<h3>Time Field</h3>
<p>The Time field stores time values using a time picker. It is useful for schedules, opening hours, or event times.</p>
<h3>Toggle Field</h3>
<p>The Toggle field stores true/false values using a switch-style UI. It is a more visual alternative to the Checkbox field and works well for enabling or disabling features.</p>
<h3>URL Field</h3>
<p>The URL field stores website addresses and validates them as URLs. It is useful for external links, social profiles, or reference resources.</p>
<h3>User Field</h3>
<p>The User field allows selecting a user from the system, storing a relationship between the post and a user account. It is useful for authorship, ownership, or assigning responsibility.</p>
<h3>Week Field</h3>
<p>The Week field stores week values (year + week number). It is useful for scheduling, weekly reports, or time-based categorization.</p>
<h3>WYSIWYG Field</h3>
<p>The WYSIWYG field provides a full rich-text editor, identical to the editor used for posts and products. It supports formatted text, images, embeds, and multimedia.<br />
This field is ideal for long-form content, flexible layouts, and any scenario where editors need full control over formatting.</p>
<p>A combined reference table helps compare all Vvveb CMS custom field types at a glance and clarifies when each one is most appropriate. The table below summarizes every available field type, including its purpose and ideal use cases.</p>
<hr />
<h2>Custom Fields Reference Table</h2>
<table class="table table-bordered">
<thead class="table-light">
<tr>
<th>Field Type</th>
<th>What It Stores</th>
<th>Ideal Use Cases</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Accordion</strong></td>
<td>Expandable/collapsible list items</td>
<td>FAQs, feature lists, structured content blocks</td>
<td>Stores multiple grouped items</td>
</tr>
<tr>
<td><strong>Checkbox</strong></td>
<td>True/false value</td>
<td>Toggles (Featured, Published, Enable option)</td>
<td>Simple boolean switch</td>
</tr>
<tr>
<td><strong>Color</strong></td>
<td>Color value (HEX/RGB)</td>
<td>Theme settings, UI customization, product color attributes</td>
<td>Uses color picker</td>
</tr>
<tr>
<td><strong>Date</strong></td>
<td>Date (YYYY‑MM‑DD)</td>
<td>Events, schedules, publication dates</td>
<td>Calendar input</td>
</tr>
<tr>
<td><strong>Date Time</strong></td>
<td>Date + time</td>
<td>Appointments, event start times, timed promotions</td>
<td>Combined picker</td>
</tr>
<tr>
<td><strong>Email</strong></td>
<td>Email address</td>
<td>Contact info, forms, user profiles</td>
<td>Validates email format</td>
</tr>
<tr>
<td><strong>File</strong></td>
<td>Uploaded file</td>
<td>PDFs, documents, downloadable resources</td>
<td>Stores file path</td>
</tr>
<tr>
<td><strong>Gallery</strong></td>
<td>Multiple images</td>
<td>Product galleries, portfolios, image collections</td>
<td>Multi-image input</td>
</tr>
<tr>
<td><strong>Google Map</strong></td>
<td>Address or coordinates</td>
<td>Store locations, event venues, business listings</td>
<td>Map-based selector</td>
</tr>
<tr>
<td><strong>Image</strong></td>
<td>Single image</td>
<td>Featured images, banners, thumbnails</td>
<td>Most common media field</td>
</tr>
<tr>
<td><strong>Link</strong></td>
<td>URL or internal link</td>
<td>Buttons, CTAs, external references</td>
<td>Simple link input</td>
</tr>
<tr>
<td><strong>Message</strong></td>
<td>Static message (no data)</td>
<td>Editor instructions, warnings, info blocks</td>
<td>Does not store values</td>
</tr>
<tr>
<td><strong>Month</strong></td>
<td>Month (YYYY‑MM)</td>
<td>Billing cycles, archives, monthly schedules</td>
<td>Month picker</td>
</tr>
<tr>
<td><strong>Number</strong></td>
<td>Numeric value</td>
<td>Quantities, prices, ratings, measurements</td>
<td>Supports min/max</td>
</tr>
<tr>
<td><strong>Oembed</strong></td>
<td>Media embed URL</td>
<td>YouTube, Vimeo, Twitter embeds</td>
<td>Auto-expands on display</td>
</tr>
<tr>
<td><strong>Password</strong></td>
<td>Masked text</td>
<td>Protected content, integrations</td>
<td>Stores sensitive strings</td>
</tr>
<tr>
<td><strong>Post</strong></td>
<td>Post reference</td>
<td>Related posts, featured posts</td>
<td>Autocomplete selector</td>
</tr>
<tr>
<td><strong>Product</strong></td>
<td>Product reference</td>
<td>Cross‑selling, related products</td>
<td>Autocomplete selector</td>
</tr>
<tr>
<td><strong>Radio</strong></td>
<td>One value from a list</td>
<td>Sizes, types, modes, predefined options</td>
<td>Single-choice list</td>
</tr>
<tr>
<td><strong>Range</strong></td>
<td>Numeric slider</td>
<td>Ratings, adjustable settings, filters</td>
<td>Min/max range</td>
</tr>
<tr>
<td><strong>Select</strong></td>
<td>Dropdown list</td>
<td>Categories, types, controlled vocabularies</td>
<td>Single-choice dropdown</td>
</tr>
<tr>
<td><strong>Tab</strong></td>
<td>Tabbed content</td>
<td>Product specs, multi-section content</td>
<td>Stores multiple tab panels</td>
</tr>
<tr>
<td><strong>Taxonomy</strong></td>
<td>Taxonomy relation</td>
<td>Categories, tags, custom taxonomies</td>
<td>Connects content to taxonomy</td>
</tr>
<tr>
<td><strong>Telephone</strong></td>
<td>Phone number</td>
<td>Contact info, business listings</td>
<td>Tel input</td>
</tr>
<tr>
<td><strong>Text</strong></td>
<td>Single-line text</td>
<td>Titles, labels, short strings</td>
<td>Supports character limit</td>
</tr>
<tr>
<td><strong>Textarea</strong></td>
<td>Multi-line text</td>
<td>Descriptions, notes, summaries</td>
<td>Plain text only</td>
</tr>
<tr>
<td><strong>Time</strong></td>
<td>Time value</td>
<td>Opening hours, schedules, event times</td>
<td>Time picker</td>
</tr>
<tr>
<td><strong>Toggle</strong></td>
<td>True/false switch</td>
<td>Enable/disable features</td>
<td>Visual alternative to checkbox</td>
</tr>
<tr>
<td><strong>URL</strong></td>
<td>Website address</td>
<td>External links, social profiles</td>
<td>Validates URL format</td>
</tr>
<tr>
<td><strong>User</strong></td>
<td>User reference</td>
<td>Author, owner, assigned user</td>
<td>Autocomplete selector</td>
</tr>
<tr>
<td><strong>Week</strong></td>
<td>Week of the year</td>
<td>Weekly schedules, reports</td>
<td>Week picker</td>
</tr>
<tr>
<td><strong>WYSIWYG</strong></td>
<td>Rich formatted content</td>
<td>Long-form content, multimedia sections</td>
<td>Full editor with styling</td>
</tr>
</tbody>
</table>
<h2>Using Custom Fields in Themes</h2>
<p>Custom field values can be displayed in templates using components or Vtpl selectors. For example:</p>
<pre><code class="language-html">&lt;span data-v-post-custom_field_slug&gt;&lt;/span&gt;
</code></pre>
<p>Or inside a component:</p>
<pre><code class="language-html">&lt;div data-v-product-custom_field_slug&gt;&lt;/div&gt;
</code></pre>
<p>This makes it easy to integrate custom data into any theme layout.</p>
<hr />
<p>Custom Fields are one of the most powerful ways to tailor Vvveb CMS to different content models. They allow you to build flexible, structured, and editor‑friendly content types without writing custom code.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="473">
			<title data-v-post-name="name">Product Tags</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/product-tags</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 18:04:45 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Tags are used to group products by common topics, on the product edit page you can enter new tags that will be created automatically or choose an existing one from the autocomplete input.]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>Tags are used to group products by common topics, on the product edit page you can enter new tags that will be created automatically or choose an existing one from the autocomplete input.</p>
<p><a href="/media/docs/product-tags.png"><img src="/media/docs/product-tags.png" alt="Product tags" /></a></p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="467">
			<title data-v-post-name="name">Page editing</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/content-post-page</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 18:04:44 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Content 
Name 
The name of your page 
Slug 
The slug is unique for the page and is used to generated the url that points to the page. The slug will be generated automatically from the name but you can change it if you wish. It should not contain]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<h2>Content</h2>
<h3>Name</h3>
<p>The name of your page</p>
<h3>Slug</h3>
<p>The slug is unique for the page and is used to generated the url that points to the page.
The slug will be generated automatically from the name but you can change it if you wish.
It should not contain punctuation marks and spaces, use - or _ to separate words.</p>
<h3>Content</h3>
<p>Content of the page</p>
<h3>Excerpt</h3>
<p>Depending on template used this might not be visibile, by default is not visible.</p>
<h3>Meta description and Meta keywords</h3>
<p>This content is used for search engines.</p>
<h3>Featured media</h3>
<p>Depending on template used this image can be visible or not, usually pages don't have featured media visible.</p>
<h3>Open in page editor</h3>
<p>With this action you can edit the content of the page inside the page builder exactly how is displayed to users.</p>
<h2>Page options</h2>
<h3>Publish date</h3>
<p>Unlike posts publish date is not visible on frontend and is used only internally.</p>
<h3>Status</h3>
<p>Only with publish the page is visible on the frontend.</p>
<h3>Template</h3>
<p>If you wish your page to have a different layout you can select a different theme template, for example for contact page you can use a template with a contact form.</p>
<h1><strong>Page Editing</strong></h1>
<p>Pages are static content entries used for sections like <em>About</em>, <em>Contact</em>, <em>Services</em>, or any non‑blog content.</p>
<p>The page editor allows you to manage text, media, SEO settings, templates, and multi‑site visibility.</p>
<hr />
<h2><strong>Content</strong></h2>
<h3><strong>Name</strong></h3>
<p>The title of your page.<br />
This is used in the admin panel and may appear in menus or breadcrumbs depending on your theme.</p>
<hr />
<h3><strong>Slug</strong></h3>
<p>The slug is the unique identifier used in the page URL.</p>
<ul>
<li>Automatically generated from the page name</li>
<li>Can be edited manually</li>
<li>Should not contain spaces or punctuation</li>
<li>Use <code>-</code> or <code>_</code> to separate words</li>
</ul>
<p>Example:<br />
<code>about-us</code> → <code>https://example.com/about-us</code></p>
<hr />
<h3><strong>Content</strong></h3>
<p>The main body of the page.<br />
This is where you add text, images, embeds, and other content elements.</p>
<hr />
<h3><strong>Excerpt</strong></h3>
<p>A short summary of the page.<br />
Depending on the template, this may or may not be displayed.<br />
By default, excerpts are not visible on standard page templates.</p>
<hr />
<h3><strong>Meta Description &amp; Meta Keywords</strong></h3>
<p>Used for SEO purposes:</p>
<ul>
<li><strong>Meta description</strong> appears in search engine results</li>
<li><strong>Meta keywords</strong> are optional and used by some search engines</li>
</ul>
<p>These fields help improve search visibility.</p>
<hr />
<h3><strong>Featured Media</strong></h3>
<p>A featured image or video for the page.</p>
<ul>
<li>Visibility depends on the selected template</li>
<li>Many page templates do not display featured media</li>
<li>Some custom templates may use it as a header or banner</li>
</ul>
<hr />
<h3><strong>Open in Page Editor</strong></h3>
<p>You can open the page in the <strong>Page Builder</strong> for advanced layout customization.</p>
<ul>
<li><strong>Save as new template</strong> - applies changes only to this page</li>
<li><strong>Default template</strong> - applies changes to all pages using the same layout</li>
</ul>
<p>This is ideal for creating unique landing pages or custom layouts.</p>
<hr />
<h1><strong>Page Options</strong></h1>
<h3><strong>Sticky</strong></h3>
<p>Displays the page before other non‑sticky pages in listings.<br />
Useful for highlighting important pages.</p>
<hr />
<h3><strong>Password Protected</strong></h3>
<p>Restricts access to the page.</p>
<ul>
<li>Visitors must enter a valid password to view the content</li>
<li>Useful for private content, client pages, or internal documentation</li>
</ul>
<hr />
<h3><strong>Publish Date</strong></h3>
<p>Unlike posts, the publish date for pages:</p>
<ul>
<li>Is not shown on the frontend</li>
<li>Is used internally for sorting and organization</li>
</ul>
<hr />
<h3><strong>Status</strong></h3>
<p>Controls page visibility:</p>
<ul>
<li><strong>Publish</strong> - visible on the frontend</li>
<li><strong>Draft / Pending / Private</strong> - hidden from visitors</li>
</ul>
<p>Only published pages appear on your site.</p>
<hr />
<h3><strong>Sites</strong></h3>
<p>If you are using a multi‑site setup, you can choose which sites the page belongs to.</p>
<ul>
<li>Check one or multiple sites</li>
<li>Each site can have its own navigation and visibility rules</li>
</ul>
<hr />
<h3><strong>Template</strong></h3>
<p>Select a layout template for the page.</p>
<p>Examples:</p>
<ul>
<li>A <strong>Contact</strong> template with a built‑in form</li>
<li>A <strong>Full‑width</strong> template for landing pages</li>
<li>A <strong>Default</strong> template for standard content pages</li>
</ul>
<p>Templates allow you to change the structure and design without modifying content.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="468">
			<title data-v-post-name="name">Menu editing</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/content-menu</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 18:04:44 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Menus allow you to control your website’s navigation structure. You can organize items hierarchically, create dropdowns or mega menus, and choose which sites each menu appears on. 
Menus are fully editable using drag‑and‑drop, making it easy]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>Menus allow you to control your website’s navigation structure. You can organize items hierarchically, create dropdowns or mega menus, and choose which sites each menu appears on.</p>
<p>Menus are fully editable using drag‑and‑drop, making it easy to reorder, nest, or regroup items.</p>
<p><a href="/media/docs/content-menus-menu.png"><img src="/media/docs/content-menus-menu.png" alt="Menu items" /></a></p>
<hr />
<h2><strong>Menu Structure &amp; Organization</strong></h2>
<p>Menu items support <strong>hierarchical nesting</strong>, allowing you to create:</p>
<ul>
<li>Simple top‑level navigation</li>
<li>Dropdown menus</li>
<li>Multi‑level submenus</li>
<li>Mega menu layouts</li>
</ul>
<p>You can reorder items at any time by dragging them into a new position or nesting them under another item.</p>
<hr />
<h2><strong>Sites</strong></h2>
<p>If you are running a multi‑site installation, you can choose which websites a menu belongs to.</p>
<p>A menu can be:</p>
<ul>
<li>Assigned to <strong>one site</strong></li>
<li>Shared across <strong>multiple sites</strong></li>
<li>Customized per site if needed</li>
</ul>
<p>This is useful for multi‑brand setups or websites with different navigation structures.</p>
<p><a href="/media/docs/content-menus-menu-edit.png"><img src="/media/docs/content-menus-menu-edit.png" alt="Menu item edit" /></a></p>
<hr />
<h1><strong>Menu Items</strong></h1>
<p>Each menu item can link to different types of content. When adding a new item, choose from the following types:</p>
<h3><strong>Page</strong></h3>
<p>Links to a specific page.<br />
An autocomplete field helps you quickly find the page.</p>
<h3><strong>Post</strong></h3>
<p>Links to a specific blog post.</p>
<h3><strong>Product</strong></h3>
<p>Links to a product in your store.</p>
<h3><strong>Link</strong></h3>
<p>Links to any internal or external URL.</p>
<h3><strong>Text</strong></h3>
<p>Displays custom HTML content.<br />
Useful for <strong>mega menus</strong>, section headers, or non‑clickable labels.</p>
<h3><strong>Home Page</strong></h3>
<p>Automatically links to the homepage.<br />
In multi‑language sites, it generates the correct homepage URL for each language.</p>
<h3><strong>Blog</strong></h3>
<p>Links to the blog posts list.</p>
<h3><strong>Shop</strong></h3>
<p>Links to the product catalog.</p>
<hr />
<h2><strong>Multi‑Language Support</strong></h2>
<p>Menu item <strong>names and text fields support multiple languages</strong>.<br />
When editing a menu item, you can switch languages and provide translations for each one.</p>
<p><a href="/media/docs/content-menus-menu-edit.png"><img src="/media/docs/content-menus-menu-edit.png" alt="Menu item edit" /></a></p>
<hr />
<h1><strong>Menu Item Actions</strong></h1>
<p>Each menu item includes the following actions:</p>
<ul>
<li><strong>Edit</strong> - open the menu item editor</li>
<li><strong>Add child</strong> - create a submenu item under the current item</li>
<li><strong>Delete</strong> - remove the item from the menu</li>
</ul>
<p>These actions make it easy to build complex navigation structures.</p>
<hr />
<h2><strong>Bulk Delete</strong></h2>
<p>You can delete multiple menu items at once:</p>
<ol>
<li>Select multiple items using the checkboxes</li>
<li>A <strong>Bulk Delete</strong> button will appear</li>
<li>Confirm deletion</li>
</ol>
<p>This is useful when cleaning up large menus.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="469">
			<title data-v-post-name="name">Comments</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/content-comments</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 18:04:44 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Comments allow visitors to interact with your posts by leaving feedback, asking questions, or starting discussions. Vvveb includes a built‑in comment management system that lets you review, moderate, and control how comments appear on your site. 
 
]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>Comments allow visitors to interact with your posts by leaving feedback, asking questions, or starting discussions. Vvveb includes a built‑in comment management system that lets you review, moderate, and control how comments appear on your site.</p>
<hr />
<h2><strong>Comment Moderation</strong></h2>
<p>From the Comments section, you can manage every comment submitted on your posts. Each comment can be:</p>
<ul>
<li><strong>Approved</strong> - Makes the comment visible on the frontend</li>
<li><strong>Edited</strong> - Modify the comment text or author details</li>
<li><strong>Trashed</strong> - Moves the comment to the trash (recoverable)</li>
<li><strong>Deleted</strong> - Permanently removes the comment</li>
<li><strong>Marked as spam</strong> - Flags the comment as spam and hides it</li>
</ul>
<p>These tools help you keep discussions clean, relevant, and safe.</p>
<hr />
<h2><strong>Anonymous Comments</strong></h2>
<p>You can choose whether visitors must be logged in to comment.</p>
<p>To disable anonymous comments, go to:</p>
<p><strong>Site Settings → Comments</strong><a href="/settings-site">site settings</a></p>
<p>This prevents unregistered users from posting and helps reduce spam.</p>
<hr />
<h2><strong>Comment Display</strong></h2>
<p>Approved comments appear on the post page, usually below the content.<br />
Depending on your theme, comments may include:</p>
<ul>
<li>Author name</li>
<li>Date and time</li>
<li>Reply threading</li>
<li>Gravatar or avatar support</li>
</ul>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="470">
			<title data-v-post-name="name">Categories</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/content-categories</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 18:04:44 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Categories are used to organize posts into a hierarchical structure, allowing you to group related content and create clear navigation paths for your blog. 
Unlike tags, which describe specific topics, categories define the broader sections of your]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>Categories are used to organize posts into a <strong>hierarchical structure</strong>, allowing you to group related content and create clear navigation paths for your blog.</p>
<p>Unlike tags, which describe specific topics, categories define the broader sections of your content.</p>
<hr />
<h2><strong>Hierarchy &amp; Organization</strong></h2>
<p>Categories can be arranged in a <strong>tree structure</strong>, meaning you can create:</p>
<ul>
<li><strong>Parent categories</strong> (e.g., <em>Technology</em>)</li>
<li><strong>Subcategories</strong> (e.g., <em>Software</em>, <em>Hardware</em>)</li>
<li><strong>Nested structures</strong> for more complex blogs</li>
</ul>
<p>This helps visitors browse content more easily and improves SEO by creating meaningful content groupings.</p>
<hr />
<h2><strong>Drag‑and‑Drop Management</strong></h2>
<p>You can reorder and reorganize categories using <strong>drag and drop</strong>:</p>
<ul>
<li>Move a category up or down</li>
<li>Nest a category under another</li>
<li>Restructure your entire category tree at any time</li>
</ul>
<p>Changes are applied instantly and reflected across all posts using those categories.</p>
<hr />
<h2><strong>Assigning Categories to Posts</strong></h2>
<p>When editing a post, you can:</p>
<ul>
<li>Select one or multiple categories</li>
<li>Create new categories directly from the post editor</li>
<li>Manage categories separately from the Categories page</li>
</ul>
<p>This makes it easy to keep your content organized as your site grows.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="471">
			<title data-v-post-name="name">Posts management</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/content-posts</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 18:04:44 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Description 
Posts are entries that display usually in reverse order on your blog page or posts/blog sections. Posts can have user comments and are included in your site’s RSS feed. 
Each table row contains the following columns:  
Thumbnail 
Post Name]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<h2>Description</h2>
<p>Posts are entries that display usually in reverse order on your blog page or posts/blog sections.
Posts can have user comments and are included in your site’s RSS feed.</p>
<p>Each table row contains the following columns:</p>
<ul>
<li>Thumbnail</li>
<li>Post Name</li>
<li>Number of commments</li>
</ul>
<p><a href="/media/docs/posts-columns.png"><img src="/media/docs/posts-columns.png" alt="Posts columns" /></a></p>
<h3>Quick actions</h3>
<p>When hovering a post quick action buttons will be visible to allow you to quickly view or design the post page.</p>
<p><a href="/media/docs/posts-quick-actions.png"><img src="/media/docs/posts-quick-actions.png" alt="Posts quick actions" /></a></p>
<ul>
<li><strong>Edit button</strong> will open the post edit page.</li>
<li><strong>View button</strong> will show the post page how is visible to your site visitors.</li>
<li><strong>Design button</strong> will load the post page in the page builder for post specific customizations.
You can save the changes to a custom template with the <em>Save as new template</em> option that will apply the changes only for this post, choosing default template will apply the changes to all posts.</li>
</ul>
<p><a href="/media/docs/post-save-as-new-template.png"><img src="/media/docs/post-save-as-new-template.png" alt="Post save as new template" /></a></p>
<h3>Bulk delete</h3>
<p>Selecting more than one post or clicking on the top checkbox will show the bulk delete button.</p>
<p><a href="/media/docs/posts-bulk-delete.png"><img src="/media/docs/posts-bulk-delete.png" alt="Posts bulk delete" /></a></p>
<h2>Filters</h2>
<p><a href="/media/docs/posts-filters.png"><img src="/media/docs/posts-filters.png" alt="Posts filters" /></a></p>
<p>Available post filters:</p>
<ul>
<li>Search</li>
<li>Month</li>
<li>Status</li>
<li>Author</li>
</ul>
<h1><strong>Posts Management</strong></h1>
<p>Posts are content entries that typically appear in reverse chronological order on your blog page or in any posts/blog components. They can include comments, metadata, featured media, and are automatically included in your site’s RSS feed.</p>
<hr />
<h2><strong>Posts List Overview</strong></h2>
<p>Each row in the posts table displays key information about a post:</p>
<ul>
<li><strong>Thumbnail</strong> - Preview of the featured image</li>
<li><strong>Post Name</strong> - Title of the post (shown in the currently selected language)</li>
<li><strong>Author</strong> - Admin user who created the post</li>
<li><strong>Comments</strong> - Number of comments received</li>
<li><strong>Date Updated</strong> - Last modification date</li>
<li><strong>Status</strong> - Publish, Draft, Pending, Private, Scheduled</li>
<li><strong>Actions</strong> - Quick access to editing tools</li>
</ul>
<p><a href="/media/docs/posts-columns.png"><img src="/media/docs/posts-columns.png" alt="Posts columns" /></a></p>
<hr />
<h2><strong>Quick Actions</strong></h2>
<p>When hovering over a post, quick action buttons appear, allowing you to manage the post efficiently:</p>
<ul>
<li><strong>Edit</strong> - Opens the post edit page</li>
<li><strong>View</strong> - Shows the post as visitors see it on the frontend</li>
<li><strong>Design</strong> - Loads the post in the Page Builder for layout customization</li>
</ul>
<p><a href="/media/docs/posts-quick-actions.png"><img src="/media/docs/posts-quick-actions.png" alt="Posts quick actions" /></a></p>
<p>Using the <strong>Design</strong> option, you can:</p>
<ul>
<li>Save changes as a <strong>new template</strong> (applies only to this post)</li>
<li>Use the <strong>default template</strong> (applies to all posts using that layout)</li>
</ul>
<p><a href="/media/docs/post-save-as-new-template.png"><img src="/media/docs/post-save-as-new-template.png" alt="Post save as new template" /></a></p>
<hr />
<h2><strong>Bulk Delete</strong></h2>
<p>You can delete multiple posts at once:</p>
<ol>
<li>Select multiple posts using the checkboxes</li>
<li>A <strong>Bulk Delete</strong> button will appear</li>
<li>Confirm deletion</li>
</ol>
<p>This is useful for cleaning up old or test content.</p>
<p><a href="/media/docs/posts-bulk-delete.png"><img src="/media/docs/posts-bulk-delete.png" alt="Posts bulk delete" /></a></p>
<hr />
<h2><strong>Filters</strong></h2>
<p>The posts list includes several filters to help you quickly find specific content:</p>
<ul>
<li><strong>Search</strong> - Searches through post titles and content</li>
<li><strong>Month</strong> - Filters posts by month and year</li>
<li><strong>Status</strong> - Publish, Draft, Pending, Private, Scheduled</li>
<li><strong>Author</strong> - Filters posts by admin user</li>
</ul>
<p>These filters make it easy to manage large blogs or multi‑author sites.</p>
<p><a href="/media/docs/posts-filters.png"><img src="/media/docs/posts-filters.png" alt="Posts filters" /></a></p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="472">
			<title data-v-post-name="name">Post Tags</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/content-tags</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 18:04:44 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Tags are used to group posts by shared topics or keywords. They help visitors discover related content and improve your site’s internal navigation and SEO. 
You can add tags directly from the post edit page:  
Start typing in the tag field 
Choose]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>Tags are used to group posts by shared topics or keywords. They help visitors discover related content and improve your site’s internal navigation and SEO.</p>
<p>You can add tags directly from the <strong>post edit page</strong>:</p>
<ul>
<li>Start typing in the tag field</li>
<li>Choose an existing tag from the autocomplete list</li>
<li>Or enter a new tag - it will be created automatically when the post is saved</li>
</ul>
<p><a href="/media/docs/post-tags.png"><img src="/media/docs/post-tags.png" alt="Product tags" /></a></p>
<hr />
<h2><strong>Why Use Tags?</strong></h2>
<p>Tags allow you to:</p>
<ul>
<li>Connect posts with similar themes</li>
<li>Improve content discoverability</li>
<li>Create tag‑based archive pages</li>
<li>Enhance SEO by organizing topics more precisely than categories</li>
</ul>
<p>While categories define broad structure, <strong>tags describe specific details</strong>.</p>
<hr />
<h2><strong>Managing Tags</strong></h2>
<p>Tags are created automatically when added to a post, but you can also:</p>
<ul>
<li>Edit or delete tags from the <strong>Tags</strong> section in the admin</li>
<li>Merge or rename tags to clean up duplicates</li>
<li>Translate tag names in multi‑language setups</li>
</ul>
<p>This keeps your taxonomy organized as your blog grows.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="464">
			<title data-v-post-name="name">Questions</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/product-questions</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 17:30:53 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Users can ask questions regarding a product on the product page where you or other users can reply. 
Just like comments they have different status like pending, spam, trash etc. 
Answer them under Products → Questions: new questions stay pending]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>Users can ask questions regarding a product on the product page where you or other users can reply.</p>
<p>Just like comments they have different status like pending, spam, trash etc.</p>
<p>Answer them under Products → Questions: new questions stay pending (hidden on the storefront) until approved. Replies notify the asker, building a public Q&amp;A that reduces support load.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="465">
			<title data-v-post-name="name">Categories</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/product-categories</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 17:30:53 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Categories are used to group products in a tree hierarchy. 
You can reorder or move categories with drag and drop from one place to another. 
Manage them under Products → Taxonomy → Categories. Each category has a name, slug, description and image;]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>Categories are used to group products in a tree hierarchy.</p>
<p>You can reorder or move categories with drag and drop from one place to another.</p>
<p>Manage them under Products → Taxonomy → Categories. Each category has a name, slug, description and image; the slug sets the category page url. Assign products to categories from the product edit page (Links tab) so they appear in the storefront navigation, filters and the category pages.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="466">
			<title data-v-post-name="name">Reviews</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/product-reviews</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 17:30:53 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Users can leave reviews on the product page, they can also upload images with the product. 
If the user has an order that included the product then a verified bought badge is displayed in the review. 
Just like comments they have different status like]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>Users can leave reviews on the product page, they can also upload images with the product.</p>
<p>If the user has an order that included the product then a verified bought badge is displayed in the review.</p>
<p>Just like comments they have different status like pending, spam, trash etc.</p>
<p>Moderate them under Products → Reviews: approve or reject new reviews, reply, and remove spam. Reviews waiting for approval stay hidden on the storefront until you publish them.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="456">
			<title data-v-post-name="name">Translate interface</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/editor-translate</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 17:30:52 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Vvveb is multilingual: content can exist in several languages and the admin interface/theme strings can be translated. The translation helpers let you see and manage how a piece of text is translated across every configured language. 
 
Translating]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>Vvveb is multilingual: content can exist in several languages and the admin interface/theme strings can be translated. The translation helpers let you see and manage how a piece of text is translated across every configured language.</p>
<hr />
<h2>Translating a string</h2>
<p>From the editor's translate dialog you can enter one source text and provide the translated value for each available language at once. The values are stored in the matching language translation files (<code>locale/&lt;lang&gt;/LC_MESSAGES</code>).</p>
<hr />
<h2>Translation domains</h2>
<p>Strings live in <strong>domains</strong>  -  groups per theme/plugin/admin core. When translating you pick the domain matching where the string is used, which keeps themes and plugins independent from each other.</p>
<hr />
<h2>Workflow</h2>
<ol>
<li>Choose the target language</li>
<li>Pick the domain (theme, plugin or app)</li>
<li>Search for the string or add a new one</li>
<li>Save  -  the translation is compiled and used immediately on the frontend</li>
</ol>
<p>For content translations (the same post in multiple languages) use the language tabs in the post editor instead  -  see <a href="/docs/user/content/posts/posts">Posts</a>.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="457">
			<title data-v-post-name="name">Code editor</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/editor-code</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 17:30:52 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[The Code Editor lets you edit theme and plugin files directly from the admin panel - HTML templates, CSS, JavaScript, JSON and text files such as robots.txt. 
Open it from the admin menu under Themes → Code editor (it is also used by plugins, e.g. the]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>The <strong>Code Editor</strong> lets you edit theme and plugin files directly from the admin panel  -  HTML templates, CSS, JavaScript, JSON and text files such as <code>robots.txt</code>.</p>
<p>Open it from the admin menu under <strong>Themes → Code editor</strong> (it is also used by plugins, e.g. the SEO plugin's schema templates and robots.txt editing link to it).</p>
<hr />
<h2>What you can edit</h2>
<p>The editor works on the folders that make up your site's front-end:</p>
<ul>
<li><strong>themes/</strong>  -  the active theme's HTML, CSS and JS files</li>
<li><strong>plugins/</strong>  -  public assets of installed plugins</li>
<li><strong>public/</strong>  -  site-level files like <code>robots.txt</code> / <code>vrobots.txt</code></li>
</ul>
<p>A file tree on the left lets you browse directories; clicking a file loads it with syntax highlighting.</p>
<hr />
<h2>Safety rules</h2>
<p>To protect the site from accidental breakage:</p>
<ul>
<li><strong>Executable extensions cannot be saved</strong> (<code>php</code>, <code>tpl</code>, <code>phtml</code>, <code>htaccess</code>, <code>exe</code>, <code>phar</code>, …)</li>
<li>Files are saved in place  -  create a <a href="/docs/user/tools/backup">backup</a> before bulk edits</li>
<li>Changes to theme HTML trigger recompilation of templates so changes appear immediately</li>
</ul>
<hr />
<h2>Tips</h2>
<ul>
<li>Use the editor for small tweaks; for larger development work edit files on disk with your own tools</li>
<li>After saving a <code>.css</code>/<code>.js</code> file, clear the <strong>assets cache</strong> from <a href="/docs/user/tools/cache">Cache</a> if changes don't appear</li>
<li>Plugin-provided files (like SEO schema templates) are documented by each plugin</li>
</ul>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="458">
			<title data-v-post-name="name">Page builder revisions</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/editor-revisions</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 17:30:52 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Pages designed in the page builder keep save history: each save stores a snapshot of the layout that can be restored later. 
Restoring  
Open the page in the page builder 
Open the revisions panel / menu entry 
Pick a previous save to preview its layout]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>Pages designed in the page builder keep <strong>save history</strong>: each save stores a snapshot of the layout that can be restored later.</p>
<h2>Restoring</h2>
<ol>
<li>Open the page in the page builder</li>
<li>Open the revisions panel / menu entry</li>
<li>Pick a previous save to preview its layout</li>
<li>Restore to make it current</li>
</ol>
<p>Like <a href="/docs/user/content/posts/revisions">post revisions</a>, restoring keeps the replaced version in history so nothing is lost. Use it to experiment freely with redesigns.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="459">
			<title data-v-post-name="name">Reusable blocks</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/editor-reusable</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 17:30:52 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[When building pages with the page builder you often repeat the same section across pages - a hero, a contact strip, a footer. Vvveb provides two mechanisms to avoid duplicating work: saved global sections and the Reusable group in the page builder. 
 
]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>When building pages with the page builder you often repeat the same section across pages  -  a hero, a contact strip, a footer. Vvveb provides two mechanisms to avoid duplicating work: <strong>saved global sections</strong> and the <strong>Reusable</strong> group in the page builder.</p>
<hr />
<h2>Saving global sections</h2>
<p>Any element or section in the page builder can be marked as global (for example <code>data-v-save-global=&quot;index.html,.header&quot;</code> on shared parts of a page). When a section is saved as global:</p>
<ol>
<li>It is stored once (by default in <code>index.html</code>)</li>
<li>Every page that includes it renders the same content</li>
<li>Editing it in one place updates all pages using it</li>
</ol>
<p>This is ideal for headers, footers, navigation menus and promotional banners.</p>
<hr />
<h2>The Reusable section group</h2>
<p>Saved blocks appear in the page builder's left panel under the <strong>Reusable</strong> group alongside the theme's own sections. From there they can be dragged onto any page like any other block.</p>
<hr />
<h2>Workflow tips</h2>
<ul>
<li>Keep global content truly generic  -  per-page content belongs on the page itself</li>
<li>If a global section must differ slightly between pages, save two variants under different names</li>
<li>Global blocks are regular theme files, so they are included in file backups and can be edited with the <a href="/docs/user/editor/code-editor">code editor</a></li>
</ul>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="460">
			<title data-v-post-name="name">Page builder introduction</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/editor-page-builder</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 17:30:52 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[With the page builder you can edit any element on any page of your site. 
There are three kinds of elements that can be added to pages: sections, components and blocks. 
Sections 
Sections are groups of elements that are grouped in a horizontal box]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>With the page builder you can edit any element on any page of your site.</p>
<p>There are three kinds of elements that can be added to pages: <a href="/page-builder-sections">sections</a>, <a href="/page-builder-components">components</a> and <a href="/page-builder-blocks">blocks</a>.</p>
<h2>Sections</h2>
<p>Sections are groups of elements that are grouped in a horizontal box on your page such as heroes, navigation bars, call to action etc.</p>
<p>See the <a href="/page-builder-sections">sections list</a> for details.</p>
<h2>Components</h2>
<p>Components are elements that have properties that can be edited when clicked, elements such as images, headings, paragraphs etc.</p>
<p>See the <a href="/page-builder-components">components list</a> for details.</p>
<h2>Blocks</h2>
<p>Blocks are groups of elements that are used as quick templates that can be dropped on the page such as contact forms, product or post lists, carousels, sliders, image galleries etc.</p>
<p>See the <a href="/page-builder-blocks">blocks list</a> for details.</p>
<h2>Styles</h2>
<p>Styles can be used to change a theme appearance/style like typography or color palette.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="461">
			<title data-v-post-name="name">Returns</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/order-returns</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 17:30:52 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[List with all return forms submitted to the site by customers that want to return products.]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>List with all return forms submitted to the site by customers that want to return products.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="462">
			<title data-v-post-name="name">Subscriptions</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/order-subscriptions</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 17:30:52 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Configure subscription plans that can be selected for products when selling products with recurring payments. 
Plans vs subscriptions  
Plans (under Settings) define the billing schedule - period, interval, price 
Subscriptions listed here are active]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>Configure subscription plans that can be selected for products when selling products with recurring payments.</p>
<h2>Plans vs subscriptions</h2>
<ul>
<li><strong><a href="/docs/user/settings/subscription-plans">Plans</a></strong> (under Settings) define the billing schedule  -  period, interval, price</li>
<li><strong>Subscriptions</strong> listed here are <em>active agreements</em> created by customers when they buy such a product</li>
</ul>
<h2>Managing subscriptions</h2>
<p>Open a subscription to see its plan, next billing date, cycle count and current <a href="/docs/user/settings/subscription-statuses">status</a>. Depending on the payment plugin you can cancel or suspend it; provider webhooks keep the state in sync afterwards.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="463">
			<title data-v-post-name="name">Warehouses</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/order-warehouses</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 17:30:52 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Warehouses are fulfilment origins: each holds a name, address (country/region) and the products stocked there. Multi-warehouse stores quote shipping per origin and record shipment origins per package. 
Manage them under Ecommerce → Warehouses. Open]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>Warehouses are fulfilment origins: each holds a name, address (country/region) and the products stocked there. Multi-warehouse stores quote shipping per origin and record shipment origins per package.</p>
<p>Manage them under Ecommerce → Warehouses. Open a warehouse to edit its address, toggle enabled status, and assign products to it; unassigned products fall back to the default (first active) warehouse.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="374">
			<title data-v-post-name="name">Admin Role</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/admin-admin-role</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Admin roles define what each user can access and manage inside the Vvveb dashboard. A role groups permissions together, making it easy to control access for multiple users at once. 
Permissions are based on module paths, which correspond to the sections]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>Admin roles define what each user can access and manage inside the Vvveb dashboard. A role groups permissions together, making it easy to control access for multiple users at once.</p>
<p>Permissions are based on <strong>module paths</strong>, which correspond to the sections and actions inside the admin panel. Each role contains two rule lists:</p>
<ul>
<li><strong>Allow list</strong> - explicitly grants access</li>
<li><strong>Deny list</strong> - restricts or overrides access</li>
</ul>
<p>Vvveb checks the <strong>allow list first</strong>, then applies deny rules to limit or block specific actions.</p>
<p><a href="/media/docs/admin-role.png"><img src="/media/docs/admin-role.png" alt="Admin user" /></a></p>
<hr />
<h2><strong>Understanding Module Paths</strong></h2>
<p>Every admin page or action has a module path.<br />
For example:</p>
<ul>
<li>Posts list: <code>content/posts</code></li>
<li>Post editor: <code>content/posts/edit</code></li>
<li>Product list: <code>product/list</code></li>
<li>Plugin settings: <code>plugins/contact-form</code></li>
</ul>
<p>You can see the module path directly in the URL when navigating the admin panel.</p>
<hr />
<h2><strong>Allowing or Denying Access</strong></h2>
<p>To control access:</p>
<ul>
<li>Add a module path to the <strong>allow list</strong> to grant permission</li>
<li>Add a module path to the <strong>deny list</strong> to block permission</li>
</ul>
<p>This gives you fine‑grained control over what each role can do.</p>
<hr />
<h2><strong>Using Wildcards</strong></h2>
<p>Wildcards (<code>*</code>) let you apply rules to entire groups of modules or actions.</p>
<h3><strong>Examples</strong></h3>
<h4><strong>Allow access to all content modules</strong></h4>
<pre><code>content/*
</code></pre>
<p>This covers posts, pages, categories, menus, and more.</p>
<h4><strong>Deny delete actions for all content modules</strong></h4>
<pre><code>content/*/delete
</code></pre>
<p>Users can still view and edit content, but cannot delete anything.</p>
<h4><strong>Deny delete actions globally</strong></h4>
<pre><code>*/delete
</code></pre>
<p>Blocks delete actions across the entire admin panel.</p>
<h4><strong>Allow access to all plugin settings</strong></h4>
<pre><code>plugins/*
</code></pre>
<h4><strong>Allow or deny access to a specific plugin</strong></h4>
<pre><code>plugins/contact-form
</code></pre>
<hr />
<h2><strong>How Allow and Deny Rules Interact</strong></h2>
<p>Vvveb processes rules in this order:</p>
<ol>
<li><strong>Allow list</strong> - grants access</li>
<li><strong>Deny list</strong> - restricts or overrides access</li>
</ol>
<p>This means you can allow broad access, then selectively block sensitive areas.</p>
<h3><strong>Example</strong></h3>
<p>Allow full access to products:</p>
<pre><code>product/*
</code></pre>
<p>Then deny delete and category management:</p>
<pre><code>product/*/delete
product/categories
</code></pre>
<p>This gives users access to products and orders, but prevents them from deleting items or modifying categories.</p>
<hr />
<h2><strong>Practical Use Cases</strong></h2>
<h3><strong>Content‑only roles</strong></h3>
<p>Allow:</p>
<pre><code>content/*
editor/*
media/*
</code></pre>
<p>Deny:</p>
<pre><code>content/*/delete
</code></pre>
<h3><strong>Ecommerce manager</strong></h3>
<p>Allow:</p>
<pre><code>product/*
order/*
</code></pre>
<p>Deny:</p>
<pre><code>settings/*
tools/*
</code></pre>
<h3><strong>Restricted demo account</strong></h3>
<p>Allow:</p>
<pre><code>content/*
product/*
</code></pre>
<p>Deny:</p>
<pre><code>*/save
*/delete
settings/*
tools/*
</code></pre>
<hr />
<h2><strong>Summary</strong></h2>
<p>Admin roles give you powerful control over who can access what inside Vvveb.<br />
Using allow/deny rules and wildcards, you can build roles tailored to:</p>
<ul>
<li>Editors</li>
<li>Authors</li>
<li>Ecommerce managers</li>
<li>Developers</li>
<li>Demo users</li>
<li>API integrations</li>
</ul>
<p>This ensures your site stays secure while giving each team member exactly the access they need.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="375">
			<title data-v-post-name="name">Auth tokens</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/admin-auth-tokens</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Auth tokens let admin users access protected endpoints without a login session - used by external integrations, monitoring scripts or CI jobs that call the admin REST/API. 
 
Creating a token  
Go to Admin → Auth tokens Click Add, select the user the]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>Auth tokens let admin users access protected endpoints <strong>without a login session</strong>  -  used by external integrations, monitoring scripts or CI jobs that call the admin REST/API.</p>
<hr />
<h2>Creating a token</h2>
<ol>
<li>Go to <strong>Admin → Auth tokens</strong> Click <strong>Add</strong>, select the user the token acts as</li>
<li>Save  -  the generated token string is shown once; copy it immediately</li>
</ol>
<hr />
<h2>Using a token</h2>
<p>Send it with requests, e.g. as <code>Authorization: Bearer &lt;token&gt;</code> (or per integration instructions). Requests run with the permissions of the linked <a href="admin-user">admin user</a>.</p>
<hr />
<h2>Security</h2>
<ul>
<li>Treat tokens like passwords  -  revoke any token you can't account for</li>
<li>Delete tokens that are no longer used from the list</li>
<li>All token usage appears in logs like normal admin activity</li>
</ul>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="376">
			<title data-v-post-name="name">Activitypub</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-activitypub</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[With ActivityPub plugin you can post your blog posts directly to the Fediverse 
 
With the ActivityPub plugin installed, your Vvveb website functions as a federated profile, along with profiles for each admin user. 
If your website is example.com, then]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[<p>With ActivityPub plugin you can post your blog posts directly to the Fediverse</p>
<hr>
<p>With the ActivityPub plugin installed, your Vvveb website functions as a federated profile, along with profiles for each admin user.</p>  
<p>If your website is example.com, then the profile can be found at @example.com@example.com, and authors like Joe would have their individual profiles at @joe@example.com</p> 
<p>Once you follow Jane’s @jane@example.com profile, any blog post she crafts on example.com will show in your Home feed.</p>  
<hr>
<ol>
	<li>Install the ActivityPub plugin.</li>
	<li>Go to Mastodon or another federated platform, and search for your profile and follow it.</li>
	<li>Your profile will be in the form of either @your_username@example.com eg @admin@demo.vvveb.com.</li>
	<li>On your site, publish a new post.</li>
	<li>From Mastodon, check to see if the new post appears in your feed.</li>
</ol>
<p>Plugin repository <a href="https://github.com/Vvveb/minify">https://github.com/Vvveb/activitypub</a>.</p>
<p>Recommended microblogging microblogging theme <a href="https://themes.vvveb.com/products/manny">https://themes.vvveb.com/products/manny</a>.</p>
<hr>
<p>The plugin works with the following tested federated platforms, but there may be more that it works with as well:</p>
<ul>
	<li><a href="https://joinmastodon.org/" rel="nofollow ugc">Mastodon</a></li>
	<li><a href="https://pleroma.social/" rel="nofollow ugc">Pleroma</a></li>
	<li><a href="https://akkoma.social/" rel="nofollow ugc">Akkoma</a></li>
	<li><a href="https://friendi.ca/" rel="nofollow ugc">friendica</a></li>
	<li><a href="https://hubzilla.org/" rel="nofollow ugc">Hubzilla</a></li>
	<li><a href="https://pixelfed.org/" rel="nofollow ugc">Pixelfed</a></li>
	<li><a href="https://socialhome.network/" rel="nofollow ugc">Socialhome</a></li>
	<li><a href="https://join.misskey.page/" rel="nofollow ugc">Misskey</a></li>
</ul>
<p>It may take a few minutes for the new post to show up in your federated feed.</p> 
<p>Once ActivityPub is installed, only new posts  will be available in the fediverse.</p> 
<p>Users will never see previously published posts in their feed.</p>  
<p>With ActivityPub, if someone follows your site, they will only receive new blog posts you publish from then on.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="377">
			<title data-v-post-name="name">Editor Js</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-editor-js</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Replace default tinymce editor from post and product edit page with Editor.js 
Plugin repository https://github.com/Vvveb/editor-js.]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[<p>Replace default tinymce editor from post and product edit page with Editor.js</p>
<p>Plugin repository <a href="https://github.com/Vvveb/editor-js">https://github.com/Vvveb/editor-js</a>.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="378">
			<title data-v-post-name="name">Sun Editor</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-sun-editor</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Change post and product text editor editor with sun editor. 
Plugin repository https://github.com/Vvveb/sun-editor.]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[<p>Change post and product text editor editor with sun editor.</p>
<p>Plugin repository <a href="https://github.com/Vvveb/stripe">https://github.com/Vvveb/sun-editor</a>.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="379">
			<title data-v-post-name="name">Minify</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-minify</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Concatenate and minifiy css and javascript files to minimize page loading time. 
Plugin repository https://github.com/Vvveb/minify.]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[<p>Concatenate and minifiy css and javascript files to minimize page loading time.</p>
<p>Plugin repository <a href="https://github.com/Vvveb/minify">https://github.com/Vvveb/minify</a>.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="380">
			<title data-v-post-name="name">Catalog Mode</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-catalog-mode</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Hide add to cart and checkout and cart pages. 
Plugin repository https://github.com/Vvveb/catalog-mode.]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[<p>Hide add to cart and checkout and cart pages.</p>
<p>Plugin repository <a href="https://github.com/Vvveb/stripe">https://github.com/Vvveb/catalog-mode</a>.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="381">
			<title data-v-post-name="name">Hide Language Selector</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-hide-language-selector</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Hides top header language selector from frontend. 
Plugin repository https://github.com/Vvveb/hide-language-selector.]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[<p>Hides top header language selector from frontend.</p>
<p>Plugin repository <a href="https://github.com/Vvveb/stripe">https://github.com/Vvveb/hide-language-selector</a>.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="382">
			<title data-v-post-name="name">Hide Ecommerce</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-hide-ecommerce</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Hide Ecommerce features if you are not using them.]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[<p>Hide Ecommerce features if you are not using them.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="383">
			<title data-v-post-name="name">Dicebear</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-dicebear</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Show dicebear avatars on comments for users that don't have avatars set. 
Plugin repository https://github.com/Vvveb/dicebear.]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[<p>Show dicebear avatars on comments for users that don't have avatars set.</p>
<p>Plugin repository <a href="https://github.com/Vvveb/dicebear">https://github.com/Vvveb/dicebear</a>.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="384">
			<title data-v-post-name="name">Test Plugin</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-test-plugin</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Test plugin to show how to write one. 
Example plugin that adds a menu entry in the admin dashboard and a new page on frontend with a list of products.]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[<p>Test plugin to show how to write one.</p>
<p>Example plugin that adds a menu entry in the admin dashboard and a new page on frontend with a list of products.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="385">
			<title data-v-post-name="name">Graphql</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-graphql</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[View and interact with GraphQL API 
Plugin repository https://github.com/Vvveb/graphql.]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[<p>View and interact with GraphQL API</p>
<p>Plugin repository <a href="https://github.com/Vvveb/graphql">https://github.com/Vvveb/graphql</a>.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="386">
			<title data-v-post-name="name">Tinymce Plugins</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-tinymce-plugins</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Tinymce plugins to extend tinymce text editor functionality, included plugins: bootstrap grid 
Plugin repository https://github.com/Vvveb/tinymce-plugins]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[<p>Tinymce plugins to extend tinymce text editor functionality, included plugins: bootstrap grid</p>
<p>Plugin repository <a href="https://github.com/Vvveb/editor-js">https://github.com/Vvveb/tinymce-plugins</a></p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="387">
			<title data-v-post-name="name">Table of Contents for Posts</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-toc-posts</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Automatically builds a navigable table of contents from a post's headings (H2–H6), displayed at the top of long articles. 
Used in production on docs.vvveb.com. 
Behavior  
Scans post content for headings and generates anchor links 
Clicking an entry]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>Automatically builds a navigable table of contents from a post's headings (<code>H2</code>–<code>H6</code>), displayed at the top of long articles.</p>
<p>Used in production on <a href="https://docs.vvveb.com">docs.vvveb.com</a>.</p>
<h2>Behavior</h2>
<ul>
<li>Scans post content for headings and generates anchor links</li>
<li>Clicking an entry scrolls to the section; the current section is highlighted while scrolling</li>
<li>Long posts become easier to scan, which also helps search engines show jump links</li>
</ul>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="388">
			<title data-v-post-name="name">Database Management</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-database-management</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Navigate and edit database tables directly from admin. 
Uses adminer for database management.]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[<p>Navigate and edit database tables directly from admin.</p>
<p>Uses adminer for database management.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="389">
			<title data-v-post-name="name">Insert Scripts</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-insert-scripts</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Adds header and footer script insertion areas so you can include analytics snippets, verification meta tags, chat widgets or any custom &lt;script&gt;/&lt;style&gt; without editing the theme. 
Usage  
Activate the plugin 
Open its settings page (Settings]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>Adds header and footer script insertion areas so you can include analytics snippets, verification meta tags, chat widgets or any custom <code>&lt;script&gt;</code>/<code>&lt;style&gt;</code> without editing the theme.</p>
<h2>Usage</h2>
<ol>
<li>Activate the plugin</li>
<li>Open its settings page (Settings link on the Plugins list)</li>
<li>Paste code in <strong>Header scripts</strong> and/or <strong>Footer scripts</strong> Save  -  snippets are injected site-wide on every page</li>
</ol>
<p>Common use cases: Google Analytics / Tag Manager, Facebook Pixel, cookie consent widgets, schema markup.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="390">
			<title data-v-post-name="name">File Manager</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-file-manager</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Manage all files from inside Vvveb folder. Supported operations edit, rename, upload, download, zip, unzip etc 
Plugin repository https://github.com/Vvveb/file-manager]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[<p>Manage all files from inside Vvveb folder. Supported operations edit, rename, upload, download, zip, unzip etc</p>
<p>Plugin repository <a href="https://github.com/Vvveb/remove-google-fonts">https://github.com/Vvveb/file-manager</a></p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="391">
			<title data-v-post-name="name">SEO</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-seo</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[A modular, Rank Math-style SEO suite for Vvveb. It manages page titles, meta tags (description, robots, Open Graph, Twitter cards), structured data with a visual schema builder, XML sitemaps, a redirection manager with a 404 monitor, a site-wide audit]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>A modular, Rank Math-style SEO suite for Vvveb. It manages page titles, meta tags (description, robots, Open Graph, Twitter cards), structured data with a visual schema builder, XML sitemaps, a redirection manager with a 404 monitor, a site-wide audit and AI-era extras such as llms.txt and instant indexing.</p>
<h2>Modules</h2>
<p>The plugin is <strong>modular</strong>  -  enable only the feature areas you need from Settings → SEO → Modules:</p>
<p><strong>Core (v1)</strong></p>
<ul>
<li><strong>On-page SEO &amp; Content Score</strong>  -  focus keywords, SERP preview, real-time score in the editor</li>
<li><strong>Schema Builder</strong>  -  per-page structured data without writing JSON-LD</li>
<li><strong>XML Sitemaps</strong>  -  auto-generated <code>/sitemap.xml</code> plus section sitemaps</li>
<li><strong>Redirections &amp; 404 Monitor</strong>  -  redirect manager with automatic slug-change suggestions</li>
<li><strong>SEO Audit</strong>  -  site-wide technical checks with a prioritized fix list</li>
<li><strong>Setup Wizard</strong>  -  guided configuration flow</li>
</ul>
<p><strong>Local, ecommerce &amp; AI (v2)</strong></p>
<ul>
<li><strong>Local SEO</strong>, <strong>Ecommerce SEO</strong>, <strong>Search Console &amp; Rank Tracker</strong>, <strong>llms.txt</strong>, <strong>AI Content Assist</strong>, <strong>Instant Indexing</strong>, <strong>AI Search Tracking</strong></li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="seo/seo-settings">Plugin settings</a></li>
</ul>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="392">
			<title data-v-post-name="name">Debug</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-debug</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Activate debugging and logging, useful for development 
Shows a debug bar on the bottom of the page with sql queries, filters etc]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[<p>Activate debugging and logging, useful for development</p>
<p>Shows a debug bar on the bottom of the page with sql queries, filters etc</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="393">
			<title data-v-post-name="name">Brevo Email</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-brevo-email</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Send emails using Brevo API 
Plugin repository https://github.com/Vvveb/brevo-email.]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[<p>Send emails using Brevo API</p>
<p>Plugin repository <a href="https://github.com/Vvveb/remove-google-fonts">https://github.com/Vvveb/brevo-email</a>.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="394">
			<title data-v-post-name="name">Cookie Notice</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-cookie-notice</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Shows a GDPR/CCPA/UK-compliant cookie consent banner with Google Consent Mode v2, IAB TCF v2.3 support, a preference center, geo-targeting and consent logging. 
The popup can be customized from the page builder. Open the plugin settings to choose banner]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>Shows a GDPR/CCPA/UK-compliant cookie consent banner with Google Consent Mode v2, IAB TCF v2.3 support, a preference center, geo-targeting and consent logging.</p>
<p>The popup can be customized from the page builder. Open the plugin settings to choose banner style, consent categories and which regions see the notice.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="395">
			<title data-v-post-name="name">AI Assistant</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-ai-assistant</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[An AI assistant for the admin content editor and site editor, with streaming responses, reasoning display, file attachments, tool calls that can read and edit the page, and an optional server-side proxy that keeps API keys out of the browser. 
Settings]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[<p>An AI assistant for the admin content editor and site editor, with streaming responses, reasoning display, file attachments, tool calls that can read and edit the page, and an optional server-side proxy that keeps API keys out of the browser.</p>
<h3>Settings</h3>
<p>Open <strong>Plugins &gt; AI Assistant &gt; Settings</strong> and save once after enabling. The three fields that matter most are provider, key and model  -  the rest have working defaults. Bulk-translation overrides (provider, model, key, glossary) live on the separate <em>Translate</em> tab; writer voice, disclosure and stock covers live on the <em>Writer</em> tab.</p>
<h4>Provider</h4>
<p>Type to search all providers from the <a href="https://models.dev">models.dev</a> catalog (around two hundred, e.g. OpenAI, Anthropic, Google, DeepSeek, Groq, Mistral, xAI, OpenRouter, OpenCode Zen, NVIDIA NIM). The dropdown option shows the display name and model count.</p>
<p>Unknown slugs stay typable on purpose: a brand-new models.dev provider works for chat immediately, and rebuilding the catalog below adds it to the list with full metadata.</p>
<h4>API key</h4>
<p>One key for the <strong>active provider</strong>  -  the placeholder hint follows the selection (<code>sk-ant-…</code>, <code>AIza…</code>, …). Switching providers keeps each provider's key server-side; only the active one is ever used. Installations that saved per-provider keys before keep working: the old key is carried over the first time you save.</p>
<h4>Model</h4>
<p>Type to search the selected provider's models. Picking a known model auto-fills <strong>context size</strong> and <strong>max tokens</strong> from the catalog and stores a metadata snapshot used at runtime. The info line under the field shows context window, max output, per-1M pricing, reasoning support (including which API dialect a routed model uses, e.g. <em>via responses API</em>), attachment kinds and tool support. Free text stays allowed for ids missing from the catalog  -  the manual context fields apply then.</p>
<p><strong>Refresh</strong> fetches the live model list through the proxy (or directly from the provider in direct mode). <strong>Catalog</strong> rebuilds the whole local catalog from models.dev on the server (<code>php cli.php admin module=plugins/ai-assistant/settings action=buildModels</code> does the same from the command line) and reloads the current list.</p>
<h4>Endpoint override (Url)</h4>
<p>Optional custom endpoint for the <strong>active provider</strong>, e.g. a self-hosted gateway speaking its API. Empty means the catalog endpoint. Changing provider empties the field automatically with a notice, so a stale override can never silently misroute the new provider.</p>
<h4>General tab  -  connection, model, shared behavior</h4>
<ul>
<li><strong>Api mode</strong>  -  <code>proxy</code> relays requests through the site backend so keys never reach the browser; <code>direct</code> calls the provider from the browser (the key travels client-side, and the provider must allow the browser origin  -  e.g. <code>OLLAMA_ORIGINS</code> for Ollama). For a local server: direct reaches the LLM on your own computer, proxy reaches the LLM on the web server.</li>
<li><strong>Proxy URL</strong>  -  the address the browser calls for relayed requests. Leave the default unless the admin path is customized; only used in proxy mode.</li>
<li><strong>Session header</strong>  -  upstream header carrying the chat session id on proxied requests (default <code>x-vvveb-session</code>), so provider-side logs correlate with a conversation. It never lands in the provider body; empty disables it.</li>
<li><strong>System prompt</strong>  -  appended to every chat request to set assistant behaviour. Keep it short; bulk jobs use their own task prompts plus this line.</li>
<li><strong>Temperature</strong>  -  sampling randomness for chat (0 = deterministic). Omitted automatically for reasoning models that reject it; bulk translate/write set their own values (0 and 0.7).</li>
<li><strong>Context size / Max tokens</strong>  -  auto-filled from the catalog when you pick a known model. Context size drives the usage bar and auto-compact; max tokens caps each answer and is clamped to the model's own output limit, so an oversized value fails safe instead of 400ing upstream.</li>
<li><strong>Image model / provider / key / size</strong>  -  the editor's <em>Generate image from text</em> button and writer cover art. Provider and key empty inherit the main ones above (e.g. chat locally, images via OpenAI); local servers have no images API, so covers need a compatible provider here. Size examples: <code>1024x1024</code>, <code>1792x1024</code>.</li>
<li><strong>Monthly token cap</strong>  -  max bulk tokens per admin per calendar month (0 = off). Every bulk action checks it before spending and fails fast with used/cap numbers; previews show month-to-date next to the estimate.</li>
<li><strong>Job webhook</strong>  -  HTTPS URL posted to (JSON, fire-and-forget) when a bulk job finishes. Your own endpoint: automation tools, not the provider.</li>
</ul>
<h4>Translate tab  -  bulk translation overrides</h4>
<p>All four fields are optional and share one rule: <strong>empty inherits the main setting</strong> (provider → model → key, in that order; task keys resolve server-side so secrets never travel). The classic setup is a cheap fast model here while chat stays on the strong one. Precedence for keys everywhere in the plugin is task key, then active key, then legacy per-provider keys from older versions.</p>
<ul>
<li><strong>Translate provider / model / key</strong>  -  used by Bulk Translate, the write → translate pipeline, and translation cron. A model with a catalog entry also brings its output cap and pricing into estimates.</li>
<li><strong>Translate glossary</strong>  -  one <code>Original = Replacement</code> per line (e.g. <code>checkout = checkout</code>), always used exactly: bulk translation, pipeline translations, and article writing all inject it. Brand and product names belong here.</li>
<li><strong>Translate reasoning</strong>  -  <code>Off</code> by default. Sends <code>reasoning_effort: none/minimal</code> only when the model's catalog entry declares it and only on bearer chat dialects, retrying plain if a gateway rejects it. Field translation needs no chain of thought, and you stop paying output rates for discarded thinking.</li>
</ul>
<h4>Writer tab  -  article voice, disclosure, stock covers</h4>
<ul>
<li><strong>Tone presets</strong>  -  one <code>Name | instruction</code> per line (e.g. <code>Playful | Write with light humor and vivid examples</code>). The names appear in the writer's Tone dropdown; the text is appended server-side, so clients can only pick, never inject.</li>
<li><strong>AI disclosure text</strong>  -  appended as a footer when <em>Disclose AI</em> is ticked on a run; empty uses the default reviewed-by-editors sentence. Opt-in per run, never silent.</li>
<li><strong>Stock provider</strong>  -  source order for <em>Stock link</em> covers: <code>Auto</code> tries each configured API key in order with the keyless Unsplash search last; explicit Unsplash/Pexels API or scrape-only are also selectable.</li>
<li><strong>Unsplash / Pexels keys</strong>  -  free tiers (Unsplash developers: 50 requests/hour) enable the official search APIs; empty skips straight to the next source. Every candidate is host-allowlisted, IP-checked, downloaded and image-verified before it touches a post.</li>
<li><strong>Write reasoning</strong>  -  <code>On</code> by default (model behavior unchanged). Turn off once outlines carry your planning  -  same suppression mechanics as Translate reasoning above.</li>
</ul>
<h3>Using the assistant</h3>
<ul>
<li><strong>Thinking level</strong> (Off/Low/Medium/High) follows the selected model: provider-specific effort values where the catalog defines them, generic levels otherwise, disabled with an explanation when the model cannot reason. Reasoning blocks and tool calls render as collapsible cards with a Running/Done/Failed status pill: thinking streams open and collapses when finished, tool calls stay collapsed throughout (a manual expand pins a card open), errors stay open, and everything hides behind the thinking/tools toggles.</li>
<li><strong>Attachments</strong>  -  the file picker only offers formats the model takes; anything else is refused with a message naming what is supported. Text files (.txt, .md, .csv, …) are inlined as text so they work on every model including text-only ones; long files are truncated with a marker. Image-capable models also receive page screenshots as vision.</li>
<li><strong>Costs</strong>  -  every assistant message shows its estimated cost from catalog pricing; the usage footer totals the session and shows cache-hit savings. Encrypted reasoning never renders  -  it is preserved invisibly so multi-turn tool calls keep working.</li>
<li><strong>Failures</strong>  -  dropped connections and overloaded providers retry automatically with backoff (1s → 2s → 4s, longer for rate limits) and a live countdown; <strong>Stop</strong> cancels the wait. Deterministic errors (bad key, unknown model, full context) surface immediately with guidance instead.</li>
<li><strong>Sessions</strong> survive reloads and sync server-side; <strong>Compact</strong> shrinks a long conversation into a summary when context runs out. When browser storage nears its quota, sessions upload automatically and older local copies trim to metadata (reloaded on open)  -  a warning replaces the old silent failure.</li>
<li>The assistant UI follows the admin language through the CMS-wide <code>Vvveb.i18n</code> runtime (<code>public/js/libs/gettext.js</code>, gettext-compatible plurals): sidebar, manager and editor strings translate from the same catalogs as the backend (translators add the msgids from <code>plugins/ai-assistant/system/i18n-data.php</code> to <code>locale/&lt;lang&gt;/LC_MESSAGES/vvveb.po</code>; English always works untranslated).</li>
<li><strong>Article writer</strong> (Plugins → AI Article Writer) turns a topic list (one per line, up to 200) into draft posts: pick language, site, categories (multi), tags, length (short/medium/long) and status (draft default  -  bulk AI content never auto-publishes), preview the call/token estimate, then run the resumable stepper with per-topic results. Uses the active chat model (writing wants the strongest model) with temperature 0.7, JSON mode + repair retry, and core post creation (headline, HTML body, excerpt, meta description/keywords, cover alt, slug, site link). Re-running the same topics skips already-written ones (topic-hash ledger, reported with the original post id). <em>Outlines</em> runs a cheap planning pass first  -  tick approved topics and Start writes only those. Completion notices report tokens used; the last run summary persists on the page. Cover image switch: <em>No cover</em>, <em>AI-generated</em> (paints one cover per article via the image task settings), or <em>Stock link</em>. Stock mode resolves sources through a provider registry (<code>system/stock.php</code>  -  implement <code>StockProvider</code> and add one line to register the next one): the <em>Stock provider</em> setting picks Auto (every configured API key in order, keyless scrape last), Unsplash API, Pexels API, or scrape-only. API results carry photographer credit into the run log; a random hit from the first 10 is verified and stored, failures fall through to a model-suggested URL and then to generation, each step logged. Every candidate is validated (allowlisted CDN host, public IP, real image ≥200×200) before it touches a post; anything suspicious is rejected down the chain. Covers save under <code>media/ai-assistant/</code>; a failed cover still saves the post, imageless, with a warning. Stock photos carry the source URL in the log  -  check the license before publishing.</li>
<li><strong>Drip publishing.</strong> Set <em>Publish from</em> + <em>Every N days</em> and articles are created <em>scheduled</em> with staggered dates on the ledger instead of the chosen status. <em>Release due</em> (also checked automatically at each run start) flips due posts to published  -  never overriding a status you changed by hand. Cron it with <code>php cli.php admin module=plugins/ai-assistant/generate action=release</code> for hands-free drip.</li>
<li><strong>Unattended jobs (cron).</strong> Three idempotent CLI actions, safe on a schedule: <code>…/generate action=release</code> (publish due drip), <code>…/generate action=refreshcron language=1 limit=5</code> (rewrite the oldest posts), <code>…/translate action=translatecron source=1 targets=2,3 limit=10</code> (translate the newest missing items). CLI skips CSRF (no session exists there); every step lands in the runs ledger with a <code>cron-YYYYMMDD</code> job id.</li>
<li><strong>Write → translate pipeline.</strong> <em>Also translate to</em> fans every finished article out to more languages in the same run (same provider call path as bulk translate, translations linked on the ledger so re-runs skip them).</li>
<li><strong>Grounded writing.</strong> <em>Source URLs</em> are fetched once per run and injected as background material (budget-capped) so articles can cite real facts instead of hallucinating them.</li>
<li><strong>Refresh stale posts.</strong> Switch to <em>Refresh</em> mode, <em>Find stale posts</em> lists candidates by age with checkboxes, Start rewrites the checked ones in place (slug untouched, honors tone + budget).</li>
<li><strong>Internal linking.</strong> After a write, <em>Add links</em> appends a related-reading block (keyword search over published posts, idempotent marker, skipped when nothing related).</li>
<li><strong>Social pack.</strong> Tick <em>Social pack</em> for an X thread, LinkedIn post and newsletter teaser per article, with copy buttons right in the result row.</li>
<li><strong>AI performance report.</strong> The writer page reports AI-written vs human posts and views over the ledger (proving whether any of this earns its keep).</li>
<li><strong>Upstream timeouts.</strong> A step failing with <em>Upstream request failed … timed out … 0 bytes received</em> means the provider never started answering within 180s (queue, reasoning prefill, cold model, huge prompt)  -  not a stalled download, so raising <code>max_tokens</code> won't help. The item fails individually and resumes on re-run; check provider status, trim grounding sources, switch reasoning off, or try a faster model before reaching for longer timeouts.</li>
<li><strong>Token budgets.</strong> A per-run token cap on both bulk pages halts the stepper (stays resumable) with a notice; the server double-checks the client-reported spend.</li>
<li><strong>Writer extras.</strong> Tone presets (Settings, <em>Name | instruction</em> lines), per-topic model tags merged with run-wide tags, alternative headlines in each result, multi-site fan-out, CSV topic upload, multi-category, auto-categorize (the model files each article from your category list, validated server-side), QA sieve (thin/tell flags in the log), series mode (part numbering + series plan in every prompt), and a translate glossary (<em>Original = Replacement</em> lines in Settings) for consistent bulk translation.</li>
<li><strong>Reasoning toggles.</strong> Chain-of-thought is pure overhead on strict bulk tasks (you pay output rates for tokens nobody reads). <em>Translate reasoning</em> defaults off and <em>Write reasoning</em> stays on; either sends <code>reasoning_effort: none/minimal</code> only when the model's catalog entry declares it, only on bearer chat dialects, and silently retries without the flag if a gateway rejects it.</li>
<li><strong>Product writer.</strong> The writer's <em>Write</em> switch covers products: descriptions with meta, disabled-by-default (publish = enable explicitly), covers, pipeline translation and social on the same runner. Scheduled drip and categories are post-only; product duplicates ledger separately.</li>
<li><strong>Refresh, SEO, links.</strong> <em>Refresh</em> mode rewrites stale posts in place (slug untouched); <em>SEO backfill</em> fills only missing excerpt/meta. <em>Add links</em> appends related-reading blocks found by keyword search. Every overwrite records a content revision first, so the editor's revision history is your undo.</li>
<li><strong>Review & bulk publish.</strong> <em>Needs review</em> lists recently written posts and products from the ledger with editor links; tick and <em>Publish listed</em> flips drafts/scheduled (or disabled products) live, skipping anything already published. Every bulk overwrite records a content revision first, so the editor's revision history is your undo.</li>
<li><strong>Product writer & parity.</strong> The <em>Write</em> switch covers products end-to-end: descriptions, disabled-by-default, covers (+gallery from extra stock hits), pipeline translation, social, refresh, SEO backfill and internal links all branch on post/product, with separate duplicate ledgers and a product performance report.</li>
<li><strong>Cost & transparency.</strong> Preview shows a dollar forecast at the active model's catalog rates; completion notices report tokens used; every bulk step lands in the <em>Recent bulk runs</em> ledger; an opt-in <em>Disclose</em> checkbox appends the configured AI note (Settings → AI disclosure text).</li>
<li><strong>Runs ledger & report.</strong> Every bulk step records calls + tokens grouped by job id (<em>Recent bulk runs</em> table); the performance card compares AI vs human posts/views with click-through drill-down to the actual posts; <em>Upcoming drip</em> lists scheduled releases (posts and products). Script tags carry mtime cache-busting so fixes actually arrive in the browser.</li>
<li><strong>Social viewer.</strong> Saved packs rehydrate per post: the result-row <em>Social</em> button expands the full channel texts with copy buttons, backed by the <code>ai_social</code> table instead of the volatile run response.</li>
<li><strong>Prompt playground.</strong> Settings page lab for trying system/user prompts against the active model (templates included for every job shape: chat, writer, translate, outline, SEO, social), with token usage per run. Nothing is saved.</li>
<li><strong>Product SEO preview.</strong> The stale/SEO finder and all runners honor the post/product switch, so backfill and refresh cover catalogs too. Note: scraping is against Unsplash's ToS (they prefer the API); if they block it, stock mode degrades gracefully to suggestion → generation.</li>
<li><strong>Taxonomy & menu translation.</strong> The Type dropdown on AI Translate also covers <em>Taxonomies</em> (category/tag names across all taxonomies) and <em>Menus</em> (item labels): same source/target pickers, title search, preview matrix and stepped runner, translating name (+ empty content) with glossary and JSON mode. Slugs are preserved (menus) or left for core to regenerate (categories, empty); categories carrying SEO meta in any language are skipped, because the category save rewrites every language row and cannot preserve meta.</li>
<li><strong>Translation memory.</strong> Identical source text is translated once and reused from the <code>ai_memory</code> table (keyed by normalized text + language pair + model), so repeated boilerplate, specs and headers stop costing tokens on every run. Same text on a different model still translates fresh; prune old rows manually if the table grows.</li>
<li><strong>Media alt text.</strong> The writer's fourth mode describes library images into their caption field: <em>Find images missing alt</em> lists the first captioned-less images, Start sends each (downscaled to 1024px) to a vision model. Requires an image-capable active model (<code>modalities</code> in the catalog)  -  otherwise the run errors with guidance instead of burning calls. Results log per image; failures skip individually.</li>
<li><strong>Monthly token cap.</strong> <em>Monthly token cap</em> (Settings, 0 = off) gates every bulk action per admin and calendar month: runs fail fast with used/cap numbers once reached, and both previews show month-to-date spend next to the estimate. CLI cron counts under its own (usually zero) admin, so cap cron separately if it matters.</li>
<li><strong>Presets & webhooks.</strong> <em>Export</em> downloads the current filter set as JSON; <em>Import</em> loads it back (review, then Preview). <em>Job webhook</em> (Settings) POSTs <code>{page, processed, usage, at}</code> fire-and-forget when a bulk job finishes  -  point it at your own HTTPS endpoint for n8n/Zapier handoffs.</li>
<li><strong>Bulk translate</strong> (Plugins → AI Translate) translates posts and products across languages in resumable steps: filter by type, status, site, category (with children), date and title, preview the missing-translation matrix with a call estimate, then run with progress, per-item skip-and-report errors, stop/resume, and bulk JSON export. Only empty translations are touched by default. Oversized documents translate piece by piece (block-boundary chunking) instead of skipping via the old context guard. Uses the translate provider/model/key settings, so a cheap model keeps it affordable; strict tasks request JSON mode with automatic fallback.</li>
<li><strong>Sessions manager</strong> (Plugins → AI Sessions) lists every chat with title search (or <em>Everywhere</em> mode, which also scans message text), sorting and paging; sessions open at <code>#uuid</code> links for sharing. Each row opens a read-only transcript each row opens a read-only transcript with the same collapsible thinking/tool cards plus a message/token/cost summary priced at the session's own model when known, and offers rename, <strong>fork</strong> (independent copy under a fresh id), <strong>pin</strong> (per-browser favorites sort first), delete (bulk included), single or bulk JSON export (with an <em>attachments</em> checkbox for a small text-only file) and <strong>Continue in sidebar</strong>, which hands the session to the site-editor sidebar. Sessions living only in the browser (never synced  -  e.g. from installs predating the server store, which self-creates on first use) are flagged with a one-click <strong>Sync to server</strong> banner instead of silently missing.</li>
<li><strong>Sidebar sessions</strong> can be filtered from the dropdown itself and pinned favorites always list first.</li>
</ul>
<h3>Troubleshooting</h3>
<ul>
<li><strong>401 / invalid key</strong>  -  re-enter the key for the active provider and save.</li>
<li><strong>404 / no such model</strong>  -  the id was retired or mistyped; Refresh the list or pick from the dropdown.</li>
<li><strong>429 / rate limit</strong>  -  the assistant waits and retries on its own; lower pace or raise quota for persistent limits.</li>
<li><strong>Context full</strong>  -  use Compact, start a new session, or lower max tokens.</li>
<li><strong>Attachment refused</strong>  -  the message names the supported kinds; switch to a multimodal model for images, PDFs or audio.</li>
<li><strong>Empty model list</strong>  -  rebuild with the Catalog button (or the CLI command above).</li>
<li><strong>500 from the upstream gateway</strong>  -  almost always a dialect mismatch: a chat-shaped body (<code>messages</code>/<code>max_tokens</code>) sent to a <code>/responses</code> endpoint, or the reverse. It happens with unrouted model ids plus a stale endpoint override. The proxy now rejects these with a plain-language 400 before relaying; fix by re-selecting the model in settings (stores its route) and saving, or by pointing the override at the matching endpoint.</li>
</ul>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="396">
			<title data-v-post-name="name">Stripe</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-stripe</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Accept credit card payments using Stripe: one-time Elements checkout, Apple Pay / Google Pay express wallets, subscriptions with trials, and automatic renewal orders with dunning. 
Setup  
Activate the plugin and open its settings]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>Accept credit card payments using Stripe: one-time Elements checkout, Apple Pay / Google Pay express wallets, subscriptions with trials, and automatic renewal orders with dunning.</p>
<h2>Setup</h2>
<ol>
<li>Activate the plugin and open its settings (<code>/admin/index.php?module=plugins/stripe/settings</code>)</li>
<li>Enter your publishable + secret keys (test keys first: <code>pk_test_…</code> / <code>sk_test_…</code>)</li>
<li>Enable the payment method for the site  -  it appears in checkout alongside other methods</li>
</ol>
<p>Test with card <code>4242 4242 4242 4242</code> before switching to live keys. Webhooks handle renewals, failed-payment retries and subscription status sync.</p>
<p>Plugin repository <a href="https://github.com/Vvveb/stripe">https://github.com/Vvveb/stripe</a>.</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="397">
			<title data-v-post-name="name">Contact form</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-contact-form</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Contact form plugin allows your users to submit messages to your site through forms, you can add forms on your contact us page, for reservations or for subscriptions. 
Builtin honeypot anti spam filter. 
Contact form component allows visual customization]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[
<p>Contact form plugin allows your users to submit messages to your site through forms, you can add forms on your contact us page, for reservations or for subscriptions.</p>
<p>Builtin honeypot anti spam filter.</p>
<p>Contact form component allows visual customization of forms from the page builder, add any fields visually.</p>
<p>This plugin is included and activated by default</p>
]]></content:encoded>		
		</item><item data-v-post="post" data-v-id="398">
			<title data-v-post-name="name">Gravatar</title>
			<link data-v-post-full-url="name">https://docs.vvveb.com/plugin-gravatar</link>
			<dc:creator data-v-post-display_name="name"><![CDATA[Admin]]></dc:creator>
			<pubDate data-v-post-pubDate="date">Mon, 28 Sep 2026 15:04:57 +0000</pubDate>
			<category data-v-post-category-name="category" data-filter-cdata=""><![CDATA[Category]]></category>
			<description data-v-post-excerpt="excerpt" data-filter-cdata=""><![CDATA[Show gravatar images for user avatar on comments.]]></description>
			<content:encoded data-v-post-content="content" data-filter-cdata=""><![CDATA[<p>Show gravatar images for user avatar on comments.</p>
]]></content:encoded>		
		</item>		
		
		
		
	</channel>
</rss>
