xref: /plugin/combo/ComboStrap/Html.php (revision 4cadd4f8c541149bdda95f080e38a6d4e3a640ca)
1c3437056SNickeau<?php
2c3437056SNickeau
3c3437056SNickeau
4c3437056SNickeaunamespace ComboStrap;
5c3437056SNickeau
6c3437056SNickeau
7c3437056SNickeauclass Html
8c3437056SNickeau{
9c3437056SNickeau
10c3437056SNickeau
11c3437056SNickeau    /**
12c3437056SNickeau     * @param string $name
13c3437056SNickeau     * @throws ExceptionComboRuntime
14c3437056SNickeau     * Garbage In / Garbage Out design
15c3437056SNickeau     */
16c3437056SNickeau    public static function validNameGuard(string $name)
17c3437056SNickeau    {
18c3437056SNickeau        /**
19c3437056SNickeau         * If the name is not in lowercase,
20c3437056SNickeau         * the shorthand css selector does not work
21c3437056SNickeau         */
22c3437056SNickeau        $validName = strtolower($name);
23c3437056SNickeau        if ($validName != $name) {
24c3437056SNickeau            throw new ExceptionComboRuntime("The name ($name) is not a valid name");
25c3437056SNickeau        }
26c3437056SNickeau    }
27*4cadd4f8SNickeau
28*4cadd4f8SNickeau    /**
29*4cadd4f8SNickeau     * Transform a text into a valid HTML id
30*4cadd4f8SNickeau     * @param $string
31*4cadd4f8SNickeau     * @return string
32*4cadd4f8SNickeau     */
33*4cadd4f8SNickeau    public static function toHtmlId($string): string
34*4cadd4f8SNickeau    {
35*4cadd4f8SNickeau        /**
36*4cadd4f8SNickeau         * sectionId calls cleanID
37*4cadd4f8SNickeau         * cleanID delete all things before a ':'
38*4cadd4f8SNickeau         * we do then the replace before to not
39*4cadd4f8SNickeau         * lost a minus '-' separator
40*4cadd4f8SNickeau         */
41*4cadd4f8SNickeau        $string = str_replace(array(':', '.'), '', $string);
42*4cadd4f8SNickeau        return sectionID($string, $check);
43*4cadd4f8SNickeau    }
44c3437056SNickeau}
45