EOJ; $aFields = array( 'Value' => 'The value stored in the database', 'LKey' => 'Primary language key used for displaying', 'LKey2' => 'Secondary language key used for displaying in some other places', 'LKey3' => 'Miscelaniuos language key used for displaying in some other places.', 'Extra' => 'Extra parameter. Used for example as link to profile image for Sex list.', 'Extra2' => 'Miscelanious extra parameter', 'Extra3' => 'Miscelanious extra parameter' ); if( isset( $_REQUEST['popup'] ) and $_REQUEST['popup'] == 1 ) { $iAmInPopup = true; $iNameIndex = 17; $_page = array( 'name_index' => $iNameIndex, 'css_name' => array('predefined_values.css'), 'js_name' => array(), 'header' => _t('_adm_page_cpt_pvalues_manage'), 'header_text' => _t('_adm_box_cpt_pvalues_manage'), ); $_page_cont[$iNameIndex]['page_main_code'] = PageCompPageMainCode(); } else { $iAmInPopup = false; $iNameIndex = 0; $_page = array( 'name_index' => $iNameIndex, 'css_name' => array('predefined_values.css'), 'js_name' => array(), 'header' => _t('_adm_page_cpt_pvalues_manage'), 'header_text' => _t('_adm_box_cpt_pvalues_manage'), ); $_page_cont[$iNameIndex]['page_main_code'] = PageCompPageMainCode(); } PageCodeAdmin(); function PageCompPageMainCode() { global $iAmInPopup; global $aFields; $sDeleteIcon = $GLOBALS['oAdmTemplate']->getImageUrl('minus1.gif'); $sUpIcon = $GLOBALS['oAdmTemplate']->getImageUrl('arrow_up.gif'); $sDownIcon = $GLOBALS['oAdmTemplate']->getImageUrl('arrow_down.gif'); $sPopupAdd = $iAmInPopup ? '&popup=1' : ''; $sResultMsg = ''; if( isset( $_POST['action'] ) and $_POST['action'] == 'Save' and isset( $_POST['PreList'] ) and is_array( $_POST['PreList'] ) ) { if (true === saveList( $_POST['list'], $_POST['PreList'] )) $sResultMsg = _t('_Success'); else $sResultMsg = _t('_Failed to apply changes'); } //get lists $aLists = array( '' => '- Select -' ); $sQuery = "SELECT DISTINCT `Key` FROM `sys_pre_values`"; $rLists = db_res( $sQuery ); while( $aList = mysql_fetch_assoc( $rLists ) ) { $aLists[ $aList['Key'] ] = $aList['Key']; } if( isset( $_REQUEST['list'] ) ) { $sList_db = process_db_input( $_REQUEST['list'] ); $sList = process_pass_data( $_REQUEST['list'] ); $sQuery = "SELECT * FROM `sys_pre_values` WHERE `Key` = '$sList_db' ORDER BY `Order`"; $rValues = db_res( $sQuery ); if( !mysql_num_rows( $rValues ) ) //if no rows returned... $aLists[ $sList ] = $sList; //create new list } else { $sList = ''; } ob_start(); if ($sResultMsg) echo MsgBox($sResultMsg); ?>
Select a list:
parseHtmlByName('design_box_content.html', array('content' => ob_get_clean())); } function genListOptions( $aLists, $sActive ) { $sRet = ''; foreach( $aLists as $sKey => $sValue ) { $sRet .= ' '; } return $sRet; } function genListRows( $sList_db ) { global $aFields; $sDeleteIcon = $GLOBALS['oAdmTemplate']->getImageUrl('minus1.gif'); $sUpIcon = $GLOBALS['oAdmTemplate']->getImageUrl('arrow_up.gif'); $sDownIcon = $GLOBALS['oAdmTemplate']->getImageUrl('arrow_down.gif'); $sQuery = "SELECT * FROM `sys_pre_values` WHERE `Key` = '$sList_db' ORDER BY `Order`"; $rList = db_res( $sQuery ); ?> $sHelp ) { ?>   $sHelp ) { ?> DeleteMove upMove down   Add $aRow ) { $aRow['Value'] = str_replace( ',', '', trim( $aRow['Value'] ) ); if( $aRow['Value'] == '' ) continue; $sValuesAlter .= "'" . process_db_input( $aRow['Value'] ) . "', "; $sInsFields = ''; $sInsValues = ''; foreach( $aFields as $sField => $sTemp ) { $sValue = trim( process_db_input( $aRow[$sField] ) ); $sInsFields .= "`$sField`, "; $sInsValues .= "'$sValue', "; } $sInsFields = substr( $sInsFields, 0, -2 ); //remove ', ' $sInsValues = substr( $sInsValues, 0, -2 ); $sQuery = "INSERT INTO `sys_pre_values` ( `Key`, $sInsFields, `Order` ) VALUES ( '$sList_db', $sInsValues, $iInd )"; db_res( $sQuery ); } //alter Profiles table $sValuesAlter = substr( $sValuesAlter, 0, -2 ); //remove ', ' $sQuery = "SELECT `Name` FROM `sys_profile_fields` WHERE `Type` = 'select_set' AND `Values` = '#!{$sList_db}'"; $rFields = db_res( $sQuery ); while( $aField = mysql_fetch_assoc( $rFields ) ) { $sField = $aField['Name']; $sQuery = "ALTER TABLE `Profiles` CHANGE `$sField` `$sField` set($sValuesAlter) NOT NULL default ''"; db_res( $sQuery ); } compilePreValues(); if ($sList == 'Sex' or $sList == 'Country') { clearCacheFile( BX_DIRECTORY_PATH_DBCACHE . 'GlobalMembersStat.inc' ); } if( $iAmInPopup ) echo ''; return true; } function compilePreValues() { $sQuery = "SELECT DISTINCT `Key` FROM `sys_pre_values`"; $rKeys = db_res( $sQuery ); $rProf = @fopen( BX_DIRECTORY_PATH_INC . 'prof.inc.php', 'w' ); if( !$rProf ) { echo 'Warning! Couldn\'t compile prof.inc.php. Please check permissions.'; return false; } fwrite( $rProf, " array(\n" ); $sQuery = "SELECT * FROM `sys_pre_values` WHERE `Key` = '$sKey_db' ORDER BY `Order`"; $rRows = db_res( $sQuery ); while( $aRow = mysql_fetch_assoc( $rRows ) ) { $sValue_db = addslashes( $aRow['Value'] ); fwrite( $rProf, " '{$sValue_db}' => array( " ); foreach( $aRow as $sValKey => $sValue ) { if( $sValKey == 'Key' or $sValKey == 'Value' or $sValKey == 'Order' ) continue; //skip key, value and order. they already used if( !strlen( $sValue ) ) continue; //skip empty values fwrite( $rProf, "'$sValKey' => '" . addslashes( $sValue ) . "', " ); } fwrite( $rProf, "),\n" ); } fwrite( $rProf, " ),\n" ); } fwrite( $rProf, ");\n" ); fwrite( $rProf, ' $aPreValues[\'Country\'] = sortArrByLang( $aPreValues[\'Country\'] ); function sortArrByLang( $aArr ) { if( !function_exists( \'_t\' ) ) return $aArr; $aSortArr = array(); foreach( $aArr as $sKey => $aValue ) $aSortArr[$sKey] = _t( $aValue[\'LKey\'] ); asort( $aSortArr ); $aNewArr = array(); foreach( $aSortArr as $sKey => $sVal ) $aNewArr[$sKey] = $aArr[$sKey]; return $aNewArr; } ' ); fclose( $rProf ); return true; } ?>