Posts: 101
Threads: 21
Joined: Mar 2018
Reputation:
16
Buenos días
Intento hacer un boton personalizado con el archivo addActionLink.php para que recoja unos datos del módulo Contacts, para que los utilice para rellenar de forma automática en otro módulo llamado LlamadasRecibidas, el id de Cuenta y el id de Asginado a, pero cuanto ejecuto el archivo php para generar el link me aparece el siguiente error
Fatal error: Call to undefined method stdClass::getPrivileges() in /home/xxx/public_html/Corebos/include/utils/UserInfoUtil.php on line 3409
Alguna idea de qué es lo que estoy haciendo mal?
En el archivo addActionLink.php, he añadido lo siguiente:
$mod_acc = Vtiger_Module::getInstance('Contacts');
$asRecibidas&action=EditView&cbfromid=$RECORD$');
Posts: 3,565
Threads: 36
Joined: Apr 2014
Reputation:
49
Seguramente te falta definir el usuario actual con este trozo de código después de cargar Module.php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$usr = new Users();
$current_user = Users::getActiveAdminUser();
pero recuerda que ahora ya no hace falta crear acciones mediante código, desde hace muchos meses se ha movido esta funcionalidad a la aplicación. Ves al módulo Business Actions (Acciones de Negocio) donde podrás crear acciones de manera sencilla
Joe
TSolucio
Posts: 3,565
Threads: 36
Joined: Apr 2014
Reputation:
49
prueba añadiendo <OrgFieldId> creo que es obligatorio ahora
Joe
TSolucio
Posts: 101
Threads: 21
Joined: Mar 2018
Reputation:
16
Lo acabo de añadir, pero no me funciona igual
Así es como me ha quedado
<map>
<originmodule>
<originname>Contacts</originname>
</originmodule>
<targetmodule>
<targetname>LlamadasRecibidas</targetname>
</targetmodule>
<fields>
<field>
<fieldname>cf_1151</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>record_id</OrgfieldName>
<OrgfieldID>778</OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>assigned_user_id</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>assigned_user_id</OrgfieldName>
<OrgfieldID>FIELD</OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>cf_1138</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>account_id</OrgfieldName>
<OrgfieldID>8</OrgfieldID>
</Orgfield>
</Orgfields>
</field>
</fields>
</map>
Posts: 3,565
Threads: 36
Joined: Apr 2014
Reputation:
49
OrgFieldID = FIELD
¿tu módulo está al día para soportar esta funcionalidad?
Joe
TSolucio
Posts: 101
Threads: 21
Joined: Mar 2018
Reputation:
16
07-01-2019, 07:30 PM
(This post was last modified: 07-01-2019, 07:30 PM by construmet4.)
No es un módulo muy complejo, pero la verdad es que está hecho con la carpeta vtlib/Moduledir
Qué tengo que hacer para que funcione correctamente?, los OrgFieldID los he sacado de otros ejemplos, ya que no sé de donde sacarlos
Posts: 3,565
Threads: 36
Joined: Apr 2014
Reputation:
49
OrgFieldID=FIELD en tu caso porque solo quieres copiar campos
asegurate que los ficheros están al día con la ultima versión de ModuleDir, especialmente EditView.php, pero esto no tiene más, es así de sencillo
prueba rellenando el campo description con un texto constante
<field>
<fieldname>description</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>un texto</OrgfieldName>
<OrgfieldID>CONST</OrgfieldID>
</Orgfield>
</Orgfields>
</field>
solo para ver si el problema está en el mapa o en la definicion de los campos
Joe
TSolucio
Posts: 101
Threads: 21
Joined: Mar 2018
Reputation:
16
07-02-2019, 06:10 AM
(This post was last modified: 07-02-2019, 08:17 AM by construmet4.)
No he tenido resultados, el campo descripción no se ha rellenado con la constante.
Lo que tengo que hacer es llenar los campos contato, cuenta y asignado a que son 3 campos relacionados con los modulos Contacts y Accounts, desde el módulo Contacts, o bien con el boton que ya he creado de ActionLink, o bien por medio del bloque del módulo LlamadasRecibidas que tengo configurado que aparezca en el módulo Contacts, pero que aprentando a añadir nueva llamada, sólo me traspasa el campo Contacto, no me pasa ni el campo Cuenta ni el campo Asignado a
Aquí el mapa que he creado nuevo
<map>
<originmodule>
<originname>Contacts</originname>
</originmodule>
<targetmodule>
<targetname>LlamadasRecibidas</targetname>
</targetmodule>
<fields>
<field>
<fieldname>cf_1151</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>record_id</OrgfieldName>
<OrgfieldID>778</OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>assigned_user_id</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>assigned_user_id</OrgfieldName>
<OrgfieldID>FIELD</OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>cf_1138</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>account_id</OrgfieldName>
<OrgfieldID>8</OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>description</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>texto de prueba</OrgfieldName>
<OrgfieldID>CONST</OrgfieldID>
</Orgfield>
</Orgfields>
</field>
</fields>
</map>
¿Hay alguna otra forma de pasar esas variables sin necesidad de los mapas de negocio? algo he leido de modificar el fichero EditView.php del modulo de destino, pero no se bien cómo tengo que hacerlo, ¿Es posible?, ¿tienes algún ejemplo? en total necesito pasar 3 variables, el campo Cuenta, el campo Contacto, y el campo Asignado a desde el módulo Contacts.