public static function get_defaults($owner_table = false) { $defaults = array(); $nextorder = array(); if ($owner_table && strlen($owner_table)) { $where = " WHERE e.owner_table = '" . mysql_real_escape_string($owner_table) . "' "; $defaults[$owner_table] = array(); $nextorder[$owner_table] = 0; } else { $where = ''; } $sql = "SELECT `extra_default_id`,`extra_key`, `order`, `display_type`, `owner_table`, `searchable`, `field_type`, `options` FROM `" . _DB_PREFIX . "extra_default` e {$where} ORDER BY e.`order` ASC"; foreach (qa($sql) as $r) { if (!isset($defaults[$r['owner_table']])) { $defaults[$r['owner_table']] = array(); } if (!isset($nextorder[$r['owner_table']])) { $nextorder[$r['owner_table']] = 0; } $defaults[$r['owner_table']][$r['extra_key']] = array('key' => $r['extra_key'], 'order' => $r['order'], 'extra_default_id' => $r['extra_default_id'], 'display_type' => $r['display_type'], 'searchable' => $r['searchable'], 'field_type' => $r['field_type'], 'options' => isset($r['options']) ? @json_decode($r['options'], true) : array()); $nextorder[$r['owner_table']] = max($r['order'], $nextorder[$r['owner_table']]); } // search database for keys. $sql = "SELECT `extra_key`,`owner_table` FROM `" . _DB_PREFIX . "extra` e {$where} GROUP BY e.extra_key"; foreach (qa($sql) as $r) { if (!isset($nextorder[$r['owner_table']])) { $nextorder[$r['owner_table']] = 0; } if (!isset($defaults[$r['owner_table']]) || !isset($defaults[$r['owner_table']][$r['extra_key']])) { $nextorder[$r['owner_table']]++; $extra_default_id = update_insert('extra_default_id', false, 'extra_default', array('owner_table' => $r['owner_table'], 'extra_key' => $r['extra_key'], 'order' => $nextorder[$r['owner_table']], 'display_type' => 0)); $defaults[$r['owner_table']][$r['extra_key']] = array(); $defaults[$r['owner_table']][$r['extra_key']]['key'] = $r['extra_key']; $defaults[$r['owner_table']][$r['extra_key']]['order'] = $nextorder[$r['owner_table']]; $defaults[$r['owner_table']][$r['extra_key']]['extra_default_id'] = $extra_default_id; $defaults[$r['owner_table']][$r['extra_key']]['display_type'] = 0; $defaults[$r['owner_table']][$r['extra_key']]['field_type'] = ''; $defaults[$r['owner_table']][$r['extra_key']]['options'] = array(); module_cache::clear_cache(false); } if (!isset($defaults[$r['owner_table']][$r['extra_key']]['order'])) { $defaults[$r['owner_table']][$r['extra_key']]['order'] = 0; } /*$defaults[$r['owner_table']][$r['extra_key']] = array( 'key' => $r['extra_key'], 'order'=> isset($defaults[$r['extra_key']]) ? $defaults[$r['extra_key']]['order'] : 0, );*/ } if ($owner_table) { uasort($defaults[$owner_table], 'sort_extra_defaults'); return $defaults[$owner_table]; } else { return $defaults; //return all for settings area } /* switch($owner_table){ case 'website': $defaults = array( array('key' => 'FTP Username',), array('key' => 'FTP Password',), array('key' => 'FTP Provider',), array('key' => 'Host Username',), array('key' => 'Host Password',), array('key' => 'Host Provider',), array('key' => 'WordPress User',), array('key' => 'WordPress Pass',), array('key' => 'Analytics Account',), array('key' => 'Webmaster Account',), ); break; }*/ }