Joomla用户的头像?


9

我不想安装任何社区插件来做到这一点。
我想向我的注册用户提供一个简单的上传图像表单,这将使他们可以在需要时随时上传和更改其个人资料图片,并且我也想使用任何一种Joomla变量来检索该图像。
我的意思是,就像$user->username返回登录用户的名称一样,应该有一些类似的变量(或脚本/代码)可以显示登录用户的个人资料图片吗?
有机会吗?

Answers:



8

使用第三方扩展的情况下实现此目的的唯一方法是编写自己的插件或开始编辑Joomla随附的配置文件插件。编辑核心文件是一个简单的没有走区域,所以我不会连上启动。

我强烈建议您使用一个小型且简单的第三方插件。这是一个仅针对Joomla 3.4(个人资料图片)执行的插件:

http://extensions.joomla.org/extensions/extension/clients-a-communities/user-management/profile-picture

要访问和显示化身,您可以使用以下代码:

// Import the Profile Picture library
jimport('profilepicture.profilepicture');

// Get the current user object
$user = JFactory::getUser();

// Instantiate the ProfilePicture class with User ID
$profilepicture = new ProfilePicture($user->get('id'));

// Output the picture
echo $profilepicture->toHTML();

查阅https://github.com/mosets/profilepicture以获得其余的API。

希望这可以帮助


使用上面的代码,页面上没有任何显示。当我从上面的代码中删除此行时,if( $profilepicture->exists() )页面上显示了一个损坏的图像图标,该图标试图从该路径获取图像,http://localhost/mediaDSplg_user_profilepictureDSimagesDS200DS8a639a6998494f88b94826cfba68655179d010ee.jpg而实际图像路径为http://localhost/media/plg_user_profilepicture/images/200/8a639a6998494f88b94826cfba68655179d010ee.jpg (斜杠)/的URL中的DS替换为DS路径??
saibbyweb 2014年

如果将上述代码放在文章中,并且仅通过删除此行,则上述代码还可以工作if( $profilepicture->exists() )
saibbyweb 2014年

复制核心Joomla不会更好地完成@lodder的工作!用户个人资料插件并添加字段?
Eoin

@Eoin甚至可以使用自定义字段。...不确定。从未使用过或将要使用它们。但是,是的,你可以复制的核心配置文件的插件和编辑,如果你喜欢,但如果有原来的插件的任何更新或错误的修复,你可能永远不会知道,除非你按照回购如饥似渴
Lodder

是的,但是您也可以覆盖插件。还没有测试过,但是这个stackoverflow.com/questions/17372379/…似乎表明有人使用jw_sig取得了一些成功。我想这全都取决于您是否可以以与菜单项相同的方式覆盖XML,但我认为不会。
Eoin

7

我以前使用过名为Easy Profile的插件。除了支持头像之外,它还对内置的Joomla用户配置文件系统进行了其他一些改进。免费版本有所限制,但据我所知,它仍然支持头像。

我发现有用的功能之一是为注册后的首次登录设置自定义重定向的选项,该功能我们用来向新用户显示社区规则。

其他可用功能(根据JED列表)包括:

  • 自定义字段
  • 头像
  • 用户列表和搜索
  • 用户组的基本条件
  • 重新导向
  • 社交桥
  • 注册和编辑个人资料选项卡视图
  • 名称样式
  • Joomla注册和编辑资料
  • 作者和内容插件
  • Joomla本地多语言
  • 登录类型
  • 隐私权控制
  • 社交连接(仅限专业版)

1
我最近才发现的Easy Profile的另一票。该扩展名大大超出了我的期望,我目前正在使用它来构建一个简单的成员业务目录。这绝对是值得的!
尼尔·罗伯逊


3

我不久前创建了一个自定义配置文件组件。您可能需要的是一个将用户ID映射到用户图片URL的数据库表,然后创建一个助手文件以在需要的地方检索图像。

要上传图像,我使用了我认为的Joomla图像管理器...因此,您只需要提供一个链接即可打开该管理器,或者为它提供指向个人资料图片文件夹的修改路径。或者,如果(可能)不想他们看到所有可用的图片(表示所有用户的意思),则可以通过从文档中删除相应的子元素来删除图片管理器(即,图片管理器实例)中的所有字段加载后,只需保留“浏览”按钮和指示文件名称和路径的标签,然后将路径(URL)保存到上述表中即可。

我使用AJAX来实现这一点-单击链接以上传/更改图片会调用javascript函数,并传递用户ID。javascript函数打开图像管理器,检索新路径,并构建一个AJAX请求,将用户ID和表的路径传递给查询/更新数据库的php文件。Voilà。

这是您所需要的吗?如果您觉得这听起来很有趣,请告诉我,我们很乐意提供更多信息。虽然这可能不是最佳做法。

干杯


如果您使用内置的Joomla,则实际上不需要这样做!个人资料插件。数据库关系将已经使用XML建立。我也不认为您真的不需要帮助程序文件。
Eoin

3

如今可以使用自定义字段来实现。

在此处输入图片说明

万一有人觉得有用,我以前的回答。 以上可能更相关,这里仅供参考。

自定义字段(上方答案)今天是我的偏好。

有一个名为“用户配置文件”的插件。只需转到插件并搜索。尽管没有图像,但它内置了许多其他字段。如果要增强它,可以遵循此文档。 警告。我怀疑此插件将被删除,因为Fields使其使用性降低。

Joomla! 用户配置文件插件

https://docs.joomla.org/Creating_a_profile_plugin

这并不难,在您不知道如何做之前,它似乎比现在难得多。如果要这样做,我肯定会先看一下现有的代码,然后尝试自己修改。

以下是所有当前表单字段类型的列表:https : //docs.joomla.org/Standard_form_field_types

但是,您可能特别希望查看https://docs.joomla.org/Media_form_field_type,它将提供对媒体管理器模式的访问。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.