跳到:
内容
类别
搜索
顶部
底部
Codex主页参与和贡献贡献代码

贡献代码

感谢您对BuddyPress的关注!BuddyPress是一个开源项目因此由志愿者维护就像你一样。是的至关重要的为了BuddyPress当前和未来的成功,需要有一批健康的贡献者。非常欢迎您加入我们,尽可能让插件变得更好:每一项改进都取决于社区。此快速入门指南为BuddyPress Core贡献代码,您可以在其中找到所需的资源,帮助您完成提交第一个补丁的过程。

选择您最喜欢的代码编辑器!

BuddyPress主要使用四种编码语言:PHP、JavaScript、CSS和HTML。要编写这些语言,您需要一个代码/文本编辑器。下面是一些不错的建议:

选择您喜欢的版本控制系统

BuddyPress使用颠覆存储库来管理插件的代码源。此存储库还镜像到Git存储库上。因此,您将使用的版本控制系统取决于您!

如果你想安装Subversion,WordPress“核心贡献者手册“有一个很棒的教程关于它。

如果您喜欢Git,并且选择了与Visual Studio Code不同的文本编辑器(它包含在其中),以下是获得它的一些方法:

安装一些其他工具以充分享受BuddyPress的贡献

当你开始向BuddyPress投稿时,你可能不需要下面列出的所有工具。您可以选择只安装NodeJS,并在需要时安装其他工具。

[1] BuddyPress使用GruntJS来运行一些构建任务,如准备要提交的文件、生成CSS样式表的RTL版本或最小化JavaScript文件。

[2] Composer用于安装一些包,以便能够检查PHP代码兼容性并在中运行PHPUnit测试我们的违约当地发展环境。

[3] WP CLI用于从插件的PHP和JavaScript文件生成POT文件。翻译人员使用此POT文件将BuddyPress翻译成各种语言(法语、德语、西班牙语等)。为您提供信息,WP CLI是从命令行运行WordPress脚本的一个非常强大的工具.

[4] PHPUnit用于在任何当地发展环境。

获取BuddyPress开发版本

首先,你需要一个终端软件,macO和Linux多年来一直在本地包含这样的软件。如果您使用的是Microsoft Windows并选择使用Git for Windows,则它包含一个BASH仿真来运行我们将在本教程中使用的相同命令,否则将使用最新的Microsoft终端看起来很棒。

打开新的终端窗口后,在您选择的本地路径中创建一个名为“buddypress”的新目录。

mkdir~/插件/buddypress

如果您正在使用颠覆,运行此命令:

#SVN公司svn公司https://buddypress.svn.wordpress.org/trunk/~/插件/buddypress

如果您正在使用吉特,请改用此命令。

#吉特git克隆git://buddypress.git.wordpress.org/~/插件/buddypress

如果您移动到~/插件/buddypress目录下载完成后,您应该会找到以下屏幕截图中突出显示的文件夹和文件。

安装默认的本地开发环境

您刚刚下载的BuddyPress开发版本包含@文字新闻/env包生成本地环境NodeJS(最新的LTS版本)码头工人。要安装Docker,请根据您的操作系统遵循下列说明:

安装Docker并在后台运行后,打开一个Terminal窗口以设置本地开发环境。

cd~/插件/buddypress

~/插件/buddypress在下载代码的文件夹中,首先需要安装我们在BuddyPress中使用的节点模块。为此,只需运行以下命令,休息一下,让NodeJS下载我们用作开发依赖项的模块(可能需要一些时间!):

npm安装

对于初学者来说,如果在Microsoft windows env上安装npm时遇到任何错误,您还必须安装windows构建工具.

一旦安装了节点模块,如果您计划运行/编写PHP单元测试,还需要安装一些作曲家包装:

编写器安装

你应该看到你的~/插件/buddypress目录现在包含1或2个子目录:/节点_模块/供应商如果您安装了composer包。

现在,我们可以使用以下命令设置本地开发环境:

npm运行wp-env启动

第一次执行此命令需要一些时间才能运行,您将看到两次下载将开始:

等待终端显示以下消息:

WordPress已启动。(以00s 00ms为单位)

然后,您可以打开Internet浏览器并转到以下URL:http://localhost:8888/wp-管理员/.

您还有最后一步要完成:将永久链接结构设置为普通选项以外的其他内容。以下是管理员帐户的默认凭据:

其他有用的命令

停止开发环境

