Hilfe bei Counter einbinden in index.tpl

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Bernd
Regular
Posts: 17
Joined: Tue Feb 21, 2006 12:17 pm
Contact:

Hilfe bei Counter einbinden in index.tpl

Post by Bernd »

Habe hier diesen copeschnipsel den ich gerne in die index.tpl mit einbinden möchte:

<?
$chCounter_page_title = 'News - Demo World';
include('counter.php');
?>

Einen Teilerfolg habe ich schon da der reine include funktioniert:

{include_php file="/www/xxx/counter.php"}

Mit der Zeile $chCounter_page_title = 'News - Demo World' sage ich dem counter er soll die Seite mit dem angegebenen Pagetitel versehen, da der counter keine dynamisch generierten Titel auslesen kann. Diese Zeile soll aber auch mit rein.
Wer kann mir dabei helfen oder einen Tip geben wie ??
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Hilfe bei Counter einbinden in index.tpl

Post by garvinhicking »

Hi!

am einfachsten wäre es diese $chCounter-Variable einfach direkt in deiner counter.php datei zu setzen.

die alternative ist, eine config.inc.php in deinem template-verzeichnis zu erstellen, die dann so aussehen sollte:

Code: Select all

<?php
$chCounter_page_title = 'News - Demo World';
include('/pfad/zum/counter.php');
?>
Die config.inc.php wird von s9y nämlich immer ausgeführt wenn eine Seite dargestellt wird.

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Bernd
Regular
Posts: 17
Joined: Tue Feb 21, 2006 12:17 pm
Contact:

Post by Bernd »

Hi Garvin,
generell funktioniert dein Tip mit der config.inc.php. Das nächste Problem was aber entsteht ist das beim Aufruf der rss ein Fehler auftritt:

XML-Verarbeitungsfehler: XML-Deklaration nicht am Beginn von externer Entität
Adresse: http://
Zeile Nr. 10, Spalte 2: <?xml version="1.0" encoding="utf-8" ?>

Das Script gibt einen Output aus, der als erstes im rss erscheint, was nicht konform ist und damit ist ein rss feed anzeigen nicht mehr möglich. Der counter sollte immer am ende einer Seite mit eingebunden werden. Bei dem Blog selber scheint er es so mit der config.inc.php zu mache, bei den rss feeds aber nicht..?!
Noch eine Idee ?
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Vermutlich gibt dein counter-script eine Leerzeile oder so aus. Das darf das script nicht, du musst daher alle etwaigen Leerzeilen entfernen. Oft hilft es auch das schließende "?>" in PHP-Dateien einfach zu löschen, da PHP das nicht braucht und danach dann nicht die Gefahr besteht dass "trailing spaces" auftauchen.

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Bernd
Regular
Posts: 17
Joined: Tue Feb 21, 2006 12:17 pm
Contact:

Post by Bernd »

Garvin,
das script schreibt nach aufruf immer das mit als info aus:

<!--
| chCounter 3.1.3
| a counter and statistics script written in PHP
| (c) Christoph Bachner and Bert Koern 2007 - released under the GNU GPL
| see at [ http://chCounter.org/ ]
-->

Dieses kann ich nicht löschen oder editieren. Es sind also keine Leerzeichen oder sowas.
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Am besten wäre es wenn du das aus dem script rauskommentierst.

Eine andere Lösung wäre die config.inc.php so zu schreiben:

Code: Select all

<?php
ob_start();
include '/path/to/counter.php';
ob_end_clean();
Damit wird alle Ausgabe weggeschmissen, die im include ausgeführt wird.

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Bernd
Regular
Posts: 17
Joined: Tue Feb 21, 2006 12:17 pm
Contact:

Post by Bernd »

Garvin,
das funktioniert soweit erstmal aber bei aufruf der rss gibts nun div. function.array-merge fehler....
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi! :)

Lass uns mal ein Rollenspiel spielen: Stell Dir vor, Du wärst ich, und ich wäre Du, und ich hätte Dir von den diversen function.array-merge fehlern erzählte. Jetzt rate mal was Du, also ich, darauf antworten könnte? ;-) ;-)

Viele Grüße,
Garvin (Spaß muss sein *g*)
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Bernd
Regular
Posts: 17
Joined: Tue Feb 21, 2006 12:17 pm
Contact:

