Would be interested if anyone has ported this MOD to IM. If not maybe an idea for those who have that talent. I think this would be a very popular MOD as it makes it easy to "thank" recognize a poster's efforts, thus letting the poster know that someone at least appreciates the post.
I looked at trying to do this myself and was way over my head because LOTS of the referenced code is missing because of the IM mods
############################################################## ## MOD Title]http://kinfule.tk[/url] ## MOD Description: This mod will add a feature for thanking the poster for his/her post.##               This mod is will work only if you have Categories Hierarchy - v2##                           ## MOD Version: 1.0.5## ## Installation Level: Intermediate ## Installation Time: 20 Minutes## Files To Edit: 11##                        admin/admin_forums.php,##                                             modcp.php,##                        posting.php,##                        viewtopic.php,##                        includes/constants.php,##                                             includes/forums_class.php##                        includes/functions.php,##                                             includes/functions_post.php,##                        langugage/lang_english/lang_main.php,##                        langugage/lang_english/lang_admin.php,##                        templates/subSilver/viewtopic_body.tpl,## Included Files: 1##                                             templates/subSilver/images/lang_english/thanks.gif   #### License: [url=http://opensource.org/licenses/gpl-license.php]http://opensource.org/licenses/gpl-license.php[/url] GNU General Public License v2############################################################## ## For security purposes, please check: [url=http://www.phpbb.com/mods/#]http://www.phpbb.com/mods/#[/url]# for the latest version of this MOD. Although MODs are checked## before being allowed in the MODs Database there is no guarantee## that there are no security problems within the MOD. No support## will be given for MODs not found within the MODs Database which## can be found at [url=http://www.phpbb.com/mods/#]http://www.phpbb.com/mods/#[/url]############################################################# ## Author Notes: ##            - You can edit a variable to choose auth_type default is auth_read.##            - It uses it own date format to chage the format, edit $timeformat value to another one.##            - This MOD needs to be enabled on a per forum basis.##            - This mod is will work only if you have Categories Hierarchy - v2.1.*## ############################################################## ## MOD History: ##    2005-08-15 - Version 1.0.0 ##               - First Release##         - This is the v1.1.5 of the original Thank mod.##         - Made it work with CH v2.####    2005-08-19 - Removed the edit_forum.tpl part cause it was not nessesary.##         - Fixed some stuff in viewtopic.php####    2005-12-06 - Version 1.0.4##               - PhpBB Mod Template fixes.## ############################################################## ## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD ############################################################## ####-----[ COPY ]------------------------------------------#copy templates/subSilver/images/lang_english/thanks.gif to templates/subSilver/images/lang_english/thanks.gif##-----[ SQL ]------------------------------------------#CREATE TABLE `phpbb_thanks` (`topic_id` MEDIUMINT(8) NOT NULL,`user_id` MEDIUMINT(8) NOT NULL,`thanks_time` INT(11) NOT NULL);  ALTER TABLE `phpbb_forums` ADD `forum_thank` TINYINT(1) DEFAULT '0' NOT NULL;  # #-----[ OPEN ]------------------------------------------ #admin/admin_forums.php  # #-----[ FIND ]------------------------------------------ #$forum_status = array(      FORUM_UNLOCKED => 'Status_unlocked',      FORUM_LOCKED => 'Status_locked',);  # #-----[ AFTER, ADD ]------------------------------------------ #$forum_thank = array(      FORUM_THANKABLE => 'Yes',      FORUM_UNTHANKABLE => 'No',);  # #-----[ FIND ]------------------------------------------ #'forum_status' => array('type' => 'radio_list', 'legend' => 'Forum_status', 'field' => 'forum_status', 'options' => $forum_status),  # #-----[ AFTER, ADD ]------------------------------------------ #'forum_thank' => array('type' => 'radio_list', 'legend' => 'use_thank', 'field' => 'forum_thank', 'options' => $forum_thank),  # #-----[ FIND ]------------------------------------------ #'forum_type', 'forum_name', 'forum_desc', 'forum_status',            # #-----[ IN-LINE FIND ]------------------------------------------ #, 'forum_status'  # #-----[ IN-LINE AFTER, ADD ]------------------------------------------ #, 'forum_thank'  # #-----[ OPEN ]------------------------------------------ #modcp.php  # #-----[ FIND ]------------------------------------------ #                  $sql = "DELETE                         FROM " . TOPICS_TABLE . "                         WHERE topic_id IN ($topic_id_sql)                               OR topic_moved_id IN ($topic_id_sql)";                  if ( !$db->sql_query($sql, BEGIN_TRANSACTION) )                  {                        message_die(GENERAL_ERROR, 'Could not delete topics', '', __LINE__, __FILE__, $sql);                  }  # #-----[ BEFORE, ADD ]------------------------------------------ #                  $sql = "DELETE FROM " . THANKS_TABLE . "                                   WHERE topic_id IN ($topic_id_sql)";                          if ( !$db->sql_query($sql, BEGIN_TRANSACTION) )                          {                                      message_die(GENERAL_ERROR, 'Error in deleting Thanks post Information', '', __LINE__, __FILE__, $sql);                          }   ##-----[ OPEN ]------------------------------------------#viewtopic.php  ##-----[ FIND ]---------------------------------#$forum_id = intval($forum_topic_data['forum_id']);  ##-----[ AFTER, ADD ]---------------------------------#// Begin Thanks Mod   // Setting if feature is active or not $show_thanks = ($forums->data[$forum_id]['forum_thank'] == FORUM_THANKABLE) ? FORUM_THANKABLE : FORUM_UNTHANKABLE;// End Thanks Mod  ##-----[ FIND ]---------------------------------#$reply_topic_url = append_sid("posting.$phpEx?mode=reply&" . POST_TOPIC_URL . "=$topic_id");  ##-----[ AFTER, ADD ]---------------------------------#// Begin Thanks Mod$thank_topic_url = append_sid("posting.$phpEx?mode=thank&" . POST_TOPIC_URL . "=$topic_id");// End Thanks Mod  ##-----[ FIND ]---------------------------------#$post_img = ( $forum_topic_data['forum_status'] == FORUM_LOCKED ) ? $images['post_locked'] : $images['post_new'];$post_alt = ( $forum_topic_data['forum_status'] == FORUM_LOCKED ) ? $lang['Forum_locked'] : $lang['Post_new_topic'];  ##-----[ AFTER, ADD ]---------------------------------#// Begin Thanks Mod$thank_img = $images['thanks'];$thank_alt = $lang['thanks_alt'];// End Thanks Mod  ##-----[ FIND ]---------------------------------# This is a partial line the complete line is much longer#$pagination =  ##-----[ AFTER, ADD ]---------------------------------#$current_page = get_page($total_replies, $board_config['posts_per_page'], $start);  ##-----[ FIND ]---------------------------------#//// Update the topic view counter//$sql = "UPDATE " . TOPICS_TABLE . "      SET topic_views = topic_views + 1      WHERE topic_id = $topic_id";if ( !$db->sql_query($sql) ){      message_die(GENERAL_ERROR, "Could not update topic views.", '', __LINE__, __FILE__, $sql);}##-----[ AFTER, ADD ]---------------------------------#// Begin Thanks Mod//// Get topic thanks//if ($show_thanks == FORUM_THANKABLE){      // Select Format for the date      $timeformat = "d-m, G:i";        $sql = "SELECT u.user_id, u.username, t.thanks_time              FROM " . THANKS_TABLE . " t, " . USERS_TABLE . " u              WHERE topic_id = $topic_id              AND t.user_id = u.user_id";        if ( !($result = $db->sql_query($sql)) )      {            message_die(GENERAL_ERROR, "Could not obtain thanks information", '', __LINE__, __FILE__, $sql);      }        $total_thank = $db->sql_numrows($result);      $thanksrow = array();      $thanksrow = $db->sql_fetchrowset($result);        for($i = 0; $i <total_thank>sql_fetchrow($result);            $thanker_id[$i] = $thanksrow[$i]['user_id'];            $thanker_name[$i] = $thanksrow[$i]['username'];            $thanks_date[$i] = $thanksrow[$i]['thanks_time'];              // Get thanks date            $thanks_date[$i] = create_date($timeformat, $thanks_date[$i], $board_config['board_timezone']);              // Make thanker profile link            $thanker_profile[$i] = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$thanker_id[$i]");                $thanks .= '<a>' . $thanker_name[$i] . '</a>(' . $thanks_date[$i] . '), ';                        if ($userdata['user_id'] == $thanksrow[$i]['user_id'])            {                  $thanked = TRUE;            }      }        $sql = "SELECT u.topic_poster, t.user_id, t.username                  FROM " . TOPICS_TABLE . " u, " . USERS_TABLE . " t                  WHERE topic_id = $topic_id                  AND u.topic_poster = t.user_id";        if ( !($result = $db->sql_query($sql)) )      {            message_die(GENERAL_ERROR, "Could not obtain user information", '', __LINE__, __FILE__, $sql);      }        if( !($autor = $db->sql_fetchrowset($result)) )      {            message_die(GENERAL_ERROR, "Could not obtain user information", '', __LINE__, __FILE__, $sql);      }           $autor_name = $autor[0]['username'];      $thanks .= "".$lang['thanks_to']." $autor_name ".$lang['thanks_end']."";        // Create button switch      if ($userdata['user_id'] != $autor['0']['user_id'] && !$thanked)      {            $template->assign_block_vars('thanks_button', array(                    'THANK_IMG' => $thank_img,                    'U_THANK_TOPIC' => $thank_topic_url,                    'L_THANK_TOPIC' => $thank_alt            ));      }     }// End Thanks Mod  ##-----[ FIND ]---------------------------------#      $template->set_switch('postrow.light', !($i % 2));      $template->set_switch('postrow.unmark_read', $cookie_setup['keep_unreads']);  ##-----[ AFTER, ADD ]---------------------------------#      // Begin Thanks Mod      if( ($show_thanks == FORUM_THANKABLE) && ($i == 0) && ($current_page == 1) && ($total_thank > 0))      {            $template->assign_block_vars('postrow.thanks', array(            'THANKFUL' => $lang['thankful'],            'THANKED' => $lang['thanked'],            'HIDE' => $lang['hide'],            'THANKS_TOTAL' => $total_thank,            'THANKS' => $thanks            )            );        }      // End Thanks Mod  ##-----[ OPEN ]---------------------------------#posting.php  ##-----[ FIND ]---------------------------------#            case 'topicreview':            $is_auth_type = 'auth_read';            break;  ##-----[ AFTER, ADD ]---------------------------------#            case 'thank':            $is_auth_type = 'auth_read';            break;  ##-----[ FIND ]---------------------------------#      case 'reply':      case 'vote':  #-----[ BEFORE, ADD ]---------------------------------      case 'thank':  ##-----[ FIND ]---------------------------------#      else if ( $mode != 'newtopic' && $post_info['topic_status'] == TOPIC_LOCKED && !$is_auth['auth_mod'])  ##-----[ IN-LINE FIND ]---------------------------------#  $mode != 'newtopic'  ##-----[ IN-LINE AFTER, ADD ]---------------------------------#   &&   $mode != 'thank'  ##-----[ FIND ]---------------------------------#            case 'reply':            case 'topicreview':  ##-----[ BEFORE, ADD ]---------------------------------#            case 'thank':  ##-----[ FIND ]---------------------------------#else if ( $mode == 'vote' ){  ##-----[ BEFORE, ADD ]---------------------------------#else if ( $mode == 'thank' ){     $topic_id = intval($HTTP_GET_VARS[POST_TOPIC_URL]);         if ( !($userdata['session_logged_in']) )         {              $message = $lang['thanks_not_logged'];              $message .=   '<br><br>' . sprintf($lang['Click_return_topic'], '<a>', '</a>');              message_die(GENERAL_MESSAGE, $message);         }         if ( empty($topic_id) )         {              message_die(GENERAL_MESSAGE, 'No topic Selected');         }           $userid = $userdata['user_id'];         $thanks_date = time();           // Check if user is the topic starter         $sql = "SELECT `topic_poster`                  FROM " . TOPICS_TABLE . "                  WHERE `topic_id` = $topic_id                  AND `topic_poster` = $userid";         if ( !($result = $db->sql_query($sql)) )         {              message_die(GENERAL_ERROR, "Couldn't check for topic starter", '', __LINE__, __FILE__, $sql);                                }           if ( ($topic_starter_check = $db->sql_fetchrow($result)) )         {              $message = $lang['t_starter'];              $message .=   '<br><br>' . sprintf($lang['Click_return_topic'], '<a>', '</a>');              message_die(GENERAL_MESSAGE, $message);         }           // Check if user had thanked before         $sql = "SELECT `topic_id`                  FROM " . THANKS_TABLE . "                  WHERE `topic_id` = $topic_id                  AND `user_id` = $userid";         if ( !($result = $db->sql_query($sql)) )         {              message_die(GENERAL_ERROR, "Couldn't check for previous thanks", '', __LINE__, __FILE__, $sql);                                }         if ( !($thankfull_check = $db->sql_fetchrow($result)) )         {              // Insert thanks if he/she hasn't              $sql = "INSERT INTO " . THANKS_TABLE . " (`topic_id`, `user_id`, `thanks_time`)              VALUES ('" . $topic_id . "', '" . $userid . "', " . $thanks_date . ") ";              if ( !($result = $db->sql_query($sql)) )              {                  message_die(GENERAL_ERROR, "Could not insert thanks information", '', __LINE__, __FILE__, $sql);                                     }              $message = $lang['thanks_add'];         }         else         {              $message = $lang['thanked_before'];         }           $template->assign_vars(array(              'META' => '<meta>')         );           $message .=   '<br><br>' . sprintf($lang['Click_return_topic'], '<a>', '</a>');                  message_die(GENERAL_MESSAGE, $message);    }   ##-----[ OPEN ]---------------------------------#includes/constants.php  ##-----[ FIND ]---------------------------------#define('FORUM_UNLOCKED', 0);define('FORUM_LOCKED', 1);  ##-----[ AFTER, ADD ]---------------------------------#  // Forum Thanks statedefine('FORUM_UNTHANKABLE', 0);define('FORUM_THANKABLE', 1);  ##-----[ FIND ]---------------------------------#define('SMILIES_TABLE', $table_prefix.'smilies');  ##-----[ AFTER, ADD ]---------------------------------#define('THANKS_TABLE', $table_prefix.'thanks');  # #-----[ OPEN ]------------------------------------------ #includes/class_forums.php  # #-----[ FIND ]------------------------------------------ #'forum_board_box',  # #-----[ AFTER, ADD ]------------------------------------------ #'forum_thank',    ##-----[ OPEN ]---------------------------------#includes/functions.php  ##-----[ FIND ]---------------------------------#function generate_pagination  ##-----[ BEFORE, ADD ]---------------------------------#function get_page($num_items, $per_page, $start_item){        $total_pages = ceil($num_items/$per_page);        if ( $total_pages == 1 )      {            return '1';            exit;      }        $on_page = floor($start_item / $per_page) + 1;      $page_string = '';        for($i = 0; $i <total_pages>sql_query($sql))                        {                              message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql);                        }  ##-----[ AFTER, ADD ]---------------------------------#                    $sql = "DELETE FROM " . THANKS_TABLE . "                        WHERE topic_id = $topic_id";                  if (!$db->sql_query($sql))                  {                        message_die(GENERAL_ERROR, 'Error in deleting Thanks post Information', '', __LINE__, __FILE__, $sql);                  }  ##-----[ OPEN ]------------------------------------------ #language/lang_english/lang_admin.php      ##-----[ FIND ]---------------------------------#//// That's all Folks!// -------------------------------------------------  ##-----[ BEFORE, ADD ]------------------------------------------ #// Begin Thanks Mod$lang['use_thank'] = 'Allow to Thank posts';// End Thanks Mod  ##-----[ OPEN ]------------------------------------------ #language/lang_english/lang_main.php      ##-----[ FIND ]---------------------------------#//// That's all, Folks!// -------------------------------------------------  ##-----[ BEFORE, ADD ]------------------------------------------ #// Begin Thanks Mod$lang['thankful'] = 'Thankful People';$lang['thanks_to'] = 'Thanks';$lang['thanks_end'] = 'for his/her post';$lang['thanks_alt'] = 'Thank Post';$lang['thanked_before'] = 'You have already thanked this topic';$lang['thanks_add'] = 'Your thanks has been given';$lang['thanks_not_logged'] = 'You need to log in to thank someone's post';$lang['thanked'] = 'user(s) is/are thankful for this post.';$lang['hide'] = 'Hide';$lang['t_starter'] = 'You cannot thank yourself'; // End Thanks Mod  ##-----[ OPEN ]---------------------------------#templates/subSilver/subSilver.cfg  ##-----[ FIND ]---------------------------------#$images['reply_locked'] = "$current_template_images/{LANG}/reply-locked.gif";  ##-----[ AFTER, ADD ]---------------------------------#$images['thanks'] = "$current_template_images/{LANG}/thanks.gif";  ##-----[ OPEN ]---------------------------------#templates/subSilver/viewtopic_body.tpl  ##-----[ FIND ]---------------------------------# This is a partial line, the complete line is much longer#<a>  ##-----[ IN-LINE FIND ]---------------------------------#</a></span></td>  # #-----[ IN-LINE REPLACE WITH ]------------------------------------------ #</a>##-----[ AFTER, ADD ]---------------------------------#<BEGIN>   <a><img></a><END></span></td>  ##-----[ FIND ]---------------------------------#      <END>  ##-----[ BEFORE, ADD ]---------------------------------#      <BEGIN>      <tr>            <td>                  <table>                        <tr>                              <th>{postrow.thanks.THANKFUL}</th>                        </tr>                        <tr>                              <td>                                    <span>                                    <a>{postrow.thanks.THANKS_TOTAL}</a> {postrow.thanks.THANKED}                                                   </span>                                    <span>                                          {postrow.thanks.THANKS}                                           <br><br><div><a>[ {postrow.thanks.HIDE} ]</a></div>                                    </span>                              </td>                             </tr>                  </table>            </td>      </tr>      <END>  ##-----[ FIND ]---------------------------------# This is a partial line, the complete line is much longer#<a>  ##-----[ IN-LINE FIND ]---------------------------------#</a></span></td>    # #-----[ IN-LINE REPLACE WITH ]------------------------------------------ #</a>##-----[ AFTER, ADD ]---------------------------------#<BEGIN>   <a><img></a><END></span></td>  ##-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ ## EoM
 Author:
Author: 






