本文整理汇总了PHP中Tree::add_node方法的典型用法代码示例。如果您正苦于以下问题:PHP Tree::add_node方法的具体用法?PHP Tree::add_node怎么用?PHP Tree::add_node使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Tree
的用法示例。
在下文中一共展示了Tree::add_node方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: display
function display()
{
$catalogtree = new Tree('productcatalog');
$catalogtree->set_param('module', 'ProductTemplates');
$nodes = get_categories_and_products(null);
foreach ($nodes as $node) {
$catalogtree->add_node($node);
}
$this->override_popup['template_data']['treeheader'] = $catalogtree->generate_header();
$this->override_popup['template_data']['treeinstance'] = '{literal}' . $catalogtree->generate_nodes_array() . '{/literal}';
parent::display();
}
示例2: buildTreeView
/**
* A Static method used to build the initial treeview when the page is first displayed
*
* @param String div_id - this div in which to display the tree
* @return Tree - the tree that is built
*/
function buildTreeView($div_id, $isAlive = true)
{
$tree = new Tree($div_id);
$nodes = array();
if ($isAlive) {
$nodes = PackageManager::getCategories('');
}
foreach ($nodes as $arr_node) {
$node = new Node($arr_node['id'], $arr_node['label']);
$node->dynamicloadfunction = 'PackageManager.loadDataForNodeForPackage';
$node->expanded = false;
$node->dynamic_load = true;
$node->set_property('href', "javascript:PackageManager.catClick('treeview');");
$tree->add_node($node);
$node->set_property('description', $arr_node['description']);
}
return $tree;
}
示例3: Tree
//refresh tree
$tagstree = new Tree('tagstree');
$tagstree->set_param('module', 'KBTags');
if ($admin) {
$tagstree->set_param('moduleview', 'admin');
$nodes = get_tags_nodes(false, true, null);
$root_node = new Node('All_Tags', $mod_strings['LBL_TAGS_ROOT_LABEL']);
foreach ($nodes as $node) {
$root_node->add_node($node);
}
$href_string = "javascript:handler:SUGAR.kb.adminClick()";
if ($root_node) {
$root_node->set_property("href", $href_string);
}
$root_node->expanded = true;
$tagstree->add_node($root_node);
} else {
$tagstree->set_param('moduleview', 'modal');
//$nodes = get_tags_nodes_cached(null);
//$nodes=get_tags_nodes(false,null);
$nodes = get_tags_nodes(false, false, null);
$root_node = new Node('All_Tags', $mod_strings['LBL_TAGS_ROOT_LABEL']);
foreach ($nodes as $node) {
$root_node->add_node($node);
}
$href_string = "javascript:handler:SUGAR.kb.modalClose('tagstree')";
if ($root_node) {
$root_node->set_property("href", $href_string);
}
$root_node->expanded = true;
$tagstree->add_node($root_node);
示例4: getMailboxNodes
/**
* returns an array of nodes that correspond to IMAP mailboxes.
* @param bool $forceRefresh
* @return object TreeView object
*/
function getMailboxNodes()
{
global $sugar_config;
global $current_user;
global $app_strings;
$tree = new Tree("frameFolders");
$tree->tree_style = 'include/ytree/TreeView/css/check/tree.css';
$nodes = array();
$ie = new InboundEmail();
$refreshOffset = $this->cacheTimeouts['folders'];
// 5 mins. this will be set via user prefs
$rootNode = new ExtNode($app_strings['LBL_EMAIL_HOME_FOLDER'], $app_strings['LBL_EMAIL_HOME_FOLDER']);
$rootNode->dynamicloadfunction = '';
$rootNode->expanded = true;
$rootNode->dynamic_load = true;
$showFolders = unserialize(base64_decode($current_user->getPreference('showFolders', 'Emails')));
if (empty($showFolders)) {
$showFolders = array();
}
// INBOX NODES
if ($current_user->hasPersonalEmail()) {
$personals = $ie->retrieveByGroupId($current_user->id);
foreach ($personals as $k => $personalAccount) {
if (in_array($personalAccount->id, $showFolders)) {
// check for cache value
$cacheRoot = sugar_cached("modules/Emails/{$personalAccount->id}");
$this->preflightEmailCache($cacheRoot);
if ($this->validCacheFileExists($personalAccount->id, 'folders', "folders.php")) {
$mailboxes = $this->getMailBoxesFromCacheValue($personalAccount);
} else {
$mailboxes = $personalAccount->getMailboxes();
}
$acctNode = new ExtNode('Home::' . $personalAccount->name, $personalAccount->name);
$acctNode->dynamicloadfunction = '';
$acctNode->expanded = false;
$acctNode->set_property('cls', 'ieFolder');
$acctNode->set_property('ieId', $personalAccount->id);
$acctNode->set_property('protocol', $personalAccount->protocol);
if (array_key_exists('Home::' . $personalAccount->name, $this->folderStates)) {
if ($this->folderStates['Home::' . $personalAccount->name] == 'open') {
$acctNode->expanded = true;
}
}
$acctNode->dynamic_load = true;
$nodePath = $acctNode->_properties['id'];
foreach ($mailboxes as $k => $mbox) {
$acctNode->add_node($this->buildTreeNode($k, $k, $mbox, $personalAccount->id, $nodePath, false, $personalAccount));
}
$rootNode->add_node($acctNode);
}
}
}
// GROUP INBOX NODES
$beans = $ie->retrieveAllByGroupId($current_user->id, false);
foreach ($beans as $k => $groupAccount) {
if (in_array($groupAccount->id, $showFolders)) {
// check for cache value
$cacheRoot = sugar_cached("modules/Emails/{$groupAccount->id}");
$this->preflightEmailCache($cacheRoot);
//$groupAccount->connectMailserver();
if ($this->validCacheFileExists($groupAccount->id, 'folders', "folders.php")) {
$mailboxes = $this->getMailBoxesFromCacheValue($groupAccount);
} else {
$mailboxes = $groupAccount->getMailBoxesForGroupAccount();
}
$acctNode = new ExtNode($groupAccount->name, "group.{$groupAccount->name}");
$acctNode->dynamicloadfunction = '';
$acctNode->expanded = false;
$acctNode->set_property('isGroup', 'true');
$acctNode->set_property('ieId', $groupAccount->id);
$acctNode->set_property('protocol', $groupAccount->protocol);
if (array_key_exists('Home::' . $groupAccount->name, $this->folderStates)) {
if ($this->folderStates['Home::' . $groupAccount->name] == 'open') {
$acctNode->expanded = true;
}
}
$acctNode->dynamic_load = true;
$nodePath = $rootNode->_properties['id'] . "::" . $acctNode->_properties['id'];
foreach ($mailboxes as $k => $mbox) {
$acctNode->add_node($this->buildTreeNode($k, $k, $mbox, $groupAccount->id, $nodePath, true, $groupAccount));
}
$rootNode->add_node($acctNode);
}
}
// SugarFolder nodes
/* SugarFolders are built at onload when the UI renders */
$tree->add_node($rootNode);
return $tree;
}
示例5: XTemplate
/**
*
*/
function process_page()
{
global $theme;
global $mod_strings;
global $app_strings;
global $currentModule;
global $sugar_version, $sugar_config;
global $app_list_strings;
global $sugar_config;
$b_from_documents = false;
if (isset($_REQUEST['caller']) && $_REQUEST['caller'] == 'Documents') {
$b_from_documents = true;
}
//initalize template
$form = new XTemplate('modules/Documents/Popup_picker.html');
$form->assign('MOD', $mod_strings);
$form->assign('APP', $app_strings);
$form->assign('THEME', $theme);
$form->assign('MODULE_NAME', $currentModule);
//tree header.
$doctree = new Tree('doctree');
$doctree->set_param('module', 'Documents');
if ($b_from_documents) {
$doctree->set_param('caller', 'Documents');
$href_string = "javascript:populate_parent_search('doctree')";
} else {
$href_string = "javascript:populate_search('doctree')";
}
$nodes = get_category_nodes($href_string);
foreach ($nodes as $node) {
$doctree->add_node($node);
}
$form->assign("TREEHEADER", $doctree->generate_header());
$form->assign("TREEINSTANCE", $doctree->generate_nodes_array());
$site_data = "<script> var site_url= {\"site_url\":\"" . getJavascriptSiteURL() . "\"};</script>\n";
$form->assign("SITEURL", $site_data);
$form->parse('main.SearchHeader.TreeView');
$treehtml = $form->text('main.SearchHeader.TreeView');
$form->reset('main.SearchHeader.TreeView');
//end tree
if (isset($_REQUEST['caller']) && $_REQUEST['caller'] == 'Documents') {
///process treeview and return.
return insert_popup_header($theme) . $treehtml . insert_popup_footer();
}
////////////////////////process full search form and list view.//////////////////////////////
$output_html = '';
$where = '';
$where = $this->_get_where_clause();
$name = empty($_REQUEST['name']) ? '' : $_REQUEST['name'];
$document_name = empty($_REQUEST['document_name']) ? '' : $_REQUEST['document_name'];
$category_id = empty($_REQUEST['category_id']) ? '' : $_REQUEST['category_id'];
$subcategory_id = empty($_REQUEST['subcategory_id']) ? '' : $_REQUEST['subcategory_id'];
$template_type = empty($_REQUEST['template_type']) ? '' : $_REQUEST['template_type'];
$is_template = empty($_REQUEST['is_template']) ? '' : $_REQUEST['is_template'];
$request_data = empty($_REQUEST['request_data']) ? '' : $_REQUEST['request_data'];
$hide_clear_button = empty($_REQUEST['hide_clear_button']) ? false : true;
$button = "<form action='index.php' method='post' name='form' id='form'>\n";
if (!$hide_clear_button) {
$button .= "<input type='button' name='button' class='button' onclick=\"send_back('','');\" title='" . $app_strings['LBL_CLEAR_BUTTON_TITLE'] . "' value=' " . $app_strings['LBL_CLEAR_BUTTON_LABEL'] . " ' />\n";
}
$button .= "<input type='submit' name='button' class='button' onclick=\"window.close();\" title='" . $app_strings['LBL_CANCEL_BUTTON_TITLE'] . "' accesskey='" . $app_strings['LBL_CANCEL_BUTTON_KEY'] . "' value=' " . $app_strings['LBL_CANCEL_BUTTON_LABEL'] . " ' />\n";
$button .= "</form>\n";
$form->assign('NAME', $name);
$form->assign('DOCUMENT_NAME', $document_name);
$form->assign('request_data', $request_data);
$form->assign("CATEGORY_OPTIONS", get_select_options_with_id($app_list_strings['document_category_dom'], $category_id));
$form->assign("SUB_CATEGORY_OPTIONS", get_select_options_with_id($app_list_strings['document_subcategory_dom'], $subcategory_id));
$form->assign("IS_TEMPLATE_OPTIONS", get_select_options_with_id($app_list_strings['checkbox_dom'], $is_template));
$form->assign("TEMPLATE_TYPE_OPTIONS", get_select_options_with_id($app_list_strings['document_template_type_dom'], $template_type));
ob_start();
insert_popup_header($theme);
$output_html .= ob_get_contents();
ob_end_clean();
$output_html .= get_form_header($mod_strings['LBL_SEARCH_FORM_TITLE'], '', false);
$form->parse('main.SearchHeader');
$output_html .= $form->text('main.SearchHeader');
// Reset the sections that are already in the page so that they do not print again later.
$form->reset('main.SearchHeader');
//add tree view to output_html.
$output_html .= $treehtml;
// create the listview
$seed_bean = new Document();
$ListView = new ListView();
$ListView->show_select_menu = false;
$ListView->show_delete_button = false;
$ListView->show_export_button = false;
$ListView->process_for_popups = true;
$ListView->setXTemplate($form);
$ListView->setHeaderTitle($mod_strings['LBL_LIST_FORM_TITLE']);
$ListView->setHeaderText($button);
$ListView->setQuery($where, '', 'document_name', 'DOCUMENT');
$ListView->setModStrings($mod_strings);
ob_start();
$ListView->processListView($seed_bean, 'main', 'DOCUMENT');
$output_html .= ob_get_contents();
ob_end_clean();
$output_html .= insert_popup_footer();
//.........这里部分代码省略.........
示例6: return_advanced_tab
//.........这里部分代码省略.........
}
$a1_style = '';
$x1_style = '';
$a2_style = 'none';
$x2_style = 'none';
//set the expiration date filter if it exists. Also set the style properties
//that will determine whether to show or hide the supporting text boxes
if (isset($_POST['active_date_filter'])) {
$ss_adv->assign("ACTIVE_DATE_FILTER_OPTIONS", get_select_options_with_id($app_list_strings['kbdocument_date_filter_options'], $_POST['active_date_filter']));
if ($_POST['active_date_filter'] == 'on' || $_POST['active_date_filter'] == 'before' || $_POST['active_date_filter'] == 'after') {
$a1_style = '';
} else {
$a1_style = 'none';
}
if ($_POST['active_date_filter'] == 'between_dates') {
$a2_style = '';
}
} else {
$ss_adv->assign("ACTIVE_DATE_FILTER_OPTIONS", get_select_options_with_id($app_list_strings['kbdocument_date_filter_options'], ''));
}
//set the expiration date filter if it exists. Also set the style properties
//that will determine whether to show or hide the supporting text boxes
if (isset($_POST['exp_date_filter'])) {
$ss_adv->assign("EXP_DATE_FILTER_OPTIONS", get_select_options_with_id($app_list_strings['kbdocument_date_filter_options'], $_POST['exp_date_filter']));
if ($_POST['exp_date_filter'] == 'on' || $_POST['exp_date_filter'] == 'before' || $_POST['exp_date_filter'] == 'after') {
$x1_style = '';
} else {
$x1_style = 'none';
}
if ($_POST['exp_date_filter'] == 'between_dates') {
$x2_style = '';
}
} else {
$ss_adv->assign("EXP_DATE_FILTER_OPTIONS", get_select_options_with_id($app_list_strings['kbdocument_date_filter_options'], ''));
}
//set the style sheet properties for date filters
$ss_adv->assign("A_DATE1_STYLE", $a1_style);
$ss_adv->assign("X_DATE1_STYLE", $x1_style);
$ss_adv->assign("A_DATE2_STYLE", $a2_style);
$ss_adv->assign("X_DATE2_STYLE", $x2_style);
$attach_name_style = 'none';
$attach_mime_style = 'none';
if (isset($_POST['attachments'])) {
$ss_adv->assign("ATTACHMENT_SELECT_OPTIONS", get_select_options_with_id($app_list_strings['kbdocument_attachment_option_dom'], $_POST['attachments']));
if ($_POST['attachments'] == 'mime') {
$attach_mime_style = ' ';
} else {
if ($_POST['attachments'] == 'name') {
$attach_name_style = ' ';
}
}
} else {
$ss_adv->assign("ATTACHMENT_SELECT_OPTIONS", get_select_options_with_id($app_list_strings['kbdocument_attachment_option_dom'], ''));
}
$ss_adv->assign("ATTACHMENT_NAME_STYLE", $attach_name_style);
$ss_adv->assign("ATTACHMENT_MIME_STYLE", $attach_mime_style);
if (!empty($focus->kbdoc_approver_id)) {
$user = BeanFactory::getBean('Users', $focus->kbdoc_approver_id);
$ss_adv->assign("KBDOC_APPROVER_NAME", $user->name);
$ss_adv->assign("KBDOC_APPROVER_ID", $focus->kbdoc_approver_id);
}
global $timedate;
$ss_adv->assign("CALENDAR_DATEFORMAT", $timedate->get_cal_date_format());
$ss_adv->assign("USER_DATE_FORMAT", $timedate->get_user_date_format());
$ss_adv->assign('JSON_CONFIG_JAVASCRIPT', $json_config->get_static_json_server());
if (isset($_POST['frequency'])) {
$ss_adv->assign("FRQ_VIEW_OPTIONS", get_select_options_with_id($app_list_strings['kbdocument_viewing_frequency_dom'], $_POST['frequency']));
} else {
$ss_adv->assign("FRQ_VIEW_OPTIONS", get_select_options_with_id($app_list_strings['kbdocument_viewing_frequency_dom'], ''));
}
if (isset($_POST['is_external_article'])) {
if ($_POST['is_external_article']) {
$ss_adv->assign('is_external_id', '1');
$ss_adv->assign('is_external_checked', 'checked');
} else {
$ss_adv->assign('is_external_id', '0');
$ss_adv->assign('is_external_checked', '');
}
}
//create tree for tag selection modal
$tag = BeanFactory::getBean('KBTags');
$ss_adv->assign("TAG_NAME", $tag->tag_name);
//tree header.
$tagstree = new Tree('tagstree');
$tagstree->set_param('module', 'KBTags');
$tagstree->set_param('moduleview', 'modal');
$nodes = get_tags_nodes(false, false, null);
$root_node = new Node('All_Tags', $mod_strings['LBL_TAGS_ROOT_LABEL']);
foreach ($nodes as $node) {
$root_node->add_node($node);
}
$href_string = "javascript:handler:modalClose('tagstree')";
if ($root_node) {
$root_node->set_property("href", $href_string);
}
$root_node->expanded = true;
$tagstree->add_node($root_node);
$ss_adv->assign("TREEINSTANCE", $tagstree->generate_nodes_array());
return $ss_adv->fetch("modules/KBDocuments/tpls/advancedTab.tpl");
}
示例7: getJSONobj
require_once 'include/JSON.php';
require_once 'include/upload_file.php';
require_once 'vendor/ytree/Tree.php';
require_once 'vendor/ytree/Node.php';
require_once 'modules/KBTags/TreeData.php';
$json = getJSONobj();
$search_tag_name = $json->decode(html_entity_decode($_REQUEST['searchTagName']));
if (!empty($search_tag_name)) {
//create campaign log
$query = "select id from kbtags where deleted = '0' and tag_name={$search_tag_name} order by tag_name";
$result = $GLOBALS['db']->query($query);
$searched_tagIds = $GLOBALS['db']->fetchByAssoc($result);
//next search the parents (root node) of each tag found
//combine parent child/ren and expand tree
$tagstree = new Tree('tagstree');
$tagstree->set_param('module', 'KBTags');
$tagstree->set_param('moduleview', 'SearchTags');
$nodes = get_search_tags_nodes(true, $searched_tagIds);
foreach ($nodes as $node) {
$tagstree->add_node($node);
}
}
$response = $tagstree->generate_nodes_array();
if (!empty($response)) {
echo $response;
//$json = getJSONobj();
//print $json->encode($response);
//return the parameters
}
sugar_cleanup();
exit;
示例8: Tree
$tagstreeModal = new Tree('tagstreeMoveDocsModal');
$tagstreeModal->set_param('module', 'KBTags');
$tagstreeModal->set_param('moduleview', 'modalMoveDocs');
$nodes = get_tags_modal_nodes(null, false);
foreach ($nodes as $node) {
$tagstreeModal->add_node($node);
}
$response = $tagstreeModal->generate_nodes_array();
}
if ($tagsMode == 'Apply Tags') {
$tagstreeApply = new Tree('tagstreeApplyTags');
$tagstreeApply->set_param('module', 'KBTags');
$tagstreeApply->set_param('moduleview', 'applyTags');
$nodes = get_tags_modal_nodes(null, true);
foreach ($nodes as $node) {
$tagstreeApply->add_node($node);
}
$response = $tagstreeApply->generate_nodes_array();
}
//ADDING FOR SEARCH
if ($tagsMode == 'Search Tags') {
global $mod_strings;
if (!empty($search_tag_name)) {
$search_tag_name = $GLOBALS['db']->quote($search_tag_name[0]);
$query = "select id,tag_name from kbtags where tag_name='{$search_tag_name}' and deleted = 0";
$result = $GLOBALS['db']->query($query);
//$searched_tagIds = $GLOBALS['db']->fetchByAssoc($result);
$searched_and_related_Ids = array();
$searched_ids = array();
//for each search tag id find all the way to the root and save the nodes enroute
//in the sequence.
示例9: display
/**
* @see SugarView::display()
*/
public function display()
{
global $mod_strings;
$ss = new Sugar_Smarty();
$ss->assign("MOD", $GLOBALS['mod_strings']);
$ss->assign("INSTRUCTION", "<h1>{$mod_strings['LNK_BROWSER']}</h1>");
//tree header.
$doctree = new Tree('doctree');
$doctree->tree_style = 'include/ytree/TreeView/css/default/tree.css';
$doctree->set_param('module', 'xeBayCategories');
$nodes = get_node_data(array('TREE' => array('depth' => 0)), true);
// $nodes = get_category_nodes($href_string);
// $nodes = $this->get_test_nodes($href_string);
foreach ($nodes as $node) {
$doctree->add_node($node);
}
$ss->assign("TREEHEADER", $doctree->generate_header());
$ss->assign("TREEINSTANCE", $doctree->generate_nodes_array());
$site_data = "<script> var site_url= {\"site_url\":\"" . getJavascriptSiteURL() . "\"};</script>\n";
$ss->assign("SITEURL", $site_data);
$javascript = <<<EOQ
EOQ;
$ss->assign("JAVASCRIPT", $javascript);
echo $ss->fetch("modules/xeBayCategories/tpls/browser.tpl");
}
示例10: display
function display()
{
global $app_strings, $current_language, $mod_strings;
require_once 'cache/dashlets/dashlets.php';
$tree = new Tree('Dashlets');
// key => number of dashlets in cat
$theCats = array('Module Views' => 0, 'Portal' => 0, 'Charts' => 0, 'Tools' => 0, 'Miscellaneous' => 0);
$categories = array();
foreach ($theCats as $cat => $num) {
$categories[$cat] = new Node($cat, $mod_strings['dashlet_categories_dom'][$cat], true);
}
$dashletStrings = array();
asort($dashletsFiles);
foreach ($dashletsFiles as $className => $files) {
if (!empty($files['meta']) && is_file($files['meta'])) {
require_once $files['meta'];
// get meta file
$directory = substr($files['meta'], 0, strrpos($files['meta'], '/') + 1);
if (is_file($directory . $files['class'] . '.' . $current_language . '.lang.php')) {
require_once $directory . $files['class'] . '.' . $current_language . '.lang.php';
} elseif (is_file($directory . $files['class'] . '.en_us.lang.php')) {
require_once $directory . $files['class'] . '.en_us.lang.php';
}
// try to translate the string
if (empty($dashletStrings[$files['class']][$dashletMeta[$files['class']]['title']])) {
$title = $dashletMeta[$files['class']]['title'];
} else {
$title = $dashletStrings[$files['class']][$dashletMeta[$files['class']]['title']];
}
// try to translate the string
if (empty($dashletStrings[$files['class']][$dashletMeta[$files['class']]['description']])) {
$description = $dashletMeta[$files['class']]['description'];
} else {
$description = $dashletStrings[$files['class']][$dashletMeta[$files['class']]['description']];
}
if (empty($dashletMeta[$files['class']]['icon'])) {
// no icon defined in meta data
if (empty($files['icon'])) {
$icon = '';
// no icon found
} else {
// use one found in directory
$icon = '<img border="0" src="' . $files['icon'] . '">';
}
} else {
// use one defined in meta data
$icon = '<img border="0" src="' . $dashletMeta[$files['class']]['icon'] . '">';
}
$node = new Node($title, '<table cellpadding="0" border="0"><tr onclick="return SUGAR.sugarHome.addDashlet(\'' . $className . '\');" onmouseover="return overlib(\'' . $description . '\', FGCLASS, \'olFgClass\', CGCLASS, \'olCgClass\', BGCLASS, \'olBgClass\', TEXTFONTCLASS, \'olFontClass\', CAPTIONFONTCLASS, \'olCapFontClass\', CLOSEFONTCLASS, \'olCloseFontClass\' );" onmouseout="return nd();">
<td valign="top">' . $icon . '</td><td>' . $title . '</td></tr></table>');
if (isset($categories[$dashletMeta[$files['class']]['category']])) {
// is it categorized?
$theCats[$dashletMeta[$files['class']]['category']]++;
$categories[$dashletMeta[$files['class']]['category']]->add_node($node);
} else {
// default to misc cat
$theCats['Miscellaneous']++;
$categories['Miscellaneous']->add_node($node);
}
}
}
foreach ($theCats as $cat => $num) {
if ($num != 0) {
// only add cat if there are dashlets in this category
$tree->add_node($categories[$cat]);
}
}
return $tree->generate_nodes_array(false);
}
示例11: XTemplate
function process_page()
{
global $mod_strings, $app_strings, $currentModule, $seed_object, $sugar_version, $sugar_config;
$focus = BeanFactory::getBean('ProductCategories');
if (!isset($_REQUEST['html'])) {
$xtpl = new XTemplate('modules/ProductCategories/Popup_picker.html');
$GLOBALS['log']->debug("using file modules/ProductCategories/Popup_picker1.html");
} else {
$_REQUEST['html'] = preg_replace("/[^a-zA-Z0-9_]/", "", $_REQUEST['html']);
$GLOBALS['log']->debug("_REQUEST['html'] is " . $_REQUEST['html']);
$xtpl = new XTemplate('modules/ProductCategories/' . $_REQUEST['html'] . '.html');
$GLOBALS['log']->debug("using file modules/ProductCategories/" . $_REQUEST['html'] . '.html');
}
insert_popup_header();
//tree header.
$prodcattree = new Tree('productcategories');
$prodcattree->set_param('module', 'ProductCategories');
$parents = array();
if (!empty($_REQUEST['parent_category_id'])) {
$parents = $this->find_parents($_REQUEST['parent_category_id']);
}
$nodes = get_product_categories(null, $parents);
foreach ($nodes as $node) {
$prodcattree->add_node($node);
}
$xtpl->assign("TREEHEADER", $prodcattree->generate_header());
$xtpl->assign("TREEINSTANCE", $prodcattree->generate_nodes_array());
$xtpl->assign("MODULE_NAME", $currentModule);
global $sugar_config;
$site_data = "<script> var site_url= {\"site_url\":\"" . getJavascriptSiteURL() . "\"};</script>\n";
$xtpl->assign("SITEURL", $site_data);
if (!empty($_REQUEST['form']) && $_REQUEST['form'] == 'EditView') {
$the_javascript = "<script type='text/javascript' language='JavaScript'>\n";
$the_javascript .= "function set_return(treeid) { \n";
$the_javascript .= " node=YAHOO.namespace(treeid).selectednode;";
$the_javascript .= " window.opener.document.EditView.parent_id.value = node.data.id;\n";
$the_javascript .= " window.opener.document.EditView.parent_name.value = node.label;\n";
$the_javascript .= " window.close();\n";
$the_javascript .= "}\n";
$the_javascript .= "</script>\n";
$clear_button = "<input title='" . $app_strings['LBL_CLEAR_BUTTON_TITLE'] . "' class='button' LANGUAGE=javascript onclick=\"window.opener.document.EditView.parent_id.value = '';window.opener.document.EditView.parent_name.value = ''; window.close()\" type='submit' name='button' value=' " . $app_strings['LBL_CLEAR_BUTTON_LABEL'] . " '>\n";
$cancel_button = "<input title='" . $app_strings['LBL_CANCEL_BUTTON_TITLE'] . "' accessKey='" . $app_strings['LBL_CANCEL_BUTTON_KEY'] . "' class='button' LANGUAGE=javascript onclick=\"window.close()\" type='submit' name='button' value=' " . $app_strings['LBL_CANCEL_BUTTON_LABEL'] . " '>\n";
}
if (empty($_REQUEST['form']) || $_REQUEST['form'] == 'EditView' && $_REQUEST['tree'] == 'ProdCat') {
$seed_object->show_products = FALSE;
$the_javascript = <<<END
<script type='text/javascript' language='JavaScript'>
var field_id = null;
var field_name = null;
function set_return(treeid) {
if(typeof treeid != 'undefined') {
node=YAHOO.namespace(treeid).selectednode;
} else {
node = {'data': {'id': ''}, 'label': ''};
}
if (typeof window.opener.document.forms.search_form != 'undefined' || window.opener.document.forms.popup_query_form != 'undefined') { // Search
var form = (typeof window.opener.document.forms.search_form != 'undefined') ? window.opener.document.forms.search_form : window.opener.document.forms.popup_query_form;
var searchType = (typeof form.searchFormTab != 'undefined' && form.searchFormTab.value == 'basic_search') ? 'basic' : 'advanced';
field_id = form['category_id_' + searchType];
field_name = form['category_name_' + searchType];
} else if(typeof window.opener.document.ReportsWizardForm != 'undefined') { // reports
field_id = window.opener.document.ReportsWizardForm['ProductCategories:name:id:1'];
field_name = window.opener.document.ReportsWizardForm['ProductCategories:name:name:1'];
} else if(typeof window.opener.document.EditView != 'undefined') {
field_id = window.opener.document.EditView.category_id;
field_name = window.opener.document.EditView.category_name;
}
if(field_id != null && field_name != null) {
field_id.value = node.data.id;
field_name.value = node.label;
}
window.close();
}
</script>
END;
$clear_button = "<input title='" . $app_strings['LBL_CLEAR_BUTTON_TITLE'] . "' class='button' LANGUAGE=javascript onclick=\"set_return()\" type='submit' name='button' value=' " . $app_strings['LBL_CLEAR_BUTTON_LABEL'] . " '>\n";
$cancel_button = "<input title='" . $app_strings['LBL_CANCEL_BUTTON_TITLE'] . "' class='button' LANGUAGE=javascript onclick=\"window.close()\" type='submit' name='button' value=' " . $app_strings['LBL_CANCEL_BUTTON_LABEL'] . " '>\n";
}
$xtpl->assign("SET_RETURN_JS", $the_javascript);
$xtpl->assign("CLEAR_BUTTON", $clear_button);
$xtpl->assign("CANCEL_BUTTON", $cancel_button);
$xtpl->parse('main');
$xtpl->out('main');
}