Post by Bernd »

:wink: okok hehe hier mal die genauen Fehler..

<b>Warning</b>: array_merge() [<a href='function.array-merge'>function.array-merge</a>]: Argument #1 is not an array in <b>counter.php</b> on line <b>515</b><br />
<br />
<b>Warning</b>: array_merge() [<a href='function.array-merge'>function.array-merge</a>]: Argument #2 is not an array in <b>counter.php</b> on line <b>515</b><br />

Es läuft ne php 5er Version, wenn das weiterhilft..
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Mit dieser Meldung musst Du dich leider an den Programmierer der counter.php wenden -- es ist eine Meldung die aus seinem Script, und nicht von Serendipity, kommt...

Viele Grßüe,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Bernd
Regular
Posts: 17
Joined: Tue Feb 21, 2006 12:17 pm
Contact:

Post by Bernd »

Ok, ich schau mal was ich machen kann. Wäre halt schön gewesen das ich das ganze mal in die tpl einbau, was ich sonst immer in die tpl datei die im template_c liegt einbau, dort klappt das ganze.
gimmel
Regular
Posts: 118
Joined: Tue Jul 25, 2006 2:44 pm
Location: Quickborn/Germany
Contact:

Post by gimmel »

Der chCounter lässt sich am besten folgendermaßen einbinden:
In die config.inc.php des jeweiligen Templates wird folgendes eingebunden:

Code: Select all

$serendipity['smarty']->register_function('chCounter', 'chCounter');
function chCounter($params, &$smarty) {
    if ($params['pagetitle'] !== "") {
        $chCounter_page_title = $params['pagetitle'];
    }
    $chCounter_visible = 0;
    $chCounter_status = 'active';
    include($_SERVER['DOCUMENT_ROOT'].'/chCounter/counter.php');
}
Die Smarty-Funktion wird in der index.php des Templates vor dem </body>-Tag eingebunden:

Code: Select all

{chCounter pagetitle=$head_title|@default:$blogTitle}
Vielleicht sollte ich daraus mal ein Event-Plugin basteln…
Bernd
Regular
Posts: 17
Joined: Tue Feb 21, 2006 12:17 pm
Contact:

Post by Bernd »

Hi,
danke dir für deine Hilfe. Nach anfänglichen Problemen klappt es nun. Auch die RSS habe ich entsprechend eingebunden und alles klappt so wie ich mir das immer schon vorgestellt hatte :lol:
corun
Regular
Posts: 117
Joined: Sun Jan 11, 2009 4:48 pm

Re: Hilfe bei Counter einbinden in index.tpl

Post by corun »

Die Einbindung mittels des letzten Posts funktioniert gut. Was aber muss man machen, wenn man chcounter im html Klotz Plugin ausführen möchte. Der Counter soll also später im Blog in einer der Seitenleisten-Kästchen sichtbar sein.

Wenn ich den generierten Code von http://chcounter.org/template-generator.php in den html Klotz einfüge werden die Statistiken nicht richtig ausgegeben, stattdessen schaut es wie folgt aus:

Code: Select all

<style type="text/css">
.chcTable
{
  width: 250px;
  border-spacing: 1px;
  border-width: 1px;
  border-color: #000000;
  border-style: solid;
  text-align: left;
  background-color: #BDD2D9;
}
.chcHeaderRow
{
  background-color: #0780BC;
  color: #FFFFFF;
  font-size: 13px;
  font-weight: bold;
  padding: 3px;
}
.chcLeftRow
{
  background-color: #F2F0F0;
  color: #000000;
  font-size: 10px;
  padding: 3px;
}
.chcLeftRowAlt
{
  background-color: #E0DFDF;
  color: #000000;
  font-size: 10px;
  padding: 3px;
}
.chcRightRow
{
  background-color: #F2F0F0;
  font-size: 11px;
  font-weight: bold;
  color: #000000;
  padding: 3px;
  text-align: right;
}
.chcRightRowAlt
{
  background-color: #E0DFDF;
  font-size: 11px;
  font-weight: bold;
  color: #000000;
  padding: 3px;
  text-align: right;
}
.chcA a
{
  font-size: 10px;
}
</style>

