Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions Helper/Config.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
class Config extends AbstractHelper
{
public const CONFIG_XML_ENABLED = 'pixie/bodyclass/enabled';
public const CONFIG_XML_CSSCLASS = 'pixie/bodyclass/cssclass';

/**
* @var \Magento\Framework\App\Config\ScopeConfigInterface
Expand Down Expand Up @@ -46,4 +47,16 @@ public function getEnabled()
ScopeInterface::SCOPE_STORE
);
}

/**
* Get css class
* @return null|string
*/
public function getBodyClass()
{
return $this->scopeConfig->getValue(
self::CONFIG_XML_CSSCLASS,
ScopeInterface::SCOPE_STORE
);
}
}
21 changes: 20 additions & 1 deletion Observer/Frontend/AddToBodyClass.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
use Magento\Setup\Module\Dependency\Parser\Code;
use Magento\Store\Model\StoreManagerInterface;
use PixieMedia\AddBodyClass\Helper\Config;
use Magento\Customer\Model\Session;

class AddToBodyClass implements ObserverInterface
{
Expand All @@ -30,6 +31,9 @@ class AddToBodyClass implements ObserverInterface

/** @var \Magento\Framework\View\LayoutInterface */
protected $layout;

/** @var \Magento\Customer\Model\Session */
protected $_session;

/**
* @param \Magento\Framework\View\Element\Template\Context $context
Expand All @@ -39,12 +43,14 @@ class AddToBodyClass implements ObserverInterface
public function __construct(
Context $context,
StoreManagerInterface $storeManager,
Config $helper
Config $helper,
Session $customerSession
) {
$this->pageConfig = $context->getPageConfig();
$this->layout = $context->getLayout();
$this->storeManager = $storeManager;
$this->helper = $helper;
$this->_session = $customerSession;
}

/**
Expand All @@ -70,5 +76,18 @@ public function execute(Observer $observer)
str_ireplace("_", "-", $handle)
);
}

if ($this->_session->isLoggedIn()) {
$this->pageConfig->addBodyClass('logged-in');
} else {
$this->pageConfig->addBodyClass('logged-out');
}

$customClass = $this->helper->getBodyClass();
if ($customClass) {
$this->pageConfig->addBodyClass(
$customClass
);
}
}
}
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "Add dynamic body classes to pages - aid frontend development",
"type": "magento2-module",
"license": "GPL-3.0",
"version": "1.0.0",
"version": "1.0.1",
"authors": [
{
"name": "Dominic Watts",
Expand All @@ -30,4 +30,4 @@
"PixieMedia\\AddBodyClass\\": ""
}
}
}
}
43 changes: 25 additions & 18 deletions etc/adminhtml/system.xml
Original file line number Diff line number Diff line change
@@ -1,21 +1,28 @@
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd">
<system>
<tab id="pixiemedia" translate="label" sortOrder="500">
<label>Pixie Media</label>
</tab>
<section id="pixie" sortOrder="10" showInWebsite="1" showInStore="1" showInDefault="1" translate="label">
<label>Add Body Class</label>
<tab>pixiemedia</tab>
<resource>PixieMedia_AddBodyClass::config_pixiemedia_addbodyclass</resource>
<group id="bodyclass" sortOrder="10" showInWebsite="1" showInStore="1" showInDefault="1" translate="label">
<label>General</label>
<field id="enabled" type="select" sortOrder="10" showInWebsite="1" showInStore="1" showInDefault="1" translate="label">
<label>Enabled</label>
<comment/>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
</field>
</group>
</section>
</system>
<system>
<tab id="pixiemedia" translate="label" sortOrder="500">
<label>Pixie Media</label>
</tab>
<section id="pixie" sortOrder="10" showInWebsite="1" showInStore="1" showInDefault="1" translate="label">
<label>Add Body Class</label>
<tab>pixiemedia</tab>
<resource>PixieMedia_AddBodyClass::config_pixiemedia_addbodyclass</resource>
<group id="bodyclass" sortOrder="10" showInWebsite="1" showInStore="1" showInDefault="1" translate="label">
<label>General</label>
<field id="enabled" type="select" sortOrder="10" showInWebsite="1" showInStore="1" showInDefault="1" translate="label">
<label>Enabled</label>
<comment/>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
</field>
<field id="cssclass" type="text" sortOrder="20" showInWebsite="1" showInStore="1" showInDefault="1" translate="label">
<label>Custom body CSS class</label>
<depends>
<field id="enabled">1</field>
</depends>
<comment/>
</field>
</group>
</section>
</system>
</config>
15 changes: 8 additions & 7 deletions etc/config.xml
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
<default>
<pixie>
<bodyclass>
<enabled>0</enabled>
</bodyclass>
</pixie>
</default>
<default>
<pixie>
<bodyclass>
<enabled>0</enabled>
<cssclass>pixiedust</cssclass>
</bodyclass>
</pixie>
</default>
</config>
2 changes: 1 addition & 1 deletion etc/module.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="PixieMedia_AddBodyClass" setup_version="1.0.0"/>
<module name="PixieMedia_AddBodyClass" setup_version="1.0.1"/>
</config>