Changeset 16216
- Timestamp:
- 2008-06-26T17:34:51+12:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
gsdl/trunk/src/recpt/dynamicclassifieraction.cpp
r16215 r16216 176 176 text_t current_classifier_node_OID = ""; 177 177 text_t current_metadata_value_filter = ""; 178 text_t classifier_node_separator = classifier_options["-split_using_hierarchy_separator"]; 178 179 int classifier_node_indent = 0; 179 180 … … 192 193 text_t selected_hlist_node_OID = output_hlist_classifier_nodes (current_classifier_node_OID, current_metadata_value_filter, "", classifier_options, args, collectproto, browsers, disp, outconvert, textout, logout); 193 194 194 current_classifier_node_OID = selected_hlist_node_OID + "|";195 current_classifier_node_OID = selected_hlist_node_OID + classifier_node_separator; 195 196 } 196 197 … … 215 216 // Split the classifier node OID into its hierarchical parts, then remove any we've already dealt with (HLists) 216 217 text_tlist classifier_node_OID_parts_remaining; 217 split char(classifier_node_OID_sans_grouping.begin(), classifier_node_OID_sans_grouping.end(), '|', classifier_node_OID_parts_remaining);218 splitword (classifier_node_OID_sans_grouping.begin(), classifier_node_OID_sans_grouping.end(), classifier_node_separator, classifier_node_OID_parts_remaining); 218 219 if (classifier_options["-use_hlist_at_top"] == "1") 219 220 { … … 222 223 223 224 text_t classifier_node_metadata_value = classifier_node_OID_sans_grouping; 224 text_t classifier_node_metadata_value_filter = classifier_node_metadata_value + "|*";225 text_t classifier_node_metadata_value_filter = classifier_node_metadata_value + classifier_node_separator + "*"; 225 226 226 227 // If "-split_greenstone_dates" is on the metadata value and filter doesn't quite match the OID -- fix this … … 229 230 classifier_node_metadata_value.replace("|", ""); 230 231 classifier_node_metadata_value_filter = classifier_node_metadata_value; 231 classifier_node_metadata_value_filter += ((classifier_node_metadata_value_filter.size() == 8) ? "|*" : "*"); 232 if (classifier_node_metadata_value_filter.size() == 8) 233 { 234 classifier_node_metadata_value_filter += classifier_node_separator; 235 } 236 classifier_node_metadata_value_filter += "*"; 232 237 } 233 238 … … 245 250 246 251 // Output the child classifier nodes 247 output_child_classifier_nodes (classifier_node_OID + "|", classifier_node_metadata_value, classifier_node_metadata_value_filter, classifier_node_indent, classifier_options, args, collectproto, browsers, disp, outconvert, textout, logout); 252 current_classifier_node_OID = classifier_node_OID + classifier_node_separator; 253 output_child_classifier_nodes (current_classifier_node_OID, classifier_node_metadata_value, classifier_node_metadata_value_filter, classifier_node_indent, classifier_options, args, collectproto, browsers, disp, outconvert, textout, logout); 248 254 249 255 // Get the document nodes at this level … … 270 276 { 271 277 text_tmap classifier_options; 278 279 // Default values 280 classifier_options["-split_using_hierarchy_separator"] = "|"; 272 281 273 282 // Split the classifier specification string by spaces … … 339 348 340 349 // Determine the label for the hlist classifier node from the metadata value 341 text_tarray hlist_metadata_value_parts; 342 splitchar (hlist_metadata_value.begin(), hlist_metadata_value.end(), '|', hlist_metadata_value_parts); 350 text_tlist hlist_metadata_value_parts; 351 text_t hlist_node_separator = classifier_options["-split_using_hierarchy_separator"]; 352 splitword (hlist_metadata_value.begin(), hlist_metadata_value.end(), hlist_node_separator, hlist_metadata_value_parts); 343 353 text_t hlist_classifier_node_label = hlist_metadata_value_parts.front(); 344 354 … … 427 437 classifier_node_indent++; 428 438 429 upper_classifier_node_OID += "|";439 upper_classifier_node_OID += classifier_options["-split_using_hierarchy_separator"]; 430 440 upper_classifier_node_labels_iterator++; 431 441 } … … 464 474 // We need to remove the current position from the metadata value to leave the child metadata value 465 475 text_t child_metadata_value = hierarchical_metadata_value; 466 if (starts_with(hierarchical_metadata_value, classifier_node_hierarchical_metadata_value + "|")) 467 { 468 child_metadata_value = substr(hierarchical_metadata_value.begin() + (classifier_node_hierarchical_metadata_value + "|").size(), hierarchical_metadata_value.end()); 476 text_t child_node_separator = classifier_options["-split_using_hierarchy_separator"]; 477 if (starts_with(hierarchical_metadata_value, classifier_node_hierarchical_metadata_value + child_node_separator)) 478 { 479 child_metadata_value = substr(hierarchical_metadata_value.begin() + (classifier_node_hierarchical_metadata_value + child_node_separator).size(), hierarchical_metadata_value.end()); 469 480 } 470 481 471 482 // Determine the label for the child classifier node from the metadata value 472 text_t arraychild_metadata_value_parts;473 split char (child_metadata_value.begin(), child_metadata_value.end(), '|', child_metadata_value_parts);483 text_tlist child_metadata_value_parts; 484 splitword (child_metadata_value.begin(), child_metadata_value.end(), child_node_separator, child_metadata_value_parts); 474 485 text_t child_classifier_node_label = child_metadata_value_parts.front(); 475 486
Note:
See TracChangeset
for help on using the changeset viewer.