Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 21. Januar 2011 15:00

jeff1980
Server-Pate
Ort: Dortmund
Registriert: 26. November 2010
Beiträge: 630

[Gelöst] Keywords erstellen, Probleme mit Komma am Ende

Hi,

1. ist das wahrscheinlich gar kein wirkliches Problem, sondern nur Unwissenheit und 2. hat es weniger mit Smarty als mehr mit PHP zu tun, ich wusste aber nicht, wohin damit.
Ich möchte auf unserer Homepage für die Startseite die Keywords mit Hilfe der monatlichen Suchbegriffe über die API von Piwik generieren.
Generell funktioniert das auch schon mit diesem Aufruf:

// this token is used to authenticate your API request.
// You can get the token on the API page inside your Piwik interface
$token_auth = 'geheimer_token_auth_code';
$url = "http://www.festtagsgedichte.de/piwik/";
$url .= "?module=API&method=Referers.getKeywords";
$url .= "&idSite=1&period=month&date=today";
$url .= "&format=PHP&filter_limit=10";
$url .= "&token_auth=$token_auth";
$fetched = file_get_contents($url);
$content = unserialize($fetched);
// case error
if(!$content)
{
    echo "Error, content fetched = ".$fetched;
}

foreach($content as $row)
{
    $keyword = urldecode($row['label']);
    echo $keyword .", ";
}

So werden die 10 stärksten Suchbegriffe vom aktuellen Monat von Piwik abgegriffen und kommagetrennt ausgegeben. Allerdins hängt noch ein Komma hinten dran, was natürlich nicht so schön aussieht bzw. in den Keywords ja nichts zu suchen hat.
Nun habe ich schon den Befehl "implode" gefunden - leider bekomme ich ihn nicht richtig zum Laufen bzw. er gibt immer "Array, Array, Array..." aus (sogar ohne Komma am Ende).
Irgendwie verstehe ich nicht genau, wo jetzt die Keywords herkommen und wie ich das mit dem implode-Befehl verbinden soll (habe den Code so aus dem Piwik-Wiki übernommen und nur die Ausgabe angepasst).
Für PHP-Kenner wahrscheinlich nicht mal ne 8tel Po-Backe...
Schon mal danke im Voraus  smile

PS: Ich weiß, dass Google nicht mehr wirklich auf die Keywords achtet - mir ist es dennoch wichtig...

Beitrag geändert von jeff1980 (21. Januar 2011 15:36)

Offline

#2 21. Januar 2011 15:17

piratos
Gast

Re: [Gelöst] Keywords erstellen, Probleme mit Komma am Ende

<?php

// this token is used to authenticate your API request.
// You can get the token on the API page inside your Piwik interface
$token_auth = 'geheimer_token_auth_code';
$url = "http://www.festtagsgedichte.de/piwik/";
$url .= "?module=API&method=Referers.getKeywords";
$url .= "&idSite=1&period=month&date=today";
$url .= "&format=PHP&filter_limit=10";
$url .= "&token_auth=$token_auth";
$fetched = file_get_contents($url);
$content = unserialize($fetched);
// case error
if (!$content) {
    echo "Error, content fetched = " . $fetched;
} else {
    $x=count($content)-1;
    $i=0;
    foreach ($content as $row) {
        echo  urldecode($row['label']);
        $i++;
        if ($i<$x) echo ", ";
    }
}
?>

#3 21. Januar 2011 15:34

jeff1980
Server-Pate
Ort: Dortmund
Registriert: 26. November 2010
Beiträge: 630

Re: [Gelöst] Keywords erstellen, Probleme mit Komma am Ende

Danke - das ging schnell...
Eine Kleinigkeit habe ich noch geändert, da sonst ein Komma zu wenig eingefügt wurde (die letzten beiden Begriffe hingen zusammen):

// this token is used to authenticate your API request.
// You can get the token on the API page inside your Piwik interface
$token_auth = 'geheimer_token_auth_code';
$url = "[url]http://www.festtagsgedichte.de/piwik/[/url]";
$url .= "?module=API&method=Referers.getKeywords";
$url .= "&idSite=1&period=month&date=today";
$url .= "&format=PHP&filter_limit=10";
$url .= "&token_auth=$token_auth";
$fetched = file_get_contents($url);
$content = unserialize($fetched);
// case error
if (!$content) {
    echo "Error, content fetched = " . $fetched;
}
$x=count($content)-1;
$i=-1;
foreach ($content as $row) {
    echo  urldecode($row['label']);
    $i++;
    if ($i<$x) echo ", ";
}

