Sommaire
Hyperwave
Introduction
Intégration avec Apache
A faire
hw_Array2Objrec
hw_Children
hw_ChildrenObj
hw_Close
hw_Connect
hw_Cp
hw_Deleteobject
hw_DocByAnchor
hw_DocByAnchorObj
hw_DocumentAttributes
hw_DocumentBodyTag
hw_DocumentContent
hw_DocumentSetContent
hw_DocumentSize
hw_ErrorMsg
hw_EditText
hw_Error
hw_Free_Document
hw_GetParents
hw_GetParentsObj
hw_GetChildColl
hw_GetChildCollObj
hw_GetRemote
hw_GetRemoteChildren
hw_GetSrcByDestObj
hw_GetObject
hw_GetAndLock
hw_GetText
hw_GetObjectByQuery
hw_GetObjectByQueryObj
hw_GetObjectByQueryColl
hw_GetObjectByQueryCollObj
hw_GetChildDocColl
hw_GetChildDocCollObj
hw_GetAnchors
hw_GetAnchorsObj
hw_Mv
hw_Identify
hw_InCollections
hw_Info
hw_InsColl
hw_InsDoc
hw_InsertDocument
hw_InsertObject
hw_mapid
hw_Modifyobject
hw_New_Document
hw_Objrec2Array
hw_OutputDocument
hw_pConnect
hw_PipeDocument
hw_Root
hw_Unlock
hw_Who
hw_Username
|
6.38.49 hw_Modifyobject[ Exemples avec hw_Modifyobject ] Description
int hw_modifyobject(resource connection ,int object_to_change ,array remove ,array add ,int mode )
hw_modifyobject permet d'effacer, d'ajouter ou de
modifier les attributs d'un objet. L'objet est reperé par son
identifiant object_to_change. Le premier tableau,
remove, est la liste des attributs à effacer.
Le deuxième tableau add est la liste des
attributs à ajouter. Afin de modifier un attribut, il vous faudra
dont l'effacer, puis l'ajouter à nouveau.
hw_modifyobject effacera toujours les attributs avant
de les ajouter, à moins que la valeur de l'attribut à effacer
ne soit pas une chaîne, ou un tableau.
Le dernier paramètre détermine si la modification est
récursive ou pas. 1 signifie que la modification est récursive.
Si un objet ne peut pas être modifié, il sera ignoré.
hw_error n'indiquera alors pas toujours d'erreur,
même si certains objets n'ont pas pu être modifié.
Les clés des deux tableaux sont les noms des attributs. La valeur
de chaque élément peut être un tableau, ou une chaîne
ou n'importe quoi d'autre. Dans le cas du tableau, la valeur de l'attribut
est construite en séparant chaque élément par un
point virgule. Dans le cas de la chaîne, elle sert directement de
valeur. Une chaîne vide provoquera un effacement de l'attribut.
Dans le cas où la valeur n'est ni un tableau, ni une chaîne,
aucune opération ne sera effectuée. Cela est nécessaire
si vous voulez ajouter un attribut complètement une nouvelle valeur pour
un attribut existant. Si le tableau d'effacement contenait une chaîne
vide comme attribut, le serveur tenterait d'effacer l'attribut, ce qui
échouerai de toute manière, car cet attribut n'existe pas.
L'ajout de cet attribut échouerai aussi. Affecter la valeur de 0
à cet attribut ne l'effacerait pas, et l'ajout fonctionnerait.
Si vous voulez changer l'attribut 'Nom' de valeur courante 'livres' en
'articles' vous devrez faire deux tableaux, et appeler
hw_modifyobject.
Modification d'un attribut |
<?php // $connect est une connexion valide // $objid est l'identifiant de l'objet $remarr = array("Name" => "books"); $addarr = array("Name" => "articles"); $hw_modifyobject($connect, $objid, $remarr, $addarr); ?>
|
Afin d'effacer/ajouter une paire nom=valeur aux attributs d'un objet,
utilisez simplement les tableaux d'effacement et d'ajout, et laissez
le dernier/troisième paramètre vide. Si l'attribut est
le premier de ce nom à ajouter, donnez une valeur entière
à cet élément.
Ajouter un nouvel attribut |
<?php // $connect st une connexion Hyperwave valide // $objid est l'identifiant de l'objet à modifier $remarr = array("Name" => 0); $addarr = array("Name" => "articles"); $hw_modifyobject($connect, $objid, $remarr, $addarr); ?>
|
Note |
Les attributs multilingues, (tels que 'Title'), peuvent être
modifiés de deux manières : soit en fournissant la
valeur de ces attributs de manière native (langue :valeur),
soit en fournissant un tableau avec les éléments de
chaque langue, comme décrit ci-dessus. L'exemple deviendrai
alors :
|
Modifier l'attribut de Titre (Title) |
<?php $remarr = array("Title" => "en:Books"); $addarr = array("Title" => "en:Articles"); $hw_modifyobject($connect, $objid, $remarr, $addarr); ?>
|
ou
Modifier l'attribut Title |
<?php $remarr = array("Title" => array("en" => "Books")); $addarr = array("Title" => array("en" => "Articles", "ge"=>"Artikel")); $hw_modifyobject($connect, $objid, $remarr, $addarr); ?>
|
Pour supprimer l'entrée française 'Livres' et ajouter
l'entrée 'Articles' et l'entrée allemande 'Artikel'.
Suppression d'un attribut |
<?php $remarr = array("Title" => ""); $addarr = array("Title" => "en:Articles"); $hw_modifyobject($connect, $objid, $remarr, $addarr); ?>
| Note |
Cet exemple va effacer tous les attributs avec le nom 'Title' et ajouter
un nouvel attribut 'Title'. Cela peut être pratique pour effacer
des attributs récursivement.
|
Note |
Si vous devez effacer tous les attributs avec un certains nom, vous devez
passer une chaîne vide comme valeur.
|
Note |
Seuls les attributs 'Title', 'Description' et 'Keyword' gère
correctement le préfixe de langue. Pour les autres attributs qui
ne portent pas de préfixe de language, le préfixe 'xx' sera
assigné.
|
Note |
L'attribut 'Name' est un peu particuluer. Dans certains cas, il ne peut pas
être complétement effacé. Vous aurez alors le message
'Change of base attribute' (l'apparition de cette erreur n'est pas
très claire). Ainsi, vous aurez à ajouter une nouvelle
entrée pour Name puis, effacer l'ancien.
|
Retourne TRUE si aucune erreur ne survient, et FALSE sinon.
|