<div align="center">
<table  class="chcTable">
  <tr>
    <td colspan="2" class="chcHeaderRow">
      Besucherstatistik
    </td>
  </tr>
  <tr>
    <td class="chcLeftRow">{L_TOTAL_VISITORS}</td>
    <td class="chcRightRow">{V_TOTAL_VISITORS}</td>
  </tr>
  <tr>
    <td class="chcLeftRowAlt">{L_VISITORS_TODAY}</td>
    <td class="chcRightRowAlt">{V_VISITORS_TODAY}</td>
  </tr>
  <tr>
    <td class="chcLeftRow">{L_VISITORS_YESTERDAY}</td>
    <td class="chcRightRow">{V_VISITORS_YESTERDAY}</td>
  </tr>
  <tr>
    <td class="chcLeftRowAlt">{L_MAX_VISITORS_PER_DAY}</td>
    <td class="chcRightRowAlt">{V_MAX_VISITORS_PER_DAY}</td>
  </tr>
  <tr>
    <td class="chcLeftRow">{L_VISITORS_CURRENTLY_ONLINE}</td>
      <td class="chcRightRow"><a rel="nofollow" href="{V_COUNTER_URL}/stats/online_users.php" onclick="window.open('{V_COUNTER_URL}/stats/online_users.php','online_users','width=700,height=350,screenX=0,screenY=0,resizable=yes,scrollbars=yes'); return false;" target="online_users">{V_VISITORS_CURRENTLY_ONLINE}</a></td>
  </tr>
  <tr>
    <td class="chcLeftRowAlt">{L_MAX_VISITORS_ONLINE}</td>
    <td class="chcRightRowAlt">{V_MAX_VISITORS_ONLINE}</td>
  </tr>
  <tr>
    <td class="chcLeftRow">{L_TOTAL_PAGE_VIEWS}</td>
    <td class="chcRightRow">{V_TOTAL_PAGE_VIEWS}</td>
  </tr>
  <tr>
    <td class="chcLeftRowAlt">{L_PAGE_VIEWS_THIS_PAGE}</td>
    <td class="chcRightRowAlt">{V_PAGE_VIEWS_THIS_PAGE}</td>
  </tr>
  <tr>
    <td class="chcA" colspan="2" style="text-align:center; padding-top: 4px;">
      <a target="_blank" href="{V_COUNTER_URL}/stats/index.php"><img src="{V_COUNTER_URL}/images/stats.png" style="width:15px; height:15px; border: 0px;" alt="counter" title="{L_STATISTICS}" /></a> 
      <a target="_blank" href="{V_COUNTER_URL}/stats/index.php">{L_STATISTICS}</a>
    </td>
  </tr>
  <tr>
    <td colspan="2" style="text-align:center; padding-top: 4px;">
      <a href="http://chcounter.org/" target="_blank">
        <img src="http://chcounter.org/bilder/logo80x15.png" style="width:80px; height:15px; border: 0px;" alt="counter, Besucherzähler" title="{L_STATISTICS}" /></a>
    </td>
  </tr>
</table>
</div>
	
Image

Was muss ich hier denn noch ändern, damit die Statistikausgabe auch in den Seitenleistenkästchen richtig angezeigt wird ?

thx&bye :)
Skaos
Regular
Posts: 5
Joined: Thu Oct 14, 2010 8:38 am
Contact:

Re: Hilfe bei Counter einbinden in index.tpl

Post by Skaos »

Man muss das nicht in die index.tpl einbinden es gibt einen einfachen guten Weg... Voraussetzung ist das man das Powered by Plugin installiert hat und angezeigt wird.

öffne include\plugin_internal.inc.php und suche

Code: Select all

<?php if ( $this->get_config('text', 'false') == 'true' ) { ?>
    <div>
        <a title="<?php echo $title ?> Serendipity" href="http://www.s9y.org/">Serendipity PHP Weblog</a>
    </div>
<?php } ?>
füge darunter ein:

Code: Select all

<br /><br />
<h3 class="serendipitySideBarTitle serendipity_plug_plugin">Statistik</h3>
<?php
$chCounter_visible = 1;
$chCounter_status = 'active';
include( '/www/XXX/XXX/XXX/counter.php' );
?>
XXX = bitte mit deinem entsprechenden Pfad ersetzen
Das wort Statistik kann mit irgendwas ersetzt werden

speichern, hochladen fertig...
Post Reply