18.01.2017, 14:39
Hallo zusammen,
seit einigen Tagen kämpfe ich mit der Anpassung der thankyoulike.js des ThankYou/Likes Plugins.
Mein Problem ist die Ausgabe der error() Funktion über jGrowl.
Das Plugin hat eine Option zur Limitierung der Thanks/Likes pro Tag bekommen. PHP seitig funktioniert die Bremse und es sind nach Erreichen des Limits keine weiteren Thanks/Likes möglich. Nur AJAXseitig gibt es das Problem, dass via jGrowl weiterhin angezeigt wird, dass das Thanks/Likes gezählt wurde. Die gesetze error() Meldung wird ignoriert.
Was ich mit vorstelle ist, dass beim Klicken des ADD Button geprüft wird ob eine error() Meldung besteht, die error() Meldung via jGrowl ausgegeben wird und die js Funktion sofort beendet wird.
Teilweise funktioniert es mittlerweile, nur wird jetzt die error und Erfolgsmeldung zusammen angezeigt und die Thanks-Liste aufgeklappt, obwohl sie leer bleibt.
Meine bisherigen "Erfolge" sind:
Die entsprechende Fehlermeldung wird hiermit definiert:
Wäre schön, wenn mir da jemand ein paar Tipps geben könnte.....DANKE!
seit einigen Tagen kämpfe ich mit der Anpassung der thankyoulike.js des ThankYou/Likes Plugins.
Mein Problem ist die Ausgabe der error() Funktion über jGrowl.
Das Plugin hat eine Option zur Limitierung der Thanks/Likes pro Tag bekommen. PHP seitig funktioniert die Bremse und es sind nach Erreichen des Limits keine weiteren Thanks/Likes möglich. Nur AJAXseitig gibt es das Problem, dass via jGrowl weiterhin angezeigt wird, dass das Thanks/Likes gezählt wurde. Die gesetze error() Meldung wird ignoriert.
Was ich mit vorstelle ist, dass beim Klicken des ADD Button geprüft wird ob eine error() Meldung besteht, die error() Meldung via jGrowl ausgegeben wird und die js Funktion sofort beendet wird.
Teilweise funktioniert es mittlerweile, nur wird jetzt die error und Erfolgsmeldung zusammen angezeigt und die Thanks-Liste aufgeklappt, obwohl sie leer bleibt.
Meine bisherigen "Erfolge" sind:
PHP-Code:
......
errMsg: function(request)
{
var json = $.parseJSON(request.responseText);
if(json.hasOwnProperty("errors"))
{
$.each(json.errors, function(i, message)
{
$.jGrowl(message, {theme:'jgrowl_error'});
});
}
document.body.style.cursor = 'default';
},
add: function(pid)
{
if(use_xmlhttprequest == 1 && tylEnabled == 1)
{
if(tylUser == 0)
{
return true;
}
$.ajax(
{
method: 'post',
dataType: 'json',
url: 'thankyoulike.php?ajax=1&action=add&pid='+pid+'&my_post_key='+my_post_key,
complete: function (request)
{
thankyoulike.errMsg(request);
},
success: function (data)
{
thankyoulike.addDone(data, pid);
}
});
document.body.style.cursor = 'wait';
return false;
}
else
{
return true;
}
},
addDone: function(data, pid)
{
if(tylDisplayGrowl == 1)
{
$.jGrowl(tylSend + '<br />' + '<span id="tyllimits_'+pid+'">' + tylLimitsLeft-- + '</span>' + tylLimitsString, {theme:'jgrowl_success'});
}
$("#tyl_"+pid).html(data.tylData);
$("#tyl_"+pid).css('display', "");
$("#tyl_btn_"+pid).html(data.tylButton);
document.body.style.cursor = 'default';
},
.......
Die entsprechende Fehlermeldung wird hiermit definiert:
PHP-Code:
if($mybb->usergroup['tyl_limits_max'] != 0 && $mybb->settings[$prefix.'limits'] == "1")
{
$timesearch = TIME_NOW - (60 * 60 * 24);
$query = $db->simple_select($prefix."thankyoulike", "*", "uid='{$mybb->user['uid']}' AND dateline>'$timesearch'");
$numtoday = $db->num_rows($query);
// Reached the quota - error.
if($numtoday >= $mybb->usergroup['tyl_limits_max'])
{
error($lang->sprintf($lang->tyl_error_reached_max_per_hour, $pre2));
}
}