/** * Retourne les données sql sur base des paramètres passés en paramète * @param $custom * @param array $current * @return array|null */ public static function getData($custom, $current) { if (!is_array($custom)) { return null; } if (!array_key_exists('cms', $current)) { return null; } $conf = array('id' => null, 'type' => null, 'limit' => null, 'lang' => $current['lang']['iso'], 'context' => array(1 => 'parent')); $current = $current['cms']; // custom values: data_sort if (isset($custom['select'])) { if ($custom['select'] == 'current') { $conf['id'] = isset($current['parent']['id']) ? $current['parent']['id'] : $current['record']['id']; } elseif (is_array($custom['select'])) { if (array_key_exists($conf['lang'], $custom['select'])) { $conf['id'] = $custom['select'][$conf['lang']]; } } } elseif (isset($custom['exclude'])) { if (is_array($custom['exclude'])) { if (array_key_exists($conf['lang'], $custom['exclude'])) { $conf['id'] = $custom['exclude'][$conf['lang']]; $conf['type'] = 'exclude'; } } } // custom values: display if (isset($custom['context'])) { if (is_array($custom['context'])) { foreach ($custom['context'] as $k => $v) { $conf['context'][1] = $k; $conf['context'][2] = $v; } } else { $allowed = array('', 'all', 'parent', 'child', 'mix'); if (in_array($custom['context'], $allowed)) { $conf['context'][1] = $custom['context']; } } } // *** Load SQL data if ($conf['context'][1] == 'parent' or $conf['context'][1] == 'all') { $data = parent::s_page($conf['lang'], $conf['id'], $conf['type'], $conf['limit']); if ($data != null and ($conf['context'][2] == 'child' or $conf['context'][1] == 'all')) { foreach ($data as $k1 => $v1) { $data_2 = parent::s_page_child($conf['lang'], $v1['idpage']); if ($data_2 != null) { $data[$k1]['subdata'] = $data_2; } } $data_2 = null; } } elseif ($conf['context'][1] == 'child') { $data = parent::s_page_child($conf['lang'], $conf['id'], $conf['type'], $conf['limit']); } elseif ($conf['context'][1] == 'mix') { $data = parent::s_page_all($conf['lang'], $conf['id'], $conf['type'], $conf['limit']); if ($data != null and ($conf['context'][2] == 'child' or $conf['context'][1] == 'all')) { foreach ($data as $k1 => $v1) { $data_2 = parent::s_page_child($conf['lang'], $v1['idpage']); if ($data_2 != null) { $data[$k1]['subdata'] = $data_2; } } $data_2 = null; } } return $data; }