Exemple #1
0
 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();
 }
        $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);
    }
    //$tagstree->add_node($root_node);
    $response = $tagstree->generate_nodes_array();
} else {
    $response = 1;
}
if (!empty($response)) {
    echo $response;
    //$json = getJSONobj();
    //print $json->encode($response);
    //return the parameters
}
sugar_cleanup();
exit;
Exemple #3
0
 /**
  *
  */
 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();
     return $output_html;
 }
Exemple #4
0
function return_advanced_tab($focus, $json, $json_config)
{
    global $theme, $image_path, $app_list_strings, $mod_strings, $app_strings;
    $ss_adv = new Sugar_Smarty();
    $ss_adv->assign("MOD", $mod_strings);
    $ss_adv->assign("APP", $app_strings);
    //assign back values from last search, if it exists.
    //do not set any values if value has been set
    if (isset($_POST['clear_loaded'])) {
        $_POST['searchText'] = '';
        foreach ($_POST as $_key => $_val) {
            $ss_adv->assign($_key, '');
        }
    } else {
        foreach ($_POST as $_key => $_val) {
            $ss_adv->assign($_key, $_val);
        }
    }
    $popup_request_data = array('call_back_function' => 'set_return', 'form_name' => 'FTSFormAdvanced', 'field_to_name_array' => array('id' => 'kbdoc_approver_id', 'name' => 'kbdoc_approver_name'));
    $ss_adv->assign('encoded_approver_popup_request_data', $json->encode($popup_request_data));
    $popup_request_data = array('call_back_function' => 'set_return', 'form_name' => 'FTSFormAdvanced', 'field_to_name_array' => array('id' => 'kbarticle_author_id', 'name' => 'kbarticle_author_name'));
    $ss_adv->assign('encoded_author_popup_request_data', $json->encode($popup_request_data));
    $popup_request_data = array('call_back_function' => 'set_return', 'form_name' => 'FTSFormAdvanced', 'field_to_name_array' => array('id' => 'tag_id', 'tag_name' => 'tag_name'));
    $ss_adv->assign('encoded_tags_popup_request_data', $json->encode($popup_request_data));
    $popup_request_data = array('call_back_function' => 'set_return', 'form_name' => 'FTSFormAdvanced', 'field_to_name_array' => array('id' => 'team_id', 'name' => 'team_name'));
    $json = getJSONobj();
    $ss_adv->assign('encoded_team_popup_request_data', $json->encode($popup_request_data));
    $ss_adv->assign("PRINT_URL", "index.php?" . $GLOBALS['request_string']);
    $ss_adv->assign("ID", $focus->id);
    $ss_adv->assign("DOCUMENT_NAME", $focus->kbdocument_name);
    $ss_adv->assign("DESCRIPTION", $focus->description);
    $ss_adv->assign("ACTIVE_DATE", $focus->active_date);
    $ss_adv->assign("EXP_DATE", $focus->exp_date);
    $status_option = "<option value='' selected>" . $app_strings['LBL_NONE'] . "</option> ";
    if (isset($_POST['status_id'])) {
        $status_option .= get_select_options_with_id($app_list_strings['kbdocument_status_dom'], $_POST['status_id']);
        $ss_adv->assign("STATUS_OPTIONS", $status_option);
    } else {
        $status_option .= get_select_options_with_id($app_list_strings['kbdocument_status_dom'], '');
        $ss_adv->assign("STATUS_OPTIONS", $status_option);
    }
    if (isset($_POST['saved_search_select']) && !empty($_POST['saved_search_select'])) {
        $ss_adv->assign("SAVED_SEARCH_OPTIONS", getSavedSearchOptions($focus, $_POST['saved_search_select']));
        $savedSearchSelects = $json->encode(array($GLOBALS['app_strings']['LBL_SAVED_SEARCH_SHORTCUT'] . '<br>' . getSavedSearchOptions($focus, $_POST['saved_search_select'], true)));
    } else {
        $ss_adv->assign("SAVED_SEARCH_OPTIONS", getSavedSearchOptions($focus));
        $savedSearchSelects = $json->encode(array($GLOBALS['app_strings']['LBL_SAVED_SEARCH_SHORTCUT'] . '<br>' . getSavedSearchOptions($focus, '', true)));
    }
    $str = "<script>\n    YAHOO.util.Event.addListener(window, 'load', SUGAR.util.fillShortcuts, {$savedSearchSelects});\n    </script>";
    echo $str;
    if (isset($_POST['canned_search'])) {
        $ss_adv->assign("CANNED_SEARCH_OPTIONS", get_select_options_with_id($app_list_strings['kbdocument_canned_search'], $_POST['canned_search']));
    } else {
        $ss_adv->assign("CANNED_SEARCH_OPTIONS", get_select_options_with_id($app_list_strings['kbdocument_canned_search'], ''));
    }
    $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");
}
Exemple #5
0
$tagstree->set_param('module', 'KBTags');
$tagstree->set_param('moduleview', 'modal');
//$nodes = get_tags_nodes_cached(null);
$nodes = get_tags_nodes(false, false, null);
$root_node = new Node('All_Tags', $mod_strings['LBL_TAGS_ROOT_LABEL']);
//$tagstree->add_node($root_node);
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);
$xtpl->assign("TREEINSTANCE", $tagstree->generate_nodes_array());
/* get document body
if(from_html(KBDocument::get_kbdoc_body_without_incrementing_count($focus->id)) != null) {
	$xtpl->assign("KBDOC_BODY", from_html(KBDocument::get_kbdoc_body_without_incrementing_count($focus->id)));
   }
else {
	$xtpl->assign("KBDOC_BODY", "");
  }
*/
//for attachments and kbtags
$kbId = '';
if (!empty($focus->id)) {
    $kbId = $focus->id;
} else {
    if (!empty($old_id)) {
        $xtpl->assign('OLD_ID', $old_id);
Exemple #6
0
if (!empty($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443') {
    $sugar_config['site_url'] = preg_replace('/^http\\:/', 'https:', $sugar_config['site_url']);
}
$site_data = "<script> var site_url= {\"site_url\":\"" . $sugar_config['site_url'] . "\"};</script>\n";
$xtpl->assign("SITEURL", $site_data);
echo '<script> var site_url= {"site_url":"' . $sugar_config['site_url'] . '"};</script>';
$tagstreeModal = new Tree('tagstreeMoveDocsModal');
$tagstreeModal->set_param('module', 'KBTags');
$tagstreeModal->set_param('moduleview', 'modalMoveDocs');
$nodes = get_tags_modal_nodes(null, false);
//$nodes = get_tag_nodes_for_browsing();
//_pp($nodes);
foreach ($nodes as $node) {
    $tagstreeModal->add_node($node);
}
$xtpl->assign("TAGSTREEMOVEDOCSMODAL", $tagstreeModal->generate_nodes_array());
$tagstreeApply = new Tree('tagstreeApplyTags');
$tagstreeApply->set_param('module', 'KBTags');
$tagstreeApply->set_param('moduleview', 'applyTags');
$nodes = get_tags_modal_nodes(null, true);
//$nodes = get_tag_nodes_for_browsing();
foreach ($nodes as $node) {
    $tagstreeApply->add_node($node);
}
//$xtpl->assign("TAGSTREEAPPLYOCSMODAL",$tagstreeApply->generate_nodes_array());
$xtpl->assign("ADMIN_ACTIONS", get_select_options_with_id($app_list_strings['kbadmin_actions_dom'], ''));
$xtpl->parse("main.pro");
$xtpl->parse("main");
$xtpl->out("main");
$savedSearch = BeanFactory::getBean('SavedSearch');
$json = getJSONobj();
Exemple #7
0
    /**
     * @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");
    }
 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);
 }
    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');
    }