protected function addFields($source,$spec,&$dest)
    {
        if (isset($spec['fields']))
        {
            foreach ($spec['fields'] as $f)
            {
                if(isset($f['temporary']) && $f['temporary'] === true)
                {
                    if(!in_array($f['fieldName'], $this->temporaryFields))
                    {
                        $this->temporaryFields[] = $f['fieldName'];
                    }
                }
                if(isset($f['predicates']))
                {
                    foreach ($f['predicates'] as $p)
                    {
                        if (is_string($p) && isset($source[$p]))
                        {
                            // Predicate is referenced directly
                            $this->generateValues($source, $f, $p, $dest);
                        } else
                        {
                            // Get a list of functions to run over a predicate - reverse it
                            $predicateFunctions = $this->getPredicateFunctions($p);
                            $predicateFunctions = array_reverse($predicateFunctions);

                            foreach($predicateFunctions as $function => $functionOptions)
                            {
                                // If we've got values then we're the innermost function, so we need to get the values
                                if($function == 'predicates')
                                {
                                    foreach($functionOptions as $v)
                                    {
                                        $v = trim($v);
                                        if (isset($source[$v]))
                                        {
                                            $this->generateValues($source, $f, $v, $dest);
                                        }
                                    }
                                // Otherwise apply a modifier
                                }
                                else
                                {
                                    if(isset($dest[$f['fieldName']]))
                                    {
                                        $dest[$f['fieldName']] = $this->applyModifier($function, $dest[$f['fieldName']], $functionOptions);
                                    }
                                }
                            }
                        }
                    }
                }

                // Allow URI linking to the ID
                if(isset($f['value']))
                {
                    if($f['value'] == '_link_' || $f['value'] == 'link' )
                    {
                        if($f['value'] == '_link_')
                        {
                            $this->warningLog("Table spec value '_link_' is deprecated", $f);
                        }
                        // If value exists, set as array
                        if(isset($dest[$f['fieldName']]))
                        {
                            if(!is_array($dest[$f['fieldName']]))
                            {
                                $dest[$f['fieldName']] = array($dest[$f['fieldName']]);
                            }
                            $dest[$f['fieldName']][] = $this->labeller->qname_to_alias($source['_id']['r']);
                        } else {
                            $dest[$f['fieldName']] = $this->labeller->qname_to_alias($source['_id']['r']);
                        }
                    }
                }
            }
        }
    }
protected function addFields($source,$spec,&$dest)
    {
        if (isset($spec['fields']))
        {
            foreach ($spec['fields'] as $f)
            {
                if(isset($f['temporary']) && $f['temporary'] === true)
                {
                    if(!in_array($f['fieldName'], $this->temporaryFields))
                    {
                        $this->temporaryFields[] = $f['fieldName'];
                    }
                }
                if(isset($f['predicates']))
                {
                    foreach ($f['predicates'] as $p)
                    {
                        if (is_string($p) && isset($source[$p]))
                        {
                            // Predicate is referenced directly
                            $this->generateValues($source, $f, $p, $dest);
                        } else
                        {
                            // Get a list of functions to run over a predicate - reverse it
                            $predicateFunctions = $this->getPredicateFunctions($p);
                            $predicateFunctions = array_reverse($predicateFunctions);

                            foreach($predicateFunctions as $function => $functionOptions)
                            {
                                // If we've got values then we're the innermost function, so we need to get the values
                                if($function == 'predicates')
                                {
                                    foreach($functionOptions as $v)
                                    {
                                        $v = trim($v);
                                        if (isset($source[$v]))
                                        {
                                            $this->generateValues($source, $f, $v, $dest);
                                        }
                                    }
                                // Otherwise apply a modifier
                                }
                                else
                                {
                                    if(isset($dest[$f['fieldName']]))
                                    {
                                        $dest[$f['fieldName']] = $this->applyModifier($function, $dest[$f['fieldName']], $functionOptions);
                                    }
                                }
                            }
                        }
                    }
                }

                // Allow URI linking to the ID
                if(isset($f['value']))
                {
                    if($f['value'] == '_link_' || $f['value'] == 'link' )
                    {
                        if($f['value'] == '_link_')
                        {
                            $this->warningLog("Table spec value '_link_' is deprecated", $f);
                        }
                        // If value exists, set as array
                        if(isset($dest[$f['fieldName']]))
                        {
                            if(!is_array($dest[$f['fieldName']]))
                            {
                                $dest[$f['fieldName']] = array($dest[$f['fieldName']]);
                            }
                            $dest[$f['fieldName']][] = $this->labeller->qname_to_alias($source['_id']['r']);
                        } else {
                            $dest[$f['fieldName']] = $this->labeller->qname_to_alias($source['_id']['r']);
                        }
                    }
                }
            }
        }
    }
protected function addFields ( $ source , $ spec , & $ dest ) { if ( isset ( $ spec [ 'fields' ] ) ) { foreach ( $ spec [ 'fields' ] as $ f ) { if ( isset ( $ f [ 'temporary' ] ) && $ f [ 'temporary' ] === true ) { if ( ! in_array ( $ f [ 'fieldName' ] , $ this -> temporaryFields ) ) { $ this -> temporaryFields [ ] = $ f [ 'fieldName' ] ; } } if ( isset ( $ f [ 'predicates' ] ) ) { foreach ( $ f [ 'predicates' ] as $ p ) { if ( is_string ( $ p ) && isset ( $ source [ $ p ] ) ) { // Predicate is referenced directly $ this -> generateValues ( $ source , $ f , $ p , $ dest ) ; } else { // Get a list of functions to run over a predicate - reverse it $ predicateFunctions = $ this -> getPredicateFunctions ( $ p ) ; $ predicateFunctions = array_reverse ( $ predicateFunctions ) ; foreach ( $ predicateFunctions as $ function => $ functionOptions ) { // If we've got values then we're the innermost function, so we need to get the values if ( $ function == 'predicates' ) { foreach ( $ functionOptions as $ v ) { $ v = trim ( $ v ) ; if ( isset ( $ source [ $ v ] ) ) { $ this -> generateValues ( $ source , $ f , $ v , $ dest ) ; } } // Otherwise apply a modifier } else { if ( isset ( $ dest [ $ f [ 'fieldName' ] ] ) ) { $ dest [ $ f [ 'fieldName' ] ] = $ this -> applyModifier ( $ function , $ dest [ $ f [ 'fieldName' ] ] , $ functionOptions ) ; } } } } } } // Allow URI linking to the ID if ( isset ( $ f [ 'value' ] ) ) { if ( $ f [ 'value' ] == '_link_' || $ f [ 'value' ] == 'link' ) { if ( $ f [ 'value' ] == '_link_' ) { $ this -> warningLog ( "Table spec value '_link_' is deprecated" , $ f ) ; } // If value exists, set as array if ( isset ( $ dest [ $ f [ 'fieldName' ] ] ) ) { if ( ! is_array ( $ dest [ $ f [ 'fieldName' ] ] ) ) { $ dest [ $ f [ 'fieldName' ] ] = array ( $ dest [ $ f [ 'fieldName' ] ] ) ; } $ dest [ $ f [ 'fieldName' ] ] [ ] = $ this -> labeller -> qname_to_alias ( $ source [ '_id' ] [ 'r' ] ) ; } else { $ dest [ $ f [ 'fieldName' ] ] = $ this -> labeller -> qname_to_alias ( $ source [ '_id' ] [ 'r' ] ) ; } } } } } }
Add fields to a table row
@param array $source
@param array $spec
@param array $dest
@access protected
@return void
Add fields to a table row