Перейти к контенту

[2.3.x]Временные группы, быстрая смена группы


WildRAID

Рекомендуемые сообщения

Да, действительно, ошибка пропала.

 

Но к сожалению почему то автоматически задача запускаться не хочет ... (для теста включил логирование и поставил выполнение каждую минуту, но задача не выполнялась не разу ...)

 

Где мог быть мой косяк?

Ссылка на комментарий
Поделиться на других сайтах

Возможно, она "заперта". Когда в задаче просходит ошибка, на неё вешается "замочек", и она больше не запускается.

 

В этом случае помогает опция "Разблокировать".

 

Если с кешем systemvars какие-то сложности, то можно обращаться к задачкам напрямую через "http://форум/index.php?act=task". Будет выдавать пустой экран, но задачи будут выполняться по-очереди.

 

Если и так не запускается, то посмотрите в таблице ibf_task_manager поля task_next_run и task_enabled для задачи "Временных групп".

Ссылка на комментарий
Поделиться на других сайтах

Возможно, она "заперта". Когда в задаче просходит ошибка, на неё вешается "замочек", и она больше не запускается.

 

В этом случае помогает опция "Разблокировать".

Уже нажимал... не помогает.

 

Если с кешем systemvars какие-то сложности, то можно обращаться к задачкам напрямую через "http://форум/index.php?act=task". Будет выдавать пустой экран, но задачи будут выполняться по-очереди.

Прошёлся по этой ссылки, да действительно пустой экран, но не одна задача не была выполнена. (во всяком случае в логах ничего нету)

 

Если и так не запускается, то посмотрите в таблице ibf_task_manager поля task_next_run и task_enabled для задачи "Временных групп".

 

task_next_run = 1243952700

task_enabled = 1

 

 

В данный момент у меня такая картина:

http://img.uctok.ru/uploaded/32626_fIlhOJkV.png

http://img.uctok.ru/uploaded/32627_8AZnLOxR.png

 

WildRAID, мб если у Вас есть возможность, вы бы смогли мне помочь в реальном времени?

Ссылка на комментарий
Поделиться на других сайтах

Всё, вспомнил. Задача не пишет логов по пожеланию первого заказчика. Когда в общий доступ выкладывал, совсем забыл об этом.

 

Код при этом должен выполняться в полном объёме.

Ссылка на комментарий
Поделиться на других сайтах

Код при этом должен выполняться в полном объёме.

 

Так в этом то и проблема, что код не выполняется ... я же Вам привёл скрины...

 

Ссылка на комментарий
Поделиться на других сайтах

В /sources/tasks/wr_groups.php

 

Найти:

$this->class->unlock_task( $this->task );

 

Добавить ПЕРЕД:

$this->class->append_task_log( $this->task, 'Временные группы обновлены.' );

 

Добавит запись логов на таск.

 

В таблице groups_time какие значения?

Ссылка на комментарий
Поделиться на других сайтах

Добавит запись логов на таск.

Фаил отредактировал. И поставил что бы писал логи.

 

В таблице groups_time какие значения?

http://i047.radikal.ru/0906/8d/679516e9dfa0.png

 

 

Логирование происходит.

http://s61.radikal.ru/i173/0906/c2/daefa56c6f46.png

 

Но к сожалению эффекта нету.

(кстати если я обновлю сейчас в ручную, то всё будет нормально..., а вот автоматически не хочет ...)

Ссылка на комментарий
Поделиться на других сайтах

А если вот так..

 

/sources/tasks/wr_groups.php

 

Найти:

$this->lib->init();

 

Добавить ПЕРЕД:

		$this->lib->is_admin  = 1;

+++

Похоже, за всё время никто так и реально не воспользовался этой сборкой. Отлично.)

Изменено пользователем WildRAID
Ссылка на комментарий
Поделиться на других сайтах

  • 1 месяц спустя...
WildRAID, а можно тебя попросить добавить опцию "галочку", чтобы применить выполняемое действие ко всем мультиникам данного аккаунта? :D
Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

Смена группы :D То есть если я меняю группу аккаунту, то если я хочу (галочку ставлю) данная группа на тот же период применяется всем мультам юзера.

 

Или скажи где рыть. Я подозреваю, что там нет ничего сложного. Просто ты свои моды лучше знаешь. Мультиники у меня версия 1.

 

PS: На тему не подписалась блин и сижу жду ответа.

Изменено пользователем Vakhara
Ссылка на комментарий
Поделиться на других сайтах

  • 1 месяц спустя...
  • 1 месяц спустя...

В профиле переключение работает, при этом показывает вот так:

post-49960-1256476643_thumb.png

 

А в постах вообще никак - рядом с названием группы нет плюсика. :D

