mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-09 11:44:10 +09:00
Add getBodyClassList() and removeBodyClass() methods to Context
https://xetown.com/questions/1569477
This commit is contained in:
parent
5160022a30
commit
bd075ee409
2 changed files with 58 additions and 13 deletions
|
|
@ -2383,41 +2383,79 @@ class Context
|
||||||
self::$_instance->html_header .= (self::$_instance->html_header ? "\n" : '') . $header;
|
self::$_instance->html_header .= (self::$_instance->html_header ? "\n" : '') . $header;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function clearHtmlHeader()
|
|
||||||
{
|
|
||||||
self::$_instance->html_header = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns added html code by addHtmlHeader()
|
* Returns added html code by addHtmlHeader()
|
||||||
*
|
*
|
||||||
* @return string Added html code before </head>
|
* @return string Added html code before </head>
|
||||||
*/
|
*/
|
||||||
public static function getHtmlHeader()
|
public static function getHtmlHeader(): string
|
||||||
{
|
{
|
||||||
return self::$_instance->html_header;
|
return self::$_instance->html_header;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove all content added by addHtmlHeader()
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public static function clearHtmlHeader()
|
||||||
|
{
|
||||||
|
self::$_instance->html_header = '';
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add css class to Html Body
|
* Add css class to Html Body
|
||||||
*
|
*
|
||||||
* @param string $class_name class name
|
* @param string $class_name class name
|
||||||
*/
|
*/
|
||||||
public static function addBodyClass($class_name)
|
public static function addBodyClass($class_name)
|
||||||
|
{
|
||||||
|
$class_name = strval($class_name);
|
||||||
|
if (!in_array($class_name, self::$_instance->body_class))
|
||||||
{
|
{
|
||||||
self::$_instance->body_class[] = $class_name;
|
self::$_instance->body_class[] = $class_name;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove css class from Html Body
|
||||||
|
*
|
||||||
|
* @param string $class_name class name
|
||||||
|
*/
|
||||||
|
public static function removeBodyClass($class_name)
|
||||||
|
{
|
||||||
|
$class_name = strval($class_name);
|
||||||
|
self::$_instance->body_class = array_values(array_filter(self::$_instance->body_class, function($str) use($class_name) {
|
||||||
|
return $str !== $class_name;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return css class to Html Body
|
* Return css class to Html Body
|
||||||
*
|
*
|
||||||
* @return string Return class to html body
|
* @return array
|
||||||
*/
|
*/
|
||||||
public static function getBodyClass()
|
public static function getBodyClassList(): array
|
||||||
{
|
{
|
||||||
$class_list = self::$_instance->body_class;
|
return self::$_instance->body_class;
|
||||||
|
}
|
||||||
|
|
||||||
return (count($class_list) > 0) ? sprintf(' class="%s"', implode(' ', array_unique($class_list))) : '';
|
/**
|
||||||
|
* Return css class to Html Body
|
||||||
|
*
|
||||||
|
* @deprecated
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public static function getBodyClass(): string
|
||||||
|
{
|
||||||
|
if (count(self::$_instance->body_class))
|
||||||
|
{
|
||||||
|
return sprintf(' class="%s"', implode(' ', self::$_instance->body_class));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return '';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -60,10 +60,17 @@ class ContextTest extends \Codeception\TestCase\Test
|
||||||
$this->assertEquals(Context::getBodyClass(), ' class="red green"');
|
$this->assertEquals(Context::getBodyClass(), ' class="red green"');
|
||||||
Context::addBodyClass('blue');
|
Context::addBodyClass('blue');
|
||||||
$this->assertEquals(Context::getBodyClass(), ' class="red green blue"');
|
$this->assertEquals(Context::getBodyClass(), ' class="red green blue"');
|
||||||
|
Context::addBodyClass('yellow');
|
||||||
|
$this->assertEquals(Context::getBodyClassList(), ['red', 'green', 'blue', 'yellow']);
|
||||||
|
|
||||||
|
// remove class manually
|
||||||
|
Context::removeBodyClass('yellow');
|
||||||
|
$this->assertEquals(Context::getBodyClassList(), ['red', 'green', 'blue']);
|
||||||
|
|
||||||
// remove duplicated class
|
// remove duplicated class
|
||||||
Context::addBodyClass('red');
|
Context::addBodyClass('red');
|
||||||
$this->assertEquals(Context::getBodyClass(), ' class="red green blue"');
|
$this->assertEquals(Context::getBodyClass(), ' class="red green blue"');
|
||||||
|
$this->assertEquals(Context::getBodyClassList(), ['red', 'green', 'blue']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testSetRequestMethod()
|
public function testSetRequestMethod()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue