public function profilegetcatdata() { $db =& JFactory::getDBO(); $db->setQuery('SELECT id, parent, name FROM #__sobipro_object WHERE oType=\'category\' AND state>0 AND approved>0'); $catpool = $db->loadAssocList(); $catparenta = array(); $catlva = array(); $cata = array(); $catnamea = array(); foreach ($catpool as $catkey => $catdata) { $catpool[$catkey] = 0; $parent = intval($catdata['parent']); $name = $catdata['name']; if ($parent == 1) { $id = intval($catdata['id']); if ($id > 1) { if (!isset($catlva[0])) { $catlva[0] = array($id); } else { if (!in_array($id, $catlva[0])) { $catlva[0][] = $id; } } } } $catparenta[intval($catdata['id']) . 'c'] = $parent; $catnamea[intval($catdata['id']) . 'c'] = $name; } $i = 0; while ($i < 2) { foreach ($catparenta as $idk => $parent) { if (!isset($catlva[$i])) { $catlva[$i] = array(); } if (in_array($parent, $catlva[$i])) { if (!isset($catlva[$i + 1])) { $catlva[$i + 1] = array(); } $catlva[$i + 1][] = intval($idk); } } $i++; } $db->setQuery('SELECT DISTINCT #__sobipro_relations.pid FROM #__sobipro_relations INNER JOIN #__sobipro_object USING(id) WHERE #__sobipro_object.oType=\'entry\' AND #__sobipro_object.state>0 AND #__sobipro_object.approved>0 AND #__sobipro_relations.pid>0'); $catparentpool = $db->loadAssocList(); $catlvanew = array(array(), array(), array()); $catparentanew = array(); foreach ($catparentpool as $val) { $parent = intval($val['pid']); if ($parent > 1) { $startlevel = 0; if (in_array($parent, $catlva[2])) { $startlevel = 2; $id = $parent; while ($startlevel >= 0) { if (!in_array($id, $catlvanew[$startlevel])) { $catlvanew[$startlevel][] = $id; } $catparent = intval($catparenta[$id . 'c']); $catparentanew[$id . 'c'] = $catparent; $id = $catparent; $startlevel--; } } } } $catlva = 0; $catparenta = array(); $i = 0; $catnameanew = array(); while ($i < 3) { $catparenta[$i] = array(); $catnameanew[$i] = array(); foreach ($catlvanew[$i] as $index => $id) { $catparenta[$i][$index] = $catparentanew[$id . 'c']; $catnameanew[$i][$index] = '\'' . addslashes($catnamea[$id . 'c']) . '\''; } $i++; } $catparentanew = 0; $catnamea = 0; $zones = array(); $overlays = array(); $precincts = array(); $zonenames = array(); $overlaynames = array(); $precinctnames = array(); $zoneparenttemp = array(); $overlayparenttemp = array(); $precinctparenttemp = array(); $db->setQuery('SELECT #__sobipro_field_data.baseData, #__sobipro_object.id FROM #__sobipro_field INNER JOIN #__sobipro_field_data USING(fid) INNER JOIN #__sobipro_object ON #__sobipro_field_data.sid=#__sobipro_object.id WHERE #__sobipro_object.approved>0 AND #__sobipro_object.state>0 AND #__sobipro_field.nid=\'field_name\' AND #__sobipro_object.oType=\'entry\' AND #__sobipro_object.name!=#__sobipro_field_data.baseData ORDER BY #__sobipro_object.name'); $fixnamepool = $db->loadAssocList(); $checknames = array(); foreach ($fixnamepool as $fnr) { $checknames[intval($fnr['id']) . 'n'] = $fnr['baseData']; } unset($fixnamepool); $db->setQuery('SELECT #__sobipro_field_option_selected.optValue+0 AS typekey, #__sobipro_object.name, #__sobipro_object.id, #__sobipro_relations.pid FROM #__sobipro_field INNER JOIN #__sobipro_field_option_selected USING(fid) INNER JOIN #__sobipro_object ON #__sobipro_field_option_selected.sid=#__sobipro_object.id INNER JOIN #__sobipro_relations ON #__sobipro_object.id=#__sobipro_relations.id WHERE #__sobipro_object.approved>0 AND #__sobipro_object.state>0 AND #__sobipro_field.nid=\'field_type\' AND #__sobipro_object.oType=\'entry\' ORDER BY #__sobipro_object.name'); $entrypool = $db->loadAssocList(); foreach ($entrypool as $epkey => $entryassoc) { $entryassoc[$epkey] = 0; $pid = intval($entryassoc['pid']); if (in_array($pid, $catlvanew[2])) { $type = intval($entryassoc['typekey']); if ($type < 2) { $id = intval($entryassoc['id']); if (!in_array($id, $zones)) { $zones[] = $id; if (isset($checknames[$id . 'n'])) { $name = $checknames[$id . 'n']; } else { $name = $entryassoc['name']; } $zonenames[] = "'" . addslashes($name) . "'"; if (is_array($zoneparenttemp[$pid . 'p'])) { if (!in_array($id, $zoneparenttemp[$pid . 'p'])) { $zoneparenttemp[$pid . 'p'][] = $id; } } else { $zoneparenttemp[$pid . 'p'] = array($id); } } } else { if ($type > 2) { $id = intval($entryassoc['id']); if (!in_array($id, $overlays)) { $overlays[] = $id; if (isset($checknames[$id . 'n'])) { $name = $checknames[$id . 'n']; } else { $name = $entryassoc['name']; } $overlaynames[] = "'" . addslashes($name) . "'"; if (is_array($overlayparenttemp[$pid . 'p'])) { if (!in_array($id, $overlayparenttemp[$pid . 'p'])) { $overlayparenttemp[$pid . 'p'][] = $id; } } else { $overlayparenttemp[$pid . 'p'] = array($id); } } } else { $id = intval($entryassoc['id']); if (!in_array($id, $precincts)) { $precincts[] = $id; if (isset($checknames[$id . 'n'])) { $name = $checknames[$id . 'n']; } else { $name = $entryassoc['name']; } $precinctnames[] = "'" . addslashes($name) . "'"; if (is_array($precinctparenttemp[$pid . 'p'])) { if (!in_array($id, $precinctparenttemp[$pid . 'p'])) { $precinctparenttemp[$pid . 'p'][] = $id; } } else { $precinctparenttemp[$pid . 'p'] = array($id); } } } } } } unset($checknames); $zoneassociations = array(); $overlayassociations = array(); $precinctassociations = array(); $ytvids = array(); $councilhps = array(); $councillinks = array(); foreach ($catlvanew[1] as $councilindex => $councilid) { list($youtube, $link, $helppoints) = profilef::parsehelp($councilid); $councillinks[$councilindex] = "'" . addslashes($link) . "'"; $councilhps[$councilindex] = "'" . addslashes(profilef::hte($helppoints)) . "'"; $ytvids[$councilindex] = "'" . addslashes(profilef::hte($youtube)) . "'"; } foreach ($catlvanew[2] as $schemeindex => $schemeid) { if (isset($zoneparenttemp[$schemeid . 'p'])) { $zoneassociations[$schemeindex] = '[' . implode(',', $zoneparenttemp[$schemeid . 'p']) . ']'; } else { $zoneassociations[$schemeindex] = '[]'; } $zoneparenttemp[$schemeid . 'p'] = 0; if (isset($overlayparenttemp[$schemeid . 'p'])) { $overlayassociations[$schemeindex] = '[' . implode(',', $overlayparenttemp[$schemeid . 'p']) . ']'; } else { $overlayassociations[$schemeindex] = '[]'; } $overlayparenttemp[$schemeid . 'p'] = 0; if (isset($precinctparenttemp[$schemeid . 'p'])) { $precinctassociations[$schemeindex] = '[' . implode(',', $precinctparenttemp[$schemeid . 'p']) . ']'; } else { $precinctassociations[$schemeindex] = '[]'; } $precinctparenttemp[$schemeid . 'p'] = 0; } unset($zoneparenttemp); unset($overlayparenttemp); unset($precinctparenttemp); //parseyt($id) return 'var catlevels=[[' . implode(',', $catlvanew[0]) . '],[' . implode(',', $catlvanew[1]) . '],[' . implode(',', $catlvanew[2]) . ']]; var catassociations=[[],[' . implode(',', $catparenta[1]) . '],[' . implode(',', $catparenta[2]) . ']]; var catnames=[[' . implode(',', $catnameanew[0]) . '],[' . implode(',', $catnameanew[1]) . '],[' . implode(',', $catnameanew[2]) . ']]; var zones=[' . implode(',', $zones) . ']; var zoneassociations=[' . implode(',', $zoneassociations) . ']; var zonenames=[' . implode(',', $zonenames) . ']; var overlays=[' . implode(',', $overlays) . ']; var overlayassociations=[' . implode(',', $overlayassociations) . ']; var overlaynames=[' . implode(',', $overlaynames) . ']; var councilvideos=[' . implode(',', $ytvids) . ']; var councillinks=[' . implode(',', $councillinks) . ']; var councilhelp=[' . implode(',', $councilhps) . ']; var precincts=[' . implode(',', $precincts) . ']; var precinctassociations=[' . implode(',', $precinctassociations) . ']; var precinctnames=[' . implode(',', $precinctnames) . '];'; }