Skip to content

sickdaflip/mage2-category-additional

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Category Additional Attributes for Magento 2

Add two SEO-optimized fields to category admin forms:

  • Additional Headline: Secondary H1/headline for better SEO structure
  • Additional Description: WYSIWYG editor for secondary content below main description

Requirements

  • Magento 2.4.x
  • PHP 8.4+
  • FlipDev_Core module (provides centralized FlipDev configuration tab)

Installation

Step 1: Install FlipDev_Core (if not already installed)

composer config repositories.flipdev/mage2-core vcs https://github.com/sickdaflip/mage2-core.git
composer require sickdaflip/mage2-core

Step 2: Install Category Additional

composer config repositories.flipdev/mage2-category-additional vcs https://github.com/sickdaflip/mage2-category-additional.git
composer require sickdaflip/mage2-category-additional:dev-main

Step 3: Enable modules

bin/magento module:enable FlipDev_Core FlipDev_CategoryAdditional
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento cache:flush

Features

Additional Headline

  • Store View specific
  • Text input field
  • Optional H1 alternative for SEO
  • Located in "Content" section of category admin
  • Can be enabled/disabled via admin configuration

Additional Description

  • Store View specific
  • WYSIWYG editor enabled
  • HTML allowed on frontend
  • Perfect for additional SEO content below main description
  • Can be enabled/disabled via admin configuration

Backend Configuration

Access via: Stores > Configuration > FlipDev > Category Additional

General Settings

  • Enable Module: Turn the entire module on/off globally

Additional Headline Settings

  • Enable Additional Headline: Show/hide the headline field in category admin
  • Make Required: Make headline mandatory when saving categories
  • Default HTML Tag: Choose default HTML tag (H1-H6, DIV, SPAN, P)

Additional Description Settings

  • Enable Additional Description: Show/hide the description field in category admin
  • Make Required: Make description mandatory when saving categories
  • Allow HTML: Enable/disable WYSIWYG editor for HTML content
  • Display Position: Suggested position (above/below main, after products, sidebar, custom)

Advanced Settings

  • Cache Lifetime: Set custom cache duration in seconds
  • Strip HTML from Headline: Automatically remove HTML tags from headline on frontend

Usage in Templates

Get Additional Headline

<?php
/** @var \Magento\Catalog\Model\Category $category */
/** @var \FlipDev\CategoryAdditional\Helper\Config $configHelper */
$configHelper = $this->helper(\FlipDev\CategoryAdditional\Helper\Config::class);

// Check if module and headline are enabled
if ($configHelper->isHeadlineEnabled()) {
    $additionalHeadline = $category->getData('additional_headline');
    $htmlTag = $configHelper->getHeadlineHtmlTag(); // e.g., 'h2'

    if ($additionalHeadline) {
        if ($configHelper->shouldStripTagsFromHeadline()) {
            $additionalHeadline = strip_tags($additionalHeadline);
        }
        echo "<{$htmlTag}>" . $escaper->escapeHtml($additionalHeadline) . "</{$htmlTag}>";
    }
}
?>

Get Additional Description

<?php
/** @var \Magento\Catalog\Model\Category $category */
/** @var \FlipDev\CategoryAdditional\Helper\Config $configHelper */
$configHelper = $this->helper(\FlipDev\CategoryAdditional\Helper\Config::class);

// Check if module and description are enabled
if ($configHelper->isDescriptionEnabled()) {
    $additionalDescription = $category->getData('additional_description');
    $position = $configHelper->getDescriptionPosition();

    if ($additionalDescription) {
        ?>
        <div class="additional-description" data-position="<?= $escaper->escapeHtmlAttr($position) ?>">
            <?php if ($configHelper->isHtmlAllowedInDescription()): ?>
                <?= /* @noEscape */ $additionalDescription ?>
            <?php else: ?>
                <?= $escaper->escapeHtml($additionalDescription) ?>
            <?php endif; ?>
        </div>
        <?php
    }
}
?>

Simple Usage (without config checks)

<?php
/** @var \Magento\Catalog\Model\Category $category */
$additionalHeadline = $category->getData('additional_headline');
$additionalDescription = $category->getData('additional_description');
?>

<?php if ($additionalHeadline): ?>
    <h2><?= $escaper->escapeHtml($additionalHeadline) ?></h2>
<?php endif; ?>

<?php if ($additionalDescription): ?>
    <div class="additional-description">
        <?= /* @noEscape */ $additionalDescription ?>
    </div>
<?php endif; ?>

Version History

1.1.0

  • Added backend configuration options
  • Module can be enabled/disabled via admin panel
  • ACL permissions for configuration access
  • Complete rewrite using modern Magento 2.4.x standards
  • Data Patches instead of deprecated InstallData
  • PHP 8.4 compatibility
  • Added i18n support (EN/DE)
  • Improved attribute configuration

1.0.0

  • Initial release

About

Add secondary Description and additional Headline for better SEO.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages