Bienvenido, Invitado
Nombre de Usuario: Contraseña: Recordarme
  • Página:
  • 1
  • 2
  • 3

TEMA: Obtener información de usuario de Jomsocial, CB, AUP, ect

Obtener información de usuario de Jomsocial, CB, AUP, ect 9 años 7 meses ago #15778

  • JoniJnm
  • Avatar de JoniJnm
  • Offline
  • Administrador
  • Mensajes: 4579
  • Gracias recibidas 544
  • Karma: 160
· Descripción
Con este cambio se podrá obtener información del usuario de otros componentes, como Jomsocial, CB o AUP. Este hack permite obtener la firma, el cumpleaños, ect de los campos del gestor de perfiles.

· Versión 0.3

· Probado en las versiones
- Kunena 1.6.1
- Joomla 1.5.18 y 1.5.23

· Imagen en la administración
http://i45.tinypic.com/15wnzq0.png

· Ficheros que necesitan cambios
- {admin}/libraries/integration/profile.php
- {admin}/libraries/integration/jomsocial/profile.php
- {admin}/libraries/integration/communitybuilder/profile.php
- {admin}/libraries/integration/alphauserpoints/profile.php
- {admin}/libraries/user.php
- {admin}/admin.kunena.html.php
- {admin}/en-GB.com_kunena.ini
- {site}/lib/kunena.config.class.php

·Cambios

- integration/profile.php
Busca / Search
public function getProfileView($PopUserCount=0) {}
Añade arriba / Add before
// JoniJnm InfoIntegration (S)
public function getUserInfo($userid) {}

- jomsocial/profile.php
Busca / Search
public function getProfileURL($userid, $task='', $xhtml = true)
Añade arriba / Add before
// JoniJnm InfoIntegration
	public function getUserInfo($userid) {
		static $users = array();
		if (!isset($users[$userid])) {
			$users[$userid] = new stdclass;
			$kunena_config =& KunenaFactory::getConfig();
			$kunena_db =& JFactory::getDBO();
			if ($kunena_config->ipi_personal_text == 'status') {
				$kunena_db->setQuery("SELECT status FROM #__community_users WHERE userid=".$userid);
				$users[$userid]->personalText = $kunena_db->loadResult();
			}
			$kunena_db->setQuery("SELECT v.field_id,f.fieldcode,v.value,f.options FROM #__community_fields_values AS v LEFT JOIN #__community_fields AS f ON f.id=v.field_id WHERE v.user_id = ".$userid);
			$datos = $kunena_db->loadObjectList();
			foreach ($datos as $dato) {
				if ($dato->fieldcode == $kunena_config->ipi_website) {
					$users[$userid]->websiteurl 	=	substr($dato->value, 0, 7) == "http://" ? substr($dato->value, 7) : $dato->value;
					$users[$userid]->websitename 	=	$dato->value;
				}
				elseif ($dato->fieldcode == $kunena_config->ipi_birthdate) {
					$users[$userid]->birthdate = explode(" ",$dato->value);
					$users[$userid]->birthdate = $users[$userid]->birthdate[0];
				}
				elseif ($dato->fieldcode == $kunena_config->ipi_gender) {
					$users[$userid]->gender = array_search($dato->value, explode("\n", $dato->options));
					$users[$userid]->gender++;
				}
				elseif ($dato->fieldcode == $kunena_config->ipi_signature)
					$users[$userid]->signature 	=	$dato->value;
				elseif ($dato->fieldcode == $kunena_config->ipi_personal_text)
					$users[$userid]->personalText 	=	$dato->value;
				elseif ($dato->fieldcode == $kunena_config->ipi_facebook)
					$users[$userid]->FACEBOOK 	=	$dato->value;
			}
		}
		return $users[$userid];
	}
	// Fin JoniJnm

- communitybuilder/profile.php
Busca / Search
public function getUserListURL($action='')
Añade arriba / Add before
// JoniJnm InfoIntegration
	public function getUserInfo($userid) {
		static $users = array();
		if (!isset($users[$userid])) {
			$users[$userid] = new stdclass;
			$kunena_config =& KunenaFactory::getConfig();
			$kunena_db =& JFactory::getDBO();
			$kunena_db->setQuery("SELECT * FROM #__comprofiler WHERE user_id = ".$userid);
			$datos = $kunena_db->loadObject();
			$dato = $kunena_config->ipi_website;
			if (isset($datos->$dato)) {
				$users[$userid]->websiteurl = substr($datos->$dato, 0, 7) == "http://" ? substr($datos->$dato, 7) : $datos->$dato;
				$users[$userid]->websitename = $datos->$dato;
			}
			$dato = $kunena_config->ipi_birthdate;
			if (isset($datos->$dato))
				$users[$userid]->birthdate = $datos->$dato;
			$dato = $kunena_config->ipi_gender;
			if (isset($datos->$dato) && $datos->$dato) {
				$kunena_db->setQuery("SELECT v.fieldtitle FROM #__comprofiler_fields AS f LEFT JOIN #__comprofiler_field_values AS v ON v.fieldid=f.fieldid WHERE f.name='".$dato."' ORDER BY v.ordering");
				$list = $kunena_db->loadResultArray();
				$users[$userid]->gender = array_search($datos->$dato, $list);
				$users[$userid]->gender++;
			}
			$dato = $kunena_config->ipi_signature;
			if (isset($datos->$dato))
				$users[$userid]->signature = $datos->$dato;
			$dato = $kunena_config->ipi_personal_text;
			if (isset($datos->$dato))
				$users[$userid]->personalText = $datos->$dato;
			$dato = $kunena_config->ipi_facebook;
			if (isset($datos->$dato))
				$users[$userid]->FACEBOOK = $datos->$dato;
		}
		return $users[$userid];
	}
	// Fin JoniJnm

- alphauserpoints/profile.php
Busca / Search
public function getUserListURL($action='')
Añade arriba / Add before
// JoniJnm InfoIntegration
	public function getUserInfo($userid) {
		static $users = array();
		if (!isset($users[$userid])) {
			$users[$userid] = new stdclass;
			$kunena_config =& KunenaFactory::getConfig();
			$kunena_db =& JFactory::getDBO();
			$kunena_db->setQuery("SELECT * FROM #__alpha_userpoints WHERE userid = ".$userid);
			$datos = $kunena_db->loadObject();
			$dato = $kunena_config->ipi_website;
			if (isset($datos->$dato)) {
				$users[$userid]->websiteurl = substr($datos->website, 0, 7) == "http://" ? substr($datos->website, 7) : $datos->website;
				$users[$userid]->websitename = $datos->website;
			}
			$users[$userid]->birthdate = $datos->birthdate;
			$users[$userid]->gender = $datos->gender;
			$users[$userid]->location = $datos->country;
			$users[$userid]->FACEBOOK = $datos->facebook;
			$users[$userid]->TWITTER = $datos->twitter;
			$users[$userid]->ICQ = $datos->icq;
			$users[$userid]->AIM = $datos->aim;
			$users[$userid]->YIM = $datos->yim;
			$users[$userid]->MSN = $datos->msn;
			$users[$userid]->SKYPE = $datos->skype;
			$users[$userid]->GTALK = $datos->gtalk;
		}
		return $users[$userid];
	}
	// Fin JoniJnm

