CoreBOSBB

Full Version: A VTLIB way to add values to an existing picklist
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I'm updating one of my modules, and I'd like to add some values to one of the picklists. Is that as simple as:

PHP Code:
            // Setup the field
            
$invoicePaymentCondField                =    new Vtiger_Field();
            
$invoicePaymentCondField->name            =    'existing_name';
            
$invoicePaymentCondField->label            =    'Label';
            
$invoicePaymentCondField->table            =    'existing_table';
            
$invoicePaymentCondField->column        =    'existing column';
            
$invoicePaymentCondField->columntype    =    'VARCHAR(100)';
            
$invoicePaymentCondField->uitype        =    16;
            
$invoicePaymentCondField->typeofdata    =    'V~M';
            
$invoiceDescriptionBlock->addField($invoicePaymentCondField);        
            
            
$invoicePaymentCondField->setPicklistValues( array('Existing values with new values') ); 

Or is there a special method for this?
You have to use setPicklistValues() method.:

You get a reference to the field:
https://github.com/tsolucio/corebos/blob/master/build/changeSets/DefineGlobalVariables.php#L256

and then call the method with the list of values in an array:
https://github.com/tsolucio/corebos/blob/master/build/changeSets/DefineGlobalVariables.php#L296

vtlib will not repeat any existing values
Thanks! Repeat any existing values, you mean I need to repopulate the entire list of values, not just add new ones?
Sorry, I mean that if you try to put in a value that already exists it is simply ignored. vtiger CRM repeated the value.
In other, words you can send in the array with the values, all values that are not already present will be added.