public static function stringLimit($string, $options = null)
    {
        $options = Helper::getOptions($options, [
            "length"    =>  30,
            "extra"     =>  0,
            "alt"       =>  "n/a",
            "words"     =>  true,
            "suffix"    =>  "...",
        ]);

        if (!$string = trim($string)) {
            return $options["alt"];
        }

        if ($options["words"]) {
            while (mb_strlen($string) > ($options["length"] + $options["extra"])) {
                $string = mb_substr($string, 0, $options["length"]);
                $string = trim($string);

                $words = explode(" ", $string);
                array_pop($words);
                $string = implode(" ", $words);

                $string .= $options["suffix"];
            }
        } else {
            $length = $options["length"] + $options["extra"] + mb_strlen($options["suffix"]);
            if (mb_strlen($string) > $length) {
                $string = mb_substr($string, 0, $length);
                $string .= $options["suffix"];
            }
        }

        return $string;
    }