Ads for wBB 2.1 (by jakob2002)

jakob2002
Titel: Ads for wBB 2.1 (by jakob2002)
Version: 1.0
Beschreibung: Aufgrund zahlreicher Anfragen (großes Grinsen ) hab ich mich dazu entschlossen, meinen Bannerhack hier zu releasen.

Mit diesem Hack ist es möglich, über das ACP Werbepartner einzutragen, zu verwalten und im Forum an einer beliebigen Stelle auszugeben. Dabei wird zufällig ein Banner aus des vorhandenen Bannern ausgewählt.

Der Administrator kann im ACP sehen, wie oft ein Banner angezeigt wurde, und wie oft er angeklickt wurde. Außerdem kann man einstellen, wie oft ein Banner eingeblendet werden soll. Nachdem diese Grenze erreicht wurde, wird der Banner nicht mehr eingeblendet.

Falls der Werbepartner im Forum registriert ist, kann er in seinem Profil ebenfalls die Statistik seines/seiner Banner anzeigen lassen.


So, ich denke mal das war das wesentliche. Fehler und Probleme bitte hier bei y****** posten.


Viel Spass noch damit.


PS: Dieser Hack darf nur von mir zum Download angeboten werden und das Copyright liegt bei mir. Auf einen Copyrightverweis im Footer oder sonst wo im Forum verzichte ich Augenzwinkern
----
Demo: http://www.united-projects.de

weiter zum Download
Riou
Ich hab die setup_ads ausgeführt und dannach hab ich die acp_tpl.php geöffnet und gechacht aber da ist noch kein Menü mit irgendwas ADS in ACP?
Erazor
Vielleicht musst du noch Gruppenrechte bearbeiten? Anleitung genau gelesen? verwirrt
Riou
@Erazor
DAnke
Ich habe nochmal die ACP rechte durchgeschaut und das lag so komisch da ich habs übersehen Augenzwinkern
Erazor
Hehe... Kein Problem... Gibt es eine Möglichkeit die Banner auf einer externen Seite einzublenden? Oder geht das nur im Forum? Würde den Bannertausch gerne auf der Homepage und nicht im Forum durchführen... Ist dies möglich?

Thänks!
jakob2002
Hi,

das ist schon möglich, allerdings solltest du dann PHP können (ich weiß nicht ob du es kannst, ich bin hier nicht so oft im Forum Augenzwinkern )

Dann müsstes du entweder die Function wbbads bischen umschreiben, oder du definierst in der Datei die benötigten Klassen (db).
Ich denke die Funktion umschreiben geht bei dieser Kleinigkeit schneller Augenzwinkern

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
//start wbbads
function wbbads() {
  global $db,$n;
  $result=mysql_query("SELECT COUNT(adid) FROM bb".$n."_ads WHERE views_used<views_available");
  $max=mysql_fetch_array($result);
  mt_srand((double)microtime()*1000000);
  $rand=mt_rand(0,$max[0]-1);
  $result=mysql_query("SELECT * FROM bb".$n."_ads WHERE views_used<views_available LIMIT ".$rand.",1");
  $row=mysql_fetch_array($result);
  if(!empty($row['adid'])) {
    mysql_query("UPDATE bb".$n."_ads SET views_used=views_used+1 WHERE adid=".$row['adid']);
    return "<a href=\"ads.php?gotoid=".$row['adid']."\" target=\"_blank\"><img src=\"".$row['bannerurl']."\" alt=\"".$row['alt']."\" border=\"0\"></a>";
  }
}
//end wbbads


Versuchs mal mit dieser Function. Du kannst die einfach in die Datei einbauen, in der Du den Banner ausgeben möchtest. Natürlich muss davor noch eine Datenbankverbindung ausfgebaut werden.
Ausgeben kannst du den Banner dann mit:
php:
1:
echo wbbads();


PS: Hab leider keine Zeit den Code zu testen, weil ich gleich in die Schule muss. Wenn was nicht funktioniert einfach melden Augenzwinkern
suppo
also nach der anleitung müsste ich diesen Block in der phpinclude.tpl einfügen ne?

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
//start wbbads
function wbbads() {
  global $db,$n;
  $max=$db->query_first("SELECT COUNT(adid) FROM bb".$n."_ads WHERE views_used<views_available");
  mt_srand((double)microtime()*1000000);
  $rand=mt_rand(0,$max[0]-1);
  $result=$db->query_first("SELECT * FROM bb".$n."_ads WHERE views_used<views_available LIMIT ".$rand.",1");
  if(!empty($result['adid'])) {
    $db->query("UPDATE bb".$n."_ads SET views_used=views_used+1 WHERE adid=".$result['adid']);
    return "<a href=\"ads.php?gotoid=".$result['adid']."\" target=\"_blank\"><img src=\"".$result['bannerurl']."\" alt=\"".$result['alt']."\" border=\"0\"></a>";
  }
}
//end wbbads
Riou
Zitat:
Original von suppo
also nach der anleitung müsste ich diesen Block in der phpinclude.tpl einfügen ne?

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
//start wbbads
function wbbads() {
  global $db,$n;
  $max=$db->query_first("SELECT COUNT(adid) FROM bb".$n."_ads WHERE views_used<views_available");
  mt_srand((double)microtime()*1000000);
  $rand=mt_rand(0,$max[0]-1);
  $result=$db->query_first("SELECT * FROM bb".$n."_ads WHERE views_used<views_available LIMIT ".$rand.",1");
  if(!empty($result['adid'])) {
    $db->query("UPDATE bb".$n."_ads SET views_used=views_used+1 WHERE adid=".$result['adid']);
    return "<a href=\"ads.php?gotoid=".$result['adid']."\" target=\"_blank\"><img src=\"".$result['bannerurl']."\" alt=\"".$result['alt']."\" border=\"0\"></a>";
  }
}
//end wbbads