Единственное, что вызывает подозрение - на шаге "Обновить все кеши" обновление по-моему подвисает. Отчёт выглядит так (середину выбросил):

Готово!

components обновлен...

announcements обновлен...

attachtypes обновлен...

banfilters обновлен...

languages обновлен...

***

skin_id_cache обновлен...

systemvars обновлен...

group_cache обновлен...

forum_cache обновлен...

Инициализация...

Мод очень хороший и очень мне нужен. Помогите, плз., довести до ума.

Изменено пользователем VladMih
Ссылка на комментарий
Поделиться на других сайтах

В профиле переключение работает, при этом показывает вот так:

post-49960-1256476643_thumb.png

Вот это

skin_profile -> personal_portal_main

Найти:

<strong>{$member['g_title']}</strong>

Добавить ПОСЛЕ:

 {$member['wr_groups_form']}

skin_topic -> RenderRow

Найти:

{$author['member_group']}<br />

Заменить на:

{$author['member_group']} {$post['wr_groups_form']}<br />

Делается в двух местах, а не в одном.

Ссылка на комментарий
Поделиться на других сайтах

Делается в двух местах, а не в одном.
И в одном-то с трудом нашёл. Нет у меня двух мест. :D

Может кто-нибудь выложил бы правильный шаблон к 2.3.6?

Или может поправили бы мой исходный (отменил изменениия и скопировал):