- user.php
Busca / Search
function save($updateOnly = false) {
Añade antes / Add before
// JoniJnm InfoIntegration
	function addInfo($id) {
		$kunena_config =& KunenaFactory::getConfig();
		if ($id && $kunena_config->integration_profile_info) {
			static $integration;
			if (!isset($integration)) {
				$integration = $kunena_config->integration_profile;
				if ($integration == 'auto')
					$integration = KunenaIntegration::detectIntegration('profile', true);
			}
			$call = array("KunenaProfile".$integration, 'getUserInfo');
			if (is_callable($call)) {
				$info = call_user_func($call, $id);
				if (is_object($info)) {
					foreach ($info as $param=>$value) {
						if ($value) $this->$param = $value;
					}
				}
			}
		}
	}
	// Fin JoniJnm
Busca
$this->setProperties ( $table->getProperties () );
Añade después
// JoniJnm InfoIntegration
		if ($this->_exists && JRequest::getCmd('func') == 'view') 
			$this->addInfo($id);
		// Fin JoniJnm
Busca
$instance->bind ( $user, true );
Añade después
// JoniJnm InfoIntegration
			if (JRequest::getCmd('func') == 'view') 
				$instance->addInfo($instance->userid);
			// Fin JoniJnm

- admin.kunena.php
Busca / Search
kimport('integration.integration');
Añade arriba / Add before
// JoniJnm InfoIntegration
	//New for 1.6: get user info from profile integrator
	$lists['integration_profile_info'] = JHTML::_('select.genericlist', $yesno, 'cfg_integration_profile_info', 'class="inputbox" size="1"', 'value', 'text', $kunena_config->integration_profile_info);
	// Fin JoniJnm

- admin.kunena.html.php
Busca / Search
<fieldset>
					<legend><?php echo JText::_('COM_KUNENA_AUP_ALPHAUSERPOINTS'); ?></legend>
Añade arriba / Add before
<fieldset>
					<legend><?php echo JText::_('COM_KUNENA_INTEGRATION_PROFILE_INFO'); ?></legend>
					<table cellpadding="4" cellspacing="0" border="0" width="100%" class="kadmin-adminform">
						<tr align="center" valign="middle">
							<td align="left" valign="top" width="25%"><?php echo JText::_('COM_KUNENA_IPI_ENEABE'); ?></td>
							<td align="left" valign="top" width="25%"><?php echo $lists ['integration_profile_info']; ?></td>
							<td align="left" valign="top"><?php echo JText::_('COM_KUNENA_IPI_ENEABE_DESC'); ?></td>
						</tr>
						<tr align="center" valign="middle">
							<td align="left" valign="top" width="25%"><?php echo JText::_('COM_KUNENA_IPI_PERSONAL_TEXT'); ?></td>
							<td align="left" valign="top" width="25%"><input type="text"
								name="cfg_ipi_personal_text"
								value="<?php echo kescape($kunena_config->ipi_personal_text); ?>" /></td>
							<td align="left" valign="top"><?php echo JText::_('COM_KUNENA_IPI_PERSONAL_TEXT_DESC'); ?></td>
						</tr>
						<tr align="center" valign="middle">
							<td align="left" valign="top" width="25%"><?php echo JText::_('COM_KUNENA_IPI_WEBSITE'); ?></td>
							<td align="left" valign="top" width="25%"><input type="text"
								name="cfg_ipi_website"
								value="<?php echo kescape($kunena_config->ipi_website); ?>" /></td>
							<td align="left" valign="top"><?php echo JText::_('COM_KUNENA_IPI_WEBSITE_DESC'); ?></td>
						</tr>
						<tr align="center" valign="middle">
							<td align="left" valign="top" width="25%"><?php echo JText::_('COM_KUNENA_IPI_BIRTHDATE'); ?></td>
							<td align="left" valign="top" width="25%"><input type="text"
								name="cfg_ipi_birthdate"
								value="<?php echo kescape($kunena_config->ipi_birthdate); ?>" /></td>
							<td align="left" valign="top"><?php echo JText::_('COM_KUNENA_IPI_BIRTHDATE_DESC'); ?></td>
						</tr>
						<tr align="center" valign="middle">
							<td align="left" valign="top" width="25%"><?php echo JText::_('COM_KUNENA_IPI_GENDER'); ?></td>
							<td align="left" valign="top" width="25%"><input type="text"
								name="cfg_ipi_gender"
								value="<?php echo kescape($kunena_config->ipi_gender); ?>" /></td>
							<td align="left" valign="top"><?php echo JText::_('COM_KUNENA_IPI_GENDER_DESC'); ?></td>
						</tr>
						<tr align="center" valign="middle">
							<td align="left" valign="top" width="25%"><?php echo JText::_('COM_KUNENA_IPI_SIGNATURE'); ?></td>
							<td align="left" valign="top" width="25%"><input type="text"
								name="cfg_ipi_signature"
								value="<?php echo kescape($kunena_config->ipi_signature); ?>" /></td>
							<td align="left" valign="top"><?php echo JText::_('COM_KUNENA_IPI_SIGNATURE_DESC'); ?></td>
						</tr>
						<tr align="center" valign="middle">
							<td align="left" valign="top" width="25%"><?php echo JText::_('COM_KUNENA_IPI_FACEBOOK'); ?></td>
							<td align="left" valign="top" width="25%"><input type="text"
								name="cfg_ipi_facebook"
								value="<?php echo kescape($kunena_config->ipi_facebook); ?>" /></td>
							<td align="left" valign="top"><?php echo JText::_('COM_KUNENA_IPI_FACEBOOK_DESC'); ?></td>
						</tr>
					</table>
				</fieldset>

- kunena.config.class.php
Busca / Search
public function __construct($userinfo = null) {
Añade arriba / Add before
// JoniJnm InfoIntegration
	//New for 1.6: get user info from profile integrator
	var $integration_profile_info = 0;
	var $ipi_personal_text = '';
	var $ipi_website = '';
	var $ipi_birthdate = '';
	var $ipi_gender = '';
	var $ipi_signature = '';
	var $ipi_facebook = '';
	// Fin JoniJnm

- en-GB.com_kunena.ini
Añade / Add
; JoniJnm InfoIntegration
COM_KUNENA_INTEGRATION_PROFILE_INFO="Profile info"
COM_KUNENA_IPI_ENEABE="Eneable load info"
COM_KUNENA_IPI_ENEABE_DESC="With this feature you can load user's info from others componentes. You need set the 'Field Code' of the info if you use Community Builder or Jomsocial. With AlphaUserPoints is auto"
COM_KUNENA_IPI_PERSONAL_TEXT="Personal text"
COM_KUNENA_IPI_PERSONAL_TEXT_DESC="Default in Jomsocial: status"
COM_KUNENA_IPI_WEBSITE="Website"
COM_KUNENA_IPI_WEBSITE_DESC="Default in Jomsocial: FIELD_WEBSITE"
COM_KUNENA_IPI_BIRTHDATE="Birthdate"
COM_KUNENA_IPI_BIRTHDATE_DESC="Default in Jomsocial: FIELD_BIRTHDAY"
COM_KUNENA_IPI_GENDER="Gender"
COM_KUNENA_IPI_GENDER_DESC="Default in Jomsocial: FIELD_GENDER<br />In Community builder, the field type must be 'Radio buttons'"
COM_KUNENA_IPI_SIGNATURE="Signature"
COM_KUNENA_IPI_SIGNATURE_DESC="Default in Community Builder: forumsignature"
COM_KUNENA_IPI_FACEBOOK="Facebook"
COM_KUNENA_IPI_FACEBOOK_DESC=""
; Fin JoniJnm
Última Edición: 8 años 6 meses ago por JoniJnm.
El administrador ha desactivado la escritura pública.

Re: Obtener información de usuario de Jomsocial, CB, AUP, ect 9 años 7 meses ago #15779

  • Mizunga
  • Avatar de Mizunga
  • Offline
  • Colaborador
  • Mensajes: 469
  • Gracias recibidas 36
  • Karma: 28
Muchas gracias por este hack Joni.
El administrador ha desactivado la escritura pública.

Re: Obtener información de usuario de Jomsocial, CB, AUP, ect 9 años 7 meses ago #15780

  • JoniJnm
  • Avatar de JoniJnm
  • Offline
  • Administrador
  • Mensajes: 4579
  • Gracias recibidas 544
  • Karma: 160
Ya está para AUP y CB, y he mejorado el de JS.

Creo que lo van a incluir pronto en la oficial :)
El administrador ha desactivado la escritura pública.
Los siguientes usuarios han agradecido: Mizunga

Re: Obtener información de usuario de Jomsocial, CB, AUP, ect 9 años 6 meses ago #15969

  • NeGRa
  • Avatar de NeGRa
  • Offline
  • Publicador
  • Mensajes: 68
  • Gracias recibidas 9
  • Karma: 6
Vaya cambio, está guapo el nuevo Kunena, ¿con desinstalar/instalar vale o hay que hacer algo más? ¿está traducido al español? ¿se pierden datos? son las típicas preguntas :P

Por cierto, en la web es alpha 2 para baajr no alpha 3 :s
Última Edición: 9 años 6 meses ago por NeGRa.
El administrador ha desactivado la escritura pública.

Re: Obtener información de usuario de Jomsocial, CB, AUP, ect 9 años 6 meses ago #15974

  • JoniJnm
  • Avatar de JoniJnm
  • Offline
  • Administrador
  • Mensajes: 4579
  • Gracias recibidas 544
  • Karma: 160
El alpha 3 está es para desarrolladores, pero no hay muchos cambios de la 2 a la 3.

Con reinstalar vale.
No se pierden datos (pero siempre viene bien hacer un backup).
Está traducido al español, pero incluido en el paquete desde el alpha3. Te dejo el idioma del sitio y del admin.
Última Edición: 9 años 6 meses ago por JoniJnm.
El administrador ha desactivado la escritura pública.

Re: Obtener información de usuario de Jomsocial, CB, AUP, ect 9 años 6 meses ago #15975

  • NeGRa
  • Avatar de NeGRa
  • Offline
  • Publicador
  • Mensajes: 68
  • Gracias recibidas 9
  • Karma: 6
El enlace de admin está mal.

Esperaré entonces a que salga la versión sin alphas ni betas ni ná y la subo a mi web, mientras tanto iré mirando las nuevas cosas y rehaciendo si eso las plantillas.. qué guerra madre mía!

Lo que más me gusta, lo de los perfiles con JomSocial y veo que también tiene para coger datos de FaceBook, ¿cómo hiciste eso?

En mi línea de preguntona xD
El administrador ha desactivado la escritura pública.

Re: Obtener información de usuario de Jomsocial, CB, AUP, ect 9 años 6 meses ago #15980

  • JoniJnm
  • Avatar de JoniJnm
  • Offline
  • Administrador
  • Mensajes: 4579
  • Gracias recibidas 544
  • Karma: 160
Lo del facebook es que rellené el perfil en Kunena, que el 1.6 lo tiene.

Pero siempre se puede añadir un nuevo campo en jomsocial para poner ahí la info del facebook, y luego modificar este plugin para que se integre :-)
El administrador ha desactivado la escritura pública.

