Version 3.1.4

This commit is contained in:
Neo committed 2025-12-19 00:32:22 -08:00
1 parent 1d4720f3e2
commit ae5c01cc78
2563 files changed
+283048 -240689

No files matched your search

@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<hookexport>
<hookdata>
<config>
<hook_name>Блок рекламы</hook_name>
<hook_desc>Вывод рекламы в правом блоке на главной странице</hook_desc>
<hook_author>Invision Power Services, Inc.</hook_author>
<hook_email/>
<hook_website/>
<hook_update_check/>
<hook_requirements><![CDATA[a:4:{s:20:"hook_ipb_version_min";i:0;s:20:"hook_ipb_version_max";i:0;s:20:"hook_php_version_min";s:0:"";s:20:"hook_php_version_max";s:0:"";}]]></hook_requirements>
<hook_version_human>1.0.0</hook_version_human>
<hook_version_long/>
<hook_extra_data/>
<hook_key>boardIndexSideBarAdCode</hook_key>
</config>
</hookdata>
<hookfiles>
<file>
<hook_file_real>boardIndexSideBarAdCode.php</hook_file_real>
<hook_type>templateHooks</hook_type>
<hook_classname>boardIndexSideBarAdCode</hook_classname>
<hook_data><![CDATA[a:7:{s:12:"dataLocation";s:0:"";s:15:"classToOverload";s:0:"";s:9:"skinGroup";s:11:"skin_boards";s:12:"skinFunction";s:18:"boardIndexTemplate";s:4:"type";s:7:"foreach";s:2:"id";s:11:"side_blocks";s:8:"position";s:9:"outer.pre";}]]></hook_data>
<hooks_source><![CDATA[<?php
class boardIndexSideBarAdCode
{
/**#@+
* Registry Object Shortcuts
*
* @access protected
* @var object
*/
protected $registry;
protected $settings;
/**#@-*/
public function __construct()
{
/* Make registry objects */
$this->registry = ipsRegistry::instance();
$this->settings =& $this->registry->fetchSettings();
}
public function getOutput()
{
if( $this->registry->getClass('IPSAdCode')->userCanViewAds() )
{
return $this->registry->getClass('IPSAdCode')->getAdCode('ad_code_board_sidebar');
}
else
{
return '';
}
}
}]]></hooks_source>
</file>
</hookfiles>
<hookextras_settings/>
<hookextras_language/>
<hookextras_modules/>
<hookextras_help/>
<hookextras_templates/>
<hookextras_css/>
<hookextras_tasks/>
<hookextras_database_create/>
<hookextras_database_alter/>
<hookextras_database_update/>
<hookextras_database_insert/>
</hookexport>
@@ -0,0 +1,10 @@
<html>
<head><title>IP.Board - Bulletin Board System</title></head>
<body>
<h1>403: IP.Board -&gt; Forbidden</h1>
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionboard.com/">IP.Board</a>
</body>
</html>
@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8"?>
<hookexport>
<hookdata>
<config>
<hook_name>Опубликованные ссылки</hook_name>
<hook_desc>Вывод информации о последних опубликованных ссылках</hook_desc>
<hook_author>Invision Power Services</hook_author>
<hook_email/>
<hook_website/>
<hook_update_check/>
<hook_requirements><![CDATA[a:4:{s:20:"hook_ipb_version_min";i:0;s:20:"hook_ipb_version_max";i:0;s:20:"hook_php_version_min";s:0:"";s:20:"hook_php_version_max";s:0:"";}]]></hook_requirements>
<hook_version_human>1.0.0</hook_version_human>
<hook_version_long>10001</hook_version_long>
<hook_extra_data><![CDATA[a:1:{s:8:"database";a:0:{}}]]></hook_extra_data>
<hook_key>sharelinks</hook_key>
</config>
</hookdata>
<hookfiles>
<file>
<hook_file_real>boardIndexShareLinks.php</hook_file_real>
<hook_type>templateHooks</hook_type>
<hook_classname>boardIndexShareLinks</hook_classname>
<hook_data><![CDATA[a:7:{s:12:"dataLocation";s:0:"";s:15:"classToOverload";s:0:"";s:9:"skinGroup";s:11:"skin_boards";s:12:"skinFunction";s:18:"boardIndexTemplate";s:4:"type";s:7:"foreach";s:2:"id";s:11:"side_blocks";s:8:"position";s:9:"outer.pre";}]]></hook_data>
<hooks_source><![CDATA[<?php
class boardIndexShareLinks
{
private $hookGateway;
public function __construct()
{
$registry = ipsRegistry::instance();
require_once( IPSLib::getAppDir( 'core' ) . '/sources/classes/hooks/gateway.php' );
$this->hookGateway = new core_hookGateway( $registry );
}
public function getOutput()
{
return $this->hookGateway->shareLinks();
}
}]]></hooks_source>
</file>
</hookfiles>
<hookextras_settings/>
<hookextras_language/>
<hookextras_modules/>
<hookextras_help/>
<hookextras_templates/>
<hookextras_css/>
<hookextras_tasks/>
<hookextras_database_create/>
<hookextras_database_alter/>
<hookextras_database_update/>
<hookextras_database_insert/>
</hookexport>
@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<hookexport>
<hookdata>
<config>
<hook_name>Уведомления</hook_name>
<hook_desc>Вывод не прочитанных уведомлений пользвателя на главной странице</hook_desc>
<hook_author>Invision Power Services, Inc</hook_author>
<hook_email/>
<hook_website/>
<hook_update_check/>
<hook_requirements><![CDATA[a:4:{s:20:"hook_ipb_version_min";i:31000;s:20:"hook_ipb_version_max";i:0;s:20:"hook_php_version_min";s:0:"";s:20:"hook_php_version_max";s:0:"";}]]></hook_requirements>
<hook_version_human>1.0.0</hook_version_human>
<hook_version_long>10000</hook_version_long>
<hook_extra_data><![CDATA[a:2:{s:7:"display";N;s:8:"database";a:0:{}}]]></hook_extra_data>
<hook_key>unread_notifications</hook_key>
</config>
</hookdata>
<hookfiles>
<file>
<hook_file_real>boardIndexNotifications.php</hook_file_real>
<hook_type>templateHooks</hook_type>
<hook_classname>boardIndexNotifications</hook_classname>
<hook_data><![CDATA[a:7:{s:12:"dataLocation";s:0:"";s:15:"classToOverload";s:0:"";s:9:"skinGroup";s:11:"skin_boards";s:12:"skinFunction";s:18:"boardIndexTemplate";s:4:"type";s:7:"foreach";s:2:"id";s:11:"side_blocks";s:8:"position";s:9:"outer.pre";}]]></hook_data>
<hooks_source><![CDATA[<?php
class boardIndexNotifications
{
public $registry;
public function __construct()
{
/* Make registry objects */
$this->registry = ipsRegistry::instance();
$this->memberData =& $this->registry->member()->fetchMemberData();
}
public function getOutput()
{
//-----------------------------------------
// Notifications library
//-----------------------------------------
$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . '/sources/classes/member/notifications.php', 'notifications' );
$notifyLibrary = new $classToLoad( $this->registry );
$notifyLibrary->setMember( $this->memberData );
return $notifyLibrary->getBoardIndexHook();
}
}]]></hooks_source>
</file>
</hookfiles>
<hookextras_settings/>
<hookextras_language/>
<hookextras_modules/>
<hookextras_help/>
<hookextras_templates/>
<hookextras_css/>
<hookextras_tasks/>
<hookextras_database_create/>
<hookextras_database_alter/>
<hookextras_database_update/>
<hookextras_database_insert/>
</hookexport>
@@ -0,0 +1,308 @@
<?xml version="1.0" encoding="utf-8"?>
<hookexport>
<hookdata>
<config>
<hook_name>Формы авторизации Vkontakte</hook_name>
<hook_desc>Добавление форм Vkontakte в шаблоны</hook_desc>
<hook_author>IBResource, LTD</hook_author>
<hook_email/>
<hook_website/>
<hook_update_check/>
<hook_requirements><![CDATA[a:4:{s:20:"hook_ipb_version_min";i:0;s:20:"hook_ipb_version_max";i:0;s:20:"hook_php_version_min";s:0:"";s:20:"hook_php_version_max";s:0:"";}]]></hook_requirements>
<hook_version_human>1.0.1</hook_version_human>
<hook_version_long>10001</hook_version_long>
<hook_extra_data><![CDATA[a:3:{s:7:"display";a:2:{s:9:"templates";s:97:"От skin_vkontakte: membersVkontakteConnect, showLoginVkFrame, vkUserBoxes, vkUserBoxPlaceholder";s:8:"language";s:38:"От core_admin_js: bit_skin_vkontakte";}s:9:"templates";a:1:{s:14:"skin_vkontakte";a:4:{s:0:"";s:23:"membersVkontakteConnect";i:1;s:16:"showLoginVkFrame";i:2;s:11:"vkUserBoxes";i:3;s:20:"vkUserBoxPlaceholder";}}s:8:"language";a:1:{s:13:"core_admin_js";a:1:{s:0:"";s:18:"bit_skin_vkontakte";}}}]]></hook_extra_data>
<hook_key>ibr_vkontakte_forms</hook_key>
</config>
</hookdata>
<hookfiles>
<file>
<hook_file_real>vkontakte.php</hook_file_real>
<hook_type>templateHooks</hook_type>
<hook_classname>vk_frame</hook_classname>
<hook_data><![CDATA[a:8:{s:12:"dataLocation";s:0:"";s:14:"libApplication";s:0:"";s:15:"classToOverload";s:0:"";s:9:"skinGroup";s:10:"skin_login";s:12:"skinFunction";s:13:"showLogInForm";s:4:"type";s:2:"if";s:2:"id";s:12:"toggleOpenId";s:8:"position";s:10:"post.endif";}]]></hook_data>
<hooks_source><![CDATA[<?php
class vk_frame
{
public function getOutput()
{
if( IPSLib::loginMethod_enabled('vkontakte') === true )
{
return ipsRegistry::instance()->output->getTemplate('vkontakte')->vkUserBoxes();
}
}
}]]></hooks_source>
</file>
<file>
<hook_file_real>vkontakte.php</hook_file_real>
<hook_type>templateHooks</hook_type>
<hook_classname>vk_lim</hook_classname>
<hook_data><![CDATA[a:8:{s:12:"dataLocation";s:0:"";s:14:"libApplication";s:0:"";s:15:"classToOverload";s:0:"";s:9:"skinGroup";s:11:"skin_global";s:12:"skinFunction";s:14:"globalTemplate";s:4:"type";s:2:"if";s:2:"id";s:10:"limTwitter";s:8:"position";s:10:"post.endif";}]]></hook_data>
<hooks_source><![CDATA[<?php
class vk_lim
{
public function getOutput()
{
if( IPSLib::loginMethod_enabled('vkontakte') === true )
{
return " " . ipsRegistry::instance()->output->getReplacement('lim_vkontakte');
}
}
}]]></hooks_source>
</file>
<file>
<hook_file_real>vkontakte.php</hook_file_real>
<hook_type>templateHooks</hook_type>
<hook_classname>vk_button</hook_classname>
<hook_data><![CDATA[a:8:{s:12:"dataLocation";s:0:"";s:14:"libApplication";s:0:"";s:15:"classToOverload";s:0:"";s:9:"skinGroup";s:10:"skin_login";s:12:"skinFunction";s:13:"showLogInForm";s:4:"type";s:2:"if";s:2:"id";s:10:"twitterBox";s:8:"position";s:11:"pre.startif";}]]></hook_data>
<hooks_source><![CDATA[<?php
class vk_button
{
public function getOutput()
{
if( IPSLib::loginMethod_enabled('vkontakte') === true )
{
return ipsRegistry::instance()->output->getTemplate('vkontakte')->vkUserBoxPlaceholder();
}
}
}]]></hooks_source>
</file>
</hookfiles>
<hookextras_settings/>
<hookextras_language>
<language>
<word_app>core</word_app>
<word_pack>admin_js</word_pack>
<word_key>bit_skin_vkontakte</word_key>
<word_default>Формы для Вконтакте</word_default>
<word_custom/>
<word_js>0</word_js>
</language>
</hookextras_language>
<hookextras_modules/>
<hookextras_help/>
<hookextras_templates>
<templates>
<template_set_id>0</template_set_id>
<template_group>skin_vkontakte</template_group>
<template_content/>
<template_name>membersVkontakteConnect</template_name>
<template_data/>
<template_updated>1280738635</template_updated>
<template_removable>1</template_removable>
<template_added_to>1</template_added_to>
<template_user_added>1</template_user_added>
<template_user_edited>1</template_user_edited>
<template_master_key/>
<template_set_type/>
</templates>
<templates>
<template_set_id>1</template_set_id>
<template_group>skin_vkontakte</template_group>
<template_content><![CDATA[{parse js_module="vkontakte"}
{parse striping="usercp" classes="row1,row2"}
<if test="!$isConnected">
<div>
<div id='vkUserBox'></div>
<iframe id="vk_frame" src="{$this->settings['_original_base_url']}/interface/vkontakte/index.php" style='position:absolute;top: -1000px;'></iframe>
<!--VK Template-->
<div id='vk-template-button' style='display:none'>
{$this->lang->words['vkontakte_config']}
<br /><br />
<a href="#" id="vk_login"><img src="{$this->settings['img_url']}/vkontakte_login.png" alt="" /></a>
</div>
<div id='vk-template-main' style='display:none'>
<fieldset class='row2'>
<div style='float:left; margin-right:4px;margin-bottom:3px'>
<a href="#" id="openapi_userlink"><img src="http://vkontakte.ru/images/question_c.gif" id="openapi_userphoto" /></a>
</div>
{$this->lang->words['vk_logged_in']} <strong id="openapi_user"></strong>
</fieldset>
</div>
<div id='vk-template-linked' style='display:none'>
<div class='desc'>
{$this->lang->words['vk_logged_in']}
</div>
<form action='
{$this->settings['_original_base_url']}/interface/vkontakte/index.php' method='post' name='linkForm' id='vk_linkForm'>
<input type='button' class='input_submit' id='vk_link' value='Связать с учетной записью форума' />
</form>
</div>
</div>
<else />
<div>
<fieldset class='row1'>
<if test="vkPassword:|:! $this->memberData['bw_local_password_set'] AND $this->memberData['members_created_remote']">
<div class='message'>
<strong>{$this->lang->words['remote_no_password']}</strong>
<p>{$this->lang->words['remote_no_password_1']} <a href='{parse url="app=core&amp;module=usercp&amp;tab=core&amp;area=password" base="public"}'>{$this->lang->words['remote_no_password_2']}</a>
</p>
</div>
<br />
</if>
<h3>{$this->lang->words['vk_disassociate']}</h3>
<p>{$this->lang->words['vk_revoke']}</p>
<p class='desc'>{$this->lang->words['vk_disassociate_desc']}</p>
<p><input type='button' class='input_submit alt' id='tc_remove' value='{$this->lang->words['tc_disassociate_now']}' /></p>
</fieldset>
</div>
<script type="text/javascript">
ipb.vkontakte.initUserCP();
</script>
</if>
]]></template_content>
<template_name>membersVkontakteConnect</template_name>
<template_data>$isConnected</template_data>
<template_updated>1280738657</template_updated>
<template_removable>1</template_removable>
<template_added_to>1</template_added_to>
<template_user_added>1</template_user_added>
<template_user_edited>1</template_user_edited>
<template_master_key/>
<template_set_type/>
</templates>
<templates>
<template_set_id>0</template_set_id>
<template_group>skin_vkontakte</template_group>
<template_content><![CDATA[<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Open API IPB Gateway</title>
<script language="JavaScript" src="http://vkontakte.ru/js/common.js"></script>
</head>
<body>
<div id="vk_api_transport" style="display:none"></div>
<script type="text/javascript">
function doLogin() {
VK.Auth.login(
null,
VK.access.FRIENDS | VK.access.WIKI
);
}
function doLogout() {
VK.Auth.logout( function() { window.location.reload(); });
}
function onAuthLogin(data) {
var
code = 'return {';
code += 'u: API.getProfiles({uids: API.getVariable({key: 1280}), fields: "photo"})[0]';
code += '};';
VK.Api.call('execute', {'code': code}, function( d ){
memberInfo = { 'id': d.response.u.uid,
'name': d.response.u.first_name + ' ' + d.response.u.last_name,
'photo': d.response.u.photo
};
parent.window.ipb.vkontakte.loadUser( memberInfo );
} );
}
window.vkAsyncInit = function() {
VK.Observer.subscribe('auth.login', onAuthLogin);
VK.init({
apiId:{$this->settings['vk_api_id']},
nameTransportPath: '{$this->settings['_path_from_root']}/interface/vkontakte/xd_receiver.htm'
});
onDomReady( parent.window.ipb.vkontakte.show_loginButton );
};
(function() {
var el = document.createElement('script');
el.type = 'text/javascript';
el.src = '<if test="$this->settings['logins_over_https']">{parse expression="str_replace('http://', 'https://', $this->settings['_original_base_url'])"}/interface/vkontakte/openapi.js.php<else />http://vkontakte.ru/js/api/openapi.js</if>';
el.async = true;
document.getElementById('vk_api_transport').appendChild(el);
}());
</script>
</body>
</html>]]></template_content>
<template_name>showLoginVkFrame</template_name>
<template_data><![CDATA[$hash='']]></template_data>
<template_updated>1279887574</template_updated>
<template_removable>1</template_removable>
<template_added_to>1</template_added_to>
<template_user_added>1</template_user_added>
<template_user_edited>0</template_user_edited>
<template_master_key>root</template_master_key>
<template_set_type/>
</templates>
<templates>
<template_set_id>0</template_set_id>
<template_group>skin_vkontakte</template_group>
<template_content><![CDATA[<script language="JavaScript" src="{$this->settings['_original_base_url']}/public/js/ips.vkontakte.js"></script>
<iframe id="vk_frame" src="<if test="$this->settings['logins_over_https']">{parse expression="str_replace('http://', 'https://', $this->settings['_original_base_url'])"}<else />{parse expression="$this->settings['_original_base_url']"}</if>/interface/vkontakte/index.php" style='position:absolute;top: -1000px;'></iframe>
<!--VK Template-->
<div id='vk-template-button' style='display:none'>
{$this->lang->words['login_w_vkontakte']}
<br /><br />
<a href="#" id="vk_login"><img src="{$this->settings['img_url']}/vkontakte_login.png" alt="" /></a>
</div>
<div id='vk-template-main' style='display:none'>
<div style='float:left; margin-right:4px;margin-bottom:3px'>
<a href="#" id="openapi_userlink"><img src="http://vkontakte.ru/images/question_c.gif" id="openapi_userphoto" /></a>
</div>
{$this->lang->words['welcome_prefix']} <span id="openapi_user"></span>
</div>
<div id='vk-template-linked' style='display:none'>
<div class='desc'>
{$this->lang->words['vk_logged_in']}
</div>
<br clear='both'/>
<form action='<if test="$this->settings['logins_over_https']">{parse expression="str_replace('http://', 'https://', $this->settings['_original_base_url'])"}<else />{parse expression="$this->settings['_original_base_url']"}</if>/interface/vkontakte/index.php' method='post' name='linkForm' id='vk_linkForm'>
<input type='button' class='input_submit' id='vk_complete' value='{$this->lang->words['vk_complete_login']}' />
</form>
</div>]]></template_content>
<template_name>vkUserBoxes</template_name>
<template_data/>
<template_updated>1279887617</template_updated>
<template_removable>1</template_removable>
<template_added_to>1</template_added_to>
<template_user_added>1</template_user_added>
<template_user_edited>0</template_user_edited>
<template_master_key>root</template_master_key>
<template_set_type/>
</templates>
<templates>
<template_set_id>0</template_set_id>
<template_group>skin_vkontakte</template_group>
<template_content><![CDATA[ <h3 class='bar'>{$this->lang->words['vk_login_title']}</h3>
<p>
<div id='vkUserBox'>
</div>
<br clear='both' />
</p>
<br />]]></template_content>
<template_name>vkUserBoxPlaceholder</template_name>
<template_data/>
<template_updated>1279887584</template_updated>
<template_removable>1</template_removable>
<template_added_to>1</template_added_to>
<template_user_added>1</template_user_added>
<template_user_edited>0</template_user_edited>
<template_master_key>root</template_master_key>
<template_set_type/>
</templates>
</hookextras_templates>
<hookextras_css/>
<hookextras_tasks/>
<hookextras_database_create/>
<hookextras_database_alter/>
<hookextras_database_update/>
<hookextras_database_insert/>
</hookexport>