<script type="text/javascript" src="{ibf.vars.board_url}/jscripts/ipb_profile.js"></script>
<script type='text/javascript' src="{ibf.vars.board_url}/jscripts/ips_profile_portal.js"></script>
<script type="text/javascript" src="{ibf.vars.board_url}/jscripts/ipb_topic.js"></script>
<script type='text/javascript'>
// Need to map months based on current language
var month=new Array(12);
month['{ibf.lang.M_1}']="1";
month['{ibf.lang.M_2}']="2";
month['{ibf.lang.M_3}']="3";
month['{ibf.lang.M_4}']="4";
month['{ibf.lang.M_5}']="5";
month['{ibf.lang.M_6}']="6";
month['{ibf.lang.M_7}']="7";
month['{ibf.lang.M_8}']="8";
month['{ibf.lang.M_9}']="9";
month['{ibf.lang.M_10}']="10";
month['{ibf.lang.M_11}']="11";
month['{ibf.lang.M_12}']="12";
</script>
<!--We (?:c|sh)ould use CSS for this.-->
<table cellspacing='4' cellpadding='0' width='100%'  border='0'>
<tr>
<td style='width:210px' valign='top'>
<!-- LEFT TABLE -->
	<div class="borderwrap" style='padding:1px'>
		<div class="pp-title">{ibf.lang.m_profile_title}</div>
		<div class='pp-header'>{ibf.lang.get_photo}</div>
		<table cellpadding='1' cellspacing='0' width='100%'>
		<tr>
			<td width='60%' class='row1' style='padding:3px;margin-bottom:0px' valign='middle' align='center'>
			<!-- Personal Photo -->
				<img id='pp-main-photo' src='{$member['pp_main_photo']}' width='{$member['pp_main_width']}' height='{$member['pp_main_height']}' alt='' />
			<!-- / Personal Photo -->
			<!-- Quick contact -->
			<if="{ibf.member.id} AND ( $member['id'] != {ibf.member.id})">
				<div style='margin-top:10px;margin-bottom:6px'>
					<div id='pp-friend-wrap'>
						<!-- Add / remove friend added via JS -->
					</div>
					<img src='{ibf.vars.img_url}/folder_profile_portal/send_pm_small.png' alt='' border='0' /> <a href="{ibf.script_url}act=Msg&CODE=4&MID={$member['id']}">{ibf.lang.pm}</a>
				</div>
			</if>
			<!-- / Quick contact -->
			</td>
		</tr>
		</table>

		<if="{ibf.vars.pp_allow_member_rate}">
			<!-- Rating -->
			<div class='pp-header'>{ibf.lang.rating}</div>
			<div class='row1' style='padding:6px; margin-bottom:1px; padding-left:10px; text-align: center' id='pp-rating-wrapper'>

			</div>
			<!-- / Rating -->
		</if>

		<!-- Options -->
		<div class='pp-header'>{ibf.lang.options}</div>
		<div class='row1' style='padding:6px; margin-bottom:1px; padding-left:10px; text-align: center'>
			<div class='popmenubutton-new' id='profile-options'>{ibf.lang.options}</div>
		</div>
		<!-- / Options -->

		<!-- Personal Statement -->
		<div class='pp-header'>{ibf.lang.m_personal_statement}</div>
		<div class='row1' style='padding:6px; margin-bottom:1px; padding-left:10px' id='pp-personal_statement'>
			<if="$member['pp_bio_content']">
				{$member['pp_bio_content']}
				<else />
				<em>{$member['members_display_name']} {ibf.lang.m_no_statement}.</em>
			</if>
			<if="$member['_website']">
				<div style='padding-top:5px'>
					<if="strlen($member['_website']) > 30">
						<a href='{$member['_website']}' target='_blank'>{ibf.lang.m_visit_website}</a>
					<else />
						<a href='{$member['_website']}' target='_blank'>{$member['_website']}</a>
					</if>
				</div>
			</if>
		</div>
		<!-- / Personal Statement -->

		<!-- Personal Info -->
		<div class='pp-header'>{ibf.lang.m_personal_info}</div>
		<div class='row1' style='padding:6px; margin-bottom:1px; padding-left:10px'>{$member['members_display_name']}</div>
		<if="$member['_title']!=''">
			<div class='row1' style='padding:6px; margin-bottom:1px; padding-left:10px'>{$member['_title']}</div>
		</if>
		<div class='row1' style='padding:6px; margin-bottom:1px; padding-left:10px' id='pp-entry-age-wrap'>
			<if="$member['_age'] > 0">
				 <span id='pp-entry-age-text'>{$member['_age']}</span> <span id='pp-entry-age-yearsold'>{ibf.lang.m_years_old}</span>
			<else />
				<span id='pp-entry-age-text'>{ibf.lang.m_age_unknown}</span> <span id='pp-entry-age-yearsold' style='display:none'>{ibf.lang.m_years_old}</span>
			</if>
		</div>
		<div class='row2' style='padding:6px; margin-bottom:1px; padding-left:10px'>
			<div id='pp-entry-gender-wrap'>
				<if="$member['pp_gender']">
					<span id='pp-entry-gender-imgwrap'>{$member['_pp_gender_image']}</span> <span id='pp-entry-gender-text'>{$member['_pp_gender_text']}</span>
				<else />
					<span id='pp-entry-gender-imgwrap'>{$member['_pp_gender_image']}</span> <span id='pp-entry-gender-text'>{ibf.lang.m_no_gender}</span>
				</if>
			</div>
			<if="$member['id'] == {ibf.member.id} AND {ibf.member.g_edit_profile}==1">
				<div class='popupmenu-new' id='pp-entry-gender-wrap_menu' style='display:none;width:162px'>
					<div class='popupmenu-item'><img src='{ibf.vars.img_url}/folder_profile_portal/gender_male.png' alt='' border='0' /> <a href='#' onclick="ips_personal_portal.save_settings( 'gender', { 'pp_gender' : 'male' }, ''); return false;">{ibf.lang.m_gender_as_male}</a></div>
					<div class='popupmenu-item'><img src='{ibf.vars.img_url}/folder_profile_portal/gender_female.png' alt='' border='0' /> <a href='#' onclick="ips_personal_portal.save_settings( 'gender', { 'pp_gender' : 'female' }, ''); return false;">{ibf.lang.m_gender_as_female}</a></div>
					<div class='popupmenu-item-last'><img src='{ibf.vars.img_url}/folder_profile_portal/gender_mystery.png' alt='' border='0' /> <a href='#' onclick="ips_personal_portal.save_settings( 'gender', { 'pp_gender' : 'mystery' }, ''); return false;">{ibf.lang.m_gender_as_none}</a></div>
				</div>
			</if>
		</div>
		<div class='row2' style='padding:6px; margin-bottom:1px; padding-left:10px'>
			<div id='pp-entry-location-wrap'>
				<if="$member['location']">
					<span id='pp-entry-location-text'>{$member['location']}</span>
				<else />
					<span id='pp-entry-location-text'>{ibf.lang.m_location_unknown}</span>
				</if>
			</div>
			<if="$member['id'] == {ibf.member.id} AND {ibf.member.g_edit_profile}==1">
				<div class='popupmenu-new' id='pp-entry-location-wrap_menu' style='display:none;width:auto'>
					<div class='popupmenu-item-last'>
						<fieldset>
							<legend>{ibf.lang.m_enter_location}</legend>
							<input type='text' size='20' maxlength='200' name='location' id='pp-location' value='{$member['location']}' /> <input class='button' type='button' value='{ibf.lang.m_save_button}' onclick="ips_personal_portal.save_settings( 'location', {}, 'pp-location'); return false;" />
						</fieldset>
					</div>
				</div>
			</if>
		</div>
		<div class='row1' style='padding:6px; margin-bottom:0px; padding-left:10px'>
			<div id='pp-entry-born-wrap'>
				<if="$member['bday_day'] AND $member['bday_year'] AND $member['_bday_month']">
					<span id='pp-entry-born-pretext'>{ibf.lang.born_key}</span> <span id='pp-entry-born-text'>{$member['_bday_month']}-{$member['bday_day']}-{$member['bday_year']}</span>
				<else />
					<span id='pp-entry-born-text'>{ibf.lang.m_bday_unknown}</span>
				</if>
			</div>
			<if="$member['id'] == {ibf.member.id} AND {ibf.member.g_edit_profile}==1">
				<div class='popupmenu-new' id='pp-entry-born-wrap_menu' style='display:none;width:auto'>
					<div class='popupmenu-item-last'>
						<fieldset>
							<legend>{ibf.lang.m_enter_bdate}</legend>
							<select name='_b_month' id='pp_b_month'>{$member['_birthday_month']}</select>								
							<select name='_b_day' id='pp_b_day'>{$member['_birthday_day']}</select>
							<select name='_b_year' id='pp_b_year'>{$member['_birthday_year']}</select>
							<input class='button' type='button' value='{ibf.lang.m_save_button}' onclick="ips_personal_portal.save_settings( 'birthdate', {}, ''); return false;" />
						</fieldset>
					</div>
				</div>
			</if>
		</div>
		<!-- WARN -->
		<if="$member['_warn_data']">
			<div class='row1' style='padding:6px; margin-bottom:0px; padding-left:10px'>
				{$member['_warn_data']}
			</div>
		</if>
		<!-- / WARN -->
		<!-- / Personal Info -->

		<!-- Interests -->
		<if="$member['_interests']">
			<div class='pp-header'>{ibf.lang.interests}</div>
			<div class='row1' style='padding:6px; margin-bottom:1px; padding-left:10px' id='pp-personal_statement'>
				{$member['_interests']}
			</div>
		</if>
		<!-- / Interests -->

		<!-- Custom Fields -->
		<if="is_array( $member['custom_fields'] ) AND count( $member['custom_fields'] )">
			<div class='pp-header'>{ibf.lang.m_other_info}</div>
			<foreach="$member['custom_fields'] as $data">
				<div class='row1' style='padding:6px; margin-bottom:1px; padding-left:10px'>{$data['name']}: {$data['data']}</div>
			</foreach>
		</if>
		<!-- / Custom Fields -->

		<!-- Statistics --> 
		<div class='pp-header'>{ibf.lang.m_stats_title}</div>
		<div class='row1' style='padding:6px; margin-bottom:1px; padding-left:10px'>{ibf.lang.m_member_since} {$member['_joined']}</div>
		<div class='row1' style='padding:6px; margin-bottom:1px; padding-left:10px'>{ibf.lang.m_profile_views} {$member['_pp_profile_views']}<span class='pp-tiny-text'>*</span></div>
		<div class='row1' style='padding:6px; margin-bottom:1px; padding-left:10px'>
			{ibf.lang.m_last_seen} {$member['_last_active']}
			<if="$member['_online_location']">
				<br />{$member['_online_location']}
			</if>
		</div>

		<if="$member['_local_time']">
			<div class='row2' style='padding:6px; margin-bottom:1px; padding-left:10px'>{ibf.lang.m_local_time_is} {$member['_local_time']}</div>
		</if>
		<div class='row1' style='padding:6px; margin-bottom:1px; padding-left:10px'>{$member['_posts']} {ibf.lang.m_bit_posts} ({$member['_posts_day']} {ibf.lang.posts_per_day})</div>
		<!-- / Statistics -->

		<!-- Contact Information -->
		<div class='pp-header'>{ibf.lang.m_contact_info}</div>
		<div class='row1' style='padding:6px; margin-bottom:1px; padding-left:10px'>
			<div id='pp-entry-contact-wrap-aim'>
				<{PRO_AIM}> <span id='pp-entry-contact-entry-aim'>{$member['_aim_name']}</span>
			</div>
		</div>
		<if="$member['id'] == {ibf.member.id} AND {ibf.member.g_edit_profile}==1">
			<div class='popupmenu-new' id='pp-entry-contact-wrap-aim_menu' style='display:none;width:auto'>
				<div class='popupmenu-item-last'>
					<fieldset>
						<legend>{ibf.lang.m_enter_aim}</legend>
						<input type='text' size='20' maxlength='200' name='value' id='pp-contact-value-aim' value='{$member['aim_name']}' /> <input class='button' type='button' value='{ibf.lang.m_save_button}' onclick="ips_personal_portal.save_settings( 'contact', { 'contacttype' : 'aim' }, 'pp-contact-value-aim'); return false;" />
					</fieldset>
				</div>
			</div>
		</if>

		<div class='row1' style='padding:6px; margin-bottom:1px; padding-left:10px'>
			<div id='pp-entry-contact-wrap-yahoo'>
				<{PRO_YIM}> <span id='pp-entry-contact-entry-yahoo'>{$member['_yahoo']}</span>
			</div>
		</div>
		<if="$member['id'] == {ibf.member.id} AND {ibf.member.g_edit_profile}==1">
			<div class='popupmenu-new' id='pp-entry-contact-wrap-yahoo_menu' style='display:none;width:auto'>
				<div class='popupmenu-item-last'>
					<fieldset>
						<legend>{ibf.lang.m_enter_yahoo}</legend>
						<input type='text' size='20' maxlength='200' name='value' id='pp-contact-value-yahoo' value='{$member['yahoo']}' /> <input type='button' class='button' value='{ibf.lang.m_save_button}' onclick="ips_personal_portal.save_settings( 'contact', { 'contacttype' : 'yahoo' }, 'pp-contact-value-yahoo'); return false;" />
					</fieldset>
				</div>
			</div>
		</if>

		<div class='row1' style='padding:6px; margin-bottom:1px; padding-left:10px'>
			<div id='pp-entry-contact-wrap-icq'>
				<{PRO_ICQ}> <span id='pp-entry-contact-entry-icq'>{$member['_icq_number']}</span>
			</div>
		</div>
		<if="$member['id'] == {ibf.member.id} AND {ibf.member.g_edit_profile}==1">
			<div class='popupmenu-new' id='pp-entry-contact-wrap-icq_menu' style='display:none;width:auto'>
				<div class='popupmenu-item-last'>
					<fieldset>
						<legend>{ibf.lang.m_enter_icq}</legend>
						<input type='text' size='20' maxlength='200' name='value' id='pp-contact-value-icq' value='{$member['icq_number']}' /> <input type='button' class='button' value='{ibf.lang.m_save_button}' onclick="ips_personal_portal.save_settings( 'contact', { 'contacttype' : 'icq' }, 'pp-contact-value-icq'); return false;" />
					</fieldset>
				</div>
			</div>
		</if>

		<div class='row1' style='padding:6px; margin-bottom:1px; padding-left:10px'>
			<div id='pp-entry-contact-wrap-msn'>
				<{PRO_MSN}> <span id='pp-entry-contact-entry-msn'>{$member['_msn_name']}</span>
			</div>
		</div>
		<if="$member['id'] == {ibf.member.id} AND {ibf.member.g_edit_profile}==1">
			<div class='popupmenu-new' id='pp-entry-contact-wrap-msn_menu' style='display:none;width:auto'>
				<div class='popupmenu-item-last'>
					<fieldset>
						<legend>{ibf.lang.m_enter_msn}</legend>
						<input type='text' size='20' maxlength='200' name='value' id='pp-contact-value-msn' value='{$member['msnname']}' /> <input type='button' class='button' value='{ibf.lang.m_save_button}' onclick="ips_personal_portal.save_settings( 'contact', { 'contacttype' : 'msn' }, 'pp-contact-value-msn'); return false;" />
					</fieldset>
				</div>
			</div>
		</if>

		<div class='row1' style='padding:6px; margin-bottom:1px; padding-left:10px'>
			<{PRO_CONTACT}> <a href="{ibf.script_url}act=Msg&CODE=4&MID={$member['id']}">{ibf.lang.pm}</a>
		</div>
		<div class='row1' style='padding:6px; padding-left:10px'>
			<{PRO_CONTACT}> {$member['_email']}
		</div>
		<!-- / Contact Information -->
	</div>
	<div class='pp-tiny-text'>{ibf.lang.m_profile_views_desc}</div>

	<!-- sssh.. ugly hack to stop IE collapsing this column under short widths -->
	<img src='{ibf.vars.img_url}/blank.gif' width='210' height='1' alt='' />