ja muss man
suppo
und wenn ich das mache dann zeigt er ein XML Fehler an

und wenn ich die ads.php aufrufe dann is die seite weiss obwohl ich alles gecachet habe
jakob2002
Hast du das Setup ausgeführt?
suppo
ja hab ich, bb1_ads steht in phpmyadmin
Dicki
hi bei mir kommt dieser fehler hier wenn ich die ads_setup.php aufrufe -->

SQL-DATABASE ERROR

Database error in WoltLab Burning Board (2.1.3): Invalid SQL: INSERT INTO bb2_groupvalues(groupid) SELECT groupid FROM bb1_groups
mysql error: Unknown column 'groupid' in 'field list'
mysql error number: 1054
mysql version: 3.23.52-log
php version: 4.2.2
Date: 30.03.2004 @ 22:43
Script: /acp/ads_setup.php
Referer:

woran kann das liegen?!?
*nane*
Keine Ahung was ihr habt ich hab das Ding seid Wochen drin und es läuft vom ersten Tag an Fehlerfrei.
Riou
Zitat:
Original von Dicki
hi bei mir kommt dieser fehler hier wenn ich die ads_setup.php aufrufe -->

SQL-DATABASE ERROR

Database error in WoltLab Burning Board (2.1.3): Invalid SQL: INSERT INTO bb2_groupvalues(groupid) SELECT groupid FROM bb1_groups
mysql error: Unknown column 'groupid' in 'field list'
mysql error number: 1054
mysql version: 3.23.52-log
php version: 4.2.2
Date: 30.03.2004 @ 22:43
Script: /acp/ads_setup.php
Referer:

woran kann das liegen?!?


bei mir kommt der fehler wo ich das nochmal installieren wollte Augenzwinkern

Dann musst du ja die tabellen drauf haben oder?
Dicki
ja bb2_ADS kann ich iom PHPMyAdmin sehn aber ich raff net wie ich jetzt nen banner hinzufüg hab auch die acp_tpl ausgeführt aber ich kann bei den gruppenrechten einfach nix finden unglücklich
jakob2002
Ist die Fehlermeldung gleich beim ersten Installieren gekommen, oder kam da erst eine andere?

Die Rechte für das Bannerscript kannst du unter "Gruppen bearbeiten -> Administrationsrechte" ganz unten in der Kategorie "Sonstiges" bearbeiten. Bei der Administratorengruppe dürfte dies Standartmäßig als einzigste Option auf Nein gestellt sein.

Nachdem du das geändert hast, muss du das ACP neu öffnen, bzw. F5 drücken, damit das Menü neu geladen wird. Ganz unten im Menü dürfte dann ein Menüpunkt "Bannerscript" sein.
Dicki
also die Fehlermeldung kam gleich beim ersten mal danach hab ich die bb2_ads erstmal rausgeschmissen und nochmal probiert... wieder die selbe Fehlermeldung.

Und unter den Adminrechten is definitiv nix unglücklich
mich wundert das sowieso... müsste da nicht in irgend nem ACP-Template was geändert werden??
jakob2002
Zitat:
Unknown column 'groupid' in 'field list'


Hm, also so wie ich diese Fehlermeldung interpretier ist bei dir entweder in der Tabelle bb1_groupvalues das Feld groupid nich vorhanden oder in der Tabelle bb1_groups.
Schau mal nach.
Dicki
Zitat:
Database error in WoltLab Burning Board (2.1.3): Invalid SQL: INSERT INTO bb2_groupvalues(groupid) SELECT groupid FROM bb1_groups


hmm mir fällt da gerade was auf großes Grinsen wieso will er von bb1_groups was holen?!? meine Datenbank is doch bb2...
jakob2002
Uuuups, da ist ja tatsächlich ein kleiner Fehler in der ads_setup.php:

ersetze:

php:
1:
$db->query("INSERT INTO bb".$n."_groupvalues(groupid) SELECT groupid FROM bb1_groups");


druch:
php:
1:
$db->query("INSERT INTO bb".$n."_groupvalues(groupid) SELECT groupid FROM bb".$n."_groups");


Lösche dann am besten nochmal die Tabelle bb2_ads und den letzten Datensatz in der Tabelle bb2_groupvariables. Im Zweiten Feld müsste bei dem Datensatz folgendes stehen: a_can_otherstuff_ads


Danach führ das Setup einfach nochmal aus.