setOvalue("mark:$prefix:have_marks", true, $shared); } static function is_use_marks(IOobdManager $manager, ?string $prefix=null): bool { return boolval($manager->getOvalue("mark:$prefix:have_marks")); } static function set_use_keys_for_item_marked(IOobdManager $manager, ?array $keys, ?string $prefix=null): void { $manager->setOvalue("mark:$prefix:keys", $keys); } static function set_item_marked(IOobdManager $manager, $item, ?string $prefix=null, bool $shared=true): void { $keys = $manager->getOvalue("mark:$prefix:keys"); $mark = self::compute($item, $keys); $manager->setOvalue("mark:$prefix:marks:$mark", true, $shared); $manager->setOvalue("mark:$prefix:have_marks", true, $shared); } static function is_item_marked(IOobdManager $manager, $item, ?string $prefix=null): bool { $keys = $manager->getOvalue("mark:$prefix:keys"); $mark = self::compute($item, $keys); return boolval($manager->getOvalue("mark:$prefix:marks:$mark")); } }