Learn Clean Code, YouTube PHP: The Right Way, link Udemy courses Design Pattern, Doc, Pattern Libraries Postman for testing API, YouTube Essential Scrum, Chapter [5, 7, 17, 18, 19] Terraform Ansible IBMCloud TechWorld What is IaCode DevOps Crash Course, youtube Todo - Project repo, doc Study actionMint in /protected/controller/AdminDatasetController.php /** * post metadata, mint a new DOI * */ public function actionMint() { $result['status'] = false; $status_array = array('Submitted', 'UserStartedIncomplete', 'Curation'); $mds_metadata_url="https://mds.datacite.org/metadata"; $mds_doi_url="https://mds.datacite.org/doi"; $mds_username = Yii::app()->params['mds_username']; $mds_password = Yii::app()->params['mds_password']; $mds_prefix = Yii::app()->params['mds_prefix']; if (isset($_POST['doi'])) { $doi = $_POST['doi']; if (stristr($doi, "/")) { $temp = explode("/", $doi); $doi = $temp[1]; } $doi = trim($doi); $dataset = Dataset::model()->find("identifier=?", array($doi)); if ($dataset && ! in_array($dataset->upload_status, $status_array)) { $xml_data = $dataset->toXML(); $ch= curl_init(); curl_setopt($ch, CURLOPT_URL, $mds_metadata_url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "$xml_data"); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/xml;charset=UTF-8')); curl_setopt($ch, CURLOPT_USERPWD, $mds_username . ":" . $mds_password); $curl_response = curl_exec($ch); $result['md_curl_response'] = $curl_response; $info1 = curl_getinfo($ch); $result['md_curl_status'] = $info1['http_code']; curl_close($ch) ; } if ($dataset && $result['md_curl_status'] == 201) { $doi_data = "doi=".$mds_prefix."/".$doi."\n"."url=http://gigadb.org/dataset/".$dataset->identifier ; $result['doi_data'] = $doi_data; $ch2= curl_init(); curl_setopt($ch2, CURLOPT_URL, $mds_doi_url); curl_setopt($ch2, CURLOPT_POST, 1); curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch2, CURLOPT_POSTFIELDS, $doi_data); curl_setopt($ch2, CURLOPT_HTTPHEADER, array('Content-Type:application/xml;charset=UTF-8')); curl_setopt($ch2, CURLOPT_USERPWD, $mds_username . ":" . $mds_password); $curl_response = curl_exec($ch2); $result['doi_curl_response'] = $curl_response; $info2 = curl_getinfo($ch2); $result['doi_curl_status'] = $info2['http_code']; curl_close($ch2) ; } if (isset($result['doi_curl_status']) && $result['doi_curl_status'] == 201) { $result['status'] = true; } } echo json_encode($result); Yii::app()->end(); } Done - Project Todo - Github Follow up Add-citation-box-#521 Update <a></a> elements to <ul><li></li></ul> structure Tried to use bootstrap dropdown button Review fuw-cicd-#546, review doc at here Done - Github AOB Follow up server issue 192.168.208.43, 192.168.208.44, 192.168.208.74 have been returned back to BGI IT team Still owning 192.168.208.73 and it is running, because it is hosting www.gigadb.org Follow up NAS issue 杨杰威(Jed Yang) is helping us to gather compliance and regulation information from 曾文君(Ken Zeng), and his supervisor, Alex, would like to know why we would want to have a NAS 郑康和(Kanghe Zheng), the one who suggests us to place the NAS in BGI Tai Po and later the 3rd party Data centre in HK, wants to meet with us together with 周飞羽(Feiyu Zhou) and 田晶(Jing Tian) on 14/5 at 1400 Reference ...