Automate Dropdownlist creation via manifest

Hi,  

        I know how to create a custom dropdown field for a module from the manifest  file. So lets say I have something like this in the manifest file

array(
"name" => "document_type_c",
"label"=> "LBL_DOCUMENT_TYPE",
"type" => "enum",
"module" => "Quotes",
"ext1" => "quote_document_list",
"default_value" => "",
"required" => false,
"reportable" => true,
"audited" => false,
"importable" => 'true',
"duplicate_merge" => false,
"labelValue" => "Document Type"
)

So now in this piece of code I have had to manually create the dropdown ext1, i.e. quote_document_list from the dropdown list editor under the admin panel. Is there anyway to automate this via the manifest file?

Parents
  • Hi Madhav Shenoy

    Try this it may help you  . put this code in post_install.php

    $app_list_strings_custom = array (
    array (
    "name" => "quote_document_list",
    "list" => array(
    'Email' => 'ABC',
    'SMS' => 'BCD',
    'Invite' => 'QWE',
    ),
    ),
    );
    global $app_list_strings, $current_language;

    $_REQUEST['view_package'] = 'studio';
    foreach ($app_list_strings_custom as $list_data) {
    $listEncode = encodeList($list_data['list']);
    $list = "[".implode(",", $listEncode)."]";
    $parserDropDown = new ParserDropDown();
    $parserDropDown->saveDropDown(array(
    'dropdown_lang' => $current_language,
    'dropdown_name' => $list_data['name'],
    'view_package' => 'studio',
    'view_module' => '',
    'list_value' => $list,
    ));
    }
  • Mehul  Bhandari

    Will it work in logic hook ? I want to set particular dropdown option whenever user login, for this I have created "after_login" hook in User module, somehow you suggested code is not working for me, please see below and let me know if I make any mistake.

    public function setTerritoriesNumber($bean, $event, $arguments) {
    require_once('modules/ModuleBuilder/MB/ModuleBuilder.php');
    require_once('modules/ModuleBuilder/parsers/parser.dropdown.php');
    $app_list_strings_custom = array (
    array (
    "name" => "territory_number_list",
    "list" => array(
    'Email' => 'ABC',
    'SMS' => 'BCD',
    'Invite' => 'QWE',
    )
    )
    );
    global $app_list_strings, $current_language;
    $_REQUEST['view_package'] = 'studio';
    foreach ($app_list_strings_custom as $list_data) {

    $json = getJSONobj();
    $listEncode = $json->encode($list_data['list']);
    $list = "[".implode(",", $listEncode)."]";
    $parserDropDown = new ParserDropDown();
    $parserDropDown->saveDropDown(array(
    'dropdown_lang' => 'en_us',
    'dropdown_name' => $list_data['name'],
    'view_package' => 'studio',
    'view_module' => '',
    'list_value' => $list,
    ));
    }

    }
    }

Reply
  • Mehul  Bhandari

    Will it work in logic hook ? I want to set particular dropdown option whenever user login, for this I have created "after_login" hook in User module, somehow you suggested code is not working for me, please see below and let me know if I make any mistake.

    public function setTerritoriesNumber($bean, $event, $arguments) {
    require_once('modules/ModuleBuilder/MB/ModuleBuilder.php');
    require_once('modules/ModuleBuilder/parsers/parser.dropdown.php');
    $app_list_strings_custom = array (
    array (
    "name" => "territory_number_list",
    "list" => array(
    'Email' => 'ABC',
    'SMS' => 'BCD',
    'Invite' => 'QWE',
    )
    )
    );
    global $app_list_strings, $current_language;
    $_REQUEST['view_package'] = 'studio';
    foreach ($app_list_strings_custom as $list_data) {

    $json = getJSONobj();
    $listEncode = $json->encode($list_data['list']);
    $list = "[".implode(",", $listEncode)."]";
    $parserDropDown = new ParserDropDown();
    $parserDropDown->saveDropDown(array(
    'dropdown_lang' => 'en_us',
    'dropdown_name' => $list_data['name'],
    'view_package' => 'studio',
    'view_module' => '',
    'list_value' => $list,
    ));
    }

    }
    }

Children