Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static function getRow($class, $id = null, $slug = null, $get_children = true) {
- try {
- $query = Doctrine_Query::create()
- ->setHydrationMode(Doctrine::HYDRATE_ARRAY)
- ->from('Node n')
- ->leftJoin('n.ChildNode n_cn')
- ->leftJoin('n.MediaNode n_mn')
- ->leftJoin('n_mn.Media n_mn_m')
- ->addWhere('n.class = ?', $class);
- if(!empty($id)) {
- $query->addWhere('n.id = ?', $id);
- }
- if(!empty($slug)) {
- $query->addWhere('n.slug = ?', $slug);
- }
- $node = $query->fetchOne();
- if(!empty($node)) {
- $className = ucwords($node['class']);
- if(class_exists($className)) {
- $result = Doctrine_Query::create()
- ->setHydrationMode(Doctrine::HYDRATE_ARRAY)
- ->from(sprintf('%s m', $className))
- ->where('m.node_id = ?', $node['id'])
- ->fetchOne();
- $node['Content'] = $result;
- if(!empty($node['ChildNode']) && $get_children == true) {
- foreach($node['ChildNode'] as $cn_key => $child_node) {
- $node['ChildNode'][$cn_key] = self::getRow($child_node['class'], $child_node['id'], null, false);
- }
- }
- return $node;
- } else {
- throw new Wfm_Doctrine_NodeException(sprintf('Model class <u>%s</u> does not exist', $className));
- }
- } else {
- throw new Wfm_Doctrine_NodeException('Node not found');
- }
- } catch(Doctrine_Connection_Mysql_Exception $e) {
- throw new Wfm_Doctrine_NodeInvalidQueryException($e->getMessage(), $query);
- }
- }
Add Comment
Please, Sign In to add comment