<!-- / LEFT TABLE -->
</td>
<td valign='top'>
<!-- MAIN TABLE -->
	<div class='pp-name'>
		<table cellpadding='0' cellspacing='0' width='100%'>
		<tr>
			<td width='1%'>{$member['_avatar']}</td>
			<td width='98%' style='padding-left:10px'>
				<h3 style='font-size:20px'>{$member['members_display_name']}</h3>
				{$author['member_group']} {$post['wr_groups_form']}<br />
{$member['wr_groups_form']}



skin_topic -> RenderRow
				<p>{$member['_member_rank_img']}</p>
			</td>
		</tr>
		</table>
	</div>

	<br />

	<!-- My Stuff -->
	<div class='pp-tabwrap'>
		<foreach="$tabs as $tab">
			<div class='pp-taboff' id='pp-content-tab-{$tab['plugin_key']}'>{$tab['_lang']}</div>
		</foreach>
			<div class='pp-taboff' id='pp-content-tab-comments'>{ibf.lang.m_tab_comments}</div>
			<div class='pp-taboff' id='pp-content-tab-friends'>{ibf.lang.m_tab_friends}</div>
			<if="$member['id'] == {ibf.member.id} OR ( {ibf.member.g_is_supmod}==1 AND $member['mgroup'] != {ibf.vars.admin_group} )">
				<div class='pp-taboff' id='pp-content-tab-settings'>{ibf.lang.m_tab_settings}</div>
			</if>
	</div>
	<div class="pp-tabclear">{ibf.lang.m_title_content}</div>
	<div class="borderwrap">	
		<div id='pp-main-tab-content' class='pp-contentbox-back'>
			{$default_tab_content}
		</div>

	</div>
	<!-- / My Stuff -->

