if (!isset($_REQUEST['brand'])) { $product_list = file2json('http://repo.provisioner.net/endpoint/' . $_REQUEST['id'] . '/brand_data.json'); $product_list = $product_list['data']['brands']['family_list']; $out[0]['optionValue'] = ""; $out[0]['optionDisplay'] = ""; $i = 1; foreach ($product_list as $list) { $family_list = file2json('http://repo.provisioner.net/endpoint/' . $_REQUEST['id'] . '/' . $list['directory'] . '/family_data.json'); $family_list = $family_list['data']['model_list']; foreach ($family_list as $model_l) { $out[$i]['optionValue'] = $list['directory'] . '+' . $model_l['model']; $out[$i]['optionDisplay'] = $model_l['model']; $i++; } $out[$i]['optionValue'] = "--"; $out[$i]['optionDisplay'] = "--"; $i++; } } else { $list = explode('+', $_REQUEST['prodmod']); $model = $list[1]; $product = $list[0]; $family_list = file2json('http://repo.provisioner.net/endpoint/' . $_REQUEST['id'] . '/' . $product . '/family_data.json'); $key = arraysearchrecursive($model, $family_list['data']['model_list'], 'model'); $count = isset($family_list['data']['model_list'][$key[0]]['lines']) ? $family_list['data']['model_list'][$key[0]]['lines'] : '1'; for ($i = 0; $i <= $count; $i++) { $out[$i]['optionValue'] = $i + 1; $out[$i]['optionDisplay'] = $i + 1; } } echo json_encode($out);
$data = array(); $temp = file2json(PROVISIONER_PATH . "endpoint/" . $brand . "/" . $product . "/family_data.json"); $test = arraysearchrecursive($model, $temp, 'model'); if (!$test) { jsondie('cant find model'); } $data['phone_data']['brand'] = $brand; $data['phone_data']['product'] = $product; $data['phone_data']['model'] = $model; $data['admin'] = TRUE; $data['lines'] = $temp['data']['model_list'][$test[2]]['lines']; $files = $temp['data']['model_list'][$test[2]]['template_data']; array_unshift($files, PROVISIONER_PATH . "../../global_template_data.json"); foreach ($files as $files_data) { if ($files_data != 'line_options_22.json' and file_exists(PROVISIONER_PATH . "endpoint/" . $brand . "/" . $product . "/" . $files_data)) { $temp_files_data = file2json(PROVISIONER_PATH . "endpoint/" . $brand . "/" . $product . "/" . $files_data); foreach ($temp_files_data['template_data']['category'] as $category) { $category_name = $category['name']; foreach ($category['subcategory'] as $subcategory) { $subcategory_name = $subcategory['name']; $items_fin = array(); $items_loop = array(); foreach ($subcategory['item'] as $item) { switch ($item['type']) { case 'loop_line_options': for ($i = 1; $i <= $data['lines']; $i++) { $var_nam = "lineloop|line_" . $i; foreach ($item['data']['item'] as $item_loop) { if ($item_loop['type'] != 'break') { $z = str_replace("\$", "", $item_loop['variable']); $items_loop[$var_nam][$z] = $item_loop;
function create_brand_pkg($rawname, $version, $brand_name, $old_brand_timestamp, $c_message) { global $brands_html, $supported_phones, $force; $pkg_name = $rawname; if (!file_exists(RELEASE_DIR . "/" . $rawname)) { mkdir(RELEASE_DIR . "/" . $rawname); } $family_max_array = array(); //Clear family array $z = 0; foreach (glob(MODULES_DIR . "/" . $rawname . "/*", GLOB_ONLYDIR) as $family_folders) { flush_buffers(); if (file_exists($family_folders . "/family_data.json")) { $family_xml = file2json($family_folders . "/family_data.json"); $old_firmware_ver = $family_xml['data']['firmware_ver']; echo "\n\t==========" . $family_xml['data']['name'] . "==========\n"; echo "\tFound family_data.json in " . $family_folders . "\n"; $b = 0; foreach ($family_xml['data']['model_list'] as $data) { $supported_phones[$brand_name][$z][$b] = $data['model']; $b++; } $i = 0; $dir_iterator = new RecursiveDirectoryIterator($family_folders . "/"); $iterator = new RecursiveIteratorIterator($dir_iterator, RecursiveIteratorIterator::SELF_FIRST); foreach ($iterator as $family_files) { if (!is_dir($family_files) && dirname($family_files) != $family_folders . "/firmware" && dirname($family_files) != $family_folders . "/json") { $path_parts = pathinfo($family_files); if (basename($family_files) != "family_data.json") { $files_array[$i] = filemtime($family_files); echo "\t\tParsing File: " . basename($family_files) . "|" . $files_array[$i] . "\n"; $i++; } } } $family_max = max($files_array); $family_max_array[$z] = $family_max; echo "\t\t\tTotal Family Timestamp: " . $family_max . "\n"; if (file_exists(FIRMWARE_DIR . "/" . $rawname . "/" . $family_xml['data']['directory'] . "/firmware")) { echo "\t\tFound Firmware Folder in " . $family_xml['data']['directory'] . "\n"; $firmware_files_array = array(); //Clear firmware array flush_buffers(); $x = 0; foreach (glob(FIRMWARE_DIR . "/" . $rawname . "/" . $family_xml['data']['directory'] . "/firmware/*") as $firmware_files) { flush_buffers(); if (!is_dir($firmware_files)) { $firmware_files_array[$x] = filemtime($firmware_files); echo "\t\t\t\tParsing File: " . basename($firmware_files) . "|" . $firmware_files_array[$x] . "\n"; $x++; } } $firmware_max = max($firmware_files_array); echo "\t\t\t\t\tTotal Firmware Timestamp: " . $firmware_max . "\n"; if ($force or $firmware_max != $old_firmware_ver) { echo "\t\t\tFirmware package has changed...\n"; echo "\t\t\tCreating Firmware Package\n"; exec("tar zcf " . RELEASE_DIR . "/" . $rawname . "/" . $family_xml['data']['directory'] . "_firmware.tgz --exclude .svn -C " . FIRMWARE_DIR . "/" . $rawname . "/" . $family_xml['data']['directory'] . " firmware"); $firmware_md5 = md5_file(RELEASE_DIR . "/" . $rawname . "/" . $family_xml['data']['directory'] . "_firmware.tgz"); echo "\t\t\tPackage MD5 SUM: " . $firmware_md5 . "\n"; echo "\t\t\tAdding Firmware Package Information to family_data.json File\n"; if ($firmware_max > $family_max) { echo "\t\t\tFirmware Timestamp is newer than Family Timestamp, updating Family Timestamp to match\n"; $family_max = $firmware_max; $family_max_array[$z] = $family_max; } $family_array = file2json($family_folders . "/family_data.json"); $family_array['data']['firmware_ver'] = $firmware_max; $family_array['data']['firmware_md5sum'] = $firmware_md5; $family_array['data']['firmware_pkg'] = $family_xml['data']['directory'] . "_firmware.tgz"; file_put_contents($family_folders . "/family_data.json", json_format(json_encode($family_array))); } else { echo "\t\t\tFirmware has not changed, not updating package\n"; } } $z++; echo "\tComplete..Continuing..\n"; $family_list[] = array('id' => $family_xml['data']['id'], 'name' => $family_xml['data']['name'], 'directory' => $family_xml['data']['directory'], 'description' => $family_xml['data']['description'], 'changelog' => $family_xml['data']['changelog'], 'last_modified' => $family_xml['data']['last_modified']); } } echo "\n\t==========" . $brand_name . "==========\n"; echo "\tCreating Completed Package\n"; $fp = fopen(MODULES_DIR . "/" . $rawname . "/brand_data.json", 'r'); $contents = fread($fp, filesize(MODULES_DIR . "/" . $rawname . "/brand_data.json")); fclose($fp); $brand_array = file2json(MODULES_DIR . "/" . $rawname . "/brand_data.json"); $brand_array['data']['brands']['family_list'] = array(); $brand_array['data']['brands']['family_list'] = $family_list; $brand_array['data']['brands']['package'] = $pkg_name; $i = 0; foreach (glob(MODULES_DIR . "/" . $rawname . "/*") as $brand_files) { if (!is_dir($brand_files) and basename($brand_files) != "brand_data.json" and basename($brand_files) != "brand_data.json") { $brand_files_array[$i] = filemtime($brand_files); echo "\t\tParsing File: " . basename($brand_files) . "|" . $brand_files_array[$i] . "\n"; $i++; } } $brand_max = max($brand_files_array); $temp = max($family_max_array); $brand_max = max($brand_max, $temp); echo "\t\t\tTotal Brand Timestamp: " . $brand_max . "\n"; if ($force or $brand_max != $old_brand_timestamp) { $brand_array['data']['brands']['last_modified'] = $brand_max; $brand_array['data']['brands']['changelog'] = $c_message; $brand_array['data']['brands']['package'] = $pkg_name . ".tgz"; file_put_contents(MODULES_DIR . "/" . $rawname . "/brand_data.json", json_format(json_encode($brand_array))); copy(MODULES_DIR . "/" . $rawname . "/brand_data.json", RELEASE_DIR . "/" . $rawname . "/" . $rawname . ".json"); mkdir(RELEASE_DIR . "/" . $rawname . "/"); exec("tar zcf " . RELEASE_DIR . "/" . $rawname . "/" . $pkg_name . ".tgz --exclude .svn --exclude firmware -C " . MODULES_DIR . " " . $rawname); $brand_md5 = md5_file(RELEASE_DIR . "/" . $rawname . "/" . $pkg_name . ".tgz"); echo "\t\tPackage MD5 SUM: " . $brand_md5 . "\n"; $brand_array['data']['brands']['md5sum'] = $brand_md5; file_put_contents(MODULES_DIR . "/" . $rawname . "/brand_data.json", json_format(json_encode($brand_array))); copy(MODULES_DIR . "/" . $rawname . "/brand_data.json", RELEASE_DIR . "/" . $rawname . "/" . $rawname . ".json"); $brands_html .= "==== " . $rawname . " (Last Modified: " . date('m/d/Y', $brand_max) . " at " . date("G:i", $brand_max) . ") ====\n"; $brands_html .= "XML File: [http://www.provisioner.net/release/v3/" . $rawname . "/" . $rawname . ".json " . $rawname . ".json]\n\n"; $brands_html .= "Package File: [http://www.provisioner.net/release/v3/" . $rawname . "/" . $pkg_name . ".tgz " . $pkg_name . ".tgz]\n"; echo "\tComplete..Continuing..\n"; } else { $brands_html .= "==== " . $rawname . " (Last Modified: " . date('m/d/Y', $brand_max) . " at " . date("G:i", $brand_max) . ") ====\n"; $brands_html .= "XML File: [http://www.provisioner.net/release/v3/" . $rawname . "/" . $rawname . ".json " . $rawname . ".json]\n\n"; $brands_html .= "Package File: [http://www.provisioner.net/release/v3/" . $rawname . "/" . $pkg_name . ".tgz " . $pkg_name . ".tgz]\n"; echo "\tNothing changed! Aborting Package Creation!\n"; } }
<?php $brands_list = file2json('http://repo.provisioner.net/endpoint/master.json'); $brands_list = $brands_list['data']['brands']; require_once '../includes/json.php'; if (!class_exists("DateTimeZone")) { require_once '../includes/timezone.php'; } $zones = DateTimeZone::listIdentifiers(); ?> <html> <head> <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script> <script type="text/javascript" charset="utf-8"> $(function(){ $("select#brand").change(function(){ $.ajaxSetup({ cache: false }); $.getJSON("ajax.php?atype=model",{id: $(this).val()}, function(j){ var options = ''; for (var i = 0; i < j.length; i++) { options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>'; } $("#model_demo").html(options); $('#model_demo option:first').attr('selected', 'selected'); }) }) }) $(function(){ $("select#model_demo").change(function(){ $.ajaxSetup({ cache: false }); var brand = '';