npm运行wp-env停止

运行此命令后,您将很快收到以下确认消息。

已停止WordPress。(以00s 00ms为单位)

运行PHP单元测试

如果您选择安装Composer和我们用作开发依赖项的包,您将能够运行我们的PHP单元测试套件(当然还有助于增加新的测试).

在常规WordPress配置上
npm运行测试-php
在多站点WordPress配置上
npm运行测试-php-多站点

自定义BuddyPress本地开发环境

为了开发BuddyPress,我们使用了WordPress(文字出版社),的开发版本BP REST API我们设置了两个调试常数:

定义('WP_DEBUG',true);定义('SCRIPT_DEBUG',true);

这些选项定义在.wp-env.jsonBuddyPress存储库的文件。可以使用名为.wp-env.override.json文件进入您的~/插件/buddypress本地目录。

例如,您可以选择包含另一个插件,就像我们用来开发的插件一样BP区块将此内容用于替代文件:

{“core”:“WordPress/WordPress#master”,“插件”:[“.”,“buddypress/BP-REST#master”,“buddypress/BP-blocks#master“],“配置”:{“WP_DEBUG”:为真,“SCRIPT_DEBUG”:真}}

设置不同的开发环境

我们的目标当地发展环境是为了让新的贡献者更容易、更快地准备好帮助BuddyPress项目。如果你喜欢建立自己的当地环境:那完全好!在这种情况下,要为BuddyPress做出贡献,您只需签出我们的SVN存储库或将我们的Git镜像克隆到/wp-content/插件您在本地环境中使用的WordPress的目录。

供您参考的WordPress核心贡献者手册包括很棒的教程营造这样的环境。

修补BuddyPress

让我们来看一个真实的错误示例(当您阅读此页面时,它可能已经被修复了!),以了解如何向BuddyPress开发团队建议修复方法。首先,打开~/插件/buddypress目录放入您喜爱的代码编辑器中。

如您所见,我正在使用Visual Studio代码编辑器🙂 我想在左边有一个所有目录和文件的树,在打开的文件的内容下有一个终端窗口。

BuddyPress插件组织到WordPress插件目录是:

在进行任何更改之前,我建议您始终将BuddyPress开发版本的本地副本与我们的中央存储库同步。使用终端,只需运行与版本控制系统你选择了。

#SVN公司svn向上#吉特git-pull原始主机

同步后,让我们启动BuddyPress本地开发环境。

npm运行wp-env启动

一旦得到确认,它就启动并运行了,您可以转到http://localhost:8888玩WordPress网站。

发现问题

如果您登录并转到Dashboard,然后打开BuddyPress的工具子菜单,您会看到以下内容。

到目前为止没有什么特别的,但让我们激活其中一个复选框,点击“修复项目”按钮,然后关注将显示的通知。

然后,您应该会发现与WordPress管理的一般外观缺乏一致性:

此外,它是次要的,但“修复工具”表单上方信息的颜色(这似乎是一个重要的建议)比文本的其余部分浅。

如果您使用Web浏览器软件的检查器深入查看,并将BuddyPress工具管理屏幕(右侧的图像)与另一个WordPress工具的管理屏幕(左侧的图像)进行比较,您将看到HTML输出[1]需要编辑以及src/bp-core/admin/css/common.css文件[2].

[1] 与其他管理屏幕相比,您可以看到小时位于中的主标题下缺少标记小时1标签。现在,如果您将表单结构与WordPress导出工具,你可以看到它的改进。让我们添加一个氢气标记以直观地通知用户选择一个或多个工具和使用传奇标记以告知屏幕阅读器复选框的预期内容。您还可以将复选框包装到段落标记中。

[2] 如果通知消息具有较大的高度和较小的宽度,这是由于BuddyPress Admin CSS文件将包装器的内容宽度限制为最大950像素,并使用较大的线路高度用于段落。

编辑代码以修复BuddyPress本地存储库中的问题

BuddyPress工具管理屏幕的内容由bp_core_admin_tools()函数src/bp-core/admin/bp-core-admin-tools.php文件。

要成功地警告管理员如果一次运行多个工具可能会产生的潜在数据库开销,可以使用注意CSS类而不是描述一个被使用的。您还应该添加小时标记来分隔页面页眉的末尾,并使用更内联的表单结构WordPress导出工具的屏幕。

保存编辑后,让我们将结果检查到web浏览器中。您需要重现发现问题的步骤。

您仍然需要处理通知演示:让我们编辑BuddyPress管理员CSS文件!

当您编辑HTML输出时,不再需要一些CSS规则,正如您前面看到的,您不需要限制屏幕内容包装器的宽度。我相信您不需要任何CSS规则5.0工具-BuddyPress部分。因此,让我们删除它并更新节编号。

正在生成修补程序

要与BuddyPress开发团队分享您解决问题的建议,您需要使用我们的Trac公司(我们的工具用于管理BuddyPress代码源和跟踪BuddyPrins错误)。

如果你没有WordPress.org帐户尚未开通,创建一个因为您需要登录BP Trac才能提交门票。

修补程序是一个文件,其中包含您与现有代码相比更改的代码,您将使用此文件作为Trac票据的附件来解释此问题。

下面是创建此文件时要运行的命令:

#SVN公司svn diff>~/桌面/replaceWithTicketNumber.diff#吉特git diff--无前缀>~/Desktop/replaceWithTicketNumber.patch

注意:这个--无前缀Git命令的选项很重要,这样使用SVN的人就可以应用您的补丁程序。如果希望避免在每次创建修补程序时都添加此选项,可以通过以下方式自定义Git配置:

git-config--global--bool diff.noprefix为true

以下是如何差异如果在代码编辑器中打开该文件,则其外观应为:

现在您已经创建了修补程序,需要进行清理,以便下次同步BuddyPress存储库的本地副本时不会出现错误。为此,请运行以下命令:

#SVN公司svn还原-R*#吉特git结账。

在BuddyPress Trac上共享您的票证

现在您已经准备好了修补程序,并且清理了BuddyPress存储库的本地副本,您可以写一张关于它的通知单,告知BuddyPublishs开发团队您的巨大贡献。前往BP Trac页面提交您的机票这样做。

在摘要字段中,插入问题的简短描述。使用描述多行文本字段详细说明问题,确保告知复制步骤它最终会特定配置用来复制它(例如:多站点,BuddyPress在子站点上处于活动状态). 别忘了添加有修补程序关键字添加到您的票据,并激活复选框以在您的票据发布后附加文件。您可以包括截屏或任何有助于了解修补程序应用后将修复哪些内容的补充信息。

提交您的票证,不要忘记编辑您的文件名,以匹配下一屏幕加载后您将找到的票证号。

对于此修补程序用票号替换.批文件应重命名为8357.补丁.

迄今为止做得很好!您可以查看提交的票证:#8357.

每次您的票证更新(评论、提交……)时,您都会收到一封电子邮件通知。关于你的门票的讨论很可能会发生:例如,BuddyPress开发人员可能会要求你更新/编辑你的补丁。你会发现这些讨论非常有趣,可以极大地帮助你提高技能。

对BuddyPress存储库的本地副本应用补丁

有两种情况需要对BuddyPress存储库的本地副本应用补丁:

  1. 您需要更新之前在BP Trac上共享的修补程序。
  2. 你想为另一个贡献者共享的补丁做贡献,并向他提供你的反馈。

在这两种情况下,要运行的命令是相同的。首先从终端软件移动到BuddyPress存储库的本地副本。

cd~/插件/buddypress

到达后,不要忘记将本地副本与中央BuddyPress存储库同步。

#SVN公司svn向上#吉特git-pull原始主机

如果您安装了GruntJS工具,只需运行以下命令:

咕哝补丁:8357

8357是票号(创建于上一章).

否则,在应用补丁之前,您需要从票据页面下载补丁。

下载后,无论使用SVN还是Git命令应用补丁都是一样的。

补丁-p0</path-to-the-downloaded-patch/8357.补丁

更新完补丁后(可能生成或者测试另一个贡献者的补丁,不要忘记清理BuddyPress存储库的本地副本。

#支持向量网络svn还原-R*#Git公司git结账。

遵循WordPress编码和文档标准

编辑BuddyPress代码源时,重要的是您的代码遵循WordPress编码标准。我建议你经常检查它们,因为它们可以更新。以下是编码标准链接:

对于代码中可能使用的内联文档(对于类、挂钩和函数DocBlocks),使用以下WordPress标准也很重要:

祝贺 你!你现在准备好了贡献给BuddyPress代码源。如果您正在寻找要解决的问题,请查看我们的路线图点击最新里程碑的“活动”链接,了解我们需要做什么😉

跳到工具栏