$i ist jetzt "-1" statt "0" (wollte es markieren, ging aber nicht).
Aber damit haut es jetzt hin.

Beitrag geändert von jeff1980 (21. Januar 2011 15:37)

Offline

#4 21. Januar 2011 16:29

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [Gelöst] Keywords erstellen, Probleme mit Komma am Ende

Mit implode würde es übrigens so aussehen:

$keywords = array();
foreach ($content as $row) {
    $keywords[] = urldecode($row['label']);
}
$keywords_str = implode(',',$keywords);
echo $keywords_str;

Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#5 21. Januar 2011 17:56

owr_web
Server-Pate
Registriert: 16. Dezember 2010
Beiträge: 543

Re: [Gelöst] Keywords erstellen, Probleme mit Komma am Ende

nur der kleinen Vollständigkeit der Validität halber - sollte bei url. = anstatt & nich &amp; hin im Code?

Offline

#6 22. Januar 2011 10:46

jeff1980
Server-Pate
Ort: Dortmund
Registriert: 26. November 2010
Beiträge: 630

Re: [Gelöst] Keywords erstellen, Probleme mit Komma am Ende

@NaN: Funktioniert leider nicht auf Anhieb - er gibt mir für die Zeile

keywords[] = urldecode($row['label']);

diesen Fehler aus:

# Parse error: syntax error, unexpected '[' in /is/htdocs/...../admin/edituserplugin.php(108) : eval()'d code on line 20 

@owr_web: Soweit ich das ganze System verstehe, wird dort nur die URL zusammengebaut, über die er sich die Daten aus der Piwik-Datenbank holt. Davon landet nichts im Quellcode der eigentlichen Seite. Von daher macht es auch nichts.

Offline

#7 22. Januar 2011 12:49

nockenfell
Moderator
Ort: Gontenschwil, Schweiz
Registriert: 09. November 2010
Beiträge: 2.934
Webseite

Re: [Gelöst] Keywords erstellen, Probleme mit Komma am Ende

NaN schrieb:

Mit implode würde es übrigens so aussehen:

$keywords = array();
foreach ($content as $row) {
    $keywords[] = urldecode($row['label']);
}
$keywords_str = implode(',',$keywords);
echo $keywords_str;

Es fehlte ein "$" bei $keywords[]


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#8 24. Januar 2011 16:29

jeff1980
Server-Pate
Ort: Dortmund
Registriert: 26. November 2010
Beiträge: 630

Re: [Gelöst] Keywords erstellen, Probleme mit Komma am Ende

Jep - so gehts. Habs auch gar nicht gesehen...
Nun funktionieren beide Varianten  smile

Offline

#9 24. Januar 2011 17:07

piratos
Gast

Re: [Gelöst] Keywords erstellen, Probleme mit Komma am Ende

Du solltest dich aber dennoch an meine if else Aufteilung halten.
Sonst läufst du , wenn $content keinen Inhalt hat direkt in eine Fehlermeldung.

Später, wenn es mal Smarty 3 unter CMSMS geben sollte direkt in einen Absturz.

Beitrag geändert von piratos (24. Januar 2011 17:08)

#10 25. Januar 2011 06:42

jeff1980
Server-Pate
Ort: Dortmund
Registriert: 26. November 2010
Beiträge: 630

Re: [Gelöst] Keywords erstellen, Probleme mit Komma am Ende

Hab ich gestern beim Ausprobieren auch übernommen - erschien mir auch sinnvoller, als nur ein einfaches "if" ohne Ausweichmöglichkeit.

Offline

#11 25. Januar 2011 22:09

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [Gelöst] Keywords erstellen, Probleme mit Komma am Ende

piratos schrieb:

Später, wenn es mal Smarty 3 unter CMSMS geben sollte direkt in einen Absturz.

Die Hoffnung stirbt zuletzt cool ...

Offline