<!-- / MAIN TABLE -->
</td>
<if="$member['pp_setting_count_visitors'] > 0 OR $member['pp_setting_count_comments'] > 0 OR $member['pp_setting_count_friends'] > 0">
	<td style='width:210px;' valign='top'>
	<!-- RIGHT TABLE -->
	<!-- Recent Visitors -->
	<if="$member['pp_setting_count_visitors'] > 0">
		<div class="borderwrap" style='padding:1px'>
			<div class="pp-title">{ibf.lang.m_title_visitors}</div>
			<if="is_array($visitors) and count($visitors)">
				<foreach="$visitors as $visitor">
					<div class='pp-mini-content-entry'>
						<div class='pp-image-thumb-wrap-floatright'><img src='{$visitor['pp_thumb_photo']}' width='{$visitor['pp_thumb_width']}' height='{$visitor['pp_thumb_height']}' alt='' /></div>
						<div style='position:absolute;z-index:2;'>
							{$visitor['_pp_gender_image']} <strong><if="$visitor['id']"><a href='{ibf.script_url}showuser={$visitor['id']}'></if>{$visitor['members_display_name_short']}<if="$visitor['id']"></a></if></strong>
						</div>
						<br />
						<br />
						<div class='pp-tiny-text'>{$visitor['_pp_online_image']} {$visitor['_visited_date']}</div>
					</div>
				</foreach>
			<else />
				<div class='post1' style='padding:6px'>
					<em>{$member['members_display_name']} {ibf.lang.m_visitors_none}.</em>
				</div>
			</if>
		</div>
	</if>
	<!-- / Recent Visitors -->

	<br />

	<!-- Comments -->
	<if="$member['pp_setting_count_comments'] > 0">
		<div class="borderwrap" style='padding:1px'>
			<div class="pp-title">{ibf.lang.m_title_comments}</div>
				<div id='pp-comments-wrap'>
					$comments
				</div>
			<if="{ibf.member.id}">
				<div class='popmenubutton-new' id='pp-comment-wrap' style='margin:2px'>
					<img src='{ibf.vars.img_url}/folder_profile_portal/comment_add.png' alt='' border='0' /> {ibf.lang.m_add_comment}
				</div>
				<div class='popupmenu-new' id='pp-comment-wrap_menu' style='display:none;width:auto;'>
					<div class='popupmenu-item-last'>
						<fieldset>
							<legend>{ibf.lang.m_enter_comment}</legend>
							<textarea rows='8' cols='17' name='comment' id='pp-comment-textarea'></textarea>
							<div class='pp-tiny-text' style='text-align:right'>
								{ibf.lang.m_max_chars}
								<input type='button' class='button' value='{ibf.lang.m_save_button}' onclick="ips_personal_portal.save_comment(); return false;" />
							</div>
						</fieldset>
					</div>
				</div>
				<script type='text/javascript'>
				//<![CDATA[
					ipsmenu.register( "pp-comment-wrap" );
				//]]>
				</script>
			</if>
		</div>
	</if>
	<!-- / Comments -->

	<br />

	<!-- Friends -->
	<if="$member['pp_setting_count_friends'] > 0">
		<div class="borderwrap" style='padding:1px'>
			<div class="pp-title">{ibf.lang.m_title_friends}</div>
			<if="is_array($friends) and count($friends)">
				<foreach="$friends as $friend">
					<div class='pp-mini-content-entry'>
						<div class='pp-image-thumb-wrap-floatright'><img src='{$friend['pp_thumb_photo']}' width='{$friend['pp_thumb_width']}' height='{$friend['pp_thumb_height']}' alt='' /></div>
						<div style='position:absolute;z-index:2;'>
							{$friend['_pp_gender_image']} <strong><a href='{ibf.script_url}showuser={$friend['id']}'>{$friend['members_display_name_short']}</a></strong>
						</div>
						<br />
						<div class='pp-tiny-text'>
							{$friend['posts']} {ibf.lang.m_bit_posts}
							<br />{$friend['_pp_online_image']} {$friend['_last_active']}
						</div>
					</div>
				</foreach>
				<div class='pp-mini-content-entry-noheight' style='text-align:right'>
					<a href='#' onclick="ips_personal_portal.tab_load( 'friends' )">{ibf.lang.m_view_friends}</a>
				</div>
			<else />
				<div class='post1' style='padding:6px'>
					<em>{ibf.lang.m_no_friends}.</em>
				</div>
			</if>
		</div>
	</if>
	<!-- / Friends -->
	<!-- sssh.. ugly hack to stop IE collapsing this column under short widths -->
	<img src='{ibf.vars.img_url}/blank.gif' width='210' height='1' alt='' />
	<!-- / RIGHT TABLE -->
	</td>
