/** * @param string $col * @param string $def * @return string */ protected function parseOrdering($col, $def) { $order = Sobi::GetUserState('fields.order', $col, Sobi::Cfg('admin.fields-order', $def)); $ord = $order; $dir = 'asc'; /** legacy - why the hell I called it order?! */ $ord = str_replace('order', 'position', $ord); if (strstr($ord, '.')) { $ord = explode('.', $ord); $dir = $ord[1]; $ord = $ord[0]; } $ord = $ord == 'state' ? 'enabled' : $ord; // $ord = ( $ord == 'position' ) ? 'position' : $ord; if ($ord == 'name') { /* @var SPdb $db */ $db = SPFactory::db(); $fields = $db->select('fid', 'spdb_language', array('oType' => 'field', 'sKey' => 'name', 'language' => Sobi::Lang()), 'sValue.' . $dir)->loadResultArray(); if (!count($fields) && Sobi::Lang() != Sobi::DefLang()) { $fields = $db->select('id', 'spdb_language', array('oType' => 'field', 'sKey' => 'name', 'language' => Sobi::DefLang()), 'sValue.' . $dir)->loadResultArray(); } if (count($fields)) { $fields = implode(',', $fields); $ord = "field( fid, {$fields} )"; } else { $ord = 'fid.' . $dir; } } else { $ord = $ord . '.' . $dir; } Sobi::setUserState('fields.order', $order); return $ord; }