public function preCacheTranslateObject(ModelObject $obj)
    {
        // merge aspects
        //$db = $this->getConnection();

//        $q = new Query();
//        $q->select('aspectid');
//        $q->from('elementaspectrel');
//        $q->where("elementid = {$db->quote($obj->{$obj->getPrimaryKey()})}");

//        $aspectIDs = $db->readCol($q);

//        $this->populateRels();

//        $aspectSlugs = array_key_exists($obj->Slug, $this->aspectrel)?$this->aspectrel[$obj->Slug]['Aspects']:array();

        $aspectSlugs = $obj->getAspectSlugs();

        $schema = new NodeSchema();

        if (!empty($aspectSlugs)) {

            $aspects = $this->AspectDAO->multiGetBySlug($aspectSlugs);

            $newAspects = array();
            foreach ($aspects as $aspect) {
//                $plugin = $this->PluginService->getByID($aspect['PluginID']);
//                if(empty($plugin) || !$plugin->isInstalled() || !$plugin->isEnabled())
//                    continue;


                $aspectSchema = $aspect->getSchema();
                foreach ($aspectSchema->getTagDefs() as $tagDef)
                    $schema->addTagDef($tagDef);
                foreach ($aspectSchema->getMetaDefs() as $metaDef)
                    $schema->addMetaDef($metaDef);

                $newAspects[] = $aspect;
            }

            $obj->setAspects($newAspects);

        }

        $obj->setSchema($schema);
        $obj->setAnchoredSite($this->SiteService->getAnchoredSite());
        $obj->setAnchoredSiteSlug($obj->getAnchoredSite()->getSlug());

        return $obj;
    }
public function preCacheTranslateObject(ModelObject $obj)
    {
        // merge aspects
        //$db = $this->getConnection();

//        $q = new Query();
//        $q->select('aspectid');
//        $q->from('elementaspectrel');
//        $q->where("elementid = {$db->quote($obj->{$obj->getPrimaryKey()})}");

//        $aspectIDs = $db->readCol($q);

//        $this->populateRels();

//        $aspectSlugs = array_key_exists($obj->Slug, $this->aspectrel)?$this->aspectrel[$obj->Slug]['Aspects']:array();

        $aspectSlugs = $obj->getAspectSlugs();

        $schema = new NodeSchema();

        if (!empty($aspectSlugs)) {

            $aspects = $this->AspectDAO->multiGetBySlug($aspectSlugs);

            $newAspects = array();
            foreach ($aspects as $aspect) {
//                $plugin = $this->PluginService->getByID($aspect['PluginID']);
//                if(empty($plugin) || !$plugin->isInstalled() || !$plugin->isEnabled())
//                    continue;


                $aspectSchema = $aspect->getSchema();
                foreach ($aspectSchema->getTagDefs() as $tagDef)
                    $schema->addTagDef($tagDef);
                foreach ($aspectSchema->getMetaDefs() as $metaDef)
                    $schema->addMetaDef($metaDef);

                $newAspects[] = $aspect;
            }

            $obj->setAspects($newAspects);

        }

        $obj->setSchema($schema);
        $obj->setAnchoredSite($this->SiteService->getAnchoredSite());
        $obj->setAnchoredSiteSlug($obj->getAnchoredSite()->getSlug());

        return $obj;
    }
public function preCacheTranslateObject ( ModelObject $ obj ) { // merge aspects //$db = $this->getConnection(); //        $q = new Query(); //        $q->select('aspectid'); //        $q->from('elementaspectrel'); //        $q->where("elementid = {$db->quote($obj->{$obj->getPrimaryKey()})}"); //        $aspectIDs = $db->readCol($q); //        $this->populateRels(); //        $aspectSlugs = array_key_exists($obj->Slug, $this->aspectrel)?$this->aspectrel[$obj->Slug]['Aspects']:array(); $ aspectSlugs = $ obj -> getAspectSlugs ( ) ; $ schema = new NodeSchema ( ) ; if ( ! empty ( $ aspectSlugs ) ) { $ aspects = $ this -> AspectDAO -> multiGetBySlug ( $ aspectSlugs ) ; $ newAspects = array ( ) ; foreach ( $ aspects as $ aspect ) { //                $plugin = $this->PluginService->getByID($aspect['PluginID']); //                if(empty($plugin) || !$plugin->isInstalled() || !$plugin->isEnabled()) //                    continue; $ aspectSchema = $ aspect -> getSchema ( ) ; foreach ( $ aspectSchema -> getTagDefs ( ) as $ tagDef ) $ schema -> addTagDef ( $ tagDef ) ; foreach ( $ aspectSchema -> getMetaDefs ( ) as $ metaDef ) $ schema -> addMetaDef ( $ metaDef ) ; $ newAspects [ ] = $ aspect ; } $ obj -> setAspects ( $ newAspects ) ; } $ obj -> setSchema ( $ schema ) ; $ obj -> setAnchoredSite ( $ this -> SiteService -> getAnchoredSite ( ) ) ; $ obj -> setAnchoredSiteSlug ( $ obj -> getAnchoredSite ( ) -> getSlug ( ) ) ; return $ obj ; }
Sets the schema for the element

@param Element $obj The element to analyze

@return Element the translated element
Sets the schema for the element