Exemple #1
0
 /**
  * @param Lib_Model $from
  */
 protected function settingsJoin($from)
 {
     foreach ($from->_settingsJoined as $name => $value) {
         // join external from externals perspective
         $this->settingJoin($name, $value);
     }
     $fromAlias = $from->getAlias();
     foreach ($from->getColumns() as $descriptor) {
         // join local from externals perspective
         $table = $descriptor[0];
         $column = $descriptor[1];
         $alias = $descriptor[2];
         if ($table === $fromAlias) {
             if ($alias) {
                 // has alias, just join
                 if ($from->settingExists($alias)) {
                     $this->settingJoin($alias, $from->getSetting($alias));
                 } elseif ($from->settingExists($column)) {
                     $this->settingJoin($alias, $from->getSetting($column));
                 }
             } elseif ($from->settingExists($column)) {
                 // needs to be aliased
                 $this->settingJoin("{$table}.{$column}", $from->getSetting($column));
             }
         }
     }
 }