</if>
</tr>
</table>
<script type='text/javascript'>
//<![CDATA[
// Settings
ips_personal_portal.settings['allow_rating']      = parseInt("{ibf.vars.pp_allow_member_rate}");
ips_personal_portal.settings['default_rating']    = parseInt("{$member['_pp_rating_real']}");
ips_personal_portal.settings['member_id']         = parseInt("{$member['id']}");
ips_personal_portal.settings['is_super_mod']      = parseInt("{$member['g_is_supmod']}");
ips_personal_portal.settings['viewer_id']         = parseInt("{ibf.member.id}");
ips_personal_portal.settings['edit_allowed']	  = parseInt("{ibf.member.g_edit_profile}");
ips_personal_portal.settings['img_base_url']      = ipb_var_image_url + '/folder_profile_portal';
ips_personal_portal.settings['img_menu_icon']     = "{ibf.vars.img_url}/menu_action_down.gif";
ips_personal_portal.settings['img_friend_remove'] = "{ibf.vars.img_url}/folder_profile_portal/friend_remove_small.png";
ips_personal_portal.settings['img_friend_add']    = "{ibf.vars.img_url}/folder_profile_portal/friend_add_small.png";
ips_personal_portal.settings['default_tab']       = '{$default_tab}';
// Languages
ips_personal_portal.languages['rate_me']          = '<span class="desc">{ibf.lang.m_rate_me}</span>';
ips_personal_portal.languages['friend_add']       = '{ibf.lang.m_friend_add}';
ips_personal_portal.languages['friend_remove']    = '{ibf.lang.m_friend_remove}';
ips_personal_portal.languages['img_alt_rate']     = '{ibf.lang.js_img_alt_rate_p}';
ips_personal_portal.languages['gender_male']      = '{ibf.lang.js_gender_male}';
ips_personal_portal.languages['gender_female']    = '{ibf.lang.js_gender_female}';
ips_personal_portal.languages['gender_mystery']   = '{ibf.lang.js_gender_mystery}';
ips_personal_portal.languages['loading_tab']      = '{ibf.lang.js_loading_tab}';
ips_personal_portal.languages['deleting_comment'] = '{ibf.lang.js_deleting_comment}';
ips_personal_portal.languages['saving_comment']   = '{ibf.lang.js_saving_comment}';
ips_personal_portal.languages['age_unknown']   	  = '{ibf.lang.m_age_unknown}';
// INIT
ips_personal_portal.init();
<if="$default_tab_content == ''">
// Load tab
ips_personal_portal.load_content_tab( '{$default_tab}' );
</if>
menu_build_menu(
"profile-options", new Array(
						<if="{ibf.member.id} != 0 AND {ibf.member.id} != $member['id']">
						'<img src="style_images/<#IMG_DIR#>/profile_item.gif" border="0" />' + " <a href='{ibf.script_url}act=usercp&CODE=ignore&uid={$member['id']}'>{ibf.lang.ignore_user}</a>",
						</if>
						<if="{ibf.member.g_is_supmod} == 1">
						'<img src="style_images/<#IMG_DIR#>/profile_item.gif" border="0" />' + " <a href='{ibf.script_url}act=mod&CODE=editmember&auth_key={$this->ipsclass->md5_check}&member={$member['id']}'>{ibf.lang.supmod_edit_member}</a>",
						</if>
						<if="{ibf.vars.auth_allow_dnames} == 1">
						'<img src="style_images/<#IMG_DIR#>/profile_item.gif" border="0" />' + " <a href='#' onclick='return profile_dname_history({$member['id']})'>{ibf.lang.dname_title}</a>",
						</if>
						<if="{ibf.member.id} != 0 AND {ibf.member.id} != $member['id']">
						'<img src="style_images/<#IMG_DIR#>/profile_item.gif" border="0" />' + " <a href='{ibf.script_url}act=Msg&CODE=02&MID={$member['id']}'>{ibf.lang.op_add_pm_to_block}</a>",
						</if>
							'<img src="style_images/<#IMG_DIR#>/profile_item.gif" border="0" />' + " <a href='{ibf.script_url}act=Search&CODE=getalluser&mid={$member['id']}'>{ibf.lang.find_posts}</a>",
			 			'<img src="style_images/<#IMG_DIR#>/profile_item.gif" border="0" />' + " <a href='{ibf.script_url}act=Search&CODE=gettopicsuser&mid={$member['id']}'>{ibf.lang.find_member_topics}</a>"
) );

