src/Zicht/Bundle/PageBundle/Manager/PageManager.php
public function decorateClassMetaData(ClassMetadata $c)
    {
        $parentClassName = $c->getName();

        if (isset($this->mappings[$parentClassName])) {
            $c->discriminatorMap = array();
            $c->discriminatorMap[strtolower(Str::classname($parentClassName))] = $parentClassName;
            foreach ($this->mappings[$parentClassName] as $className) {
                $bundlePrefix = Str::infix($this->getBundleName($className), '-');
                $name = Str::infix(Str::classname(Str::rstrip($className, Str::classname($parentClassName))), '-');
                $combinedDiscriminator = sprintf('%s-%s', $bundlePrefix, $name);
                $c->discriminatorMap[$combinedDiscriminator] = $className;
                $c->subClasses[] = $className;
            }
            $c->subClasses = array_unique($c->subClasses);
        }
    }
public function decorateClassMetaData(ClassMetadata $c)
    {
        $parentClassName = $c->getName();

        if (isset($this->mappings[$parentClassName])) {
            $c->discriminatorMap = array();
            $c->discriminatorMap[strtolower(Str::classname($parentClassName))] = $parentClassName;
            foreach ($this->mappings[$parentClassName] as $className) {
                $bundlePrefix = Str::infix($this->getBundleName($className), '-');
                $name = Str::infix(Str::classname(Str::rstrip($className, Str::classname($parentClassName))), '-');
                $combinedDiscriminator = sprintf('%s-%s', $bundlePrefix, $name);
                $c->discriminatorMap[$combinedDiscriminator] = $className;
                $c->subClasses[] = $className;
            }
            $c->subClasses = array_unique($c->subClasses);
        }
    }
Adds the available page types and content item types to the class metadata's discriminatorMap

@param ClassMetadata $c