Changeset 12061
- Timestamp:
- 01/16/08 17:55:40 (12 months ago)
- Files:
-
- 1 modified
-
util/branches/dev/jsdoc/jsdoc.module (modified) (15 diffs)
Legend:
- Unmodified
- Added
- Removed
-
util/branches/dev/jsdoc/jsdoc.module
r12056 r12061 117 117 if (arg(5) && arg(5) != 'view' && arg(5) != 'edit' && arg(5) != 'private') { 118 118 $item = arg(4) . '/' . arg(5); 119 $ detail= $node = jsdoc_object_node_load(arg(1), arg(2), arg(5), str_replace('__', '/', arg(4)));119 $object = $node = jsdoc_object_node_load(arg(1), arg(2), arg(5), str_replace('__', '/', arg(4))); 120 120 } 121 121 // jsdoc/namespace/'HEAD'/'object'/object 122 122 else { 123 123 $item = arg(4); 124 $ detail= $node = jsdoc_object_node_load(arg(1), arg(2), arg(4));125 } 126 127 if ( $node->jsdoc_detail) {128 $ detail = $node->jsdoc_detail;124 $object = $node = jsdoc_object_node_load(arg(1), arg(2), arg(4)); 125 } 126 127 if (jsdoc_get_variable_object($node)) { 128 $object = jsdoc_get_variable_object($node); 129 129 } 130 130 $items[] = array('path' => 'jsdoc/' . arg(1) . '/' . arg(2) . '/object/' . $item, … … 165 165 ); 166 166 167 if ( $detail->jsdoc_type== 'Function') {168 if ( $detail->jsdoc_classlike || $detail->jsdoc_initialized) {167 if (jsdoc_get_type($object) == 'Function') { 168 if (jsdoc_get_classlike($object) || jsdoc_is_initialized($object)) { 169 169 $items[] = array('path' => 'jsdoc/'. arg(1) . '/' . arg(2) . '/object/' . $item . '/view/init', 170 170 'title' => t('Initialized'), … … 172 172 'weight' => -10 173 173 ); 174 if (! $detail->jsdoc_initialized) {174 if (!jsdoc_is_initialized($object)) { 175 175 $items[] = array('path' => 'jsdoc/'. arg(1) . '/' . arg(2) . '/object/' . $item . '/view/normal', 176 176 'title' => t('Uninitialized'), … … 1296 1296 if ($node->type == "jsdoc_object" || ($node->type == "jsdoc_variable" && jsdoc_get_variable_object($node))) { 1297 1297 if ($node->type == "jsdoc_variable") { 1298 $ detail= jsdoc_get_variable_object($node);1298 $object = jsdoc_get_variable_object($node); 1299 1299 } 1300 1300 else { 1301 $ detail= $node;1302 } 1303 $ detail->jsdoc_parents = array();1304 $query = db_query("SELECT n.title, j.type FROM {jsdoc_variable_hierarchy} j JOIN {node_revisions} n ON (n.vid = j.parent_vid) WHERE j.type IN ('normal', 'prototype', 'instance') AND j.vid = %d GROUP BY BINARY n.title", $ detail->vid);1301 $object = $node; 1302 } 1303 $object->jsdoc_parents = array(); 1304 $query = db_query("SELECT n.title, j.type FROM {jsdoc_variable_hierarchy} j JOIN {node_revisions} n ON (n.vid = j.parent_vid) WHERE j.type IN ('normal', 'prototype', 'instance') AND j.vid = %d GROUP BY BINARY n.title", $object->vid); 1305 1305 while ($parent = db_fetch_object($query)) { 1306 $ detail->jsdoc_parents['all'][] = $parent->title;1307 $ detail->jsdoc_parents[$parent->type][] = $parent->title;1308 natsort($ detail->jsdoc_parents[$parent->type]);1309 } 1310 1311 $query = db_query("SELECT j.type, j.subtype, nr.title AS parent FROM {jsdoc_variable_hierarchy} j JOIN {node_revisions} nr ON (nr.vid = j.parent_vid) WHERE j.vid = %d AND j.type IN ('chain', 'mixin')", $ detail->vid);1306 $object->jsdoc_parents['all'][] = $parent->title; 1307 $object->jsdoc_parents[$parent->type][] = $parent->title; 1308 natsort($object->jsdoc_parents[$parent->type]); 1309 } 1310 1311 $query = db_query("SELECT j.type, j.subtype, nr.title AS parent FROM {jsdoc_variable_hierarchy} j JOIN {node_revisions} nr ON (nr.vid = j.parent_vid) WHERE j.vid = %d AND j.type IN ('chain', 'mixin')", $object->vid); 1312 1312 while ($chain = db_fetch_object($query)) { 1313 1313 if (!$chain->subtype) { … … 1315 1315 } 1316 1316 $detail->jsdoc_parents['all'][] = $chain->parent; 1317 $ detail->jsdoc_parents[$chain->type][$chain->subtype][] = $chain->parent;1318 natsort($ detail->jsdoc_parents[$chain->type][$chain->subtype]);1319 } 1320 1321 $ detail->jsdoc_parents['all'] = array_unique($detail->jsdoc_parents['all']);1322 natcasesort($ detail->jsdoc_parents['all']);1323 $node->jsdoc_parents = $ detail->jsdoc_parents;1317 $object->jsdoc_parents[$chain->type][$chain->subtype][] = $chain->parent; 1318 natsort($object->jsdoc_parents[$chain->type][$chain->subtype]); 1319 } 1320 1321 $object->jsdoc_parents['all'] = array_unique($object->jsdoc_parents['all']); 1322 natcasesort($object->jsdoc_parents['all']); 1323 $node->jsdoc_parents = $object->jsdoc_parents; 1324 1324 } 1325 1325 elseif ($node->type == 'jsdoc_variable') { … … 1343 1343 1344 1344 return $node->jsdoc_parents; 1345 } 1346 1347 function jsdoc_is_initialized(&$node) { 1348 if (isset($node->jsdoc_initialized)) { 1349 return $node->jsdoc_initialized; 1350 } 1351 return jsdoc_get_variable_object($node)->jsdoc_initialized; 1345 1352 } 1346 1353 … … 1688 1695 } 1689 1696 1697 /* 1690 1698 function _jsdoc_detail_view($node) { 1691 1699 if ($node->type == 'jsdoc_variable') { … … 2173 2181 return $node; 2174 2182 } 2183 */ 2175 2184 2176 2185 /** … … 2464 2473 $full_url = $node->jsdoc_url; 2465 2474 2466 $resources = array();2467 2468 2475 $variables = array(); 2469 2476 $source = ''; … … 2471 2478 $parameters = array(); 2472 2479 2480 $resources = jsdoc_get_variable_resources($node); 2481 2473 2482 if ($node->type == 'jsdoc_object') { 2474 2483 $object = $node; 2475 2484 } 2476 2485 elseif ($node->type == 'jsdoc_variable') { 2477 $resource = jsdoc_get_resource($node);2478 2486 $version = jsdoc_get_version($node); 2479 2487 … … 2484 2492 $classlike = jsdoc_get_classlike($node); 2485 2493 $full_url = jsdoc_get_full_url($node); 2494 2486 2495 $object = jsdoc_get_variable_object($node); 2487 2488 2496 if ($object || count($resources)) { 2489 2497 $used = 1; … … 2523 2531 $display->formatted = _jsdoc_format_type($display->object_type, $classlike);; 2524 2532 2525 $display = _jsdoc_theme_clone($node);2526 2533 if (!empty($resources)) { 2534 $display = _jsdoc_theme_clone($node); 2527 2535 $display->multiple = count($resources) != 1; 2528 2536 $display_resources = array(); … … 3017 3025 } 3018 3026 3019 function jsdoc_get_resources($node, $environments) { 3020 if ($node->jsdoc_resources) { 3027 function jsdoc_get_variable_resources(&$node) { 3028 if (isset($node->variable_resources)) { 3029 return $node->variable_resources; 3030 } 3031 3032 $node->variable_resources = array(); 3033 if ($node->type == 'jsdoc_variable') { 3034 $query = db_query("SELECT j.resource_nid AS nid, j.resource_vid AS vid FROM {jsdoc_objects} j JOIN {node_revisions} nr ON (nr.vid = j.vid) WHERE nr.title = '%s' AND BINARY nr.title = '%s' AND j.version = %d", $node->title, $node->title, jsdoc_get_version($node)->nid); 3035 while ($result = db_fetch_object($query)) { 3036 $node->variable_resources[] = _jsdoc_node_load($result->nid, $result->vid); 3037 } 3038 } 3039 elseif ($node->type == 'jsdoc_object') { 3040 if ($resource = jsdoc_get_resource($node)) { 3041 $node->variable_resources[] = $resource; 3042 } 3043 } 3044 3045 return $node->variable_resources; 3046 } 3047 3048 function jsdoc_get_resources(&$node, $environments) { 3049 if (isset($node->jsdoc_resources)) { 3021 3050 return; 3022 3051 } 3023 3052 3053 $node->jsdoc_provide_vids = array(); 3054 $node->jsdoc_resources = array(); 3055 3024 3056 if ($node->type == 'jsdoc_object') { 3025 $detail = $node; 3026 } 3027 elseif ($node->type == 'jsdoc_variable' and $node->jsdoc_detail) { 3028 $detail = $node->jsdoc_detail; 3029 if (!$detail->type) { 3030 $detail = _jsdoc_node_load($detail->nid, $detail->vid); 3031 } 3057 $object = $node; 3058 } 3059 elseif ($node->type == 'jsdoc_variable' && jsdoc_get_variable_object($node)) { 3060 $object = jsdoc_get_variable_object($node); 3032 3061 } 3033 3062 … … 3035 3064 $node_resource = jsdoc_get_resource($node); 3036 3065 3037 if ($ detail&& $provide) {3038 $ detail_provide = jsdoc_get_provide($detail);3066 if ($object && $provide) { 3067 $object_provide = jsdoc_get_provide($object); 3039 3068 $resource_tree = _jsdoc_get_tree($environments, $provide->vid); 3040 3069 $provide_vids = array(); … … 3052 3081 $resources[] = $resource_node; 3053 3082 } 3054 if ($ detail_provide->vid && !in_array($detail_provide->vid, $provide_vids)) {3055 $provide_vids[] = $ detail_provide->vid;3056 $resource_node = _jsdoc_node_load($ detail_provide->nid, $detail_provide->vid);3083 if ($object_provide->vid && !in_array($object_provide->vid, $provide_vids)) { 3084 $provide_vids[] = $object_provide->vid; 3085 $resource_node = _jsdoc_node_load($object_provide->nid, $object_provide->vid); 3057 3086 $resource_node->jsdoc_resource_depth = -1; 3058 3087 $resources[] = $resource_node; 3059 3088 } 3060 $node->jsdoc_provide_vids = $detail->jsdoc_provide_vids = array_unique($provide_vids); 3061 $node->jsdoc_resources = $detail->jsdoc_resources = $resources; 3062 } 3063 else { 3064 $node->jsdoc_provide_vids = array(); 3065 $node->jsdoc_resources = array(); 3066 } 3089 $node->jsdoc_provide_vids = $object->jsdoc_provide_vids = array_unique($provide_vids); 3090 $node->jsdoc_resources = $object->jsdoc_resources = $resources; 3091 } 3092 3093 return (object)array( 3094 'jsdoc_provide_vids' => $node->jsdoc_provide_vids, 3095 'jsdoc_resources' => $node->jsdoc_resources 3096 ); 3067 3097 } 3068 3098