listener.php
вашего расширения(Чтобы внести все нужные правки без расширения придётся перепортить полдвижка, так что лучше разберитесь сначала с расширениями)
listener.php
вашего расширенияКод: Выделить всё
<?php
/**
*
* @package phpBB Extension - Rename joomla forum
* @copyright (c) 2016 josname
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
namespace Sergey\renamejos\event;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
/**
* Event listener
*/
class listener implements EventSubscriberInterface
{
/**
* Assign functions defined in this class to event listeners in the core
*
* @return array
* @static
* @access public
*/
public function viewtopic_get_post_data($event){
$sql_ary = $event['sql_ary'];
$sql_ary['SELECT'] .= ', idx.name as josname';
$sql_ary['LEFT_JOIN'] = array_merge($sql_ary['LEFT_JOIN'], array(
array(
'FROM' => array('rust1ru_idx.em0s6_users' => 'idx'),
'ON' => 'idx.username = u.username',
),
)
);
$event['sql_ary'] = $sql_ary;
}
static public function getSubscribedEvents(){
$rowset_data = $event['rowset_data'];
$row = $event['row'];
$rowset_data['username'] = $row['josname'];
$event['rowset_data'] = $rowset_data;
}
static public function getSubscribedEvents()
{
return array(
);
}
/** @var \phpbb\template\template */
protected $template;
//** @var string phpbb_root_path */
protected $phpbb_root_path;
/**
* Constructor
*/
public function __construct($phpbb_root_path, \phpbb\template\template $template)
{
$this->phpbb_root_path = $phpbb_root_path;
$this->template = $template;
}
}
getSubscribedEvents
подписаться на события, а потом добавлять код с соответствующие событиям функции{USERNAME_NICK}
в php, для каждого случая где он будет выводиться отдельно. Иначе вместо ников выведется USERNAME_NICK
viewtopic_body.html
viewforum_body.html
ucp_pm_viewfolder.html
ucp_pm_viewmessage.html
viewtopic.php
- события core.viewtopic_get_post_data
, core.viewtopic_cache_guest_data
, core.viewtopic_cache_user_data
и core.viewtopic_modify_post_row
viewforum.php
- предполагаю что core.viewforum_get_topic_data
, core.viewforum_get_shadowtopic_data
, core.viewforum_modify_topicrow
, но не исключаю что при написании кода могут понадобиться и другие событияincludes/functions_display.php
- core.display_forums_modify_sql
, core.display_forums_modify_forum_rows
, core.display_forums_modify_template_vars
(про шаблон forumlist_body.html
, кстати говоря, забыла)includes/ucp/ucp_pm*
includes/functions.php
в сторону всей папки phpbb/notification
, а также отдельно разбирать все сторонние расширения, использующие уведомления\phpbb\template\template
, у него есть методы, которые, соответственно, нужно вызывать для работы с шаблонами.page_header
.USERNAME
, задаются именно там.template
- это Вам предстоит изучить самостоятельно на основе материалов на Гуру и официальном англоязычном сайте, а также на основе уже созданных расширений (их сотни, и они самых разных размеров).Код: Выделить всё
<dt class="<!-- IF postrow.RANK_TITLE or postrow.RANK_IMG -->has-profile-rank<!-- ELSE -->no-profile-rank<!-- ENDIF --> <!-- IF postrow.POSTER_AVATAR -->has-avatar<!-- ELSE -->no-avatar<!-- ENDIF -->">
<div class="avatar-container">
<!-- EVENT viewtopic_body_avatar_before -->
<!-- IF postrow.POSTER_AVATAR -->
<!-- IF postrow.U_POST_AUTHOR --><a href="{postrow.U_POST_AUTHOR}" class="avatar">{postrow.POSTER_AVATAR}</a><!-- ELSE --><span class="avatar">{postrow.POSTER_AVATAR}</span><!-- ENDIF -->
<!-- ENDIF -->
<!-- EVENT viewtopic_body_avatar_after -->
</div>
<!-- EVENT viewtopic_body_post_author_before -->
<!-- IF not postrow.U_POST_AUTHOR --><strong>{postrow.POST_AUTHOR_FULL}</strong><!-- ELSE -->{postrow.POST_AUTHOR_FULL}<!-- ENDIF -->
<!-- EVENT viewtopic_body_post_author_after -->
</dt>
viewtopic_body_post_author_before
и viewtopic_body_post_author_after
) и вывести эту же строку через другое событие шаблона