//]]>
</script>
<if="is_array( {ibf.member._cache}['friends'] ) AND in_array( $member['id'], array_keys( {ibf.member._cache}['friends'] ) )">
<script type='text/javascript'>
//<![CDATA[
	ips_personal_portal.show_friend_add_or_remove( 0 );
//]]>
</script>
<else />
<script type='text/javascript'>
//<![CDATA[
	ips_personal_portal.show_friend_add_or_remove( 1 );
//]]>
</script></if>

Несколько раз за день подступался и подолгу пытался что-то сделать, но...

Ссылка на комментарий
Поделиться на других сайтах

Там логика в том, что на шестом шаге редактируются два разных шаблона.

 

1. skin_profile -> personal_portal_main

 

Найти:

<strong>{$member['g_title']}</strong>

 

Добавить ПОСЛЕ:

 {$member['wr_groups_form']}

 

2. skin_topic -> RenderRow

 

Найти:

{$author['member_group']}<br />

 

Заменить на:

{$author['member_group']} {$post['wr_groups_form']}<br />

 

Второе изменение как раз и отвечает за "плюсик" в темах.

Изменено пользователем WildRAID
Ссылка на комментарий
Поделиться на других сайтах

Там логика в том, что на шестом шаге редактируются два разных шаблона.
Огромное спасибо! При мало-мальских навыках мод устанавливается за 5-10 минут ;)