Re: Obtener información de usuario de Jomsocial, CB, AUP, ect 9 años 6 meses ago #15986

  • NeGRa
  • Avatar de NeGRa
  • Offline
  • Publicador
  • Mensajes: 68
  • Gracias recibidas 9
  • Karma: 6
Pues ya me dirás la modificación porque a mi el perfil de kunena no me convence y quería poner los campos en el de JomSocial para que la gente pusiera su fb, twitter, msn y alguno más.

Por cierto no sé si es sólo a mí.. pero me sale descuadrado el login del foro, te dejo captura



Espero que cuando esté el J! 1.6 valga todo esto porque si no me muero grgrgr que ya estoy mirando el nuevo JS y ahora el Kunena 1.6 ains..
El administrador ha desactivado la escritura pública.

Re: Obtener información de usuario de Jomsocial, CB, AUP, ect 9 años 6 meses ago #15990

  • JoniJnm
  • Avatar de JoniJnm
  • Offline
  • Administrador
  • Mensajes: 4579
  • Gracias recibidas 544
  • Karma: 160
Sí, Joomla 1.6 valdrá con Kunena 1.6. Yo también tenía ese problema, creo que lo han arreglado en la última build, pero lo que yo hice en template/default/profilebox.php
Debajo de
<!-- /Kunena Header -->
Añadí
<div class="clear"></div>

Ya está lo del facebook en el plugin, a añadirlo :P
Última Edición: 9 años 6 meses ago por JoniJnm.
El administrador ha desactivado la escritura pública.
  • Página:
  • 1
  • 2
  • 3
Tiempo de carga de la página: 0.944 segundos