Как связать две пересекающиеся переменн. типа switch_ в tpl?

Проблемы с установкой или работой phpBB 2.0.x? Ищите ответы здесь!
Thanx
phpBB 2.0.2
Сообщения: 334
Стаж: 19 лет 4 месяца
Благодарил (а): 15 раз

Как связать две пересекающиеся переменн. типа switch_ в tpl?

Сообщение Thanx »

В этом куске кода есть
присутствует и
<!-- BEGIN switch_edit_website -->
и <!-- BEGIN switch_signature_allowed -->

Код: Выделить всё

<!-- BEGIN switch_edit_website --> 
<!-- Start add - Signatures control MOD -->
<!-- BEGIN switch_signature_allowed -->
<!-- End add - Signatures control MOD -->
          <tr> 
            <td class="row1"><SPAN class="largetext"><B>{L_SIGNATURE}:</B></SPAN><BR>
              <SPAN class="largetext">{L_SIGNATURE_EXPLAIN}<BR>
              <BR>
              {HTML_STATUS}<BR>
              {BBCODE_STATUS}<BR>
              {SMILIES_STATUS}</SPAN></td>
            <td class="row2"> 
              <TEXTAREA name="signature"style="width: 300px"  rows="6" cols="30" class="post">{SIGNATURE}</TEXTAREA>
            </td>
          </tr>
<!-- Start add - Signatures control MOD -->
<!-- END switch_signature_allowed -->
<!-- End add - Signatures control MOD -->
<!-- END switch_edit_website --> 
Я чувствую, что это некорректно, а как сделать это корректно, можно ли? Или нельзя это сделать в принципе?
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 21 год 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

А причем тут вообще сайт и подпись?

Добавлено спустя 2 минуты 47 секунд:

Т.е. они в принципе не должны пересекаться.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Thanx
phpBB 2.0.2
Сообщения: 334
Стаж: 19 лет 4 месяца
Благодарил (а): 15 раз

Сообщение Thanx »

Xpert, нет, вот как раз
<!-- BEGIN switch_edit_website -->
имеет своим происхождением мод

Код: Выделить всё

Code: 
## MOD Title: Instant Ban - Spam Bots registration 
## MOD Author: niekas 
## MOD Description: prevents spam bots registering on your forum by 
## removing website and signature fields in registration and profile form 
##untill users reached certain amount of posts 
## MOD Version: 1.0.1 
## 
## Installation Level: (Easy) 
## Installation Time: ~5 minutes 
## Files To Edit: 
##               /includes/usercp_register.php 
##               /templates/subSilver/profile_add_body.tpl 
## Included Files: (n/a) 

# 
#-----[ OPEN ]------------------------------------------ 
# 
includes/usercp_register.php 

# 
#-----[ FIND ]------------------------------------------ 
# 

$error = FALSE; 


# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

$cut_off=10; //how many posts should user have before form fields are activated 

// --------------------------------------- 
if (($mode == 'register' && ($HTTP_POST_VARS['website'] != '' || $HTTP_POST_VARS['signature'] != '') ) || ($userdata['user_posts'] < $cut_off && $mode=='editprofile' && ($HTTP_POST_VARS['website'] != '' || $HTTP_POST_VARS['signature'] != ''))) 
{ 
   $ban_this=encode_ip(getenv('REMOTE_ADDR')); 

   $sql = "INSERT INTO " . BANLIST_TABLE . " (ban_ip) 
   VALUES ('" . $ban_this . "')"; 
   if ( !$db->sql_query($sql) ) 
   { 
      message_die(GENERAL_ERROR, "Couldn't insert ban_ip info into database", "", __LINE__, __FILE__, $sql); 
   } 
   $sql = "DELETE FROM " . SESSIONS_TABLE . " 
      WHERE session_ip = '" . $ban_this . "'"; 
   if ( !$db->sql_query($sql) ) 
   { 
      message_die(GENERAL_ERROR, "Couldn't delete banned sessions from database", "", __LINE__, __FILE__, $sql); 
   } 
   message_die(GENERAL_MESSAGE, "banned", '', __LINE__, __FILE__); 

} 

# 
#-----[ FIND ]------------------------------------------ 
# 
if ( $mode == 'editprofile' ) 
   { 
      $template->assign_block_vars('switch_edit_profile', array()); 
   } 

# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 

if ( $mode == 'editprofile' ) 
   { 
      $template->assign_block_vars('switch_edit_profile', array()); 
      if ($userdata['user_posts'] >= $cut_off) 
      { 
      $template->assign_block_vars('switch_edit_website', array()); 
      } 
   } 

# 
#-----[ OPEN ]------------------------------------------ 
# 

/templates/subSilver/profile_add_body.tpl 

# 
#-----[ FIND ]------------------------------------------ 
# 
<tr> 
     <td class="row1"><span class="gen">{L_WEBSITE}:</span></td> 
     <td class="row2"> 
      <input type="text" class="post"style="width: 200px"  name="website" size="25" maxlength="255" value="{WEBSITE}" /> 
     </td> 
   </tr> 

# 
#-----[ BEFORE, ADD ]------------------------------------------ 
# 
<!-- BEGIN switch_edit_website --> 
  
# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 
<!-- END switch_edit_website --> 


# 
#-----[ FIND ]------------------------------------------ 
# 

   <tr> 
     <td class="row1"><span class="gen">{L_SIGNATURE}:</span><br /><span class="gensmall">{L_SIGNATURE_EXPLAIN}<br /><br />{HTML_STATUS}<br />{BBCODE_STATUS}<br />{SMILIES_STATUS}</span></td> 
     <td class="row2"> 
      <textarea name="signature"style="width: 300px"  rows="6" cols="30" class="post">{SIGNATURE}</textarea> 
     </td> 
   </tr> 

# 
#-----[ BEFORE, ADD ]------------------------------------------ 
# 
<!-- BEGIN switch_edit_website --> 
  
# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 
<!-- END switch_edit_website --> 


 
********************
но, чтобы отключить часть этого мода, воздействующую на подпись (ведь с этим прекрасно справляется signatures_control_1.2.4em), я дописал маленький аддончик для себя:

Код: Выделить всё

# 
#-----[ OPEN ]------------------------------------------ 
# 

/templates/subSilver/profile_add_body.tpl 


# 
#-----[ FIND ]------------------------------------------ 
# 

   <tr> 
     <td class="row1"><span class="gen">{L_SIGNATURE}:</span><br /><span class="gensmall">{L_SIGNATURE_EXPLAIN}<br /><br />{HTML_STATUS}<br />{BBCODE_STATUS}<br />{SMILIES_STATUS}</span></td> 
     <td class="row2"> 
      <textarea name="signature"style="width: 300px"  rows="6" cols="30" class="post">{SIGNATURE}</textarea> 
     </td> 
   </tr> 

# 
#-----[ BEFORE, Delete ]------------------------------------------ 
# 
<!-- BEGIN switch_edit_website --> 
  
# 
#-----[ AFTER, Delete ]------------------------------------------ 
# 
<!-- END switch_edit_website --> 


 
********************
Теперь оба мода не конфликтуют.

Вернуться в «Поддержка phpBB 2.0.x»