а я промучался... Анекдот:

Найти:

<strong>{$member['g_title']}</strong>

 

Добавить ПОСЛЕ:

 {$member['wr_groups_form']}

 

 

 

skin_topic -> RenderRow

Ещё при первой попытке установки думаю:

для чего ж тут нужны 3 пустые строки в коде??? (перед skin_topic) :D

Как оно вообще умудрялось хоть как-то работать, а не послало меня куда подальше?!... :)

Изменено пользователем VladMih
Ссылка на комментарий
Поделиться на других сайтах

  • 5 месяцев спустя...

пока работает вроде, правда не хватило времени доковырять вопрос,

при каких условиях вместо "плюса" выводиться число оставшихся дней во временной группе,

но это уже не суть :D

 

нашел очепятку в коде:

$this->form_width = $this->ipsclass->vars['wrg_groups_time_on'] ? 310 : 214;

наверное, по логике вещей, должно быть примерно так:

$this->form_width = $this->ipsclass->vars['wrg_form_width'] ? $this->ipsclass->vars['wrg_form_width'] : 310;

 

у меня вроде заарбайтало норм ;)

 

ну и заодно, может кому интересно будет :)

даём возможность юзерам, имеющим доступ к ацп, ставить все группы,

кроме администраторских, гостевых и группы авторизации

 

sources/lib/wr_groups.php

 

1. найти функцию is_change_allowed

2. привести её к следующему виду:

	function is_change_allowed($g_id)
{
	$g_id = intval($g_id);

	#Group exists?
	if( !$g_id or !isset($this->ipsclass->cache['group_cache'][$g_id]) ) return false;

	#SAY NO to guests, auths, admins of any kind and supmods
	return !(	$g_id == $this->ipsclass->vars['admin_group'] OR
				$g_id == $this->ipsclass->vars['guest_group'] OR
				$g_id == $this->ipsclass->vars['auth_group'] OR
				$this->ipsclass->cache['group_cache'][$g_id]['g_access_cp']	OR
				(in_array($g_id, $this->admin_groups) && !$this->ipsclass->member['g_access_cp'])
			);
}

Изменено пользователем FenX
Ссылка на комментарий
Поделиться на других сайтах

  • 4 недели спустя...

мод установили технари IBR

вопрос : если я дал пользователю статус ВИП на 1 день, к примеру в 13:00 7 апреля,в настройках задач стоит обновление раз в день в 00:00,то когда произойдет перевод в группу назад ?

 

в 13:00 8 апреля (через 24 часа) , или в 00:00,когда запустится задача?

 

Просто я пробывал так :

 

дал статус ВИП на 1 день в 23:00 7 апреля,в 23:00 8 апреля у пользователя было отмечено 0 дней ВИП , но группа не сменилась,хотя задача вроде как прошла и была запущена...

 

в 23:00 9 апреля изменится статус?

тогда это уже будет 48 часов, а не на один день...

или после того,когда нет дней,группа будет переведаена при первом запуске задач?

Ссылка на комментарий
Поделиться на других сайтах

  • 10 месяцев спустя...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.