View ProjeQtOr On SourceForge.net
ProjeQtOr - Project Management Tool
Support us on Capterra
OIN - Open Invention Network
ProjeQtOr free project management software - Translate name using API - ProjeQtOr
 
 

Translate name using API

More
09 Nov 2014 10:30 #1 by mamath
Hi,

I propose evolution of the function jsonDumObj from api/index.php.
the following version has two enhancement :
- translation of name (if object has a _isNameTranslatable property)
- return "refName" value if object has refId and refType property.

function jsonDumpObj($obj, $included=false) {
	$res="";
	foreach($obj as $fld=>$val) {
		if (is_object($val)) {
		  if ($res!="") { $res.=", ";}
			$res.=jsonDumpObj($val, true);
		} else if (substr($fld,0,1)=='_'
		  or $obj->isAttributeSetToField($fld, 'hidden')
		  or $included and ($fld=='id' or $fld=='refType' or $fld=='refId' or $fld=='refName' 
		                 or $fld=='handled' or $fld=='done' or $fld=='idle' or $fld=='cancelled') ) {
			// Nothing
		} else {
		  if ($fld=='name' && property_exists($obj, '_isNameTranslatable') && $obj->_isNameTranslatable) { $val=i18n($val); }
		  if ($res!="") { $res.=", ";}
		  $res.='"' . htmlEncode($fld) . '":"' . htmlEncodeJson($val) . '"';
		  if (substr($fld,0,2)=='id' and strlen($fld)>2) {
		  	$idclass=substr($fld,2);
		  	if (strtoupper(substr($idclass,0,1))==substr($idclass,0,1) and property_exists($idclass, 'name')) {
		  		$res.=", ";
		  		$val2=SqlList::getNameFromId($idclass, $val);
		  		if (property_exists($idclass, '_isNameTranslatable') && $idclass->_isNameTranslatable) { $val2=i18n($val2); }
		  		$res.='"name' . $idclass . '":"' . htmlEncodeJson($val2) . '"';
		  	}
		  } 
		}  
	}
	if (property_exists($obj, 'refId') && property_exists($obj, 'refType') && !property_exists($obj, 'refName') &&
		 $obj->refId!="" and $obj->refType!="") {
		$idclass=$obj->refType;
		if (strtoupper(substr($idclass,0,1))==substr($idclass,0,1) and property_exists($idclass, 'name')) {
			$res.=", ";
			$res.='"refName":"' . htmlEncodeJson(SqlList::getNameFromId($idclass, $obj->refId)) . '"';
		}
	}
	return $res;
}

Best regards
The topic has been locked.
More
12 Nov 2014 10:49 - 12 Nov 2014 11:17 #2 by mamath
Replied by mamath on topic Translate name using API
Oups, i make a bug .... the right code following :
function jsonDumpObj($obj, $included=false) {
	$res="";
	foreach($obj as $fld=>$val) {
		if (is_object($val)) {
		  if ($res!="") { $res.=", ";}
			$res.=jsonDumpObj($val, true);
		} else if (substr($fld,0,1)=='_'
		  or $obj->isAttributeSetToField($fld, 'hidden')
		  or $included and ($fld=='id' or $fld=='refType' or $fld=='refId' or $fld=='refName' 
		                 or $fld=='handled' or $fld=='done' or $fld=='idle' or $fld=='cancelled') ) {
			// Nothing
		} else {
		  if ($fld=='name' && property_exists($obj, '_isNameTranslatable') && $obj->_isNameTranslatable) { $val=i18n($val); }
		  if ($res!="") { $res.=", ";}
		  $res.='"' . htmlEncode($fld) . '":"' . htmlEncodeJson($val) . '"';
		  if (substr($fld,0,2)=='id' and strlen($fld)>2) {
		  	$idclass=substr($fld,2);
		  	if (strtoupper(substr($idclass,0,1))==substr($idclass,0,1) and property_exists($idclass, 'name')) {
		  		$res.=", ";
		  		$val2=SqlList::getNameFromId($idclass, $val);
		  		$res.='"name' . $idclass . '":"' . htmlEncodeJson($val2) . '"';
		  	}
		  } 
		}  
	}
	if (property_exists($obj, 'refId') && property_exists($obj, 'refType') && !property_exists($obj, 'refName') &&
		 $obj->refId!="" and $obj->refType!="") {
		$idclass=$obj->refType;
		if (strtoupper(substr($idclass,0,1))==substr($idclass,0,1) and property_exists($idclass, 'name')) {
			$res.=", ";
			$res.='"refName":"' . htmlEncodeJson(SqlList::getNameFromId($idclass, $obj->refId)) . '"';
		}
	}
	return $res;
}

Regards
Last edit: 12 Nov 2014 11:17 by mamath.
The topic has been locked.
More
12 Nov 2014 19:12 #3 by babynus
Replied by babynus on topic Translate name using API
Hi,
Thanks for your proposition.
Will be tested and included in V4.6

Babynus
Administrator of ProjeQtOr web site
The topic has been locked.
Moderators: babynusprotion
Time to create page: 0.040 seconds

Cookies settings

×

Functional Cookies

Ce site utilise des cookies pour assurer son bon fonctionnement et ne peuvent pas être désactivés de nos systèmes. Nous ne les utilisons pas à des fins publicitaires. Si ces cookies sont bloqués, certaines parties du site ne pourront pas fonctionner.

Session

Please login to see yours activities!

Other cookies

Ce site web utilise un certain nombre de cookies pour gérer, par exemple, les sessions utilisateurs.