Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
problemas añadir addActionLink.php
#1
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$');
Reply
#2
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
Reply
#3
Ok ha funcionado muy bien para crear el actionlink la opción de Acciones de Negocio, pero ahora las variables no pasan en el formulario aunque ahora el link si que funciona bien e identifica el número de id del contacto en cuestion

http://xxx.net/Corebos/index.php?module=LlamadasRecibidas&action=EditView&cbfromid=8324

Tengo el mapa de negocio realizado

<map>
<originmodule>
<originname>Contacts</originname>
</originmodule>
<targetmodule>
<targetname>LlamadasRecibidas</targetname>
</targetmodule>
<fields>
<field>
<fieldname>cf_1151</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>record_id</OrgfieldName>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>assigned_user_id</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>assigned_user_id</OrgfieldName>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>cf_1138</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>account_id</OrgfieldName>
</Orgfield>
</Orgfields>
</field>
</fields>
</map>

Que puede estar pasando?
Reply
#4
prueba añadiendo <OrgFieldId> creo que es obligatorio ahora
Joe
TSolucio
Reply
#5
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>
Reply
#6
OrgFieldID = FIELD

¿tu módulo está al día para soportar esta funcionalidad?
Joe
TSolucio
Reply
#7
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
Reply
#8
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
Reply
#9
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.
Reply
#10
Acabo de copiar tu mapa a la demo y basicamente ha funcionado sin más

tienes el nombre correcto del mapa?

http://demo.corebos.com/index.php?module=cbMap&action=DetailView&viewname=0&start=&record=43298&;
Joe
TSolucio
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)