OSDN Git Service

清書
[nucleus-jp/nucleus-plugins.git] / trunk / NP_Dtree / dtree / dtreedata.php
1 <?php
2 global $CONF, $manager;
3         $strRel = '../../../';
4         include($strRel . 'config.php');
5
6         $usePathInfo = ($CONF['URLMode'] == 'pathinfo');
7
8 //  $objectId = requestVar('o');
9         $objectId    = 'tree' . preg_replace('|[^0-9a-f]|i', '', substr(requestVar('o'), 4));
10         $blogid      = intRequestVar('bid');
11         if (empty($blogid)) {
12                 $blogid = intval($CONF['DefaultBlog']);
13         }
14         $blogname = getBlogNameFromID($blogid);
15
16         $b        =& $manager->getBlog($blogid);
17         $blogurl  =  $b->getURL();
18         if (!$blogurl) {
19                 if($blog) {
20                         $b_tmp   =& $manager->getBlog($blogid);
21                         $blogurl =  $b_tmp->getURL();
22                 }
23                 if (!$blogurl) {
24                         $blogurl = $CONF['IndexURL'];
25                         if (!$usePathInfo) {
26                                 if ($data['type'] == 'pageparser') {
27                                         $blogurl .= 'index.php';
28                                 } else {
29                                         $blogurl  = $CONF['Self'];
30                                 }
31                         }
32                 }
33         }
34
35         if ($usePathInfo) {
36                 if (substr($blogurl, -1) == '/') { 
37                         $blogurl = substr($blogurl, 0, -1);
38                 }
39         }
40
41         $CONF['BlogURL']        = $blogurl;
42         $CONF['ItemURL']        = $blogurl;
43         $CONF['CategoryURL']    = $blogurl;
44         $CONF['ArchiveURL']     = $blogurl;
45         $CONF['ArchiveListURL'] = $blogurl;
46         $CONF['SearchURL']      = $blogurl;
47
48         $printData = $objectId . "=new dTree('" . $objectId . "');\n"
49                            . $objectId . ".add(0,-1,'"
50                            . htmlspecialchars($blogname, ENT_QUOTES, _CHARSET)
51                            . "');\n";
52         echo $printData;
53         unset($printData);
54         
55         $resq = 'SELECT * FROM %s WHERE cblog = %d';
56         $res  = sql_query(sprintf($resq, sql_table('category'), $blogid));
57         $n    = 1;
58         while ($o = mysql_fetch_object($res)) {
59                 $catid                    = intval($o->catid);
60                 $nodeArray['cat'][$catid] = $n;
61                 $url                      = createCategoryLink($catid);
62                 $printData                = $objectId
63                                                                   . ".add"
64                                                                   . "("
65                                                                   . $n . ","
66                                                                   . "0,"
67                                                                   . "'" . htmlspecialchars($o->cname, ENT_QUOTES, _CHARSET) . "',"
68 //                                                                . "'" . htmlspecialchars($url,      ENT_QUOTES, _CHARSET) . "',"
69                                                                   . "'" . $url . "',"
70                                                                   . "'" . htmlspecialchars($o->cdesc, ENT_QUOTES, _CHARSET). "'"
71                                                                   . ");\n";
72                 echo $printData;
73                 $catFilter[] = $catid;
74                 $n++;
75                 unset($printData);
76         }
77         
78         if (!$manager->pluginInstalled('NP_MultipleCategories')) {
79                 echo 'document.write(' . $objectId . ');';
80                 if ($itemid = intRequestVar('id')) {
81                         $que       = 'SELECT icat as result FROM %s WHERE inumber = %d';
82                         $catid     = quickQuery(sprintf($que, sql_table('item'), $itemid));
83                         $catid     = intval($catid);
84                         $nodeId    = 's' . $objectId . $nodeArray['cat'][$catid];
85                         $printData = "document.getElementById('"
86                                            . htmlspecialchars($nodeId, ENT_QUOTES, _CHARSET)
87                                            . "').className = 'selectedNode';";
88                         echo $printData;
89                         unset($printData);
90                 }
91                 return;
92         }
93
94 /*      if ($catFilter[1]) {
95                 $catFilter = implode(', ', $catFilter);
96                 $catFilter = ' IN (' . $catFilter . ')';
97         } else {
98                 $catFilter = ' = ' . $catFilter;
99         }       //original*/
100
101         if (count($catFilter) == 1) {
102                 $catFilter = ' = ' . $catFilter[0];
103         } elseif (count($catFilter) > 1) {
104                 $catFilter = implode(', ', $catFilter);
105                 $catFilter = ' IN (' . $catFilter . ')';
106         } else {
107                 $catFilter = '';
108         }       // test
109
110         $scatTable   =  sql_table('plug_multiple_categories_sub');
111         $mcategories =& $manager->getPlugin('NP_MultipleCategories');
112         if (method_exists($mcategories, 'getRequestName')) {
113                 $subrequest = $mcategories->getRequestName();
114         } else {
115                 $subrequest = 'subcatid';
116         }
117 //      $query = 'SELECT * FROM %s WHERE catid%s';
118         $query = 'SELECT * FROM %s WHERE catid%s ORDER BY parentid, catid, ordid';
119         $query = sprintf($query, $scatTable, $catFilter);
120         $res   = sql_query($query);
121         while ($o = mysql_fetch_object($res)) {
122                 $scatid                       = intval($o->scatid);
123                 $nodeArray['subcat'][$scatid] = $n;
124                 $n++;
125 //      }
126
127 //      $query = 'SELECT * FROM %s WHERE catid%s';
128 //      $query = sprintf($query, $scatTable, $catFilter);
129 //      $res = sql_query($query);
130 //      while ($u = mysql_fetch_object($res)) {
131 //$u = $o;
132 //              $scatid    = intval($o->scatid);
133                 $parent_id = intval($o->parentid);
134                 $cat_id    = intval($o->catid);
135                 $linkParam = array(
136                                                    $subrequest => $scatid
137                                                   );
138                 $url       = createCategoryLink($cat_id, $linkParam);
139
140                 if (!empty($parent_id)) {
141                         $pnode = intval($nodeArray['subcat'][$parent_id]);
142                 } else {
143                         $pnode = intval($nodeArray['cat'][$cat_id]);
144                 }
145                 $printData =  $objectId
146                                    . ".add"
147                                    . "("
148                                    . intval($nodeArray['subcat'][$scatid]) . ","
149                                    . $pnode . ","
150                                    . "'" . htmlspecialchars($o->sname, ENT_QUOTES, _CHARSET) . "',"
151 //                                 . "'" . htmlspecialchars($url,      ENT_QUOTES, _CHARSET) . "',"
152                                    . "'" . $url . "',"
153                                    . "'" . htmlspecialchars($o->sdesc, ENT_QUOTES, _CHARSET) . "'"
154                                    . ");\n";
155                 echo $printData;
156                 unset($printData);
157         }
158
159         echo "document.write(" . $objectId . ");\n";
160
161         if ($sid = intRequestVar('sid')) {
162                 $nodeId    = 's' . $objectId . intval($nodeArray['subcat'][$sid]);
163                 $printData = "document.getElementById('" . $nodeId . "')"
164                                    . ".className='urlselected';\n"
165                                    . $objectId
166                                    . ".openTo(" . intval($nodeArray['subcat'][$sid]) . ",true);\n";
167                 echo $printData;
168                 unset($printData);
169         } elseif ($cid = intRequestVar('cid')) {
170                 $nodeId    = 's' . $objectId . intval($nodeArray['cat'][$cid]);
171                 $printData = "document.getElementById('" . $nodeId . "')."
172                                    . "className='urlselected';\n"
173                                    . $objectId
174                                    . ".openTo(" . intval($nodeArray['cat'][$cid]) . ",true);\n";
175         }
176
177         if ($itemid = intRequestVar('id')) {
178                 $que       = 'SELECT icat as result FROM %s WHERE inumber = %d';
179                 $catid     = quickQuery($que, sql_table('item'), $itemid);
180                 $catid     = intval($catid);
181                 $nodeId    = 's' . $objectId . intval($nodeArray['cat'][$catid]);
182                 $printData = "document.getElementById('" . $nodeId . "')"
183                                    . ".className='selectedNode';\n";
184                 echo $printData;
185                 unset($printData);
186                 
187                 //multi catid
188                 $que    = 'SELECT categories as result FROM %s WHERE item_id = %d';
189                 $que    = sprintf($que, sql_table('plug_multiple_categories'), $itemid);
190                 $catids = quickQuery($que);
191                 if ($catids) {
192                         $catids = explode(',', $catids);
193                         $cCount = count($catids);
194                         for ($i=0; $i < $cCount; $i++) {
195                                 $catidTemp = intval($catids[$i]);
196                                 if ($catidTemp != $catid) {
197                                         $nodeId   = 's' . $objectId . intval($nodeArray['cat'][$catidTemp]);
198                                         $prntData = "document.getElementById('" . $nodeId . "')"
199                                                           . ".className='selectedCatNode';\n";
200                                         echo $printData;
201                                         unset($printData);
202                                 }
203                         }
204                 }
205
206                 //(multi) subcatid
207                 $que     = 'SELECT subcategories as result FROM %s WHERE item_id = %d';
208                 $que     = sprintf($que, sql_table('plug_multiple_categories'), $itemid);
209                 $scatids = quickQuery($que);
210                 if ($scatids) {
211                         $scatids = explode(',', $scatids);
212                         $scatCnt = count($scatids);
213                         for ($i=0; $i < $scatCnt; $i++) {
214                                 $scatid    = intval($scatids[$i]);
215                                 $nodeId    = 's' . $objectId . intval($nodeArray['subcat'][$scatid]);
216                                 $printData = "document.getElementById('" . $nodeId . "')"
217                                                    . ".className='selectedScatNode';\n"
218                                                    . $objectId
219                                                    . ".openTo(" . intval($nodeArray['subcat'][$scatid]) . ",true);\n";
220                                 echo $printData;
221                                 unset($printData);
222                         }
223                 }
224         }