Zwiększanie długości pola opisu tematu (i inne)
Redakcja, 2013-08-29, 18:41

aby zwiększyć długość pola opisu tematu należy:
wykonać zapytanie w bazie SQL:
     ‖|‖|
  • ALTER TABLE phpbb_topics change topic_title_e topic_title_e VARCHAR(150)

w posting_body.tpl znaleźć maxlength dla subject_e i ustawić na
     ‖|‖|
  • maxlength="150"


żeby pierwszy post wątku wyglądał inaczej trzeba dodać w viewtopic.php w assign_block_vars
     ‖|‖|
  • 'S_FIRST_POST' => ((int) $forum_topic_data['topic_first_post_id']==$postrow_post_id)? true:false

i w viewtopic_body.tpl wykorzystać taki sposób:
     ‖|‖|
  • <!-- BEGIN postrow -->
    <!-- IF postrow.S_FIRST_POST -->
    tutaj wygląd pierwszego posta
    <ol>
    <!-- ELSE -->
    <li>
    tutaj reszta postów w liście
    </li>
    <!-- ENDIF -->
    <!-- END postrow -->
    </ol>
  1. Redakcja, 2013-08-30, 00:06

    crop + skalowanie przy zachowaniu oryginalnego aspect ratio:
       ‖|‖|
    • <style>
        .thumbs90px
        {
          width: 90px;
          height: 90px;
          background-position: center;
          background-size: cover;
          float:left;
        }
      </style>
       ‖|‖|
    • <div class="thumbs90px" style="background-image: url('{topicrow.OBRAZEK}');"></div>
  2. Redakcja, 2013-08-30, 22:37

    wykadrowanie obrazka:
       ‖|‖|
    • <div style="background-image: url('http://www.jpg'); width: 598px; height: 290px; background-position: -210px -200px;"></div>


    wstawienie ramki z html:
       ‖|‖|
    • <IFRAME id="ht" src="http://www.html" frameborder=0 WIDTH=600 HEIGHT=550  scrolling=yes></iframe>


    wykadrowanie ramki z html:
       ‖|‖|
    • <div style="width: 600px; height: 500px; overflow: hidden; position: relative;">
      <iframe style="position: absolute; top: -320px; left: -220px; width: 1024px; height: 1000px;" src="http://www.html" scrolling="no"></iframe></div>
  3. 3, 2013-09-01, 23:01

    żeby wykorzystać moduł tpl dodajemy w [np. vieforum].php:
       ‖|‖|
    •     $template->set_filenames(array(
              'zegar' => 'portal_modules/clock_menu.tpl')
          );
         
          $template->assign_var_from_handle('ZEGAR', 'zegar');

    a zwykłą zmienną:
       ‖|‖|
    •     $template->assign_vars(array(
              'CO_TO' => 'what the fuck?')
          );

    i wtedy można użyć w [np. viewforu_body].tpl:
       ‖|‖|
    • {CO_TO}
      {ZEGAR}
  4. Redakcja, 2013-09-01, 23:50

    teraz ro rozpykać:
       ‖|‖|
    •     $template->set_filenames(array(
              'recent_topics_menu' => 'portal_modules/recent_topics_menu.tpl')
          );

          $sql = "SELECT forum_id FROM " . FORUMS_TABLE;
          if ( !$result = $db->sql_query($sql) )
          {
              message_die(GENERAL_ERROR, 'Could not query forums information', '', __LINE__, __FILE__, $sql);
          }
          $except_forums_ids = array();
          while( $row = $db->sql_fetchrow($result) )
          {
              $is_auth = array();
              $is_auth = $tree['auth'][POST_FORUM_URL . $row['forum_id']];

              if ( !$is_auth['auth_read'] || !$is_auth['auth_view'] )
              {
                  array_push( $except_forums_ids, $row['forum_id'] );
              }
          }

          $except_forums = sizeof($except_forums_ids) > 0 ? "AND forum_id NOT IN (" . implode(',', $except_forums_ids) . ")" : '';

          $sql = "SELECT topic_id, topic_title
              FROM " . TOPICS_TABLE . "
              WHERE topic_status <> 2
              $except_forums
              ORDER BY topic_time DESC
              LIMIT " . $portal_config['value_recent_topics'];
          if ( !$result = $db->sql_query($sql) )
          {
              message_die(GENERAL_ERROR, 'Could not query recent topics information', '', __LINE__, __FILE__, $sql);
          }

          $recent_topic_row = array();

          $template->assign_vars(array(
              'RT_ALIGN' => $portal_config['recent_topics_a'],
              'L_RECENT_TOPICS' => $lang['Recent_topics'],
              )
          );

          $i = 1;
          while ($row = $db->sql_fetchrow($result))
          {
              $template->assign_block_vars('topics', array(
                  'ROW' => (!($i % 2)) ? 1 : 2,
                  'TOPIC_URL' => append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $row['topic_id']),
                  'TOPIC_TITLE' => htmlspecialchars($row['topic_title']))
              );
              $i++;
          }
          $template->assign_var_from_handle($module_names['recent_topics_menu'], 'recent_topics_menu');
  5. 6, 2013-09-02, 00:33

    zapytanie wygląda tak:
       ‖|‖|
    • SELECT * FROM `phpbb_posts` WHERE 1 ORDER BY `post_time` DESC LIMIT 5
  6. sam ja, 2013-09-02, 01:17

    żeby pokazać najnowsze posty - w pliku [np. viewforum].php dodać:
       ‖|‖|
    • $sql = "SELECT * FROM `phpbb_posts` WHERE 1 ORDER BY `post_time` DESC LIMIT 5";

      if( !$result = $db->sql_query($sql) )
      {
          message_die(GENERAL_ERROR, 'Couldn\'t obtain coś tam', '', __LINE__, __FILE__, $sql);
      }

          $i = 1;
          while ($row = $db->sql_fetchrow($result))
          {
              $template->assign_block_vars('najnowsze', array(
                  'POST_USERNAME' => $row['post_username'])
              );
              $i++;
          }

    w [np. viewforum_body].tpl
       ‖|‖|
    •     <!-- BEGIN najnowsze -->
          {najnowsze.POST_USERNAME}
          <br>
          <!-- END najnowsze -->
  7. jeszcze raz ja, 2013-09-02, 09:07

    taki kod na zapytanie, ale też nie o to chodzi:
       ‖|‖|
    • $sql = mysql_query("SELECT topic_title, topic_last_post_id, topic_replies FROM phpbb_topics WHERE forum_id = '1' OR forum_id='4' OR forum_id='11' OR forum_id='12' OR forum_id='13' ORDER BY topic_last_post_id DESC LIMIT 5");

      while($row = mysql_fetch_assoc($sql))
        {
        echo("<a href=viewtopic.php?p=$row[topic_last_post_id]#$row[topic_last_post_id]>
      $row[topic_title]</a> ($row[topic_replies])");
        }

    stąd: http://forum.webhelp.pl/s...inne-t8482.html
    o, a to lepsze! i chyba o to chodzi:
       ‖|‖|
    • $sql = mysql_query("SELECT u.username, t.topic_title, t.topic_replies, t.topic_last_post_id FROM phpbb_topics t, phpbb_posts p, phpbb_users u WHERE t.topic_last_post_id = p.post_id AND u.user_id = p.poster_id ORDER BY t.topic_last_post_id DESC LIMIT 10");
      while($row = mysql_fetch_array($sql))
        {
        $j = stripslashes($row['topic_title']);
        $t = $j;
        if (strlen($j) >20) $j = substr($j, 0, 17) . "...";
        echo("<img SRC=forum/templates/subSilver/images/icon_latest_reply.gif>
            <a title='$t' href=forum/viewtopic.php?p=$row[topic_last_post_id] alt='$t' class=menu>$j</a> ($row[topic_replies]) [$row[username]]<br>");
        }
  8. Redakcja, 2013-09-07, 16:54

    przerobienie ankiety na nukeit!

    w viewtopic_poll_result.tpl zostaje tylko:
       ‖|‖|
    • <div align="right"><img src="http://.jpg"><b>{TOTAL_VOTES}</b></div>

    w viewtopic_poll_ballot.tpl zostaje:
       ‖|‖|
    • <form method="POST" action="{S_POLL_ACTION}">
      <input type="hidden" name="vote_id[]" value="1" checked>
      <div align="right">
      <input type="image" src="http://.jpg"  name="submit" />
      </div>
      {S_HIDDEN_FIELDS}
      </form>

    a w posting_poll_body.tpl:
       ‖|‖|
    • <tr><td>
      <input type="checkbox" name="poll_title" value="nukeit!"><b>nukeit!</b>
      <input type="hidden" name="poll_option_text[1]" value="yes">
      <input type="hidden" name="poll_option_text[2]" value="no">
      <input type="hidden" name="max_vote" value="1">

      <!-- BEGIN switch_poll_delete_toggle -->
      <input type="checkbox" name="poll_delete"><b>delete</b>
      <!-- END switch_poll_delete_toggle -->

      </td></tr>

    w includes/functions_post.php znaleźć i zakomentować warunek:
       ‖|‖|
    • /* else if ( $poll_title == '' )
         {
         $error_msg .= ( !empty($error_msg) ) ? '<br />' . $lang['Empty_poll_title'] : $lang['Empty_poll_title'];
         } */
  9. Redakcja, 2013-09-07, 17:56

    żeby zrobić wyskakujące radio po kliknięciu w thumbnail tematu z ikoną 5 - w pliku viewforum.php:
       ‖|‖|
    • $template->assign_block_vars('topicrow', array(
      'ADDLINK' => ($topic_rowset[$i]['topic_icon'] = 5) ?
      '<a target="_self" href="" onclick="javascript:window.open('."'http://radio.wolnemedia.net/program/01.php','okno','toolbar=no, height=600px, width=287px')".'">'
      :
      '<a href="'. $view_topic_url .'">',

    i wykorzystać w viewforum_body.tp:
       ‖|‖|
    • {topicrow.ADDLINK}
      <div class="thumbs90px" style="background-image: url('{topicrow.OBRAZEK}');">{topicrow.ICON}</div>
      </a>
  10. Redakcja, 2013-09-08, 23:08

    nukeit! od nowa:

    tworzymy w bazie phpbb_nukers z 3 rubryczkami:
       ‖|‖|
    • nuke_id, nuker_id, nuker_ip

    w includes/constrants.php w przedostatniej linii
       ‖|‖|
    • define('NUKERS_TABLE',$table_prefix.'nukers');

    do phpbb_topics dodajemy rubryczkę "topic_nukes".

    w viewtopic.php przekazujemy do templatki ilość nuków:
       ‖|‖|
    • $template->assign_vars(array(
      'NB_NUKES' => $forum_topic_data['topic_nukes'],

    przed "if ( defined('ATTACHMENTS_ON') )"
       ‖|‖|
    • $sql = "SELECT *
      FROM " . NUKERS_TABLE . "WHERE nuke_id = $topic_id AND nuker_id = " . intval($userdata['user_id']);
      if ( !($result = $db->sql_query($sql)) )
      {
      message_die(GENERAL_ERROR, "Could not obtain nuker data for this topic", '', __LINE__, __FILE__, $sql);
      }

      $user_nuked = ( $row = $db->sql_fetchrow($result) ) ? TRUE : 0;
      $db->sql_freeresult($result);

      if (!$user_nuked && $userdata['user_id']!= ANONYMOUS)
      {
      $template->set_filenames(array('nukebox' => 'viewtopic_nuke_ballot.tpl'));

      $s_hidden_fields = '<input type="hidden" name="topic_id" value="' . $topic_id . '"><input type="hidden" name="mode" value="nuke">';

      $template->assign_vars(array(
      'S_HIDDEN_FIELDS' => $s_hidden_fields,
      'S_NUKE_ACTION' => append_sid("posting.$phpEx?mode=nuke&amp;" . POST_TOPIC_URL . "=$topic_id")));
      $template->assign_var_from_handle('NUKE_DISPLAY', 'nukebox');
      }
      else
      {
      $template->set_filenames(array('nukebox' => 'viewtopic_nuke_result.tpl'));
      }
      $template->assign_var_from_handle('NUKE_DISPLAY', 'nukebox');

    tworzymy 2 pliki - viewtopic_nuke_result.tpl:
       ‖|‖|
    • <div align="right"><img src="http://.jpg>
      <b>{NB_NUKES}</b></div>
    oraz viewtopic_nuke_ballot.tpl:
       ‖|‖|
    • <form method="POST" action="{S_NUKE_ACTION}">
      <div align="right"><input type="image" src="http://.jpg" name="submit" />
      <b>{NB_NUKES}</b></div>
      {S_HIDDEN_FIELDS}
      </form>

    w posting.php przed "default: message_die(GENERAL_MESSAGE, $lang['No_post_mode']);" wstawiamy
       ‖|‖|
    • case 'nuke':
      break;
    oraz przed "default: message_die(GENERAL_MESSAGE, $lang['No_valid_mode']);":
       ‖|‖|
    • case 'nuke' :
      $sql = "UPDATE " . TOPICS_TABLE . "
      SET topic_nukes = topic_nukes + 1
      WHERE topic_id = $topic_id";

      if ( !$db->sql_query($sql) )
      {
      message_die(GENERAL_ERROR, 'ERROR INCREASING NUKE', '', __LINE__, __FILE__, $sql);
      }
      $sql = "INSERT INTO " . NUKERS_TABLE . " (nuke_id, nuker_id, nuker_ip)
      VALUES ($topic_id, " . $userdata['user_id'] . ", '$user_ip')";
      if ( !$db->sql_query($sql, BEGIN_TRANSACTION) )
      {
      message_die(GENERAL_ERROR, "Could not insert user_id for nuke", "", __LINE__, __FILE__, $sql);
      }
      redirect(append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id", true));
      break;

    na koniec w viewtopic_body.tpl gdzieś w okolicach postrow.MESSAGE wstawiamy:
       ‖|‖|
    • {NUKE_DISPLAY}


    żeby mieć ilość nuków w tematach dodajemy w viewforum.php:
       ‖|‖|
    • $nukes = $topic_rowset[$i]['topic_nukes'];
      $template->assign_block_vars('topicrow', array(
      'NUKES' => isset($nukes) ? ', &#9762;'.$nukes : '',
    i w viewforum_body.tpl na przykład:
       ‖|‖|
    • {topicrow.FIRST_POST_TIME}{topicrow.NUKES}
  11. Redakcja, 2013-09-09, 12:28

    wstawienie nukeit! do nowego/edycji postu.

    gdzieś tam w posting.php:
       ‖|‖|
    • $nukeit = $HTTP_POST_VARS['nukeit'];
      if (isset($nukeit))
      {
      $sql = "UPDATE " . TOPICS_TABLE . "
      SET topic_nukes = $nukeit
      WHERE topic_id = $topic_id";

      if ( !$db->sql_query($sql) )
      {
      message_die(GENERAL_ERROR, 'ERROR adding NUKEit!', '', __LINE__, __FILE__, $sql);
      }

      $sql = "DELETE FROM " . NUKERS_TABLE . "
      WHERE nuke_id = $topic_id";

      if ( !$db->sql_query($sql) )
      {
      message_die(GENERAL_ERROR, 'ERROR cleaning NUKEit!', '', __LINE__, __FILE__, $sql);
      }
      }

    w posting_body.tpl nad <!-- BEGIN expire_box -->
       ‖|‖|
    • <tr>
      <td class="row1" valign="top"><span class="gen"><b>nukeit!/reset<br>delete</b></span></td>
      <td class="row2"><input type="checkbox" name="nukeit" value="0"><br>
      <input type="checkbox" name="nukeit" value="NULL"></td>
      </tr>


    TO DO: żeby się pojawiało tylko przy edycji 1-go posta
  12. Redakcja, 2013-09-09, 16:03

    żeby się pojawiało tylko przy edycji 1-go posta trzeba ująć powyższy kod w
       ‖|‖|
    • <!-- BEGIN s_nukeit -->
      (...)
      <!-- END s_nukeit -->

    oraz dodać gdzieś na końcu przed $template->pparse('body'); w posting.php:
       ‖|‖|
    • if ($post_data['first_post']) $template->assign_block_vars('s_nukeit', array());
  13. Redakcja, 2013-09-10, 00:14

    podwójny dwukropek w tytule strony można usunąć w overall_header.tpl:
       ‖|‖|
    • <title>{SITENAME} :: {PAGE_TITLE}</title>

    "zobacz forum" i "zobacz post" można usunąć w viewtopic.php i viewforum.php usuwając $lang[] w linii
       ‖|‖|
    • $page_title = $lang['View_topic'] .' - ' . $topic_title;
       ‖|‖|
    • $page_title = $lang['View_forum'] . ' - ' . $forum_row['forum_name'];
  14. Redakcja, 2014-01-17, 12:04

    tak można dodać okładki tematów:
    http://przemo.org/phpBB2/...pic.php?t=73162

    TAGI
    żeby dodać obsługę tagów wstawić gdzieś blisko początku w viewforum.php:
       ‖|‖|
    • if ( isset($HTTP_GET_VARS['tag']))
      {
          $tag_id = $HTTP_GET_VARS['tag'];
      }
      else
      {
          $tag_id = '';
      }

    i dodać linijkę gdzieś w okolicach 500 wiersza:
       ‖|‖|
    • $sql = "SELECT " . $sql_fields . "
          FROM (" . $sql_tables . ")
          $ignore_topics_table
          WHERE t.forum_id = $forum_id
              $ignore_topics_sql
      AND INSTR(t.topic_title,'$tag_id')
      ----------------------------------
              AND t.topic_poster = u.user_id
              AND p.post_id = t.topic_first_post_id
              AND p2.post_id = t.topic_last_post_id
              AND u2.user_id = p2.poster_id
              $forum_post_text_where
              AND t.topic_type <> " . POST_ANNOUNCE . "
              AND t.topic_type <> " . POST_GLOBAL_ANNOUNCE . "
              $limit_topics_time $sotr_methods
          LIMIT $start, $user_topics_per_page";



Powered by phpBB modified by Przemo © 2003 phpBB Group


ZalogujZaloguj
ProfilProfil
RejestracjaRejestracja

NAJNOWSZE ARTYKUŁY I KOMENTARZE

System "nuke'ów"
przez: Redakcja ✉0

Jhuki Jhuki
przez: Redakcja ✉0

Temat
przez: Redakcja ✉0

FLASH w newsie
przez: Redakcja ✉0

Beauty - dir. Rino Stefano Tagliafierro
przez: Redakcja ✉0

Lucky day forever
przez: Redakcja ✉0

Elite: Dangerous
przez: Redakcja ✉0

Bardzo dziwny świat: opowiadania fantastyczne
przez: Anonymous ✉0

Zwiększanie długości pola opisu tematu (i inne)
przez: Redakcja ✉14

EMBED w postach
przez: Redakcja ✉2