Example #1
0
    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) . '];';
    }