Exemplo n.º 1
0
function ActionForm($SubClassID, $phase, $type)
{
    global $loc, $perm;
    global $SubdivisionID;
    global $CatalogueID;
    global $UI_CONFIG, $SUB_FOLDER, $HTTP_ROOT_PATH, $MODULE_FOLDER, $ADMIN_FOLDER, $ADMIN_PATH;
    $nc_core = nc_Core::get_object();
    $db = $nc_core->db;
    $SubdivisionID = $SubdivisionID ? intval($SubdivisionID) : $nc_core->sub_class->get_by_id($SubClassID, 'Subdivision_ID');
    $CatalogueID = $CatalogueID ? intval($CatalogueID) : $nc_core->subdivision->get_by_id($SubdivisionID, 'Catalogue_ID');
    if ($type == 2) {
        $SubEnv = $nc_core->sub_class->get_by_id($SubClassID, 0, 1, 1);
        $ClassEnv = $db->get_row("SELECT * FROM `Class` WHERE `Class_ID` = '" . intval($SubEnv["Class_ID"]) . "'", ARRAY_A);
    } elseif ($type == 1) {
        if (!$SubdivisionID) {
            $SubEnv = $db->get_row("SELECT * FROM `Catalogue` WHERE `Catalogue_ID` = '" . $CatalogueID . "'", ARRAY_A);
        } else {
            $SubEnv = $nc_core->subdivision->get_by_id($SubdivisionID);
        }
        $UI_CONFIG->locationHash = "subclass.add(" . $SubdivisionID . ")";
    }
    if ($phase == 2 && $type == 1 && $SubdivisionID) {
        $Sub_Class_count = $db->get_var("SELECT COUNT(*) FROM `Sub_Class` WHERE `Subdivision_ID` = '" . $SubdivisionID . "'");
        if (!$Sub_Class_count) {
            nc_print_status(CONTROL_CONTENT_SUBDIVISION_FIRST_SUBCLASS, 'info');
        }
    }
    echo "<form enctype='multipart/form-data' method='post' action='SubClass.php' id='adminForm' class='nc-form'>";
    if ($type == 1) {
        // insert
        global $ClassID;
        $Sub_Class_fs = $db->get_var("SELECT c.`File_Mode` FROM `Sub_Class` AS sc, `Class` AS c WHERE sc.`Class_ID` = c.`Class_ID` AND sc.`Subdivision_ID` = '" . $SubdivisionID . "'");
        $sql = "SELECT `Class_ID` as value, " . "CONCAT(`Class_ID`, '. ', `Class_Name`) as description, " . "`Class_Group` as optgroup " . "FROM `Class` " . "WHERE `ClassTemplate` = 0 AND File_Mode = 0 " . "ORDER BY `Class_Group`, `Priority`, `Class_ID`";
        $classesV4 = (array) $db->get_results($sql, ARRAY_A);
        $sql = "SELECT `Class_ID` as value, " . "CONCAT(`Class_ID`, '. ', `Class_Name`) as description, " . "`Class_Group` as optgroup " . "FROM `Class` " . "WHERE `ClassTemplate` = 0 AND File_Mode = 1 " . "ORDER BY `Class_Group`, `Priority`, `Class_ID`";
        $classesV5 = (array) $db->get_results($sql, ARRAY_A);
        if (!$ClassID) {
            if (!$selected_value) {
                $selected_value = $db->get_var("SELECT `Class_ID` FROM `Class` ORDER BY `File_Mode` DESC, `Class_Group`, `Class_ID` LIMIT 1");
            }
        } else {
            $selected_value = $ClassID;
        }
        $ClassEnv = $db->get_row("SELECT * FROM `Class` WHERE `Class_ID`='" . intval($selected_value) . "'", ARRAY_A);
        $Array["AllowTags"] = -1;
        $Array["NL2BR"] = -1;
        $Array["UseCaptcha"] = -1;
        global $SubClassName, $Read_Access_ID, $Write_Access_ID, $Edit_Access_ID, $DefaultAction;
        global $Checked_Access_ID, $Delete_Access_ID;
        global $SubscribeAccessID, $Moderation_ID, $Checked, $Priority, $CustomSettings;
        global $EnglishName, $DaysToHold, $AllowTags, $NL2BR, $RecordsPerPage, $SortBy, $UseCaptcha, $Class_Template_ID, $isNaked;
        if (nc_module_check_by_keyword("cache")) {
            global $CacheForUser;
        }
        if ($Priority == "" && $Checked == "") {
            $Checked = 1;
        }
        if ($Priority == "") {
            $Priority = $db->get_var("SELECT (`Priority` + 1) FROM `Sub_Class` WHERE `Subdivision_ID` = '" . $loc->SubdivisionID . "' ORDER BY `Priority` DESC LIMIT 1");
            list($SubClassName, $EnglishName) = $db->get_row("SELECT `Subdivision_Name`, `EnglishName` FROM `Subdivision` WHERE `Subdivision_ID` = '" . $loc->SubdivisionID . "'", ARRAY_N);
        }
        $Array["Sub_Class_Name"] = $SubClassName;
        $Array["Read_Access_ID"] = $Read_Access_ID;
        $Array["Write_Access_ID"] = $Write_Access_ID;
        $Array["Edit_Access_ID"] = $Edit_Access_ID;
        $Array["Checked_Access_ID"] = $Checked_Access_ID;
        $Array["Delete_Access_ID"] = $Delete_Access_ID;
        $Array["Subscribe_Access_ID"] = $SubscribeAccessID;
        if (nc_module_check_by_keyword("cache")) {
            $Array["Cache_Access_ID"] = $CacheAccessID;
            $Array["Cache_Lifetime"] = $CacheLifetime;
            $Array["CacheForUser"] = $CacheForUser != "" ? $CacheForUser : -1;
        }
        $Array["Moderation_ID"] = $Moderation_ID;
        $Array["DefaultAction"] = $DefaultAction;
        $Array["Checked"] = $Checked;
        $Array["Priority"] = $Priority;
        $Array["EnglishName"] = $EnglishName . ($Sub_Class_count ? '-' . $Sub_Class_count : '');
        $Array["DaysToHold"] = $DaysToHold;
        if ($AllowTags != "") {
            $Array["AllowTags"] = $AllowTags;
        }
        if ($NL2BR != "") {
            $Array["NL2BR"] = $NL2BR;
        }
        if ($UseCaptcha != "") {
            $Array["UseCaptcha"] = $UseCaptcha;
        }
        $Array["RecordsPerPage"] = $RecordsPerPage;
        $Array["SortBy"] = $SortBy;
        $Array["Class_Template_ID"] = $Class_Template_ID;
        $Array["isNaked"] = $isNaked;
        $Array["SrcMirror"] = $SrcMirror;
        // visual settings
        $Array['CustomSettingsTemplate'] = $db->get_var("SELECT `CustomSettingsTemplate` FROM `Class`\n      WHERE `Class_ID` = '" . ($Class_Template_ID ? $Class_Template_ID : $ClassID ? $ClassID : $selected_value) . "'");
        $classInfo = "<tr><td>";
        $classInfo .= "\n                <font color='gray'>" . CONTROL_CONTENT_SUBCLASS_TYPE . ":<br/>\n\n                <div id='nc_mirror_radio'>\n                    " . nc_get_modal_radio('is_mirror', array(array('attr' => array('value' => '0', 'onClick' => '$nc("#nc_class_select").show(); $nc("#nc_mirror_select").hide(); $nc("#loadClassTemplates").html("")'), 'desc' => CONTROL_CONTENT_SUBCLASS_TYPE_SIMPLE), array('attr' => array('value' => '1', 'onClick' => '$nc("#nc_class_select").hide(); $nc("#nc_mirror_select").show(); $nc("#loadClassTemplates").html("")'), 'desc' => CONTROL_CONTENT_SUBCLASS_TYPE_MIRROR)), 0) . "\n                </div>";
        $classInfo .= "<div id='nc_class_select'>";
        if ($Sub_Class_fs === null && (!empty($classesV4) || !empty($classesV5)) || $Sub_Class_fs == 0 && !empty($classesV4) || $Sub_Class_fs == 1 && !empty($classesV5)) {
            $classInfo .= "<font color='gray'>" . CONTROL_CLASS_CLASS . ":<br>";
            $classInfo .= "<select id='ClassID' name='ClassID' onchange='if (this.options[this.selectedIndex].value) {loadClassDescription(this.options[this.selectedIndex].value); loadClassCustomSettings(this.options[this.selectedIndex].value); loadClassTemplates(this.options[this.selectedIndex].value, 0, " . $CatalogueID . ");}'>";
            if ($Sub_Class_fs === null && (!empty($classesV4) || !empty($classesV5))) {
                if (!empty($classesV5)) {
                    $classInfo .= "<option disabled='disabled'>" . CONTROL_CLASS . " v5</option>\n";
                    $classInfo .= nc_select_options($classesV5, $selected_value);
                }
                if (!empty($classesV4)) {
                    $classInfo .= "<option disabled='disabled'>" . CONTROL_CLASS . " v4</option>\n";
                    $classInfo .= nc_select_options($classesV4, $selected_value);
                }
            } else {
                if ($Sub_Class_fs == 0 && !empty($classesV4)) {
                    $classInfo .= nc_select_options($classesV4, $selected_value);
                } else {
                    if ($Sub_Class_fs == 1 && !empty($classesV5)) {
                        $classInfo .= nc_select_options($classesV5, $selected_value);
                    }
                }
            }
            $classInfo .= "</select>";
            $classInfo .= "<div id='loadClassDescription'></div>";
            $classInfo .= "<script>if ('" . $selected_value . "') {loadClassDescription(" . $selected_value . ");}</script>";
        } else {
            $classInfo .= CONTROL_CLASS_NONE;
        }
        $classInfo .= "</div>";
        $classInfo .= "\n                <div id='nc_mirror_select' style='display: none;'>\n                    <div>\n                        " . CONTROL_CONTENT_SUBCLASS_SRCMIRROR . ":\n                    </div>\n\n                    <div>\n                        <span id='cs_SrcMirror_caption' style='font-weight:bold;'>" . CONTROL_CONTENT_SUBCLASS_SRCMIRROR_NONE . "</span>\n                            <input id='cs_SrcMirror_value' name='SrcMirror' type='hidden' value='' />&nbsp;&nbsp;\n                            <a href='#' onclick=\"window.open('" . $ADMIN_PATH . "related/select_subclass.php?cs_type=rel_cc&amp;cs_field_name=SrcMirror', 'nc_popup_SrcMirror', 'width=800,height=500,menubar=no,resizable=no,scrollbars=yes,toolbar=no,resizable=yes'); return false;\">\n\t\t\t\t\t\t\t\t" . CONTROL_CONTENT_SUBCLASS_SRCMIRROR_EDIT . "\n\t\t\t\t\t\t\t</a>&nbsp;&nbsp;\n\n                            <a href='#' onclick=\"document.getElementById('cs_SrcMirror_value').value='';document.getElementById('cs_SrcMirror_caption').innerHTML = '" . CONTROL_CONTENT_SUBCLASS_SRCMIRROR_NONE . "';return false;\">\n                                " . CONTROL_CONTENT_SUBCLASS_SRCMIRROR_DELETE . "\n                            </a>\n                    </div>\n\n                </div>";
        $classInfo .= "<div id='loadClassTemplates'></div>";
        $classInfo .= "\n                        <script>\n                            var old_val = \$nc('#cs_SrcMirror_value').val();\n                            setInterval(function() {\n                                var val = \$nc('#cs_SrcMirror_value').val();\n                                if (old_val != val) {\n                                    if (val) {\n                                        loadClassTemplates(val, 0, 0, 1);\n                                    }\n                                    old_val = val;\n                                }\n                            }, 200);\n                            if ('" . $selected_value . "') {loadClassTemplates(" . $selected_value . ($Class_Template_ID ? ", " . $Class_Template_ID : ", 0") . ($CatalogueID ? ", " . $CatalogueID : "") . ");}\n                        </script>";
        $classInfo .= "</td></tr>\n";
    }
    if ($type == 2) {
        if (nc_module_check_by_keyword("cache")) {
            $cache_select_fields = "s.`Cache_Access_ID`, s.`Cache_Lifetime`, s.`CacheForUser`,";
        } else {
            $cache_select_fields = "";
        }
        $select = "SELECT\n          " . $cache_select_fields . "\n          s.`Sub_Class_Name`,\n          s.`Subdivision_ID`,\n          s.`Priority`,\n          s.`Read_Access_ID`,\n          s.`Write_Access_ID`,\n          s.`Edit_Access_ID`,\n          s.`Checked_Access_ID`,\n          s.`Delete_Access_ID`,\n          s.`Moderation_ID`,\n          s.`EnglishName`,\n          s.`Checked`,\n          s.`Subscribe_Access_ID`,\n          s.`DaysToHold`,\n          s.`AllowTags`,\n          s.`NL2BR`,\n          s.`RecordsPerPage`,\n          s.`SortBy`,\n          s.`Created`,\n          s.`LastUpdated`,\n          c.`Class_Name`,\n          c.`Class_ID`,\n          c.`System_Table_ID`,\n          s.`DefaultAction`,\n          s.`UseCaptcha`,\n          c.`CustomSettingsTemplate`,\n          s.`CustomSettings`,\n          s.`Class_Template_ID`,\n          s.`isNaked`,\n          s.`SrcMirror`,\n          s.`AllowRSS`,\n          s.`Edit_Class_Template`\n        FROM\n          `Sub_Class` as s,\n          `Class` as c\n        WHERE\n          `Sub_Class_ID` = '" . intval($SubClassID) . "'\n        AND\n          c.`Class_ID` = s.`Class_ID`";
        $Array = $db->get_row($select, ARRAY_A);
        if ($db->is_error) {
            throw new nc_Exception_DB_Error($db->last_query, $db->last_error);
        }
        if (empty($Array)) {
            nc_print_status(CONTROL_CONTENT_CATALOUGE_FUNCS_ERROR_NOSUBCLASS, 'info');
            return;
        }
        if ($Array['Class_Template_ID']) {
            $Array['CustomSettingsTemplate'] = $db->get_var("SELECT `CustomSettingsTemplate` FROM `Class`\n          WHERE `Class_ID` = '" . intval($Array['Class_Template_ID']) . "'");
        }
        $mobile = $nc_core->catalogue->get_by_id($CatalogueID, 'ncMobile');
        $SQL = "SELECT `Class_Name`,\n                           `Class_ID`\n                        FROM `Class`\n                            WHERE `ClassTemplate` = {$Array['Class_ID']}\n                              AND `Type` IN ('useful', 'title', 'mobile', 'responsive')";
        $classTemplatesArr = $db->get_results($SQL, ARRAY_A);
        $class_array = nc_get_class_template_array_by_id($Array['Class_ID']);
        $edit_class_select = null;
        if (count($class_array) > 1) {
            $edit_class_select = nc_get_class_template_form_select_by_array($class_array, $Array['Edit_Class_Template']);
        }
        $classInfo = nc_sub_class_get_classInfo($perm, $Array, $classTemplatesArr, $edit_class_select);
    }
    $wsts_msg = nc_sub_class_get_wsts_msg($wsts);
    require_once $ADMIN_FOLDER . "related/format.inc.php";
    $field = new field_relation_subclass();
    $fieldsets = new nc_admin_fieldset_collection();
    $fieldsets->set_prefix(nc_sub_class_get_prefix($SubClassID, $Array, true));
    $fieldsets->set_static_prefix(nc_sub_class_get_style_prefix());
    $fieldsets->set_suffix("\n                </div>\n                " . $nc_core->token->get_input() . "\n                <input type='hidden' name='phase' value='{$phase}' />\n                <input type='hidden' name='SubClassID' value='{$SubClassID}' />\n                <input type='hidden' name='SubdivisionID' value='{$loc->SubdivisionID}' />\n                <input type='hidden' name='CatalogueID' value='{$loc->CatalogueID}' />\n                <input type='submit' class='hidden'>\n            </form>");
    $fieldsets->new_fieldset('main_info', CONTROL_CONTENT_CATALOUGE_FUNCS_CATALOGUEFORM_MAININFO)->add(nc_sub_class_get_main_info($Array, $classInfo, $wsts_msg, $field));
    $fieldsets->new_fieldset('objlist', CONTROL_CONTENT_SUBDIVISION_FUNCS_OBJ_HOWSHOW)->add(nc_sub_class_get_objlist($Array));
    if ($Array['CustomSettingsTemplate']) {
        require_once $ADMIN_FOLDER . 'array_to_form.inc.php';
        $values = $CustomSettings ? $CustomSettings : $Array['CustomSettings'];
        $a2f = new nc_a2f($Array['CustomSettingsTemplate'], 'CustomSettings');
        $a2f->set_value($values);
        $fieldsets->new_fieldset('CustomSettings', CONTROL_CONTENT_SUBDIVISION_CUSTOM_SETTINGS_TEMPLATE)->add(nc_sub_class_get_CustomSettings($a2f));
    } else {
        $fieldsets->new_fieldset('CustomSettings')->add("<div id='loadClassCustomSettings'></div>");
    }
    $fieldsets->new_fieldset('access', CONTROL_CONTENT_CATALOUGE_FUNCS_CATALOGUEFORM_ACCESS)->add(nc_subdivision_show_access($SubEnv));
    if ($type == 2) {
        $fieldsets->new_fieldset('rss', 'RSS')->add(nc_subclass_show_export('rss', $SubdivisionID, $SubClassID));
        $fieldsets->new_fieldset('xml', 'XML')->add(nc_subclass_show_export('xml', $SubdivisionID, $SubClassID));
    }
    if (nc_module_check_by_keyword('cache')) {
        $fieldsets->new_fieldset('cache', CONTROL_CONTENT_SUBCLASS_FUNCS_CACHE)->add(nc_subdivision_show_cache($SubEnv));
    }
    if (nc_module_check_by_keyword('comments')) {
        require_once $nc_core->MODULE_FOLDER . 'comments/function.inc.php';
        $fieldsets->new_fieldset('comments', CONTROL_CONTENT_SUBCLASS_FUNCS_COMMENTS)->add(nc_subdivision_show_comments($SubEnv));
    }
    echo $fieldsets->to_string();
    if ($type == 1) {
        $UI_CONFIG->actionButtons[] = array("id" => "submit", "caption" => STRUCTURE_TAB_SUBCLASS_ADD, "action" => "mainView.submitIframeForm()", "align" => "right");
    } elseif ($type == 2) {
        $UI_CONFIG->actionButtons[] = array("id" => "submit", "caption" => CONTROL_CONTENT_CATALOUGE_FUNCS_CATALOGUEFORM_SAVE, "action" => "mainView.submitIframeForm()", "align" => "right");
    }
}
Exemplo n.º 2
0
function nc_subdivision_form_system($sub_env)
{
    $nc_core = nc_Core::get_object();
    $sub_id = $sub_env['Subdivision_ID'];
    $lang_field = $nc_core->page->get_field_name('language');
    $sub_env = $nc_core->subdivision->get_by_id($sub_id);
    $field_main = new nc_admin_fieldset(CONTROL_CONTENT_SUBDIVISION_SYSTEM_FIELDS);
    $html = nc_admin_input(CONTROL_CONTENT_SUBDIVISION_FUNCS_MAINDATA_EXTURL, 'ExternalURL', $sub_env['ExternalURL'], 50);
    $html .= nc_admin_input(CONTROL_CONTENT_SUBDIVISION_FUNCS_MAINDATA_LANG, 'language', $sub_env['_db_' . $lang_field], 50);
    $html .= CONTROL_CONTENT_SUBDIVISION_SEO_CURRENT_VALUE . ": <b>" . $sub_env[$lang_field] . "</b></font><br/><br/>";
    $field_main->add($html);
    // доступ
    $field_access = new nc_admin_fieldset(CONTROL_CONTENT_SUBDIVISION_FUNCS_ACCESS);
    $field_access->add(nc_subdivision_show_access($sub_env));
    $result = $field_main->result() . $field_access->result();
    //rss
    global $isNaked;
    if (!$isNaked) {
        $all_cc_ids = $nc_core->db->get_col("SELECT `Sub_Class_ID` FROM `Sub_Class` WHERE `Subdivision_ID` = '" . intval($sub_id) . "' ");
        $count_cc = count($all_cc_ids);
        if ($count_cc) {
            $field_rss = new nc_admin_fieldset('RSS');
            foreach ($all_cc_ids as $cc_id) {
                $field_rss->add(nc_subclass_show_export('rss', $sub_id, $cc_id, $count_cc > 1, 1));
            }
            $result .= $field_rss->result();
        }
    }
    // cache
    if ($nc_core->modules->get_by_keyword('cache')) {
        $field_cache = new nc_admin_fieldset(CONTROL_CONTENT_SUBCLASS_FUNCS_CACHE);
        $field_cache->add(nc_subdivision_show_cache($sub_env));
        $result .= $field_cache->result();
    }
    // comments
    if ($nc_core->modules->get_by_keyword('comments')) {
        include_once $nc_core->MODULE_FOLDER . "comments/function.inc.php";
        $field_comments = new nc_admin_fieldset(CONTROL_CONTENT_SUBDIVISION_FUNCS_COMMENTS);
        $field_comments->add(nc_subdivision_show_comments($sub_env));
        $result .= $field_comments->result();
    }
    return $result;
}