Skip to content

Instantly share code, notes, and snippets.

@ivansky
Created September 10, 2014 11:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ivansky/fb4e4c7a87fe7ab29487 to your computer and use it in GitHub Desktop.
Save ivansky/fb4e4c7a87fe7ab29487 to your computer and use it in GitHub Desktop.
<?php
function parseClasses($classes){
return explode(' ', preg_replace('/[\t\s]+/',' ', trim($classes)));
}
function addBodyClass($class){
global $APPLICATION;
$classes = parseClasses($APPLICATION->GetPageProperty('body_class'));
$add = parseClasses($class);
$classes = array_merge($classes, $add);
$classes = array_unique($classes);
$APPLICATION->SetPageProperty('body_class', implode(' ', $classes));
}
function removeBodyClass($class){
global $APPLICATION;
$classes = parseClasses($APPLICATION->GetPageProperty('body_class'));
$classes = array_unique($classes);
$remove = parseClasses($class);
foreach ($remove as $del) {
if(($key = array_search($del, $classes)) !== false) {
unset($classes[$key]);
}
}
$APPLICATION->SetPageProperty('body_class', implode(' ', $classes));
}
@ivansky
Copy link
Author

ivansky commented Sep 10, 2014

Пример использования

addBodyClass('some-class petya elena vasya');
removeBodyClass('petya vasya');
echo $APPLICATION->GetPageProperty('body_class'); #some-class elena

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment