Yes nice mod.. but it will be over-abused... The feedback's have to be approved before they are left...!Maybe in the future. Not sure how the admin would actually approve it that it happened maybe just stop some people from bulk doing it. Not sure how vBulletin's iTrader mod handles it.
Yes nice mod.. but it will be over-abused... The feedback's have to be approved before they are left...!Maybe in the future. Not sure how the admin would actually approve it that it happened maybe just stop some people from bulk doing it. Not sure how vBulletin's iTrader mod handles it.
vbgamer, i've got this error in my error log. any idea what is it ? clash wif the ignore mod ? :DTo fix those in display.template.php find:
8: Use of undefined constant smftrader_profile - assumed 'smftrader_profile'
File: /home/korobox/public_html/forum/Themes/default/languages/Ignore.english.php (main sub template - eval?)
Line: 388
$txt[smftrader_profile]
and replace with $txt['smftrader_profile']
To fix those in display.template.php find:Code: [Select]$txt[smftrader_profile]
and replace withCode: [Select]$txt['smftrader_profile']
I'm sure vbgamer will fix it soon.
2: Division by zero
File: /var/www/forum2/Themes/default/languages/Who.english.php (summary sub template - eval?)
Line: 299
this might be a dumb question but where do people buy and sell stuff on the forum in order to become a trader. Can someone post an example of this or point me to a site that has an example?
I used to have a marketplace component on joomla where people could post 'ads' for sale/exchange etc but it wasnt linked to smf so this might be good for us if I could see it in action
~thanks
ah ok, so it just goes on a regular forum board?
so if I was to post that I was selling a book, the post or the item for sell (the book) doesnt link to the rating in the profile?
so if someone bought the book, they would then go to my profile and rate me as a seller?
is that how it works?
~thanks
ah ok, so at the moment, I could go and give you unlimited feedback even if you hadnt sold anything?
I can see how some people might abuse that
Can you post the code around Who.english.php line 299.
My mod doesn't modify Who.english.php I think it is another mod.
how do i see or edit the settings? i cant find anything different on my board at all.
Just wanted to remind on the error i reportet earlier in this topic ;)Remind maybe I can look at it today.
Yet i still have the errors showing up in the error-log but noone ever was complaining about a actual error in the frontend. yet it would be nice to have the error log clean.
I'm not enought into the smf-code so i would know where to look for the problem.
I get this error when I view someone else's profile, but not my own.
2: Division by zero
File: /home/.abigaildryer/xarcell/xboxnarc.com/smf/Themes/default/languages/Who.english.php (summary sub template - eval?)
Line: 299
<tr><td><b>' . $txt['smftrader_positivefeedbackpercent'] . '</b></td><td><b>' , $tradecount != 0 ? round(($pcount / $tradecount) * 100, 2) : 0 , '%</b></td></tr>
<tr><td><b>' . $txt['smftrader_positivefeedbackpercent'] . '</b></td><td><b>' . round(($pcount / $tradecount) * 100, 2) . '%</b></td></tr>
Regarding the division by zero errors, you want to do something likeSMF Trader updated with the above fixes.Code: [Select]<tr><td><b>' . $txt['smftrader_positivefeedbackpercent'] . '</b></td><td><b>' , $tradecount != 0 ? round(($pcount / $tradecount) * 100, 2) : 0 , '%</b></td></tr>
instead ofCode: [Select]<tr><td><b>' . $txt['smftrader_positivefeedbackpercent'] . '</b></td><td><b>' . round(($pcount / $tradecount) * 100, 2) . '%</b></td></tr>
Also not sure if there was a reason for using memberName in places, I personally think it's better to use realName.
<?xml version="1.0"?>
<!DOCTYPE package-info SYSTEM "http://www.simplemachines.org/xml/package-info">
<package-info xmlns="http://www.simplemachines.org/xml/package-info" xmlns:smf="http://www.simplemachines.org/">
<id>vbgamer45:SMFTraderSystem</id>
<name>SMF Trader System</name>
<type>modification</type>
<version>1.0.1</version>
<install for="1.1.1,1.1,1.1 RC3,1.1 RC2">
<readme>ReadMe.txt</readme>
<modification type="file">smftrader.xml</modification>
<require-file name="Trader.php" destination="$sourcedir" />
<require-file name="trader.template.php" destination="$themedir" />
<code>smftraderinstall.php</code>
</install>
<uninstall for="1.1.1,1.1,1.1 RC3,1.1 RC2">
<modification type="file" reverse="true">smftrader.xml</modification>
</uninstall>
<install for="1.0.7,1.0.8,1.0.9,1.0.10">
<readme>ReadMe.txt</readme>
<modification type="file">smftrader107.xml</modification>
<require-file name="Trader.php" destination="$sourcedir" />
<require-file name="trader.template.php" destination="$themedir" />
<code>smftraderinstall.php</code>
</install>
<uninstall for="1.0.7,1.0.8,1.0.9,1.0.10">
<modification type="file" reverse="true">smftrader107.xml</modification>
</uninstall>
</package-info>
Update the file and rezip the package and place it in your packages folder and it should unstiall then.
Looks good there too.
Error in Package Installation
At least one error was encountered during a test installation of this package. It is strongly recommended that you do not continue with installation unless you know what you are doing, and have made a backup very recently. This error may be caused by a conflict between the package you're trying to install and another package you have already installed, an error in the package, a package which requires another package that you don't have installed yet, or a package designed for another version of SMF.
Installations actions for "SMF Trader System":
Installing this package will perform the following actions:
Type Action Description
1. Execute Modification ./Themes/default/languages/Modifications.english.php Test successful
2. Execute Modification ./Themes/default/Profile.template.php Test successful
3. Execute Modification ./Themes/default/Display.template.php Test failed
4. Execute Modification ./index.php Test successful
5. Execute Modification ./Sources/ManagePermissions.php Test successful
6. Extract File ./Sources/Trader.php
7. Extract File ./Themes/default/trader.template.php
8. Execute Code smftraderinstall.php
Had this installed before the 1.1.1 upgrade wiped it out...I uninstalled the previous version, but when I try to install the system again, I get this message:Yes you would.QuoteError in Package Installation
At least one error was encountered during a test installation of this package. It is strongly recommended that you do not continue with installation unless you know what you are doing, and have made a backup very recently. This error may be caused by a conflict between the package you're trying to install and another package you have already installed, an error in the package, a package which requires another package that you don't have installed yet, or a package designed for another version of SMF.
Under that, I get:QuoteInstallations actions for "SMF Trader System":
Installing this package will perform the following actions:
Type Action Description
1. Execute Modification ./Themes/default/languages/Modifications.english.php Test successful
2. Execute Modification ./Themes/default/Profile.template.php Test successful
3. Execute Modification ./Themes/default/Display.template.php Test failed
4. Execute Modification ./index.php Test successful
5. Execute Modification ./Sources/ManagePermissions.php Test successful
6. Extract File ./Sources/Trader.php
7. Extract File ./Themes/default/trader.template.php
8. Execute Code smftraderinstall.php
If I just go into the Display.template.php file and manually include the code that needs to go there (per the XML file info), would I be safe proceeding?
Fatal error: Cannot redeclare preparsecode() (previously declared in /home/spocrati/public_html/smf/Sources/Subs-Post.php:158) in /home/spocrati/public_html/smf/Sources/Subs-Post.php on line 158
Do you have a solution?<file name="$languagedir/Modifications.german.php">
<operation>
<search position="after"><![CDATA[
?>]]></search>
<add><![CDATA[
//Begin SMF Trader System Text Strings
$txt['smftrader_title'] = 'SMF Handelssystem';
$txt['smftrader_version'] = '1.0';
//Display text strings
$txt['smftrader_profile'] = 'Anzahl Geschäfte: ';
//Profile text strings
$txt['smftrader_submitfeedback'] = 'Abgeben eines Feedbacks für ';
$txt['smftrader_totalfeedback'] = 'Verhältnis (+/-): ';
$txt['smftrader_positivefeedbackpercent'] = 'Positive Feedbacks: ';
$txt['smftrader_positivefeedback'] = '<span style="color: #006400;">Positive Feedbacks: </span>';
$txt['smftrader_neutralfeedback'] = 'Neutrale Feedbacks: ';
$txt['smftrader_negativefeedback'] = '<span style="color: #FF0000;">Negative Feedbacks: </span>';
//Start trader.template
//Submit Transaction Rating
$txt['smftrader_whoareu'] = 'Du bist:';
$txt['smftrader_buyer'] = 'Käufer';
$txt['smftrader_seller'] = 'Verkäufer';
$txt['smftrader_trade'] = 'Geschäft';
$txt['smftrader_transaction'] = 'Bewertung des Handels:';
$txt['smftrader_positive'] = 'Positiv';
$txt['smftrader_neutral'] = 'Neutral';
$txt['smftrader_negative'] = 'Negativ';
$txt['smftrader_shortcomment'] = 'Kurzer Kommentar zum abgewickelten Geschäft:';
$txt['smftrader_shortcommentnote'] = 'Max: 100 Zeichen';
$txt['smftrader_topicurl'] = 'URL des Topics: ';
$txt['smftrader_longcomment'] = 'Langer Kommentar zum abgewickelten Geschäft:';
//Rating Overview
$txt['smftrader_allfeedback'] = 'Zeige alle Feedbacks';
$txt['smftrader_sellerfeedback'] = 'Zeige Feedbacks als Käufer';
$txt['smftrader_buyerfeedback'] = 'Zeige Feedback als Verkäufer';
$txt['smftrader_tradefeedback'] = 'Zeige Feedback zu den abgewickelten Geschäften';
//Page Titles
$txt['smftrader_feedbacktitle'] = 'SMF Handelssystem - Uebersicht ';
$txt['smftrader_submittitle'] = 'SMF Handelssystem - Feedback absenden';
$txt['smftrader_reporttitle'] = 'SMF Handelssystem - Falsches Feedback melden';
$txt['smftrader_contact'] = 'Kontakt';
$txt['smftrader_viewprofile'] = 'Zeige das Profil';
$txt['smftrader_sendpm'] = 'Sende dem Benutzer eine PM';
//End trader.template
//Permissions
$txt['permissiongroup_smftrader'] = 'SMF Handelssystem';
$txt['permissionname_smftrader_feedback'] = 'Feedback abgeben zulassen';
$txt['permissionhelp_smftrader_feedback'] = 'User das abgeben eines Feedbacks erlauben';
$txt['permissionname_smftrader_deletefeed'] = 'Feedback Löschen zulassen';
$txt['permissionhelp_smftrader_deletefeed'] = 'User dürfen Feedbacks löschen';
$txt['cannot_smftrader_feedback'] = 'Du hast kein Recht ein Feedback abzugeben';
$txt['cannot_smftrader_deletefeed'] = 'Du hast kein Recht ein Feedback zu löschen';
//END SMF Trader System Text Strings
]]></add>
</operation>
</file>
It sends an email to the webmaster on the site currently.
Nothing is added to the admin panel. Located under user's profiles and viewing a post.
Installations actions for "SMF Trader System":
Installing this package will perform the following actions: Type Action Description
1. Execute Modification ./Themes/default/languages/Modifications.english.php Test failed
2. Execute Modification ./Themes/default/Profile.template.php Test successful
3. Execute Modification ./Themes/default/Display.template.php Test successful
4. Execute Modification ./index.php Test successful
5. Execute Modification ./Sources/ManagePermissions.php Test successful
6. Extract File ./Sources/Trader.php
7. Extract File ./Themes/default/trader.template.php
8. Execute Code smftraderinstall.php
Howdy all.... I just installed this fantastic mod on my brand new smf forum. Unfortunately I can't find where is the setting page for it in my admin menu.
Thanks in advance for the help!
Nothing is added to the admin panel. Located under user's profiles and viewing a post.
Version 1.1 Released
+Moved language strings to a language files
+Added trader rating approval sytem. Admins can now approve ratings
+Will send a PM to a user when a rating is added to their profile when it is approved.
No idea, that's why I didn't add it to begin with. But I guess some people want to review the ratings before they are posted.Version 1.1 Released
+Moved language strings to a language files
+Added trader rating approval sytem. Admins can now approve ratings
+Will send a PM to a user when a rating is added to their profile when it is approved.
Sorry to sound like a n00b, but what is the advantage of approving ratings? On the DP forums, nothing needs to be approved for their iTrader feedback system ...
Thank you for this modification 8) The only thing I did differently was move the 'Trade Count' number below the post count and unbolded the text.
$txt['smftrader_profile'] = 'Trade Count: ';
<tr><td><b>' . $txt['smftrader_title'] . '</b></td></tr>
$txt['smftrader_title'] = 'SMF Trader System';
Copy text strings from themes/default/languages/modifications.english.php...thus you would have the necessary files added to give the text you are missing.
to every
themes/default/languages/modifications.*.php
@ EverestTech
Please read:
http://docs.simplemachines.org/index.php?topic=402.msg531#msg531 (http://docs.simplemachines.org/index.php?topic=402.msg531#msg531)
...and the following may also help:
http://modparser.dev.dansoftaustralia.net/ (http://modparser.dev.dansoftaustralia.net/)
This mod does not feature that. The way this mod works is you would have a for sale forum and then people rate others on transactions that occur.
Check the error log and see what erorr is being returned.
When do you get that error?
Your errors suggest that you are using a custom theme and have failed to edit to manually install the mod into it. Mods, almost all of them, only install automatically into the SMF Default theme all other themes are custom themes and require manual installation into them.
Please read:
http://docs.simplemachines.org/index.php?topic=402.msg531#msg531 (http://docs.simplemachines.org/index.php?topic=402.msg531#msg531)
http://www.simplemachines.org/community/index.php?topic=34526.0 (http://www.simplemachines.org/community/index.php?topic=34526.0)
The following may also prove helpful:
http://modparser.dev.dansoftaustralia.net/ (http://modparser.dev.dansoftaustralia.net/)
Mirror of the last link:
http://www.smfhacks.com/smf-package-parser.html (http://www.smfhacks.com/smf-package-parser.html)
Sorry no...this is a common problem and is a problem with themes not mods so I give you the relevant links and let you do your best with it. If you wish to query the author of a theme on how to make it work you may get help there.
I don't use your custom theme and thus have no knowledge of it.
//First do the query for the number of ratings
db_query("SELECT feedbackid FROM {$db_prefix}feedback WHERE ID_MEMBER =" . $message['member']['id'], __FILE__, __LINE__);
$tradecount = db_affected_rows();
//Show the trader info
echo '
<b>' . $txt['smftrader_profile'] . ' </b>
(<a href="' . $scripturl . '?action=trader&id=' . $message['member']['id'] . '">', $tradecount, '</a>)<br /><br />';
$txt['smftrader_form_notapproved']
4. Now the = 'the default text'; An Error Has Occured!
Your rating will not appear in the user's trader profile to others until it is approved.
Thank You for Submitting Your Trader Feedback!:)
Your rating will appear in the user's profile upon approval of the Administrator.
You will need to unistall all the mods after the trader system was installed in order to unistall correctly.
It would be very useful if:
2. and the url field was mandatory
$txt['smftrader_errnourl'] = 'You did not enter the URL address.';
$topicurl = $_POST['topicurl'];
if ($topicurl== '')
{
fatal_error($txt['smftrader_errnourl'],false);
}
It would be very useful if:
1. the two persons (buyer and seller) were visible at the admin approval page (SMF Trader System Settings).
Thanks a lot!
Good idea
It would be very useful if:
1. the two persons (buyer and seller) were visible at the admin approval page (SMF Trader System Settings).
Thanks a lot!
Thanx for the Awsome MOD. Has anyone figured this out. I am still messin with.
Thanx Todd
Good idea
It would be very useful if:
1. the two persons (buyer and seller) were visible at the admin approval page (SMF Trader System Settings).
Thanks a lot!
Thanx for the Awsome MOD. Has anyone figured this out. I am still messin with.
Thanx Todd
hello, my problem still continous..
it is possible to give another rating for the same topic url...
so members can add rating as much as they want
how can i fix this problem ?
it should only be possible to give 1 rating for one url
could anyone help me please
(i hope my english is good enough to understand what the problem is)
Thx Jessi
It would be very useful if:
1. the two persons (buyer and seller) were visible at the admin approval page (SMF Trader System Settings).
Thanks a lot!
SELECT f.saletype, f.feedbackid, f.FeedBackMEMBER_ID, f.topicurl, f.comment_short,
f.salevalue, f.saledate, m.realName
Add after, f.ID_MEMBER
<td class="catbg2" width="55%">',$txt['smftrader_comment'],'</td>
Replace with<td class="catbg2" width="50%">',$txt['smftrader_comment'],'</td>
<td class="catbg2" width="5%">To</td>
echo '<td>'. $mtype . ' <a href="' . $scripturl . '?action=profile;u=' . $row['FeedBackMEMBER_ID'] . '">' . $row['realName'] . '</a></td>';
Add beforeecho '<td><a href="' . $scripturl . '?action=profile;u=', $row['ID_MEMBER'], '">', $row['ID_MEMBER'], '</a></td>';
<td align="left" colspan="6">
Replace with<td align="left" colspan="7">
<?php
/*
SMF Trader System
Version 1.1
by:vbgamer45
http://www.smfhacks.com
*/
function template_main()
{
global $txt, $db_prefix, $context, $scripturl, $modSettings;
db_query("SELECT feedbackid FROM {$db_prefix}feedback
WHERE approved = 1 AND ID_MEMBER =" . $context['traderid'], __FILE__, __LINE__);
$tradecount = db_affected_rows();
db_query("SELECT feedbackid FROM {$db_prefix}feedback
WHERE approved = 1 AND salevalue = 1 AND ID_MEMBER =" . $context['traderid'] , __FILE__, __LINE__);
$neturalcount = db_affected_rows();
db_query("SELECT feedbackid FROM {$db_prefix}feedback
WHERE approved = 1 AND salevalue = 0 AND ID_MEMBER =" . $context['traderid'] , __FILE__, __LINE__);
$pcount = db_affected_rows();
db_query("SELECT feedbackid FROM {$db_prefix}feedback
WHERE approved = 1 AND salevalue = 2 AND ID_MEMBER =" . $context['traderid'] , __FILE__, __LINE__);
$ncount = db_affected_rows();
if($tradecount != 0)
$feedpos = round(($pcount / $tradecount) * 100, 2);
else
$feedpos = 0;
echo '
<div class="tborder">
<table border="0" cellpadding="4" cellspacing="1" align="center" class="bordercolor" width="100%">
<tr class="titlebg">
<td height="26">' . $txt['smftrader_feedbacktitle'] . ' - ' . $context['tradername'] . '</td>
</tr>
<tr>
<td class="windowbg">
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<tr>
<td><b>' . $txt['smftrader_title'] . '</b></td>
<td><b>' . $txt['smftrader_contact'] . '</b></td>
</tr>
<tr>
<td><b>' . $txt['smftrader_profile'] . '(' . $tradecount . ')</b></td>
<td><a href="' . $scripturl . '?action=profile;u=' . $context['traderid'] . '">' . $txt['smftrader_viewprofile'] . '</a></td>
</tr>
<tr>
<td><b>' . $txt['smftrader_positivefeedbackpercent'] . $feedpos . '%</b></td>
<td><a href="' . $scripturl . '?action=pm;sa=send;u=' . $context['traderid'] . '">' . $txt['smftrader_sendpm'] . '</a></td>
</tr>
<tr><td>' . $txt['smftrader_positivefeedback'] . $pcount . ' <img src="Smileys/default/smiley.gif" alt="positive" /></td></tr>
<tr><td>' . $txt['smftrader_neutralfeedback'] . $neturalcount . ' <img src="Smileys/default/undecided.gif" alt="netural" /></td></tr>
<tr><td>' . $txt['smftrader_negativefeedback'] . $ncount . ' <img src="Smileys/default/angry.gif" alt="negative" /></td></tr>
<tr><td>' . $txt['smftrader_totalfeedback'] . ($pcount - $ncount) . '</td></tr>
<tr><td colspan="2"><br /><a href="' . $scripturl . '?action=trader;sa=submit;id=' . $context['traderid'] . '">' . $txt['smftrader_submitfeedback'] . $context['tradername'] . '</a></td>
</tr>
</table>
<hr />
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<tr>
<td>
<a href="' . $scripturl . '?action=trader;id=' . $context['traderid'] . '">' . $txt['smftrader_allfeedback'] . '</a> | <a href="' . $scripturl . '?action=trader;id=' . $context['traderid'] . ';view=1">' . $txt['smftrader_sellerfeedback'] . '</a> | <a href="' . $scripturl . '?action=trader;id=' . $context['traderid'] . ';view=2">' . $txt['smftrader_buyerfeedback'] . '</a> | <a href="' . $scripturl . '?action=trader;id=' . $context['traderid'] . ';view=3">' . $txt['smftrader_tradefeedback'] . '</a>
</td>
</tr>
</table>
<hr />
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<tr>
<td class="catbg2" width="5%">',$txt['smftrader_rating'],'</td>
<td class="catbg2" width="55%">',$txt['smftrader_comment'],'</td>
<td class="catbg2" width="10%">',$txt['smftrader_from'],'</td>
<td class="catbg2" width="10%">',$txt['smftrader_detail'],'</td>
<td class="catbg2" width="10%">',$txt['smftrader_date'],'</td>
<td class="catbg2" width="10%">',$txt['smftrader_report'],'</td>
</tr>
';
// Check if allowed to delete comment
$deletefeedback = allowedTo('smftrader_deletefeed');
// Get the view type
@$view = (int) $_GET['view'];
if(empty($view))
{
$view = 0;
}
$result = '';
switch($view)
{
case 0:
$result = "SELECT f.saletype, f.feedbackid, f.FeedBackMEMBER_ID, f.topicurl, f.comment_short,
f.salevalue, f.saledate, m.realName
FROM {$db_prefix}feedback AS f,{$db_prefix}members AS m
WHERE f.ID_MEMBER = " . $context['traderid'] . " AND f.FeedBackMEMBER_ID = m.ID_MEMBER AND f.approved = 1";
break;
case 1:
$result = "SELECT f.saletype, f.feedbackid, f.FeedBackMEMBER_ID, f.topicurl,
f.comment_short, f.salevalue, f.saledate, m.realName
FROM {$db_prefix}feedback AS f,{$db_prefix}members AS m
WHERE f.ID_MEMBER = " . $context['traderid'] . " AND f.FeedBackMEMBER_ID = m.ID_MEMBER AND f.saletype = 1 AND f.approved = 1";
break;
case 2:
$result = "SELECT f.saletype, f.feedbackid, f.FeedBackMEMBER_ID, f.topicurl,
f.comment_short, f.salevalue, f.saledate, m.realName
FROM {$db_prefix}feedback AS f,{$db_prefix}members AS m
WHERE f.ID_MEMBER = " . $context['traderid'] . " AND f.FeedBackMEMBER_ID = m.ID_MEMBER AND f.saletype = 0 AND f.approved = 1";
break;
case 3:
$result = "SELECT f.saletype, f.feedbackid, f.FeedBackMEMBER_ID, f.topicurl, f.comment_short, f.salevalue, f.saledate, m.realName FROM {$db_prefix}feedback AS f,{$db_prefix}members AS m WHERE f.ID_MEMBER = " . $context['traderid'] . " AND f.FeedBackMEMBER_ID = m.ID_MEMBER AND f.saletype = 2 AND f.approved = 1";
break;
default:
fatal_error($txt['smftrader_invalidview'], false);
break;
}
$dbresult = db_query($result, __FILE__, __LINE__);
while($row = mysql_fetch_assoc($dbresult))
{
echo '<tr>';
switch($row['salevalue'])
{
case 0:
echo '<td align="center"><img src="', $modSettings['smileys_url'], '/', $context['user']['smiley_set'], '/smiley.gif" alt="positive" /></td>';
break;
case 1:
echo '<td align="center"><img src="', $modSettings['smileys_url'], '/', $context['user']['smiley_set'], '/undecided.gif" alt="netural" /></td>';
break;
case 2:
echo '<td align="center"><img src="', $modSettings['smileys_url'], '/', $context['user']['smiley_set'], '/angry.gif" alt="negative" /></td>';
break;
default:
echo '<td align="center">', $row['salevalue'], '</td>';
break;
}
if($row['topicurl'] == '')
echo '<td>', $row['comment_short'], '</td>';
else
echo '<td><a href="' . $row['topicurl'] . '">' . $row['comment_short'] . '</a></td>';
$mtype = ' ';
switch($row['saletype'])
{
case 0:
$mtype = $txt['smftrader_buyer'];
break;
case 1:
$mtype = $txt['smftrader_seller'];
break;
case 2:
$mtype = $txt['smftrader_trade'];
break;
default:
$mtype = '';
break;
}
echo '<td>'. $mtype . ' <a href="' . $scripturl . '?action=profile;u=' . $row['FeedBackMEMBER_ID'] . '">' . $row['realName'] . '</a></td>'; echo '<td><a href="' . $scripturl . '?action=trader;sa=detail;feedid=' . $row['feedbackid'] . '">',$txt['smftrader_viewdetail'],'</a></td>';
echo '<td>', timeformat($row['saledate']), '</td>';
echo '<td><a href="' . $scripturl . '?action=trader;sa=report;feedid=' . $row['feedbackid'] . '">',$txt['smftrader_report'],'</a>';
if($deletefeedback)
{
echo '<br /><br /><a href="' . $scripturl . '?action=trader;sa=delete;feedid=' . $row['feedbackid'] . '">',$txt['smftrader_delete'],'</a>';
}
echo '</td>';
echo '</tr>';
}
mysql_free_result($dbresult);
echo ' </table>
</td>
</tr>
</table>
</div>
}
function template_submit()
{
global $txt, $db_prefix, $context, $scripturl;
echo '
<div class=tborder>
<table border="0" cellpadding="4" cellspacing="1" align="center" class="bordercolor" width="100%">
<tr class="titlebg">
<td height="26" align="center">' . $txt['smftrader_submittitle'] . ' - ' . $context['tradername'] . '</td>
</tr>
<tr>
<td class="windowbg">
<form action="' . $scripturl . '?action=trader;sa=submit2" method="post">
<table border="0" cellspacing="0" cellpadding="4" width="100%">
<tr>
<td width="20%"><b>' . $txt['smftrader_whoareu'] . '</b></td>
<td align="left">
<select size="1" name="saletype">
<option value="0" selected="selected">' . $txt['smftrader_buyer'] . '</option>
<option value="1">' . $txt['smftrader_seller'] . '</option>
<option value="2">' . $txt['smftrader_trade'] . '</option>
</select>
</td>
</tr>
<tr>
<td width="25%">' . $txt['smftrader_transaction'] . '</td>
<td align="left">
<select size="1" name="salevalue">
<option value="0" selected="selected">' . $txt['smftrader_positive'] . '</option>
<option value="1">' . $txt['smftrader_neutral'] . '</option>
<option value="2">' . $txt['smftrader_negative'] . '</option>
</select>
</td>
</tr>
<tr>
<td width="25%">' . $txt['smftrader_shortcomment'] . '</td>
<td align="left"><input type="text" max="100" name="shortcomment" size="75" />
<br />' . $txt['smftrader_shortcommentnote'] . '
</td>
</tr>
<tr>
<td width="25%">' . $txt['smftrader_topicurl'] . '</td>
<td align="left"><input type="text" name="topicurl" size="75" /></td>
</tr>
<tr>
<td width="25%" valign="top">' . $txt['smftrader_longcomment'] . '</td>
<td align="left"><textarea rows="10" name="longcomment" cols="64"></textarea></td>
</tr>
<tr>
<td colspan="2" align="center"><br />
<input type="submit" value="',$txt['smftrader_submitfeedback2'],'" name="cmdsubmit" />
</td>
</tr>
</table>
<input type="hidden" name="id" value="' . $context['traderid'] . '" />
</form>
</td>
</tr>
</table>
</div>
}
function template_report()
{
global $txt, $db_prefix, $context, $scripturl;
echo '
<div class="tborder">
<table border="0" cellpadding="4" cellspacing="1" align="center" class="bordercolor" width="100%">
<tr class="titlebg">
<td height="26" align="center">' . $txt['smftrader_reporttitle'] . '</td>
</tr>
<tr>
<td class="windowbg">
<form action="' . $scripturl . '?action=trader;sa=report2" method="post">
<table border="0" cellspacing="0" cellpadding="4" width="100%">
<tr>
<td width="25%" valign="top">', $txt['smftrader_comment'],'</td>
<td align="left"><textarea rows="10" name="comment" cols="64"></textarea></td>
</tr>
<tr>
<td colspan="2" align="center"><br />
<input type="submit" value="', $txt['smftrader_reportfeedback'],'" name="cmdsubmit" />
</td>
</tr>
</table>
<input type="hidden" name="feedid" value="' . $context['feedid'] . '" />
</form>
</td>
</tr>
</table>
</div>
}
function template_detail()
{
global $txt, $db_prefix, $context, $scripturl;
$result = "SELECT f.saletype, f.feedbackid, f.ID_MEMBER, f.FeedBackMEMBER_ID, f.topicurl,
f.comment_long, f.salevalue, f.saledate, m.realName
FROM {$db_prefix}feedback AS f,{$db_prefix}members AS m
WHERE f.feedbackid = " . $context['feedid'] . " AND f.FeedBackMEMBER_ID = m.ID_MEMBER";
$dbresult = db_query($result, __FILE__, __LINE__);
$row = mysql_fetch_assoc($dbresult);
mysql_free_result($dbresult);
echo '
<div class="tborder">
<table border="0" cellpadding="4" cellspacing="1" align="center" class="bordercolor" width="100%">
<tr class="titlebg">
<td height="26" align="center">',$txt['smftrader_title'],' - ',$txt['smftrader_detailedfeedback'],'</td>
</tr>
<tr>
<td class="windowbg">
<table border="0" cellspacing="0" cellpadding="4" width="100%">
<tr>
<td width="25%" valign="top">',$txt['smftrader_detailedcomment'],'</td>
<td align="left">' . nl2br($row['comment_long']) . '<br />',$txt['smftrader_commentby'],'<a href="' . $scripturl . '?action=profile;u=' . $row['FeedBackMEMBER_ID'] . '">' . $row['realName'] . '</a><br /></td>
</tr>
<tr>
<td colspan="2" align="center"><a href="' . $scripturl . '?action=trader;id=' . $row['ID_MEMBER'] . '">',$txt['smftrader_returntoratings'],'</a></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
}
function template_delete()
{
global $scripturl, $db_prefix, $context, $txt;
$result = "SELECT f.saletype, f.feedbackid, f.ID_MEMBER, f.FeedBackMEMBER_ID,
f.comment_short, f.topicurl, f.comment_long, f.salevalue, f.saledate, m.realName
FROM {$db_prefix}feedback AS f,{$db_prefix}members AS m
WHERE f.feedbackid = " . $context['feedid'] . " AND f.FeedBackMEMBER_ID = m.ID_MEMBER";
$dbresult = db_query($result, __FILE__, __LINE__);
$row = mysql_fetch_assoc($dbresult);
mysql_free_result($dbresult);
echo '
<div class="tborder">
<form action="', $scripturl, '?action=trader;sa=delete2" method="post">
<table border="0" cellpadding="4" cellspacing="1" align="center" class="bordercolor" width="100%">
<tr class="titlebg">
<td height="26" align="center">',$txt['smftrader_title'],' - ',$txt['smftrader_deletefeedback'],'</td>
</tr>
<tr>
<td class="windowbg">
<table border="0" cellspacing="0" cellpadding="4" width="100%">
<tr>
<td width="25%" valign="top">Short Comment</td>
<td align="left">' . nl2br($row['comment_short']) . '</td>
</tr>
<tr>
<td width="25%" valign="top">',$txt['smftrader_detailedcomment'],'</td>
<td align="left">' . nl2br($row['comment_long']) . '<br />',$txt['smftrader_commentby'],'<a href="' . $scripturl . '?action=profile;u=' . $row['FeedBackMEMBER_ID'] . '">' . $row['realName'] . '</a><br /></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="',$txt['smftrader_deletefeedback'],'" name="cmdsubmit" /></td>
</tr>
</table>
<input type="hidden" name="feedid" value="' . $context['feedid'] . '" />
<input type="hidden" name="redirect" value="' . $row['ID_MEMBER'] . '" />
</td>
</tr>
</table>
</form>
</div>
}
function template_settings() {
global $scripturl, $modSettings, $txt, $db_prefix, $context;
echo '
<table border="0" width="80%" cellspacing="0" align="center" cellpadding="4" class="tborder">
<tr class="titlebg">
<td>' . $txt['smftrader_title'] . ' ' . $txt['smftrader_text_settings'] . '</td>
</tr>
<tr class="windowbg">
<td>
<b>' . $txt['smftrader_text_settings'] . '</b><br />
<form method="POST" action="' . $scripturl . '?action=trader;sa=admin2">
<input type="checkbox" name="trader_approval" ' . ($modSettings['trader_approval'] ? ' checked="checked" ' : '') . ' />' . $txt['smftrader_trader_approval'] . '<br />
<br />
<input type="submit" name="savesettings" value="',$txt['smftrader_save_settings'],'" />
</form><br />';
// Trader Approval listings
echo '
<br />
<table cellspacing="0" cellpadding="10" border="0" align="center" width="90%" class="tborder">
<tr class="catbg">
<td class="catbg2" width="5%">',$txt['smftrader_rating'],'</td>
<td class="catbg2" width="55%">',$txt['smftrader_comment'],'</td>
<td class="catbg2" width="10%">',$txt['smftrader_from'],'</td>
<td class="catbg2" width="10%">',$txt['smftrader_detail'],'</td>
<td class="catbg2" width="10%">',$txt['smftrader_date'],'</td>
<td class="catbg2" width="10%">' . $txt['smftrader_options'] . '</td>
</tr>';
if(!isset($_REQUEST['pg']))
$page = 1;
else
$page = (int) $_REQUEST['pg'];
// Get Total Pages
$dbresult = db_query("SELECT COUNT(*) AS total FROM {$db_prefix}feedback WHERE approved = 0", __FILE__, __LINE__);
$row = mysql_fetch_assoc($dbresult);
$total = ceil($row['total'] / 10);
mysql_free_result($dbresult);
$page--;
if($page < 0)
$page = 0;
$curpage = $page * 10;
//List all ratings waiting for approval
$dbresult = db_query("
SELECT f.saletype, f.feedbackid, f.FeedBackMEMBER_ID, f.topicurl, f.comment_short,
f.salevalue, f.saledate, m.realName
FROM {$db_prefix}feedback AS f,{$db_prefix}members AS m
WHERE f.FeedBackMEMBER_ID = m.ID_MEMBER AND f.approved = 0
LIMIT $curpage,10", __FILE__, __LINE__);
while($row = mysql_fetch_assoc($dbresult))
{
echo '<tr>';
switch($row['salevalue'])
{
case 0:
echo '<td align="center"><img src="', $modSettings['smileys_url'], '/', $context['user']['smiley_set'], '/smiley.gif" alt="positive" /></td>';
break;
case 1:
echo '<td align="center"><img src="', $modSettings['smileys_url'], '/', $context['user']['smiley_set'], '/undecided.gif" alt="netural" /></td>';
break;
case 2:
echo '<td align="center"><img src="', $modSettings['smileys_url'], '/', $context['user']['smiley_set'], '/angry.gif" alt="negative" /></td>';
break;
default:
echo '<td align="center">', $row['salevalue'], '</td>';
break;
}
if($row['topicurl'] == '')
echo '<td>', $row['comment_short'], '</td>';
else
echo '<td><a href="' . $row['topicurl'] . '">' . $row['comment_short'] . '</a></td>';
$mtype = ' ';
switch($row['saletype'])
{
case 0:
$mtype = $txt['smftrader_buyer'];
break;
case 1:
$mtype = $txt['smftrader_seller'];
break;
case 2:
$mtype = $txt['smftrader_trade'];
break;
default:
$mtype = '';
break;
}
echo '<td>'. $mtype . ' <a href="' . $scripturl . '?action=profile;u=' . $row['FeedBackMEMBER_ID'] . '">' . $row['realName'] . '</a></td>';
echo '<td><a href="' . $scripturl . '?action=trader;sa=detail;feedid=' . $row['feedbackid'] . '">',$txt['smftrader_viewdetail'],'</a></td>';
echo '<td>', timeformat($row['saledate']), '</td>';
echo '<td><a href="' . $scripturl . '?action=trader;sa=approve;id=' . $row['feedbackid'] . '">',$txt['smftrader_approve'],'</a>';
echo '<br /><br /><a href="' . $scripturl . '?action=trader;sa=delete;feedid=' . $row['feedbackid'] . '">',$txt['smftrader_delete'],'</a>';
echo '</td>';
echo '</tr>';
}
mysql_free_result($dbresult);
if($total > 0)
{
echo '<tr class="titlebg">
<td align="left" colspan="6">
' . $txt['smftrader_text_pages'];
for($i = 1; $i <= $total; $i++)
{
if($i == ($page+1))
echo ' [<a href="' . $scripturl . '?action=trader;sa=admin;pg=' . $i . '">' . $i . '</a>]';
else
echo ' <a href="' . $scripturl . '?action=trader;sa=admin;pg=' . $i . '">' . $i . '</a>';
}
echo '
</td>
</tr>';
}
echo '
</table><br />
<br />
<b>' . $txt['smftrader_text_permissions'] . '</b><br/><span class="smalltext">' . $txt['smftrader_set_permissionnotice'] . '</span>
<br /><a href="' . $scripturl . '?action=permissions">' . $txt['smftrader_set_editpermissions'] . '</a>
</td>
</tr>
<tr class="windowbg"><td><b>Has SMF Trader System helped you?</b> Then support the developers:<br />
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="sales@visualbasiczone.com">
<input type="hidden" name="item_name" value="SMF Trader System">
<input type="hidden" name="no_shipping" value="1">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="tax" value="0">
<input type="hidden" name="bn" value="PP-DonationsBF">
<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-butcc-donate.gif" border="0" name="submit" alt="Make payments with PayPal - it is fast, free and secure!" />
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
</td>
</tr>
</table>';
}
?>
Did anyone figure out how to change the wording when feedback, An error has occuredWould require a custom template function to do that. Add it to my mod tracker for ideas for the next version.
Chris
Thank you for this modification 8) The only thing I did differently was move the 'Trade Count' number below the post count and unbolded the text.
Thank you for this modification 8) The only thing I did differently was move the 'Trade Count' number below the post count and unbolded the text.
Could you please tell us how can one go about doing that?
PS. Great mod. Very well appreciated by my forum members. Thanks.
//Start SMF Trader System
//First do the query for the number of ratings
db_query("SELECT feedbackid FROM {$db_prefix}feedback WHERE ID_MEMBER =" . $message['member']['id'], __FILE__, __LINE__);
$tradecount = db_affected_rows();
//Show the trader info
echo '
<b>' . $txt['smftrader_profile'] . ' </b>
(<a href="' . $scripturl . '?action=trader&id=' . $message['member']['id'] . '">', $tradecount, '</a>)<br />';
//END SMF Trader System
// Show how many posts they have made.
echo '
', $txt[26], ': ', $message['member']['posts'], '<br />
<br />';
// Show how many posts they have made.
echo '
', $txt[26], ': ', $message['member']['posts'], '<br />';
//Start SMF Trader System
//First do the query for the number of ratings
db_query("SELECT feedbackid FROM {$db_prefix}feedback WHERE ID_MEMBER =" . $message['member']['id'], __FILE__, __LINE__);
$tradecount = db_affected_rows();
//Show the trader info
echo '
' . $txt['smftrader_profile'] . '
(<a href="' . $scripturl . '?action=trader&id=' . $message['member']['id'] . '">', $tradecount, '</a>)<br /><br />';
//END SMF Trader System
RoarinRow, you have made my day. Thanks for the help guys!
<file name="$languagedir/Modifications.portuguese.php" error="skip">
<operation>
<search position="after"><![CDATA[
?>]]></search>
<add><![CDATA[
//Begin SMF Trader System Text Strings
$txt['smftrader_title'] = 'SMF Sistema para comerciante ';
$txt['smftrader_version'] = '1.1';
$txt['smftrader_admin'] = 'Configurando Trader';
//Display text strings
$txt['smftrader_profile'] = 'Comérciante: ';
//Profile text strings
$txt['smftrader_submitfeedback'] = 'Para enviar comentários';
$txt['smftrader_totalfeedback'] = 'Total de feedback positivo: ';
$txt['smftrader_positivefeedbackpercent'] = 'Feedback positivo: ';
$txt['smftrader_positivefeedback'] = '<span style="color: #006400;">Feedback positivo: </span>';
$txt['smftrader_neutralfeedback'] = 'Neutro Feedback: ';
$txt['smftrader_negativefeedback'] = '<span style="color: #FF0000;">Feedback Negativo: </span>';
//Start trader.template
//Submit Transaction Rating
$txt['smftrader_whoareu'] = 'Você e o:';
$txt['smftrader_buyer'] = 'Comprador';
$txt['smftrader_seller'] = 'Vendedor';
$txt['smftrader_trade'] = 'Comérciante';
$txt['smftrader_transaction'] = 'Notas transação:';
$txt['smftrader_positive'] = 'Positiva';
$txt['smftrader_neutral'] = 'Neutro';
$txt['smftrader_negative'] = 'Negativo';
$txt['smftrader_shortcomment'] = 'Breve comentário sobre a sua operação:';
$txt['smftrader_shortcommentnote'] = 'Max: 100 characters';
$txt['smftrader_topicurl'] = 'Tópico URL:';
$txt['smftrader_longcomment'] = 'Longo comentário sobre a sua operação:';
//Rating Overview
$txt['smftrader_allfeedback'] = 'Ver todos os comentários';
$txt['smftrader_sellerfeedback'] = 'Ver feedback do vendedor';
$txt['smftrader_buyerfeedback'] = 'Ver Feedback do comprador ';
$txt['smftrader_tradefeedback'] = 'Ver feedback do comércio ';
//Page Titles
$txt['smftrader_feedbacktitle'] = 'SMF sistema do comerciante - comerciante Geral';
$txt['smftrader_submittitle'] = 'SMF Sistema do comerciante - enviar comentários';
$txt['smftrader_reporttitle'] = 'SMF Sistema do comerciante - relatório mau feedback';
$txt['smftrader_contact'] = 'Contactar';
$txt['smftrader_viewprofile'] = 'Ver perfil completo.';
$txt['smftrader_sendpm'] = 'Envie este membro uma mensagem pessoal.';
//End trader.template
//Permissions
$txt['permissiongroup_smftrader'] = 'SMF Trader';
$txt['permissionname_smftrader_feedback'] = 'Permitir enviar comentários';
$txt['permissionhelp_smftrader_feedback'] = 'Permite ao membro enviar ao comerciante fating feedback.';
$txt['permissionname_smftrader_deletefeed'] = 'Permitir apagar qualquer comentário por qualquer membro.';
$txt['permissionhelp_smftrader_deletefeed'] = 'Permite ao membro apagar feedback por qualquer pessoa ou qualquer membro.';
$txt['cannot_smftrader_feedback'] = 'Você não tem permissão para enviar comentários.';
$txt['cannot_smftrader_deletefeed'] = 'Você não está autorizado a excluir feedback.';
$txt['permissionname_smftrader_autorating'] = 'Auto aprovar avaliaçotilde;es';
$txt['permissionhelp_smftrader_autorating'] = 'Votos não precisa esperar a aprovação se essa autorização seja dada.';
//END SMF Trader System Text Strings
]]></add>
</operation>
</file>
<file name="$languagedir/Modifications.brazilian.php" error="skip">
<operation>
<search position="after"><![CDATA[
?>]]></search>
<add><![CDATA[
//Begin SMF Trader System Text Strings
$txt['smftrader_title'] = 'SMF Sistema para comerciante ';
$txt['smftrader_version'] = '1.1';
$txt['smftrader_admin'] = 'Configurando Trader';
//Display text strings
$txt['smftrader_profile'] = 'Comérciante: ';
//Profile text strings
$txt['smftrader_submitfeedback'] = 'Para enviar comentários';
$txt['smftrader_totalfeedback'] = 'Total de feedback positivo: ';
$txt['smftrader_positivefeedbackpercent'] = 'Feedback positivo: ';
$txt['smftrader_positivefeedback'] = '<span style="color: #006400;">Feedback positivo: </span>';
$txt['smftrader_neutralfeedback'] = 'Neutro Feedback: ';
$txt['smftrader_negativefeedback'] = '<span style="color: #FF0000;">Feedback Negativo: </span>';
//Start trader.template
//Submit Transaction Rating
$txt['smftrader_whoareu'] = 'Você e o:';
$txt['smftrader_buyer'] = 'Comprador';
$txt['smftrader_seller'] = 'Vendedor';
$txt['smftrader_trade'] = 'Comérciante';
$txt['smftrader_transaction'] = 'Notas transação:';
$txt['smftrader_positive'] = 'Positiva';
$txt['smftrader_neutral'] = 'Neutro';
$txt['smftrader_negative'] = 'Negativo';
$txt['smftrader_shortcomment'] = 'Breve comentário sobre a sua operação:';
$txt['smftrader_shortcommentnote'] = 'Max: 100 characters';
$txt['smftrader_topicurl'] = 'Tópico URL:';
$txt['smftrader_longcomment'] = 'Longo comentário sobre a sua operação:';
//Rating Overview
$txt['smftrader_allfeedback'] = 'Ver todos os comentários';
$txt['smftrader_sellerfeedback'] = 'Ver feedback do vendedor';
$txt['smftrader_buyerfeedback'] = 'Ver Feedback do comprador ';
$txt['smftrader_tradefeedback'] = 'Ver feedback do comércio ';
//Page Titles
$txt['smftrader_feedbacktitle'] = 'SMF sistema do comerciante - comerciante Geral';
$txt['smftrader_submittitle'] = 'SMF Sistema do comerciante - enviar comentários';
$txt['smftrader_reporttitle'] = 'SMF Sistema do comerciante - relatório mau feedback';
$txt['smftrader_contact'] = 'Contactar';
$txt['smftrader_viewprofile'] = 'Ver perfil completo.';
$txt['smftrader_sendpm'] = 'Envie este membro uma mensagem pessoal.';
//End trader.template
//Permissions
$txt['permissiongroup_smftrader'] = 'SMF Trader';
$txt['permissionname_smftrader_feedback'] = 'Permitir enviar comentários';
$txt['permissionhelp_smftrader_feedback'] = 'Permite ao membro enviar ao comerciante fating feedback.';
$txt['permissionname_smftrader_deletefeed'] = 'Permitir apagar qualquer comentário por qualquer membro.';
$txt['permissionhelp_smftrader_deletefeed'] = 'Permite ao membro apagar feedback por qualquer pessoa ou qualquer membro.';
$txt['cannot_smftrader_feedback'] = 'Você não tem permissão para enviar comentários.';
$txt['cannot_smftrader_deletefeed'] = 'Você não está autorizado a excluir feedback.';
$txt['permissionname_smftrader_autorating'] = 'Auto aprovar avaliaçotilde;es';
$txt['permissionhelp_smftrader_autorating'] = 'Votos não precisa esperar a aprovação se essa autorização seja dada.';
//END SMF Trader System Text Strings
]]></add>
</operation>
</file>
<?php
/*
SMF Trader System
Version 1.1
by:vbgamer45
http://www.smfhacks.com
Translate by:Candidosa2
http://www.joomlamz.com
*/
$txt['smftrader_rating'] = 'Rating';
$txt['smftrader_comment'] = 'Comentário';
$txt['smftrader_from'] = 'De';
$txt['smftrader_detail'] = 'Detalhes';
$txt['smftrader_date'] = 'Data';
$txt['smftrader_report'] = 'Relatório';
$txt['smftrader_approve'] = 'Aprovar';
$txt['smftrader_options'] = 'Opções';
$txt['smftrader_invalidview'] = 'Inválida vista...';
$txt['smftrader_viewdetail'] = 'Ver Detalhes';
$txt['smftrader_delete'] = 'Apagar';
$txt['smftrader_submitfeedback2'] = 'Enviar Feedback';
$txt['smftrader_reportfeedback'] = 'Relatório Feedback';
$txt['smftrader_detailedfeedback'] = 'Detalhes do Feedback';
$txt['smftrader_detailedcomment'] = 'Detalhes do comentário';
$txt['smftrader_commentby'] = 'Comentário de: ';
$txt['smftrader_returntoratings'] = 'Retornar ao comerciante avaliações';
$txt['smftrader_shortcomment'] = 'Breve comentário';
$txt['smftrader_deletefeedback'] = 'Apagar Feedback';
$txt['smftrader_nomemberselected'] = 'Nenhum membro selecionado';
$txt['smftrader_errfeedbackself'] = 'Você não pode deixar feedback para si mesmo.';
$txt['smftrader_errshortcoment'] = 'Você não inseriu um breve comentário!';
$txt['smftrader_errnocomment'] = 'Você não colocar um comentário para este comentário.';
$txt['smftrader_errsaletype'] = 'Inválido tipo de venda.';
$txt['smftrader_errsalevalue'] = 'Valor inválido venda.';
$txt['smftrader_errnofeedselected'] = 'Não a comentários selecionados.';
$txt['smftrader_failedreport'] = 'Falha ao relatório do comerciante rating comentário.';
$txt['smftrader_badfeedback'] = 'Bad Feedback';
$txt['smftrader_notrader'] = 'Nenhum comerciante.';
$txt['smftrader_viewtrader'] = 'Ver Trader';
$txt['smftrader_commentmadeby'] = 'Observação feita por: ';
$txt['smftrader_set_permissionnotice'] = 'Finalmente! Não se esqueça de fazer as permissões fixas para cada grupo, para que estes possam utilizar o sistema de comerciante.';
$txt['smftrader_set_editpermissions'] = 'Editar Permissões';
$txt['smftrader_text_settings'] = 'Configurações';
$txt['smftrader_text_permissions'] = 'Permissões';
$txt['smftrader_save_settings'] = 'Gravar configurações';
$txt['smftrader_trader_approval'] = 'Trader Rating aprovação';
$txt['smftrader_form_notapproved'] = 'Sua classificação não aparecerá no perfil do membro comerciante ate que outros sejam aprovado.';
$txt['smftrader_text_pages'] = 'Pages: ';
$txt['smftrader_newrating'] = 'Você tem uma nova avaliação sobre o seu perfil';
?>
Apply Filter: Only show the errors with the same message
8: Undefined index: smftrader_admin
File: /home/thegermz/public_html/forums/Sources/Subs.php
Line: 2796
8: Undefined index: smftrader_admin
File: /home/thegermz/public_html/forums/Sources/Subs.php
Line: 2796
That's an error either with your language pack or your themes custom modifications language file.
You are missing the language strings in your modificatoins.english.php file.
Good points will look into them.I sure hope so because this really is a sweet mod and everything I said / pointed out are all very valid points in both suggestions and the errors ;-)
8: Undefined index: smftrader_admin
File: /home/tomecit/public_html/smftome/Sources/Subs.php
Line: 2739
You are missing that in your modificatoins.*yourlanguage.php file
8: Undefined index: smftrader_profile
File: /home/tomecit/public_html/smftome/Themes/default/Display.template.php (main sub template - eval?)
Line: 287
Yes same as above you need check those files and modify them if you are using custom theme or language.
<search position="after"><![CDATA[// Show the users signature.]]></search>
<search position="after"><![CDATA[ echo '
<td colspan="2"><hr size="1" width="100%" class="hrcolor" /></td>
</tr>';
// Show the users signature.]]></search>
Yes once SMF 2.0 is released it will be updated
1.2
!Major changes
+Feedback by pages
+More settings
Will not for 2.0 until 2.0 goes into an RC phase or final.
I wanted to uninstall it because i really dont need it right now :-\. Did a backup and went to uninstall it but some errors showed up and test failures. I uninstalled anyway and afther that when i would go to read a topic there was some error and i couldnt read. I installed the mod again and that solved my problem but the trade count is now doubled (?!). Now when I go to uninstall it it says test sucesfull but then the same error ocures.
Help? :(
SMF version is 1.1.2
says this:
Table 'arenawii.feedback' doesn't exist
File: C:\Domains\arenawii.com\wwwroot\forum\Sources\Load.php(1746) : eval()'d code
Line: 286
and
8: Undefined variable: db_prefix
File: C:\Domains\arenawii.com\wwwroot\forum\Themes\default\Display.template.php (main sub template - eval?)
Line: 286
help please....It already does that... it was one of the features I asked him to put in and have confirmed that its been put in.
is it possible to change the listorder to show the newest feedback at the top of the list
i think there is only a db_query to configure, but i´m not an expert in this
Maybe not sure how it work since the trading system is not tied to boards really.
Ok I installed the mod and had to modify my laungage file, which was no big deal. Two things that I'm noticing.
When I submit feedback the reciever gets this.
"He ripped me off big time
Comment made by: themouse_
An Error Has Occurred!"
When I click on the An Error Has Occured it takes me to the profile of the person recieving the feedback.
As well I have 3 admins and one admin seems to be getting PM's when there is a reported feedback. Now since I'm the Site Admin shouldn't I get it as well?
I am trying to create a link, that points to an empty SMF Trader submit feedback form and passes the URL of interest into the Topic URL field, any suggestions on how to make it post the value I want to pass?
Added support for SMF 2.0 beta 4!
http://www.eojmarket.com/index.php?action=trader&id=66bump...
He's only got one comment but it was left with the wrong "tag" how can I re-tag it as a trade comment ?
I am trying to create a link, that points to an empty SMF Trader submit feedback form and passes the URL of interest into the Topic URL field, any suggestions on how to make it post the value I want to pass?
I know how to write the link to send the item I am trying to pass forward, I am not sure how to get it to post into the Topic URL field. I am hesitant to mess with the SMF Trader code with out any guidance.
Again, thanks in advance for any suggestions or help!
I tried to install on 1.1.7
Got this :
Type Action Description
1. Execute Modification ./Themes/default/languages/Modifications.english.php Test successful
2. Execute Modification ./Themes/default/languages/Modifications.english-utf8.php Skipping file
3. Execute Modification ./Themes/default/Profile.template.php Test failed
4. Execute Modification ./Themes/default/Display.template.php Test successful
5. Execute Modification ./index.php Test successful
6. Execute Modification ./Sources/ManagePermissions.php Test successful
7. Execute Modification ./Sources/Subs.php Test successful
8. Execute Modification ./Themes/default/languages/Help.english.php Test successful
9. Execute Modification ./Themes/default/languages/Help.english-utf8.php Skipping file
Means? :o
I tried to install on 1.1.7
Got this :
Type Action Description
1. Execute Modification ./Themes/default/languages/Modifications.english.php Test successful
2. Execute Modification ./Themes/default/languages/Modifications.english-utf8.php Skipping file
3. Execute Modification ./Themes/default/Profile.template.php Test failed
4. Execute Modification ./Themes/default/Display.template.php Test successful
5. Execute Modification ./index.php Test successful
6. Execute Modification ./Sources/ManagePermissions.php Test successful
7. Execute Modification ./Sources/Subs.php Test successful
8. Execute Modification ./Themes/default/languages/Help.english.php Test successful
9. Execute Modification ./Themes/default/languages/Help.english-utf8.php Skipping file
Means? :o
Test failed = some code that the mod was searching for wasn't found. This is likely caused by another mod that you have installed which changes the same code.
Skipping file = you don't have that file so it's skipping the modifications for that particular file.
I want to apply this mod but i get this test failed :It won't install on the profile template that is all. You can probaly manually install it.
3. Execute Modification ./Themes/default/Profile.template.php Test failed
Can i continue or what is the problem causing this?
ty
Any idea on the Error message I keep getting?
Comment made by: themouse_
An Error Has Occurred!"
if (!empty($modSettings['userLanguage']) && !empty($context['member']['language']))
echo '
<dt>', $txt['language'], ':</dt>
<dd>', $context['member']['language'], '</dd>';
// Start SMF Trader System
// First do the query for the number of ratings
global $smcFunc;
$smcFunc['db_query']('', "SELECT feedbackid FROM {db_prefix}feedback WHERE approved = 1 AND ID_MEMBER =" . $context['member']['id']);
$tradecount = $smcFunc['db_affected_rows']();
$result = $smcFunc['db_query']('', "
SELECT
COUNT(*) AS total,salevalue
FROM {db_prefix}feedback
WHERE approved = 1 AND ID_MEMBER = " . $context['member']['id'] . " GROUP BY salevalue");
$context['neturalcount'] = 0;
$context['pcount'] = 0;
$context['ncount'] = 0;
while($row = $smcFunc['db_fetch_assoc']($result))
{
if ($row['salevalue'] == 0)
{
$context['pcount'] = $row['total'];
}
else if ($row['salevalue'] == 2)
{
$context['ncount'] = $row['total'];
}
else if ($row['salevalue'] == 1)
{
$context['neturalcount'] = $row['total'];
}
}
$smcFunc['db_free_result']($result);
$context['tradecount_nonetural'] = ($context['pcount'] + $context['ncount']);
if ($modSettings['trader_use_pos_neg'])
$tradecount = ($context['pcount'] -$context['ncount']);
echo '
</dl>';
echo '
<dl>
<dt><b>' . $txt['smftrader_title'] . '</b></dt>
<dd> </dd>
<dt><b>' . $txt['smftrader_profile'] . '</b></dt>
<dd><b>(<a href="' . $scripturl . '?action=trader&id=' . $context['member']['id'] . '">' . ($modSettings['trader_use_pos_neg'] ? ($tradecount > 0 ? '+' . $tradecount : $tradecount) : $tradecount) . '</a>)</b></dd>
<dt><b>' . $txt['smftrader_positivefeedbackpercent'] . '</b></dt>
<dd><b>' , $context['tradecount_nonetural'] != 0 ? round(($context['pcount'] / $context['tradecount_nonetural']) * 100, 2) : 0 , '%</b></dd>
<dt>' . $txt['smftrader_positivefeedback'] . '</dt>
<dd>' . $context['pcount'] . ' <img src="' . 'Smileys/default/smiley.gif" alt="positive" /></dd>
<dt>' . $txt['smftrader_neutralfeedback'] . '</dt>
<dd>' . $context['neturalcount'] . ' <img src="' . 'Smileys/default/undecided.gif" alt="neutral" /></dd>
<dt>' . $txt['smftrader_negativefeedback'] . '</dt>
<dd>' . $context['ncount'] . ' <img src="' . 'Smileys/default/angry.gif" alt="negative" /></dd>
<dt>' . $txt['smftrader_totalfeedback'] . '</dt>
<dd>' . ($context['pcount'] - $context['ncount']) . '</dd>
<dt><a href="' . $scripturl . '?action=trader&sa=submit&id=' . $context['member']['id'] . '">' . $txt['smftrader_submitfeedback'] . $context['member']['name'] . '</a></dt>
<dd> </dd>';
// END SMF Trader System
// Is karma display enabled?
if ($modSettings['karmaMode'] != '0'){
echo '
<li class="margintop">', $txt['karma_power'], ': ', $message['member']['karma']['power'], '</li>
<li class="margintop repbars">
';
foreach($message['member']['karma']['bars'] as $karma_bar)
echo '<img src="', $settings['images_url'], '/karma_', $karma_bar['type'], '.gif" title="', $message['member']['name'], ' ', $karma_bar['desc'], '" alt="', $message['member']['name'], ' ', $karma_bar['desc'], '" />';
echo '
</li>';
}
// Show online and offline buttons?
if (!empty($modSettings['onlineEnable']))
echo '
<li>', $context['can_send_pm'] ? '<a href="' . $message['member']['online']['href'] . '" title="' . $message['member']['online']['label'] . '">' : '', $settings['use_image_buttons'] ? '<img src="' . $message['member']['online']['image_href'] . '" alt="' . $message['member']['online']['text'] . '" border="0" style="margin-top: 2px;" />' : $message['member']['online']['text'], $context['can_send_pm'] ? '</a>' : '', $settings['use_image_buttons'] ? '<span class="smalltext"> ' . $message['member']['online']['text'] . '</span>' : '', '</li>';
//Start SMF Trader System
//First do the query for the number of ratings
global $smcFunc;
$result = $smcFunc['db_query']('', "
SELECT
COUNT(*) AS total,salevalue
FROM {db_prefix}feedback
WHERE approved = 1 AND ID_MEMBER = " . $message['member']['id'] . " GROUP BY salevalue");
$context['neturalcount'] = 0;
$context['pcount'] = 0;
$context['ncount'] = 0;
while($row = $smcFunc['db_fetch_assoc']($result))
{
if ($row['salevalue'] == 0)
{
$context['pcount'] = $row['total'];
}
else if ($row['salevalue'] == 2)
{
$context['ncount'] = $row['total'];
}
else if ($row['salevalue'] == 1)
{
$context['neturalcount'] = $row['total'];
}
}
$smcFunc['db_free_result']($result);
if ($modSettings['trader_use_pos_neg'])
$tradecount = ($context['pcount'] - $context['ncount']);
else
$tradecount = $context['pcount'] + $context['ncount'] + $context['neturalcount'];
// Show the trader info
echo '<li>
<b>' . $txt['smftrader_profile'] . ' </b>
(<a href="' . $scripturl . '?action=trader&id=' . $message['member']['id'] . '">', $modSettings['trader_use_pos_neg'] ? ($tradecount > 0 ? '+' . $tradecount : $tradecount) : $tradecount , '</a>)</li>';
//END SMF Trader System
// Show the member's gender icon?
if (!empty($modSettings['userLanguage']) && !empty($context['member']['language']))
echo '
<dt>', $txt['language'], ':</dt>
<dd>', $context['member']['language'], '</dd>';
// Start SMF Trader System
// First do the query for the number of ratings
global $smcFunc;
$smcFunc['db_query']('', "SELECT feedbackid FROM {db_prefix}feedback WHERE approved = 1 AND ID_MEMBER =" . $context['member']['id']);
$tradecount = $smcFunc['db_affected_rows']();
$result = $smcFunc['db_query']('', "
SELECT
COUNT(*) AS total,salevalue
FROM {db_prefix}feedback
WHERE approved = 1 AND ID_MEMBER = " . $context['member']['id'] . " GROUP BY salevalue");
$context['neturalcount'] = 0;
$context['pcount'] = 0;
$context['ncount'] = 0;
while($row = $smcFunc['db_fetch_assoc']($result))
{
if ($row['salevalue'] == 0)
{
$context['pcount'] = $row['total'];
}
else if ($row['salevalue'] == 2)
{
$context['ncount'] = $row['total'];
}
else if ($row['salevalue'] == 1)
{
$context['neturalcount'] = $row['total'];
}
}
$smcFunc['db_free_result']($result);
$context['tradecount_nonetural'] = ($context['pcount'] + $context['ncount']);
if ($modSettings['trader_use_pos_neg'])
$tradecount = ($context['pcount'] -$context['ncount']);
echo '<tr><td colspan="2"><hr size="1" width="100%" class="hrcolor" /></td></tr>
<tr><td><b>' . $txt['smftrader_title'] . '</b></td></tr>
<tr><td><b>' . $txt['smftrader_profile'] . '</b></td><td><b>(<a href="' . $scripturl . '?action=trader&id=' . $context['member']['id'] . '">' . ($modSettings['trader_use_pos_neg'] ? ($tradecount > 0 ? '+' . $tradecount : $tradecount) : $tradecount) . '</a>)</b></td></tr>
<tr><td><b>' . $txt['smftrader_positivefeedbackpercent'] . '</b></td><td><b>' , $context['tradecount_nonetural'] != 0 ? round(($context['pcount'] / $context['tradecount_nonetural']) * 100, 2) : 0 , '%</b></td></tr>
<tr><td>' . $txt['smftrader_positivefeedback'] . '</td><td>' . $context['pcount'] . ' <img src="' . 'Smileys/default/smiley.gif" alt="positive" /></td></tr>
<tr><td>' . $txt['smftrader_neutralfeedback'] . '</td><td>' . $context['neturalcount'] . ' <img src="' . 'Smileys/default/undecided.gif" alt="neutral" /></td></tr>
<tr><td>' . $txt['smftrader_negativefeedback'] . '</td><td>' . $context['ncount'] . ' <img src="' . 'Smileys/default/angry.gif" alt="negative" /></td></tr>
<tr><td>' . $txt['smftrader_totalfeedback'] . '</td><td>' . ($context['pcount'] - $context['ncount']) . '</td></tr>
<tr><td colspan="2"><br /><a href="' . $scripturl . '?action=trader&sa=submit&id=' . $context['member']['id'] . '">' . $txt['smftrader_submitfeedback'] . $context['member']['name'] . '</a></td>
</tr>';
// END SMF Trader System
echo '
</dl>';
yes... 2.0 RC1 does not use tables in that way... so you can't just paste, you have to re-parse the code as dt/dd tags. I have it working over on 40konline.com with RC1.
// Start SMF Trader System
// First do the query for the number of ratings
global $smcFunc;
$smcFunc['db_query']('', "SELECT feedbackid FROM {db_prefix}feedback WHERE approved = 1 AND ID_MEMBER =" . $context['member']['id']);
$tradecount = $smcFunc['db_affected_rows']();
$result = $smcFunc['db_query']('', "
SELECT
COUNT(*) AS total,salevalue
FROM {db_prefix}feedback
WHERE approved = 1 AND ID_MEMBER = " . $context['member']['id'] . " GROUP BY salevalue");
$context['neturalcount'] = 0;
$context['pcount'] = 0;
$context['ncount'] = 0;
while($row = $smcFunc['db_fetch_assoc']($result))
{
if ($row['salevalue'] == 0)
{
$context['pcount'] = $row['total'];
}
else if ($row['salevalue'] == 2)
{
$context['ncount'] = $row['total'];
}
else if ($row['salevalue'] == 1)
{
$context['neturalcount'] = $row['total'];
}
}
$smcFunc['db_free_result']($result);
$context['tradecount_nonetural'] = ($context['pcount'] + $context['ncount']);
if ($modSettings['trader_use_pos_neg'])
$tradecount = ($context['pcount'] -$context['ncount']);
echo '<hr size="1" width="100%" class="hrcolor" />
<dl>
<dt><b>' . $txt['smftrader_title'] . '</b></dt><dd> </dd>
<dt><b>' . $txt['smftrader_profile'] . '</b></dt><dd><b>(<a href="' . $scripturl . '?action=trader&id=' . $context['member']['id'] . '">' . ($modSettings['trader_use_pos_neg'] ? ($tradecount > 0 ? '+' . $tradecount : $tradecount) : $tradecount) . '</a>)</b></dd>
<dt><b>' . $txt['smftrader_positivefeedbackpercent'] . '</b></dt><dd><b>' , $context['tradecount_nonetural'] != 0 ? round(($context['pcount'] / $context['tradecount_nonetural']) * 100, 2) : 0 , '%</b></dd>
<dt>' . $txt['smftrader_positivefeedback'] . '</dt><dd>' . $context['pcount'] . ' <img src="' . 'Smileys/default/smiley.gif" alt="positive" /></dd>
<dt>' . $txt['smftrader_neutralfeedback'] . '</dt><dd>' . $context['neturalcount'] . ' <img src="' . 'Smileys/default/undecided.gif" alt="neutral" /></dd>
<dt>' . $txt['smftrader_negativefeedback'] . '</dt><dd>' . $context['ncount'] . ' <img src="' . 'Smileys/default/angry.gif" alt="negative" /></dd>
<dt>' . $txt['smftrader_totalfeedback'] . '</dt><dd>' . ($context['pcount'] - $context['ncount']) . '</dd>
<dt><a href="' . $scripturl . '?action=trader&sa=submit&id=' . $context['member']['id'] . '">' . $txt['smftrader_submitfeedback'] . $context['member']['name'] . '</a></dt><dd> </dd>
</dl>';
// END SMF Trader System
// Show the users signature.
//Start SMF Trader System
//First do the query for the number of ratings
global $smcFunc;
$result = $smcFunc['db_query']('', "
SELECT
COUNT(*) AS total,salevalue
FROM {db_prefix}feedback
WHERE approved = 1 AND ID_MEMBER = " . $message['member']['id'] . " GROUP BY salevalue");
$context['neturalcount'] = 0;
$context['pcount'] = 0;
$context['ncount'] = 0;
while($row = $smcFunc['db_fetch_assoc']($result))
{
if ($row['salevalue'] == 0)
{
$context['pcount'] = $row['total'];
}
else if ($row['salevalue'] == 2)
{
$context['ncount'] = $row['total'];
}
else if ($row['salevalue'] == 1)
{
$context['neturalcount'] = $row['total'];
}
}
$smcFunc['db_free_result']($result);
if ($modSettings['trader_use_pos_neg'])
$tradecount = ($context['pcount'] - $context['ncount']);
else
$tradecount = $context['pcount'] + $context['ncount'] + $context['neturalcount'];
// Show the trader info
if ($tradecount!=0)
echo '<li>
<b>' . $txt['smftrader_profile'] . ' </b>
(<a href="' . $scripturl . '?action=trader&id=' . $message['member']['id'] . '">', $modSettings['trader_use_pos_neg'] ? ($tradecount > 0 ? '+' . $tradecount : $tradecount) : $tradecount , '</a>)</li>';
//END SMF Trader System
// Don't show these things for guests.
Yes it would be.You should update it to work smoothly :)
Impossible since any mod can change any piece of code.True, but this Mod is actually the one I want the most on my site. I have 5 or 6 other mods and I'd uninstall them all to get this working. But even on a fresh copy it still doesn't work. The Display and Profile fail to update. I played with other peoples updates to this mod and I was given MySQL errors. :\
I assume VBGamer will update this once RC2 or SMF 2 gold is released... until then you'll have to manually update display and profile (I believe that I posted the code to do so)Okay I installed it this time on a different theme and so far it's working good. I've just got a few minor issues. Hopefully someone may be able to help me :)
hmmm... I purposefully hide the tradecount(0) text. If someone has no feedback or rating, then why do we need to see it? Especially on a board of 50,000 users, of which only some 100 actually trade.In some cases yes, but for me the trade feedback is pretty important. Any who got it fixed by removing the IF statement.
you installed a mod without knowing what it does?
yes... I believe I stated this several times in this thread and included the code that I used on RC1.
This was built for beta4...
Read over this
http://www.simplemachines.org/community/index.php?topic=34270
To fix that issue
I would try to contact your host to disable mod_security on your site.
echo '
<li>', $message['member']['group_stars'], '</li>
<li>', $message['member']['group'], '</li>';
And then it would work for your themeI would just add it afterCode: [Select]echo '
And then it would work for your theme
<li>', $message['member']['group_stars'], '</li>
<li>', $message['member']['group'], '</li>';
Updated to support SMF 2.0 RC2!Thanks a bunch :) Working perfectly so far
Guys haw can i change Submit feedback for USERYou have to modify profile.template.php in the themes/default folder and add an image instead of text
Thanks great mod
Can something be added to send Admin a PM when feed-backs are submitted ?I would like to see soemthing for this myself... but I use my own special version of this mod. So my question is this...
What does your version consist of ??Just little things that Vb helped me work on a long time ago that I dont know if they ever made it into the production version he's got here.
Yeah that can be done. Editing the Trader.php source file and function that adds the feedback. Might get a little crazy if you have a lot of feedback on your forum that is why I like using feedback appropvalCan something be added to send Admin a PM when feed-backs are submitted ?I would like to see soemthing for this myself... but I use my own special version of this mod. So my question is this...
Is there a simple hack so anyone could add this feature in themselves ?
Well, once the new site gets goin I probably will but what about soemthing like this.Yeah that can be done. Editing the Trader.php source file and function that adds the feedback. Might get a little crazy if you have a lot of feedback on your forum that is why I like using feedback appropvalCan something be added to send Admin a PM when feed-backs are submitted ?I would like to see soemthing for this myself... but I use my own special version of this mod. So my question is this...
Is there a simple hack so anyone could add this feature in themselves ?
Yeah that can be done. Editing the Trader.php source file and function that adds the feedback. Might get a little crazy if you have a lot of feedback on your forum that is why I like using feedback appropvalCan something be added to send Admin a PM when feed-backs are submitted ?I would like to see soemthing for this myself... but I use my own special version of this mod. So my question is this...
Is there a simple hack so anyone could add this feature in themselves ?
Administrator Today at 08:28:48 PM
<ip removed> 664fa9510289cea449d4d580e3eedc4c
http://www.siteremoved.com/index.php?action=trader;id=1
2: Division by zero
File: /home/site removed/Themes/default/languages/Trader.english.php (main sub template - eval?)
Line: 17
Probably no feedback so it was trying to do a count 0 / 0 which can't be doneKool, Thx...
Test 1...
Comment made by: MoreBloodWine
http://www.mysite.com/index.php?action=profile
The comment you left for MoreBloodWine on Today at 08:47:02 PM has been approved.
Text is defined in either languages/Trader.english.php or languages/Modifications.english.phpThx, I'll give it a looksie... now heres my next question.
$permissionList = array( 'membergroup' => array( 'smftrader_feedback' => array(false, 'smftrader', 'smftrader'), 'smftrader_deletefeed' => array(false, 'smftrader', 'smftrader'), 'smftrader_autorating' => array(false, 'smftrader', 'smftrader'),
'trader' => array(
'label' => $txt['smftrader_admin'],
'file' => 'Trader2.php',
'function' => 'tradermain',
'custom_url' => $scripturl . '?action=admin;area=trader;sa=admin;sesc=' . $sc,
'icon' => '',
'subsections' => array(
'admin' => array($txt['smftrader_admin']),
),
),
'trader' => array( 'label' => $txt['smftrader_admin'], 'file' => 'Trader2.php', 'function' => 'tradermain', 'custom_url' => $scripturl . '?action=admin;area=trader;sa=admin;sesc=' . $sc, 'icon' => '', 'subsections' => array( 'admin' => array($txt['smftrader_admin']), ), ), 'current_theme' => array( 'label' => $txt['theme_current_settings'],
//Begin SMF Trader System Text Strings
$helptxt['trader_approval'] = "
When checked: All ratings require approval before being posted unless they are in an autoapproved group found in permissions
<br /><br />
When unchecked: All ratings are auto approved since the ratings do not require approval.";
$helptxt['trader_use_pos_neg'] = "When enabled changes the trading count number to be a positive or negative figure based on the number of positive feedback minus the negative feedback. If it is a positive feedback number it results in a + (plus) in front of the number. If it is a negative feedback number results in a - (minus) in front the number.";
//END SMF Trader System Text Strings
Those are two seperate files.
First one is from Sources/ManagePermissions.php
Second set is from Sources/Admin.php
<file name="$sourcedir/ManagePermissions.php">
<operation>
<search position="before"><![CDATA[ $groupLevels['global']['standard'] = array_merge($groupLevels['global']['restrict'], array(]]></search>
<add><![CDATA[
'smftrader_feedback',
'smftrader_deletefeed',
'smftrader_autorating',]]></add>
</operation>
<operation>
<search position="before"><![CDATA[ $permissionList = array(
'membergroup' => array(]]></search>
<add><![CDATA[
'smftrader_feedback' => array(false, 'smftrader', 'smftrader'),
'smftrader_deletefeed' => array(false, 'smftrader', 'smftrader'),
'smftrader_autorating' => array(false, 'smftrader', 'smftrader'),]]></add>
</operation>
</file>
Quick minor update
1.3.1
!Removed Queries from the templates
Quick minor update
1.3.1
!Removed Queries from the templates
What SMF version? Did you edit Profile.php manaually as well?
Fixed in 1.3.2 releaseWhat SMF version? Did you edit Profile.php manaually as well?
I have checked profile and its fine, it did update that file automatically but I doubled checked to make sure, it works fine under the user name on posts, just on the profile it doesn't display. I am running SMF 2.0 RC2, cheers
Just a quick note:Fixed in 1.3.2
Installed this and images do not show up in the profile. Further de-bugging shows that there is a missing "/" in front of the smiley file name...
See screenshot for more info.
If someone could tell me where to add this, I would appreciate it...
Fixed in 1.3.2 releaseWhat SMF version? Did you edit Profile.php manaually as well?
I have checked profile and its fine, it did update that file automatically but I doubled checked to make sure, it works fine under the user name on posts, just on the profile it doesn't display. I am running SMF 2.0 RC2, cheers
profile.template.php
Is your Trade Count working on the profile? From the image on your previous post you had the same issue I did, cheers.profile.template.php
Perfect! Thanks!
No it is not. Good catch...I thought it did? Any ideas?Is your Trade Count working on the profile? From the image on your previous post you had the same issue I did, cheers.profile.template.php
Perfect! Thanks!
No it is not. Good catch...I thought it did? Any ideas?Nope, I have tried a few things to try and mimic the post view coding but so far no luck :(
Great mod!
I am getting a error when I got to the trader settings in the admin panel.
This is the error.
/forum/index.php?action=admin;area=trader;sa=admin;sesc;b85d80b=429cd3942bc5f0cec301c58e4e2cb965
8: Undefined index: description
Apply Filter: Only show the errors from this file
File: /forum/Themes/default/GenericMenu.template.php
Line: 278
Line 278 in the GenericMenu.template.php has this on it.
<td class="smalltext" style="padding: 2ex;">', !empty($selected_tab['description']) ? $selected_tab['description'] : $tab_context['description'], '</td>
Im running SMF 2.0 RC1.2 with default theme and installed smftradersystem1.3.2
I hope someone knows how to fix this.
This is the error before I Disabled template evaluation.
File: /forum/cache/lang_Trader_english_default.php (generic_menu_dropdown_above sub template - eval?)
Thanks!
Cutter
New release fixes a couple bugs
And adds
1.4
+Better integration with SMF Classifieds (http://www.smfhacks.com/smf-classifieds.php)
New release fixes a couple bugs
And adds
1.4
+Better integration with SMF Classifieds (http://www.smfhacks.com/smf-classifieds.php)
change TimeOffset to time_offset for SMF 2.0 will fix that
No problem just released an update to fix this issue.change TimeOffset to time_offset for SMF 2.0 will fix that
That seems to have fixed it! ;D
Thanks again for the help!
Cutter
$txt['permissiongroup_simple_smftrader'] = 'SMF Trader';
It seems that you forgot to add a line in smftrader2rc2.xml for Modifications.english *. php:Fixed thanksCode: [Select]$txt['permissiongroup_simple_smftrader'] = 'SMF Trader';
WHERE f.ID_MEMBER = " . $context['traderid'] . " AND f.FeedBackMEMBER_ID = m.ID_MEMBER
AND f.FeedBackMEMBER_ID = m.ID_MEMBER
I don't know if i'm the only who has experienced such an issue,but the thing is when one member made a tradereview and after a while this account is deleted,then from that time on it's no more possible to see that review,which has been made by that deleted memberFixed released new update
I think the problem line is hereCode: [Select]WHERE f.ID_MEMBER = " . $context['traderid'] . " AND f.FeedBackMEMBER_ID = m.ID_MEMBER
especially this partCode: [Select]AND f.FeedBackMEMBER_ID = m.ID_MEMBER
PS: Only on 1.1.11, did not try on 2.0 RC3
$txt[119] is not defined in SMF 2 safe to ignore though
you would have to add a conditional in the code which is added to display.template.phpThanks for the answer,
global $board;
if ($board == '#boardidhere')
{
// Show trade count
}
Thanks a lot and sorry for the lateness haha...Code: [Select]global $board;
if ($board == '#boardidhere')
{
// Show trade count
}
if ($context['user']['is_logged'])
if (in_array(9, $user_info['groups']))
function SendTraderPMByID($id)
{
global $db_prefix, $sourcedir, $txt, $scripturl;
$request = db_query("
SELECT
m.realName, f.comment_short, f.ID_MEMBER
FROM
({$db_prefix}feedback AS f, {$db_prefix}members as m)
WHERE f.FeedBackMEMBER_ID = m.ID_MEMBER AND f.feedbackid = $id LIMIT 1", __FILE__, __LINE__);
$row = mysql_fetch_assoc($request);
mysql_free_result($request);
$pm_register_recipients = array(
'to' => array($row['ID_MEMBER']),
'bcc' => array(),
);
require_once($sourcedir . '/Subs-Post.php');
sendpm($pm_register_recipients, $txt['smftrader_newrating'], $row['comment_short'] . "\n\n" . $txt['smftrader_commentmadeby'] . $row['realName'] . "\n" . "{$scripturl}?action=profile");
}
sendpm($pm_register_recipients, $txt['smftrader_newrating'], $row['comment_short'] . "\n\n" . $txt['smftrader_commentmadeby'] . $row['realName'] . "\n" . "{$scripturl}?action=profile");
<b><a href="' . $scripturl . '?action=trader&id=' . $context['member']['id'] . '">' . $txt['smftrader_profile'] . ' (' . ($modSettings['trader_use_pos_neg'] ? ($tradecount > 0 ? '+' . $tradecount : $tradecount) : $tradecount) . ')</a></b>
Probably because they both modify the same codeAny way to have them both?
Thanks!Do you have any idea on this? I noticed that when I go to the actual trader information page, the link works fine, and the number shows up as well. Anywhere but that, it doesn't show.
I have one last question. I would like to display the member's trade count in a PHP block in Tinyportal. I took the code from profile.template.php and edited it a little to get this:Code: [Select]<b><a href="' . $scripturl . '?action=trader&id=' . $context['member']['id'] . '">' . $txt['smftrader_profile'] . ' (' . ($modSettings['trader_use_pos_neg'] ? ($tradecount > 0 ? '+' . $tradecount : $tradecount) : $tradecount) . ')</a></b>
However, when it shows up on the block, the number inside the parentheses is missing, and when I click on the link, the member ID is missing from the link. What can I do to fix this?
In Trader.english.php
This is a Feedback
Comment made by: User
http://xxxx.com/forum/index.php?action=profile
Yes it goes to their profile so they can see what members left on it.
Comment made by: User
An Error has Occurred
So not possible to have it point directly to the persons trader page ??You could just you would have to change the code
QuoteSo not possible to have it point directly to the persons trader page ??You could just you would have to change the code
On upgrade all feedback are saved in the database so its safe
QuoteSo not possible to have it point directly to the persons trader page ??You could just you would have to change the code
ok, if not too much trouble, can you advise me on which code to change ... 8)
It would be in Sources/ProfilesComments.php
I am sorry meant Trader.php
id is the member's id
Use $ID_MEMBER or $user_info['id']
Use $ID_MEMBER or $user_info['id']
How ???
action=trader&$user_info['id']
action=trader&$ID_MEMBER
Have to see with me .. not quite sure ? :-[
I am sorry meant Trader.php
Yes it goes to their profile so they can see what members left on it.
Use $ID_MEMBER or $user_info['id']
<?php
/*
SMF Trader System
Version 1.2
by:vbgamer45
http://www.smfhacks.com
*/
if (!defined('SMF'))
die('Hacking attempt...');
function tradermain()
{
loadtemplate('Trader');
// Load the language files
if (loadlanguage('Trader') == false)
loadLanguage('Trader','english');
// Trader actions
$subActions = array(
'main' => 'main',
'report' => 'Report',
'report2' => 'Report2',
'submit' => 'Submit',
'detail' => 'ViewDetail',
'delete' => 'Delete',
'delete2' => 'Delete2',
'submit2' => 'Submit2',
'admin' => 'AdminSettings',
'admin2' => 'AdminSettings2',
'approve' => 'ApproveRating',
'bulkactions' => 'BulkActions',
);
@$sa = $_GET['sa'];
// Follow the sa or just go to administration.
if (!empty($subActions[$sa]))
$subActions[$sa]();
else
$subActions['main']();
}
function main()
{
global $context, $txt, $db_prefix, $scripturl, $modSettings;
$context['sub_template'] = 'main';
@$memid = (int) $_REQUEST['id'];
if (empty($memid))
fatal_error($txt['smftrader_nomemberselected'], false);
$request = db_query("
SELECT
realName FROM {$db_prefix}members
WHERE ID_MEMBER = $memid LIMIT 1", __FILE__, __LINE__);
$row = mysql_fetch_assoc($request);
$mcount = db_affected_rows();
if ($mcount != 1)
fatal_error($txt['smftrader_nomemberselected'], false);
$context['traderid'] = $memid;
$context['tradername'] = $row['realName'];
db_query("
SELECT
feedbackid
FROM {$db_prefix}feedback
WHERE approved = 1 AND ID_MEMBER =" . $context['traderid'], __FILE__, __LINE__);
$context['tradecount'] = db_affected_rows();
$result = db_query("
SELECT
COUNT(*) AS total,salevalue
FROM {$db_prefix}feedback
WHERE approved = 1 AND ID_MEMBER = " . $context['traderid'] . " GROUP BY salevalue" , __FILE__, __LINE__);
$context['neturalcount'] = 0;
$context['pcount'] = 0;
$context['ncount'] = 0;
while($row = mysql_fetch_assoc($result))
{
if ($row['salevalue'] == 0)
{
$context['pcount'] = $row['total'];
}
else if ($row['salevalue'] == 2)
{
$context['ncount'] = $row['total'];
}
else if ($row['salevalue'] == 1)
{
$context['neturalcount'] = $row['total'];
}
}
mysql_free_result($result);
$context['tradecount_nonetural'] = ($context['pcount'] + $context['ncount']);
// Get the view type
@$view = (int) $_GET['view'];
if (empty($view))
$view = 0;
$queryextra = '';
switch($view)
{
case 0:
$queryextra = '';
break;
case 1:
$queryextra = ' AND f.saletype = 1';
break;
case 2:
$queryextra = ' AND f.saletype = 0';
break;
case 3:
$queryextra = ' AND f.saletype = 2';
break;
default:
fatal_error($txt['smftrader_invalidview'], false);
break;
}
$context['start'] = (int) $_REQUEST['start'];
$dbresult = db_query("
SELECT
COUNT(*) AS total
FROM {$db_prefix}feedback AS f,{$db_prefix}members AS m
WHERE f.ID_MEMBER = " . $context['traderid'] . " AND f.FeedBackMEMBER_ID = m.ID_MEMBER AND f.approved = 1 $queryextra ", __FILE__, __LINE__);
$row = mysql_fetch_assoc($dbresult);
$total = $row['total'];
mysql_free_result($dbresult);
$dbresult = db_query("
SELECT
f.saletype, f.feedbackid, f.FeedBackMEMBER_ID, f.topicurl,
f.comment_short, f.salevalue, f.saledate, m.realName
FROM {$db_prefix}feedback AS f,{$db_prefix}members AS m
WHERE f.ID_MEMBER = " . $context['traderid'] . " AND f.FeedBackMEMBER_ID = m.ID_MEMBER AND f.approved = 1 $queryextra ORDER BY f.feedbackid DESC LIMIT $context[start]," . $modSettings['trader_feedbackperpage'], __FILE__, __LINE__);
$context['trader_feedback'] = array();
while ($row = mysql_fetch_assoc($dbresult))
{
$context['trader_feedback'][] = $row;
}
mysql_free_result($dbresult);
$context['page_index'] = constructPageIndex($scripturl . '?action=trader;id=' . $context['traderid'] . ';view=' . $view , $_REQUEST['start'], $total, $modSettings['trader_feedbackperpage']);
// Set the page title
$context['page_title'] = $txt['smftrader_feedbacktitle'] . ' - ' . $row['realName'];
}
function Submit()
{
global $context, $txt, $db_prefix, $ID_MEMBER;
is_not_guest();
// Check if they are allowed to submit feedback
isAllowedTo('smftrader_feedback');
$context['sub_template'] = 'submit';
@$memid = (int) $_GET['id'];
if (empty($memid))
fatal_error($txt['smftrader_nomemberselected'],false);
$request = db_query("
SELECT
realName FROM {$db_prefix}members
WHERE ID_MEMBER = $memid LIMIT 1", __FILE__, __LINE__);
$row = mysql_fetch_assoc($request);
$mcount = db_affected_rows();
if ($mcount != 1)
fatal_error($txt['smftrader_nomemberselected'],false);
if ($ID_MEMBER == $memid)
fatal_error($txt['smftrader_errfeedbackself'] ,false);
$context['traderid'] = $memid;
$context['tradername'] = $row['realName'];
$context['page_title'] = $txt['smftrader_submittitle'] . ' - ' . $row['realName'];
}
function Submit2()
{
global $db_prefix, $ID_MEMBER, $txt, $modSettings;
is_not_guest();
// Check if they are allowed to submit feedback
isAllowedTo('smftrader_feedback');
// Get the trader id
$traderid = (int) $_REQUEST['id'];
if ($ID_MEMBER == $traderid)
fatal_error($txt['smftrader_errfeedbackself'] ,false);
// Check if comment posted
$shortcomment = htmlspecialchars(substr($_REQUEST['shortcomment'], 0, 100),ENT_QUOTES);
if ($shortcomment== '')
fatal_error($txt['smftrader_errshortcoment'],false);
$topicurl = htmlspecialchars($_REQUEST['topicurl'],ENT_QUOTES);
$salevalue = (int) $_REQUEST['salevalue'];
$saletype = (int) $_REQUEST['saletype'];
$longcomment = htmlspecialchars($_REQUEST['longcomment'],ENT_QUOTES);
switch($saletype)
{
case 0:
break;
case 1:
break;
case 2:
break;
default:
fatal_error($txt['smftrader_errsaletype'],false);
break;
}
switch($salevalue)
{
case 0:
break;
case 1:
break;
case 2:
break;
default:
fatal_error($txt['smftrader_errsalevalue'],false);
break;
}
// Get the date
$tradedate = time();
// Get the approval
if ($modSettings['trader_approval'] == 1)
{
$approval = (allowedTo('smftrader_autorating') ? 1 : 0);
}
else
$approval = 1;
// Admin's always approved
if (allowedTo('admin_forum'))
$approval = 1;
// Finally Insert it into the db
db_query("INSERT INTO {$db_prefix}feedback
(ID_MEMBER, comment_short, comment_long, topicurl, saletype, salevalue, saledate, FeedBackMEMBER_ID, approved)
VALUES ($traderid, '$shortcomment', '$longcomment', '$topicurl',$saletype, $salevalue, $tradedate, $ID_MEMBER,$approval)", __FILE__, __LINE__);
$id = db_insert_id();
if ($approval == 1)
{
SendTraderPMByID($id);
redirectexit('action=trader;id=' . $traderid);
}
else
fatal_error($txt['smftrader_form_notapproved'], false);
}
function Report()
{
global $context, $txt, $db_prefix;
is_not_guest();
$context['sub_template'] = 'report';
@$feedid = (int) $_GET['feedid'];
if (empty($feedid))
fatal_error($txt['smftrader_errnofeedselected'], false);
$context['feedid'] = $feedid;
$context['page_title'] = $txt['smftrader_reporttitle'];
}
function Report2()
{
global $db_prefix, $ID_MEMBER, $webmaster_email, $sourcedir, $scripturl, $txt, $sourcedir, $modSettings;
include $sourcedir . '/Subs-Post.php';
is_not_guest();
@$comment = htmlspecialchars($_REQUEST['comment'],ENT_QUOTES);
if ($comment == '')
fatal_error($txt['smftrader_errnocomment'], false);
// Add link to trader to comment field.
@$feedid = (int) $_REQUEST['feedid'];
$result = "
SELECT f.saletype, f.feedbackid, f.ID_MEMBER, f.FeedBackMEMBER_ID, f.comment_short,
f.topicurl, f.comment_long, f.salevalue, f.saledate, m.realName
FROM {$db_prefix}feedback AS f,{$db_prefix}members AS m
WHERE f.feedbackid = $feedid AND f.FeedBackMEMBER_ID = m.ID_MEMBER";
$dbresult = db_query($result, __FILE__, __LINE__);
$row = mysql_fetch_assoc($dbresult);
mysql_free_result($dbresult);
$comment .= "\n" . $txt['smftrader_commentmadeby'] . '[url=' . $scripturl . '?action=profile;u=' . $row['FeedBackMEMBER_ID'] . ']' . $row['realName'] . '[/url]';
$comment .= "\n\n" . '[url=' . $scripturl . '?action=trader;id=' . $row['ID_MEMBER'] . ']' . $txt['smftrader_viewtrader'] . '[/url]';
$comment .= "\n\n" . $txt['smftrader_title'];
require_once($sourcedir . '/Subs-Post.php');
$dbresult = db_query("
SELECT
m.ID_MEMBER
FROM {$db_prefix}membergroups AS g,{$db_prefix}members AS m
WHERE m.ID_GROUP = g.ID_GROUP AND m.ID_GROUP IN (" . $modSettings['trader_membergroupspm'] . ")", __FILE__, __LINE__);
while($row2 = mysql_fetch_assoc($dbresult))
{
$pm_register_recipients = array(
'to' => array($row2['ID_MEMBER']),
'bcc' => array(),
);
sendpm($pm_register_recipients,$txt['smftrader_title'] . ' ' . $txt['smftrader_badfeedback'],$comment);
}
mysql_free_result($dbresult);
//if (!sendmail($webmaster_email, $txt['smftrader_title'] . ' ' . $txt['smftrader_badfeedback'],$comment))
// fatal_error($txt['smftrader_failedreport'],false);
redirectexit('action=trader;id=' . $row['ID_MEMBER'] );
}
function ViewDetail()
{
global $context, $db_prefix, $txt;
$context['sub_template'] = 'detail';
@$feedid = (int) $_REQUEST['feedid'];
if (empty($feedid))
fatal_error($txt['smftrader_errnofeedselected'], false);
$context['page_title'] = $txt['smftrader_title'] . ' - ' . $txt['smftrader_detailedfeedback'] ;
$context['feedid'] = $feedid;
$result = "
SELECT
f.saletype, f.feedbackid, f.ID_MEMBER, f.FeedBackMEMBER_ID, f.topicurl,
f.comment_long, f.salevalue, f.saledate, m.realName
FROM {$db_prefix}feedback AS f,{$db_prefix}members AS m
WHERE f.feedbackid = " . $context['feedid'] . " AND f.FeedBackMEMBER_ID = m.ID_MEMBER";
$dbresult = db_query($result, __FILE__, __LINE__);
$row = mysql_fetch_assoc($dbresult);
mysql_free_result($dbresult);
$context['trading_detail'] = $row;
}
function Delete()
{
global $context, $db_prefix, $txt;
// Check if they are allowed to delete feedback
isAllowedTo('smftrader_deletefeed');
@$feedid = (int) $_REQUEST['feedid'];
if (empty($feedid))
fatal_error($txt['smftrader_errnofeedselected'], false);
$context['feedid'] = $feedid;
$context['sub_template'] = 'delete';
$context['page_title'] = $txt['smftrader_title'] . ' - ' . $txt['smftrader_deletefeedback'];
$result = "SELECT f.saletype, f.feedbackid, f.ID_MEMBER, f.FeedBackMEMBER_ID,
f.comment_short, f.topicurl, f.comment_long, f.salevalue, f.saledate, m.realName
FROM {$db_prefix}feedback AS f,{$db_prefix}members AS m
WHERE f.feedbackid = " . $context['feedid'] . " AND f.FeedBackMEMBER_ID = m.ID_MEMBER";
$dbresult = db_query($result, __FILE__, __LINE__);
$row = mysql_fetch_assoc($dbresult);
mysql_free_result($dbresult);
$context['trader_feedback'] = $row;
}
function Delete2()
{
global $context, $txt;
// Check if they are allowed to delete feedback
isAllowedTo('smftrader_deletefeed');
@$feedid = (int) $_REQUEST['feedid'];
if (empty($feedid))
fatal_error($txt['smftrader_errnofeedselected'],false);
@$redirectid = (int) $_REQUEST['redirect'];
if (empty($redirectid))
fatal_error($txt['smftrader_notrader'], false);
DeleteByID($feedid);
redirectexit('action=trader;id=' . $redirectid);
}
function AdminSettings()
{
global $context, $txt, $mbname, $db_prefix, $scripturl;
isAllowedTo('admin_forum');
adminIndex('trader_settings');
$context['page_title'] = $mbname . ' - ' . $txt['smftrader_title'] . ' - ' . $txt['smftrader_text_settings'];
$context['sub_template'] = 'settings';
$context['start'] = (int) $_REQUEST['start'];
$dbresult = db_query("
SELECT
COUNT(*) AS total
FROM {$db_prefix}feedback
WHERE approved = 0", __FILE__, __LINE__);
$row = mysql_fetch_assoc($dbresult);
$total = $row['total'];
mysql_free_result($dbresult);
$dbresult = db_query("
SELECT
f.saletype, f.feedbackid, f.FeedBackMEMBER_ID, f.topicurl, f.comment_short,
f.salevalue, f.saledate, m.realName, f.ID_MEMBER, u.realName mainName
FROM ({$db_prefix}feedback AS f)
LEFT JOIN {$db_prefix}members AS m ON (f.FeedBackMEMBER_ID = m.ID_MEMBER)
LEFT JOIN {$db_prefix}members AS u ON (f.ID_MEMBER= u.ID_MEMBER)
WHERE f.approved = 0 LIMIT $context[start],10", __FILE__, __LINE__);
$context['trader_appoval'] = array();
while ($row = mysql_fetch_assoc($dbresult))
{
$context['trader_appoval'][] = $row;
}
mysql_free_result($dbresult);
$context['page_index'] = constructPageIndex($scripturl . '?action=trader;sa=admin' , $_REQUEST['start'], $total, 10);
}
function AdminSettings2()
{
global $db_prefix;
isAllowedTo('admin_forum');
$trader_approval = isset($_REQUEST['trader_approval']) ? 1 : 0;
$trader_use_pos_neg = isset($_REQUEST['trader_use_pos_neg']) ? 1 : 0;
$trader_feedbackperpage = (int) $_REQUEST['trader_feedbackperpage'];
updateSettings(
array(
'trader_approval' => $trader_approval,
'trader_feedbackperpage' => $trader_feedbackperpage,
'trader_use_pos_neg' => $trader_use_pos_neg,
));
redirectexit('action=trader;sa=admin');
}
function ApproveRating()
{
global $db_prefix;
isAllowedTo('admin_forum');
$id = (int) $_REQUEST['id'];
ApproveByID($id);
redirectexit('action=trader;sa=admin');
}
function SendTraderPMByID($id)
{
global $db_prefix, $sourcedir, $txt, $scripturl;
$request = db_query("
SELECT
m.realName, f.comment_short, f.ID_MEMBER
FROM
({$db_prefix}feedback AS f, {$db_prefix}members as m)
WHERE f.FeedBackMEMBER_ID = m.ID_MEMBER AND f.feedbackid = $id LIMIT 1", __FILE__, __LINE__);
$row = mysql_fetch_assoc($request);
mysql_free_result($request);
$pm_register_recipients = array(
'to' => array($row['ID_MEMBER']),
'bcc' => array(),
);
require_once($sourcedir . '/Subs-Post.php');
sendpm($pm_register_recipients, $txt['smftrader_newrating'], $row['comment_short'] . "\n\n" . $txt['smftrader_commentmadeby'] . $row['realName'] . "\n" . "{$scripturl}?action=profile");
}
function BulkActions()
{
isAllowedTo('admin_forum');
if (isset($_REQUEST['ratings']))
{
$baction = $_REQUEST['doaction'];
foreach ($_REQUEST['ratings'] as $value)
{
if ($baction == 'approve')
ApproveByID($value);
if ($baction == 'delete')
DeleteByID($value);
}
}
// Redirect to approval list
redirectexit('action=trader;sa=admin');
}
function DeleteByID($id)
{
global $db_prefix;
// Delete the comment
db_query("
DELETE FROM {$db_prefix}feedback
WHERE feedbackid = $id", __FILE__, __LINE__);
}
function ApproveByID($id)
{
global $db_prefix;
db_query("UPDATE {$db_prefix}feedback
SET approved = 1
WHERE feedbackid = $id LIMIT 1", __FILE__, __LINE__);
SendTraderPMByID($id);
SendCommenterPMByID($id);
}
function SendCommenterPMByID($id)
{
global $db_prefix, $sourcedir, $txt, $scripturl;
$request = db_query("
SELECT
m.realName, f.comment_short, f.ID_MEMBER,f.FeedBackMEMBER_ID, u.realName MainName, m.timeOffset
FROM
({$db_prefix}feedback AS f)
LEFT JOIN {$db_prefix}members as m ON (f.FeedBackMEMBER_ID = m.ID_MEMBER)
LEFT JOIN {$db_prefix}members as u ON (f.ID_MEMBER = u.ID_MEMBER)
WHERE f.feedbackid = $id LIMIT 1", __FILE__, __LINE__);
$row = mysql_fetch_assoc($request);
mysql_free_result($request);
$pm_register_recipients = array(
'to' => array($row['FeedBackMEMBER_ID']),
'bcc' => array(),
);
require_once($sourcedir . '/Subs-Post.php');
$finaltime = timeformat(forum_time(false));
$finaltime = strip_tags($finaltime);
sendpm($pm_register_recipients, sprintf($txt['smftrader_commenter_subject'],$row['MainName']),
sprintf($txt['smftrader_commenter_body'],$row['MainName'],$finaltime));
}
?>
Comment made by: User
Link to Profile
Comment made by: User
Please log onto your Profile Page to view all new Feedbacks
Check the Trader.english.php file to change
Have to edit Sources/Trader.php
Modify themes/default/languages/trader.english.php
modifications.english.php
permissions...
What SMF Version? And are you doing this as an admin or logged in as a normal member
Hello!!! Going back to this question that I had... Do you know a way to add another board? I originally wanted it in just one board but now I want to put it in a second one. If I put "1,3" as board id, it doesn't show it anywhere. What should I do?Code: [Select]global $board;
if ($board == '#boardidhere')
{
// Show trade count
}
I added SMF trader system. It works fine but... Anyone can add feedback to whoever they want and how much they want.
This way they can destroy anyones reputation by just putting false details. Is there or is it possible to make that if someone wants to sell someone anything then he must press button " Initate transaction ". After pressing it the seller has new message in his feedback system(profile). He must accept if he has contacted buyer and is fine with his offer. After that they only can give each other feedbacks.
Example: mmoexchange.net
You can see that in every theard after Username there is "Initate transaction".
Thank you !
// Show the trader info
echo '<li>
Feedback:
', $modSettings['trader_use_pos_neg'] ? ($tradecount > 0 ? '+' . $tradecount : $tradecount) : $tradecount , '
<br />
(<a href="' . $scripturl . '?action=trader&id=' . $message['member']['id'] . '">View</a> l <a href="' . $scripturl . '?action=trader;sa=submit&id=' . $message['member']['id'] . '">Add</a>)
</li>';
//END SMF Trader System
Well, since this mod changes the basic profile section and the ultimate profile mod replaces that...... Of course the two are not going to display together. You would have to figure put the proile code edits and then figure out where to put it in the UP mod....
// Show the trader info
echo '<li>
<b>' . $txt['smftrader_profile'] . ' </b>
(<a href="' . $scripturl . '?action=trader&id=' . $message['member']['id'] . '">', $modSettings['trader_use_pos_neg'] ? ($tradecount > 0 ? '+' . $tradecount : $tradecount) : $tradecount , '</a>)</li>';
// Show the trader info
echo '<li>
Feedback:
', $modSettings['trader_use_pos_neg'] ? ($tradecount > 0 ? '+' . $tradecount : $tradecount) : $tradecount , '
<br />
(<a href="' . $scripturl . '?action=trader&id=' . $message['member']['id'] . '">View</a> l <a href="' . $scripturl . '?action=trader;sa=submit&id=' . $message['member']['id'] . '">Add</a>)
</li>';
// Are there any custom profile fields for the summary?
if (!empty($context['custom_fields']))
{
$shown = false;
foreach ($context['custom_fields'] as $field)
{
if ($field['placement'] != 2 || empty($field['output_html']))
continue;
if (empty($shown))
{
$shown = true;
echo '
<div class="custom_fields_above_signature">
<ul class="reset nolist">';
}
echo '
<li>', $field['output_html'], '</li>';
}
if ($shown)
echo '
</ul>
</div>';
}
Also, you might want to move the trade count below the post count, because where it is at the moment, it's in a rather awkward position above the avatar, between the membergroup title and the postcount title (or at least I think it was there - I can't remember since I moved it myself to the position below the post count).
', $context['trading_detail']['ID_MEMBER'], '
<td align="left">' . parse_bbc($context['trading_detail']['comment_long']) . '<br />',$txt['smftrader_commentby'],'<a href="',$scripturl, '?action=profile;u=', $context['trading_detail']['FeedBackMEMBER_ID'],'">',$context['trading_detail']['real_name'], '</a><br /></td>
<td height="26" align="center">',$txt['smftrader_title'],' - ',$txt['smftrader_detailedfeedback'],' - HERE</td>
else
fatal_error($txt['smftrader_form_notapproved'], false);
history.go(-1)
That's another issue that i wanted to ask about as well. Should just have a box about with a title like "Feedback Pending approval"
fatal_error($txt['smftrader_form_notapproved'], false);
redirectexit('action=trader&id=' . $traderid . ';added');
function template_main_trader()
{
global $txt, $context, $scripturl, $modSettings, $user_info;
echo isset($_REQUEST['added']) ? '<div id="profile_success" style="border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px;"><strong>Feedback Pending Approval:</strong> ' . $txt['smftrader_form_notapproved'] . '</div>' : '';
I am very happy. got this to work :)
This edit will remove the "Error Has Occurred" .....
?>
$txt['smftrader_errnourl'] = 'You have to enter the Topic URL.';
if ($shortcomment == '')
fatal_error($txt['smftrader_errshortcoment'],false);
if ($shortcomment == '')
redirectexit('action=trader;sa=submit&id=' . $traderid . ';noshrtcomm');
$topicurl = htmlspecialchars($_REQUEST['topicurl'],ENT_QUOTES);
if ($topicurl== '')
redirectexit('action=trader;sa=submit&id=' . $traderid . ';notpcurl' );
function template_submit()
{
global $txt, $context, $scripturl, $modSettings;
echo isset($_REQUEST['noshrtcomm']) ? '<div id="profile_error" style="border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px;"><strong>Information Missing:</strong> ' . $txt['smftrader_errshortcoment'] . '</div>' : '';
echo isset($_REQUEST['notpcurl']) ? '<div id="profile_error" style="border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px;"><strong>Information Missing:</strong> ' . $txt['smftrader_errnourl'] . '</div>' : '';
Once I figure out my problem on this mod, I'll try and take a look at it. But, for those, I was just use the fatal_error, so they have the Back key to click and all information should still be there
$traderid
<td align="left">' . parse_bbc($context['trading_detail']['comment_long']) . '<br />',$txt['smftrader_COMMENTTO'],'<a href="',$scripturl, '?action=profile;u=', $context['trading_detail'] . $traderid . '">',$context['trading_detail']['real_name'], '</a><br /></td>
$txt['smftrader_COMMENTTO']
I've tried that as well as every other angle where both names appear, like in the admin approval page.
Problem is, the database value it pulls in the function_Detail part, it only pulls the m.real_name once , and assigns the FeedBackMEMBER_ID to it ( the one who sent it)
Where in the admin function, it pulls it twice, once as m.real_name , and u.real_name mainName
Thing is, I can't replicate that call in the Detail function Tader2.php
echo isset($_REQUEST['noshrtcomm']) ? '<div id="profile_error" style="border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px;"><strong>Information Missing:</strong> ' . $txt['smftrader_errshortcoment'] . '</div>' : '';
echo isset($_REQUEST['notpcurl']) ? '<div id="profile_error" style="border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px;"><strong>Information Missing:</strong> ' . $txt['smftrader_errnourl'] . '</div>' : '';
echo isset($_REQUEST['noshrtcomm']) ? '<div id="profile_error" style="border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px;"><center><strong><u>Information Missing:</u> ' . $txt['smftrader_errshortcoment'] . '</strong></center></br>Please correct this error by returning to the previous screen <a href="javascript:history.back();">HERE</a>.</div>' :'';
echo isset($_REQUEST['notpcurl']) ? '<div id="profile_error" style="border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px;"><center><strong><u>Information Missing:</u> ' . $txt['smftrader_errnourl'] . '</strong></center></br>Please correct this error by returning to the previous screen <a href="javascript:history.back();">HERE</a>.</div>' : '';
Very nice. And, my issue with the name not appearing the details page was fixed by help from a good friend.
$dbresult = $smcFunc['db_query']('', $result);
$row = $smcFunc['db_fetch_assoc']($dbresult);
$smcFunc['db_free_result']($dbresult);
$context['trading_detail'] = $row;
$dbresult = $smcFunc['db_query']('', $result);
$row = $smcFunc['db_fetch_assoc']($dbresult);
global $memberContext;
if (!isset($memberContext[$row['ID_MEMBER']])) {
loadMemberData(array($row['ID_MEMBER']));
loadMemberContext($row['ID_MEMBER']);
}
$row['member_one'] = $memberContext[$row['ID_MEMBER']];
$smcFunc['db_free_result']($dbresult);
$context['trading_detail'] = $row;
$context['tradername'] = $row['real_name'];
',$context['tradername'], '
',$context['trading_detail']['member_one']['name'], '
function AdminSettings()
{
global $context, $txt, $mbname, $smcFunc, $scripturl;
isAllowedTo('admin_forum');
@$context[$context['admin_menu_name']]['tab_data'] = array(
'title' => $txt['smftrader_admin'],
'description' => '',
'tabs' => array(
'admin' => array(
'description' => '',
),
),
);
function AdminSettings2()
{
isAllowedTo('admin_forum');
$trader_approval = isset($_REQUEST['trader_approval']) ? 1 : 0;
$trader_use_pos_neg = isset($_REQUEST['trader_use_pos_neg']) ? 1 : 0;
$trader_feedbackperpage = (int) $_REQUEST['trader_feedbackperpage'];
updateSettings(
array(
'trader_approval' => $trader_approval,
'trader_feedbackperpage' => $trader_feedbackperpage,
'trader_use_pos_neg' => $trader_use_pos_neg,
));
redirectexit('action=admin;area=trader;sa=admin');
}
function ApproveRating()
{
isAllowedTo('admin_forum');
$id = (int) $_REQUEST['id'];
ApproveByID($id);
redirectexit('action=admin;area=trader;sa=admin');
}
function BulkActions()
{
isAllowedTo('admin_forum');
if (isset($_REQUEST['ratings']))
{
$baction = $_REQUEST['doaction'];
foreach ($_REQUEST['ratings'] as $value)
{
if ($baction == 'approve')
ApproveByID($value);
if ($baction == 'delete')
DeleteByID($value);
}
}
// Redirect to approval list
redirectexit('action=admin;area=trader;sa=admin');
}
// Define all the menu structure - see Subs-Menu.php for details!
$admin_areas = array(
'forum' => array(
'title' => $txt['admin_main'],
'permission' => array('admin_forum', 'manage_permissions', 'moderate_forum', 'manage_membergroups', 'manage_bans', 'send_mail', 'edit_news', 'manage_boards', 'manage_smileys', 'manage_attachments','manage_shop', 'trader_mod'),
'trader' => array('Trader2.php', 'tradermain'),
) was missing. Now I saw that.
$pm_register_recipients = array(
'to' => array($row['ID_MEMBER']),
'bcc' => array(),
);
require_once($sourcedir . '/Subs-Post.php');
sendpm($pm_register_recipients, $txt['smftrader_newrating'], $row['comment_short'] . "\n\n" . $txt['smftrader_commentmadeby'] . $row['real_name'] . "\n" . "{$scripturl}?action=profile");
$pm_register_recipients = array(
'to' => array($row['ID_MEMBER']),
'bcc' => array(),
);
$pm_from = array(
'id' => 0,
'username' => 'usernamehere',
'name' =>'displaynamehere',
);
require_once($sourcedir . '/Subs-Post.php');
sendpm($pm_register_recipients, $txt['smftrader_newrating'], $row['comment_short'] . "\n\n" . $txt['smftrader_commentmadeby'] . $row['real_name'] . "\n" . "{$scripturl}?action=profile",false,$pm_from);
// Check if comment posted
$shortcomment = htmlspecialchars(substr($_REQUEST['shortcomment'], 0, 100),ENT_QUOTES);
if ($shortcomment == '')
fatal_error($txt['smftrader_errshortcoment'],false);
$ID_LISTING = 0;
$topicurl = htmlspecialchars($_REQUEST['topicurl'],ENT_QUOTES);
$salevalue = (int) $_REQUEST['salevalue'];
$saletype = (int) $_REQUEST['saletype'];
$longcomment = htmlspecialchars($_REQUEST['longcomment'],ENT_QUOTES);
// Check if comment posted
$shortcomment = htmlspecialchars(substr($_REQUEST['shortcomment'], 0, 100),ENT_QUOTES);
if ($shortcomment == '')
fatal_error($txt['smftrader_errshortcoment'],false);
// Check if URL posted
$topicurl = htmlspecialchars($_REQUEST['topicurl'],ENT_QUOTES);
if ($topicurl == '')
fatal_error($txt['smftrader_errtopicurl'],false);
$ID_LISTING = 0;
$salevalue = (int) $_REQUEST['salevalue'];
$saletype = (int) $_REQUEST['saletype'];
$longcomment = htmlspecialchars($_REQUEST['longcomment'],ENT_QUOTES);
$txt['smftrader_errtopicurl'] = 'URL references must be added';
The code below will give you the area to change
ChangeCode: [Select]
$pm_register_recipients = array(
'to' => array($row['ID_MEMBER']),
'bcc' => array(),
);
require_once($sourcedir . '/Subs-Post.php');
sendpm($pm_register_recipients, $txt['smftrader_newrating'], $row['comment_short'] . "\n\n" . $txt['smftrader_commentmadeby'] . $row['real_name'] . "\n" . "{$scripturl}?action=profile");
ToCode: [Select]
$pm_register_recipients = array(
'to' => array($row['ID_MEMBER']),
'bcc' => array(),
);
$pm_from = array(
'id' => 0,
'username' => 'usernamehere',
'name' =>'displaynamehere',
);
require_once($sourcedir . '/Subs-Post.php');
sendpm($pm_register_recipients, $txt['smftrader_newrating'], $row['comment_short'] . "\n\n" . $txt['smftrader_commentmadeby'] . $row['real_name'] . "\n" . "{$scripturl}?action=profile",false,$pm_from);
Quick check scan the code for the sendpm function there should be a member id that you can change to the other. Like i did for the other one.
$pm_register_recipients = array(
'to' => array($row['FeedBackMEMBER_ID']),
'bcc' => array(),
);
$pm_from = array(
'id' => 1916,
'username' => 'usernamehere',
'name' =>'displaynamehere',
);
require_once($sourcedir . '/Subs-Post.php');
$finaltime = timeformat(forum_time(false));
$finaltime = strip_tags($finaltime);
sendpm($pm_register_recipients, sprintf($txt['smftrader_commenter_subject'],$row['MainName']),
sprintf($txt['smftrader_commenter_body'],$row['MainName'],$finaltime));
Change
sendpm($pm_register_recipients, sprintf($txt['smftrader_commenter_subject'],$row['MainName']),
To
sendpm($pm_register_recipients, sprintf($txt['smftrader_commenter_subject'],$row['MainName']),
sprintf($txt['smftrader_commenter_body'],$row['MainName'],$finaltime),$pm_from);
What page is that shown on?
<dt class="clear"><a href="' . $scripturl . '?action=trader&sa=submit&id=' . $context['member']['id'] . '">' . $txt['smftrader_submitfeedback'] . $context['member']['name'] . '</a></dt>
<dt class="clear"><a href="' . $scripturl . '?action=trader&sa=submit&id=' . $context['member']['id'] . '">' . $txt['smftrader_submitfeedback'] . $context['name'] . '</a></dt>
function up_block_trader() {
global $context, $settings, $options, $scripturl, $modSettings, $txt, $user_info, $sourcedir;
// Start SMF Trader System
include_once $sourcedir . '/Trader2.php';
$tradecount = GetTraderCount($context['member']['id']);
GetTraderInformation($context['member']['id']);
$context['neturalcount'] = 0;
$context['pcount'] = 0;
$context['ncount'] = 0;
foreach($context['trader_mem_data'] as $row)
{
if ($row['salevalue'] == 0)
{
$context['pcount'] = $row['total'];
}
else if ($row['salevalue'] == 2)
{
$context['ncount'] = $row['total'];
}
else if ($row['salevalue'] == 1)
{
$context['neturalcount'] = $row['total'];
}
}
$context['tradecount_nonetural'] = ($context['pcount'] + $context['ncount']);
if ($modSettings['trader_use_pos_neg'])
$tradecount = ($context['pcount'] -$context['ncount']);
echo '
<div id="up_trader">
<h3 class="catbg">
<span class="left"></span>
', $txt['smftrader_title'] ,'
</h3>
<div class="windowbg creator">
<span class="topslice"><span></span></span>
<div class="content">
<dl>
<dt><strong>' . $txt['smftrader_profile'] . ' :</strong> </dt>
<dd>(<a href="' . $scripturl . '?action=trader&id=' . $context['member']['id'] . '">' . ($modSettings['trader_use_pos_neg'] ? ($tradecount > 0 ? '+' . $tradecount : $tradecount) : $tradecount) . '</a>)</dd>
<dt><strong>' . $txt['smftrader_positivefeedbackpercent'] . ' :</strong> </dt>
<dd>' , $context['tradecount_nonetural'] != 0 ? round(($context['pcount'] / $context['tradecount_nonetural']) * 100, 2) : 0 , '%</dd>
<dt><strong>' . $txt['smftrader_positivefeedback'] . ' :</strong> </dt>
<dd>' . $context['pcount'] . ' <img src="' . $modSettings['smileys_url'] . '/default/smiley.gif" alt="positive" /></dd>
<dt><strong>' . $txt['smftrader_neutralfeedback'] . ' :</strong> </dt>
<dd>' . $context['neturalcount'] . ' <img src="' . $modSettings['smileys_url'] . '/default/undecided.gif" alt="neutral" /></dd>
<dt><strong>' . $txt['smftrader_negativefeedback'] . ' :</strong> </dt>
<dd>' . $context['ncount'] . ' <img src="' . $modSettings['smileys_url'] . '/default/angry.gif" alt="negative" /></dd>
<dt><strong>' . $txt['smftrader_totalfeedback'] . ' :</strong> </dt>
<dd>' . ($context['pcount'] - $context['ncount']) . '</dd>';
if ($user_info['id'] != $context['member']['id'])
echo '
<br /><dt class="clear"><a href="' . $scripturl . '?action=trader&sa=submit&id=' . $context['member']['id'] . '">' . $txt['smftrader_submitfeedback'] . $context['member']['name'] . '</a></dt>';
echo '
</dl>
</div>
<span class="botslice"><span></span></span>
</div>
</div>';
return true;
// } else
// return false;
// END SMF Trader System
}
hi kindred, if there is any way i can rename function name to something else, i just need some guidence to do this.
$context['sub_template'] = 'delete';
Replace with $context['sub_template'] = 'deletetr';
function template_delete()
Replace withfunction template_deletetr()
Hi hcfwesker, thanks for reply. But these changes dint work. Then i changed only "function Delete()" to "function Deleter()" , then it worked fine. Is this change is good, or will it cause some problems?
Because i dont know their effects after renaming some function.
Thanks.
'delete' => 'Delete',
Replace with 'delete' => 'Deleter',
function Delete()
Replace withfunction Deleter()
Please help me.
I have "Broken Links List" mod installed. Now when i am installing this mod and opening then getting this error:
"Fatal error: Cannot redeclare delete() (previously declared in /home/******/public_html/Sources/Trader2.php:481) in /home/*******/public_html/Sources/BrokenLinksList.php on line 353".
// Show the trader info
if(!$context['user']['is_guest']) <= I added this line to check if the user is guest
echo '<li>
<b>' . $txt['smftrader_profile'] . ' </b>
(<a href="' . $scripturl . '?action=trader&id=' . $message['member']['id'] . '">', $modSettings['trader_use_pos_neg'] ? ($tradecount > 0 ? '+' . $tradecount : $tradecount) : $tradecount , '</a>)</li>';
Good ideas but I would have to write code for them.make a Trader System pro version and i will buy it :D
I have this used on a huge forum.... and we have no issues with any of that. If any user abuses the system, they get banned. So far, no one has tested our resolve and they have all followed the written rules.actually i have already 56 pages of approval requests, many of them are double, some of them are pure spam and some are fake and less legit. ive got huge marketing going on my site and this mod lacks of some features.
(it's always better to get buyin form the users than to try and programtically force things, IMO)
are you allowing guests to submit reviews?i allow all groups except guests. but autoapproval is disabled. so all aproves must be done manually. i have to spend some time to check if all are valid. (no doubles, no friend feedbacks, no fake feedbacks)
That would be your problem, then... I only allow members to post feedback and I have no problems at all (with over 35,000 users including many teenagers (our forum is related to a miniatures wargame, played by lots of teens)
I have no problems at all (with over 35,000 users including many teenagers (our forum is related to a miniatures wargame, played by lots of teens)I think that you are making more work for yourself than you need to....
2) can approve feedbacks (access to approval page) simple moderators will help admins in approvals.
did you install it into your custom theme?I guess I did. How do I check it mate?
You should see it on post display under the usernameI did not need to go through this. I realized the at the time of installation I did not check the theme. Now I installed it again and it's working. Thanks mate for information. You are awesome.
If not you have to make edits to your custom theme file upload the mod to https://www.smfhacks.com/smf-package-parser.html and get the theme edits.
I do wish we had a way with SMF to reapply a mod to a custom theme after the mod has been installed.
That is safe to ignore. Happens when mods add to those langauge files.
// Start SMF Trader System
if (!empty($message['member']['id']))
{
global $sourcedir;
include_once $sourcedir . '/Trader2.php';
GetTraderInformation($message['member']['id']);
$context['neturalcount'] = 0;
$context['pcount'] = 0;
$context['ncount'] = 0;
foreach($context['trader_mem_data'] as $row)
{
if ($row['salevalue'] == 0)
{
$context['pcount'] = $row['total'];
}
else if ($row['salevalue'] == 2)
{
$context['ncount'] = $row['total'];
}
else if ($row['salevalue'] == 1)
{
$context['neturalcount'] = $row['total'];
}
}
if ($modSettings['trader_use_pos_neg'])
$tradecount = ($context['pcount'] - $context['ncount']);
else
$tradecount = $context['pcount'] + $context['ncount'] + $context['neturalcount'];
// Show the trader info
echo '<li>
<b>' . $txt['smftrader_profile'] . ' </b>
(<a href="' . $scripturl . '?action=trader&id=' . $message['member']['id'] . '">', $modSettings['trader_use_pos_neg'] ? ($tradecount > 0 ? '+' . $tradecount : $tradecount) : $tradecount , '</a>)</li>';
}
//END SMF Trader System
check default theme files.
$context['page_title'] = $txt['smftrader_feedbacktitle'] . ' - ' . $row['real_name'];