Hallo zusammen,
vielleicht kann mir an dieser Stelle jemand weiter helfen, ich habe folgendes Problem.
Ich habe die Extension "Graphic Visitor Counter" (bkt_fe_graphiccounter) installiert und kann diese auch sauber als Inhaltselement im content-Bereich verwenden und konfigurieren, d.h. z.B. die Anzahl der Digits und Zählerstand setzen.
Das ganze habe ich versucht nun ins Template zu übernehmen, da der Counter immer an der gleichen Stelle auf der gesamten Homepage erscheinen soll.
Das ist mir auch gelungen, nur wird jetzt nur ein einziges Digit angeteigt, vermutlich die Basis-Konfiguration des Counters. Wie kann ich nun die Konfiguration im Template vornehmen?
Im Template verwende ich folgende Syntax.
marks.COUNTER < plugin.tx_bktfegraphiccounter_pi1
marks.COUNTER {
code >
tx_bktfegraphiccounter_mindigits = 6
tx_bktfegraphiccounter_visits = 261
}
Ich habe in einem anderen Thread gelesen, daß so die Übergabe von Code an die Extension funktioniert. Den Wert habe ich aus der locallang_db.php der Extension abgelesen wo steht
tt_content.tx_bktfegraphiccounter_visits' => 'Page Visits'"
in der Datei class.tx_bktfegraphiccounter_pi1.php ist dies auch zu lesen
$countervalue = trim($this->cObj->data["tx_bktfegraphiccounter_visits"]).
Weiß jemand, wie ich die Konfigration auch im TypoScript hinbekomme? Der Object-Browser bringt einen hier auch nicht weiter.
Danke für die Hilfe!
Servus zusammen,
habs mittlerweile selber gelöst, einfach in der Extension die Variablen selber im Quellcode setzen, kann man recht einfach rausbekommen.
So, habe den Thread wieder auf ungelöst gesetzt, da ich doch nicht ganz am Ende mit meinem Problem bin. Ich habe es zwar geschafft, den Counter im Template einzubinden und gewisse Parameter wie die Anzahl der Digits festzulegen, aber mein Zähler kann die Besucher nicht zählen. Gebe ich keinen Startwert vor, fängt dieser immer bei 0000001 an.
Hat jemand das Problem auch schon gehabt und lösen können? Hier noch die Datei class.tx_bktfegraphiccounter_pi1.php, in welcher ich die Parameter gesetzt habe. Vielleicht hat jemand von euch die zündende Idee...
<?php
/***************************************************************
* Copyright notice
*
* (c) 2003-2005 Bauer Karl (Bauer Technologies) (info@informatikserver.de)
* All rights reserved
*
* This script is part of the Typo3 project. The Typo3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
/**
* Plugin 'Graphic Visitor Counter' for the 'bkt_fe_graphiccounter' extension.
*
* @author Bauer Karl (Bauer Technologies) <info@informatikserver.de>
*/
require_once(PATH_tslib."class.tslib_pibase.php");
class tx_bktfegraphiccounter_pi1 extends tslib_pibase {
var $prefixId = "tx_bktfegraphiccounter_pi1"; // Same as class name
var $scriptRelPath = "pi1/class.tx_bktfegraphiccounter_pi1.php"; // Path to this script relative to the extension dir.
var $extKey = "bkt_fe_graphiccounter"; // The extension key.
function main($content,$conf) {
$this->conf=$conf;
$this->pi_setPiVarDefaults();
$this->pi_loadLL();
$GLOBALS["TSFE"]->set_no_cache();
$countervalue = trim($this->cObj->data["tx_bktfegraphiccounter_visits"]);
$counteralttag = trim($this->cObj->data["tx_bktfegraphiccounter_alt_tag"]);
$counteralign = trim($this->cObj->data["tx_bktfegraphiccounter_align"]);
// $counteranimate = $this->cObj->data["tx_bktfegraphiccounter_animate"];
$counteranimate = true; //changed 230107
$siteID = $this->cObj->data["pid"];
$recordID = $this->cObj->data["uid"];
// $countermindigits = trim($this->cObj->data["tx_bktfegraphiccounter_mindigits"]);
$countermindigits = 7; //changed 230107
$counterdigitsreturn = "";
$counterhtml_before_img = trim($this->cObj->data["tx_bktfegraphiccounter_html_before_img"]);
$counterhtml_after_img = trim($this->cObj->data["tx_bktfegraphiccounter_html_after_img"]);
// $counterreloadprotect = trim($this->cObj->data["tx_bktfegraphiccounter_checkreload"]);
$counterreloadprotect = false; //changed 230107
$counteristext = trim($this->cObj->data["tx_bktfegraphiccounter_istext"]);
$oldcountervalue = $countervalue;
settype($countervalue, "integer");
$countervalue++;
settype($countervalue, "string");
$counterlength = strlen($countervalue);
//Check if reload must be counted or not
if ($counterreloadprotect == true)
{
//Update the Counter only if this is a new Session
if (!isPageReloaded($recordID))
{
$query = "UPDATE tt_content SET tx_bktfegraphiccounter_visits = ".$countervalue ." WHERE pid = ".$siteID." AND uid = ". $recordID."";
$res = mysql(TYPO3_db,$query);
}
}
else
{
$query = "UPDATE tt_content SET tx_bktfegraphiccounter_visits = ".$countervalue ." WHERE pid = ".$siteID." AND uid = ". $recordID."";
$res = mysql(TYPO3_db,$query);
}
settype($countermindigits, "integer");
$countermindigitsshow = $countermindigits - $counterlength;
if ($counteristext == false)
{ //Graphical Counter
for ( $i = 0; $i < $countermindigitsshow; ++$i )
{
$counterdigitsreturn .= " <td><img src=\"".t3lib_extMgm::siteRelPath("bkt_fe_graphiccounter")."digits/0.gif\" alt=\"".$counteralttag."\" border=\"0\"></td>\n";
}
for ( $i = 0; $i < $counterlength; ++$i )
{
if ($counteranimate == true) {
if ($oldcountervalue[$i] == $countervalue[$i]){
$counterdigitsreturn .= " <td><img src=\"".t3lib_extMgm::siteRelPath("bkt_fe_graphiccounter")."digits/".$countervalue[$i].".gif\" alt=\"".$counteralttag."\" border=\"0\"></td>";
} else {
$counterdigitsreturn .= " <td><img src=\"".t3lib_extMgm::siteRelPath("bkt_fe_graphiccounter")."digits/".$countervalue[$i]."animation.gif\" alt=\"".$counteralttag."\" border=\"0\"></td>";
}
} else {
$counterdigitsreturn .= " <td><img src=\"".t3lib_extMgm::siteRelPath("bkt_fe_graphiccounter")."digits/".$countervalue[$i].".gif\" alt=\"".$counteralttag."\" border=\"0\"></td>";
}
if ($i != $counterlength-1) $counterdigitsreturn .= "\n";
}
$content='
<table cellspacing="0" cellpadding="0" border="0" align="'.$counteralign.'">
<tr>
<td>'.$counterhtml_before_img.'</td>
'.$counterdigitsreturn.'
<td>'.$counterhtml_after_img.'</td>
</tr>
</table>
';
}
else
{ //Text Counter
for ( $i = 0; $i < $countermindigitsshow; ++$i ) $counterdigitsreturn .= "0";
$counterdigitsreturn .= $countervalue;
$content='
<table cellspacing="0" cellpadding="0" border="0" align="'.$counteralign.'">
<tr>
<td>'.$counterhtml_before_img.$counterdigitsreturn.$counterhtml_after_img.'</td>
</tr>
</table>
<br>
';
}
return $this->pi_wrapInBaseClass($content);
}
}
/*
Check if this Page was reloaded by usage of session information
Parameter $recordID = id of record
Returns TRUE if yes, otherwise FALSE
*/
function isPageReloaded($recordID)
{
session_start();
$sessvalID = "tx_bktfegraphiccounter_reloadcount_$recordID";
if (!isset($_SESSION[$sessvalID])) {
$_SESSION[$sessvalID] = 0;
} else {
$_SESSION[$sessvalID]++;
}
return ($_SESSION[$sessvalID] > 0);
}
if (defined("TYPO3_MODE") && $TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["ext/bkt_fe_graphiccounter/pi1/class.tx_bktfegraphiccounter_pi1.php"]) {
include_once($TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["ext/bkt_fe_graphiccounter/pi1/class.tx_bktfegraphiccounter_pi1.php"]);
}
?>
Hallo, wenn Du den counter auf allen Seiten einbinden willst,
dann legen doch einfach eine Seite an und verstecke sie im Menü oder erstelle sie in einem Sysfolder und binde auf dieser Seite den Counter ein. Konfiguriere ihn dort so wie du Ihn willst.
Und binde Ihn dann ein:
z. B.:
###Counter
temp.counter=CONTENT
temp.counter.table = tt_content
temp.counter.select {
uidInList=2#id des Content-Elements
pidInList=1# id der Seite.
}
Bei TemplaVoila kannst du es dann ja über ein COA einbinden.
So zum Beispiel
lib.myCounter = COA
lib.myCounter < temp.counter
Gruß
Hallo JCG!
Dein TS funktioniert einwandfrei, COA habe ich nicht verwendet, nutzte stattdessen meinen eignen Marker in meinem Template-File, kann also nix dazu sagen!
vivaldi72 ist wohl nicht mehr an der Lösung interessiert, aber ein Mod könnte das Thema trotzdem als gelöst makieren, der übersicht halber 😉
jörg
Hallo Jörg,
danke für den Hinweis. Ich habe mich bei der Umsetzung bereits der Extension asfk_usercounter bedient. Mit der geht es auch recht einfach, über einen Marker den Counter einzubinden, vielleicht nicht ganz so komfortabel wie die zuerst versuchte Extension. Hat aber ausgereicht.
Das Thema setze ich dann doch auf gelöst, wie du richtigerweise bemerkt hast. Nicht die feine Art von mir, deshalb komme ich dem mal nach.
Grüße,
Frank