it-swarm.com.de

Sie fragen sich, wie Sie Ihre Firefox-Lesezeichen in ein WordPress-Blog verwandeln können?

Ich habe mich auch gefragt. Ich habe es versucht und einige Stunden damit verbracht, es zu versuchen, aber ich konnte endlich weitermachen. Ich habe ein paar Dinge entdeckt, die für die meisten Menschen auf dem Weg nicht offensichtlich sind, und deshalb veröffentliche ich hier einige Schritte. Sie sollten in der Lage sein, dies in kürzester Zeit selbst auf einem Testserver für einen Test einzurichten. Wenn jemand einen alternativen Weg gefunden hat, lassen Sie es mich bitte wissen.

Zuerst wollte ich, dass alle meine Lesezeichen etwas organisiert sind, und obwohl es einige Tagging-Erweiterungen für Firefox gibt, schienen viele zu umfangreich. Im Nachhinein hätte ich einige davon zuerst ausprobieren können.

Ich habe delicious.com (früher del.icio.us) gewählt, um meine Lesezeichen für mich zu markieren. Es schien der einfachste Weg zu sein, und die meisten der 1.500 Lesezeichen, die ich auf dieser Site hatte, waren bekannt, sodass Tags verfügbar waren. Sie können die Firefox-Erweiterung delicious verwenden oder direkt auf deren Website importieren.

Sie haben eine API und darin verbirgt sich diese URL http:// username:[email protected]/v1/posts/all

damit sollten Sie Ihre Lesezeichen jetzt mit Tags als XML-Datei haben.

Als Nächstes verwenden Sie das Skript von hier http://memografia.com/wordpress/delicious-to-wordpress-importer/ , um es als zu importieren ein Blog. Aber Sie können dieses Skript nicht in Ihr Plugins-Verzeichnis stellen und es funktionieren lassen! WordPress 3.0 hat die Art und Weise, wie sie die Importeure ausführen, geändert, ABER sie haben in einer älteren Version Unterstützung hinterlassen (obwohl dies nirgendwo wirklich dokumentiert ist). Erstellen Sie einfach einen Ordner mit dem Namen 'input' im Ordner wp-admin und legen Sie die Datei delicious.php dort ab . (Dies funktioniert mit jedem Importskript, das die Funktion register_importer () verwendet.)

Wenn Sie jetzt zu Ihrem Dashboard gehen und unter Tools> Import nachsehen, werden Sie feststellen, dass Delicious eine Option ist. Sie können die Lesezeichen-Tags als Kategorien oder Tags importieren und es wird ein Beitrag für jedes Lesezeichen erstellt.

Wenn jemand das ausprobiert, würde ich gerne einen Rat geben, was als nächstes zu tun ist. Ich habe nachgeforscht, wie das geht, damit ich meine Lesezeichen in den Griff bekommen und die am nützlichsten kommentieren kann. Ich kann das tun, aber wenn jemand Plugins kennt, die Ausschnitte zum Ausarbeiten von Dingen enthalten, lassen Sie es mich bitte wissen. Es ist ziemlich ordentlich, ein Archiv Ihrer Lesezeichen zu haben, das leicht nach der Zeit sortiert werden kann.

5
tomcat23

Um bei der FRAGE (Firefox) auf dem neuesten Stand zu sein, denke ich nicht, dass der Ansatz, köstlich als Zwischenschritt zu verwenden, bevorzugt wird, weil:

  1. sie verlieren die hierarchische Taxonomie, die in Firefox angewendet wird (so, wie Sie Dinge strukturiert haben).
  2. sie verlieren die Favicons, wie sie in Firefox gesammelt wurden
  3. sie verlieren die Information, die durch Teiler zwischen Verknüpfungen hinzugefügt wird
  4. sie verlieren Informationen über die Reihenfolge der in Firefox angewendeten Verzeichnisse und URLs
  5. es ist nicht kompatibel mit anderen Lesezeichenquellen, z. andere Browser und z.B. ein Verzeichnis von URLs

Daher ist mein Ansatz, a) Firefox in eine "BOOKMARK" -Verzeichnisstruktur zu exportieren, wobei jedes Lesezeichen als URL gespeichert wird. b) Dieses Lesezeichenverzeichnis ist das eigentliche Herzstück und kann von anderen Browsern aus gefüllt werden, enthält die hierarchischen Informationen und in die .url-Dateien können zusätzliche Metainformationen eingefügt werden.

(In diesem Stadium habe ich den Divider-Export in meinem aktuellen Code verworfen.)

In WordPress können Sie die Verzeichnisstruktur durchlaufen und in WP platzieren. Was Sie bemerken werden, ist, dass die Links wie derzeit in WordPress auch die angewandte Verzeichnis-Taxonomie verlieren (z. B. keine hierarchischen Kategorien) und keine gute Metatabelle haben. Deshalb habe ich beschlossen, eine Nebentabelle für meinen Link-Speicher zu erstellen, um diese Informationen beizubehalten (siehe andere) antworten Sie auf die Schritte danach).

Folgendes ist möglicherweise erforderlich, wenn Sie sich zuerst auf den Export von Firefox konzentrieren möchten. noch einmal: Durchlaufen eines physischen Verzeichnisses und anschließendes Lesen dieses in z. Eine Datenbanktabelle (wplinks) ist sofort einsatzbereit:

require_once("class-EdlSqliteDb.php");
require_once("class-EdlUtil.php");

class EdlFirefox {

const BOOKMARKTYPE_URL = 1;
const BOOKMARKTYPE_DIRECTORY = 2;
const BOOKMARKTYPE_DIVIDER = 3;
const FMODE = 0777;
const DIVIDER = '--------------';

var $use_cache = true;
var $dbh;

public function __construct($DbLocation, $ffRoot, $exportLocationBookmarks) 
{
    $this->mDbLocation = $DbLocation;
    $this->mRootTitle = $ffRoot;
    $this->mExportLocation = $exportLocationBookmarks;

    // database settings
    $this->dbh = new EdlSqliteDb($DbLocation);
    $this->dbh->addQ(1,"SELECT id FROM moz_bookmarks WHERE title=?");
    $this->dbh->addQ(2,"SELECT id, title, type, fk FROM moz_bookmarks WHERE parent=? ORDER BY position");
    $this->dbh->addQ(3,"SELECT content FROM moz_items_annos WHERE item_id=?");
    $this->dbh->addQ(4,"SELECT url,favicon_id FROM moz_places WHERE id=?");
    $this->dbh->addQ(5,"SELECT data, mime_type FROM moz_favicons WHERE id=?");

    // parse the content
    $this->ParseTree();     
}

/*
 * check the ff database for the the root folder folders
 *
 */
function ParseTree()
{           
    $row = $this->dbh->DbExecutePrepared(1, Array($this->mRootTitle), 'row');
    if (USE_FIREFOX_FOLDER)
    {
        $this->ParsePagesPerTree($row[0], $this->mExportLocation . '/'. FIREFOX_FOLDER .  '/');
    }
    else 
    {
        $this->ParsePagesPerTree($row[0], $this->mExportLocation . '/');
    }
    return;
}

/*
 * if a bookmark is a url then write it as a file
 *
 */
function processFFUrl($moz_bookmarks_id, $moz_bookmarks_fk, $moz_bookmarks_title, $strRootFolder)
{
    // (1.1) Get from the annotations the description of the url
    $moz_items_annos_row = $this->dbh->DbExecutePrepared(3, Array($moz_bookmarks_id), 'row');
    $moz_items_annos_description = $moz_items_annos_row[0];

    // (1.2) get the url and favicon_id from moz_places
    if ($moz_places_recordset = $this->dbh->DbExecutePrepared(4, Array($moz_bookmarks_fk), 'recordset'))
    {
        foreach ($moz_places_recordset as $moz_places_row) 
        {
            $moz_places_url        = $moz_places_row[0];
            $moz_places_favicon_id = $moz_places_row[1];
        }
    }   

    $this->getFaviconIcon($moz_places_favicon_id, $moz_places_url);

    // (1.3) create the file
    $link_url_string = "[InternetShortcut]\n";
    $link_url_string .= 'URL=' . $moz_places_url . "\n";
    $link_url_string .= 'description=' . $moz_items_annos_description . "\n";   

    if (!is_file($strRootFolder . '/'. $moz_bookmarks_title . '.url')) 
    {
        $filename = $strRootFolder . '/'. $moz_bookmarks_title . '.url';
        $fp = fopen($filename, 'w');
        fwrite($fp, $link_url_string);
        fclose($fp);
    }
}

/*
 * for each logical folder create a physical folder
 *
 */
function parsePagesPerTree($intRootId, $strRootFolder)
{
    if ($moz_bookmarks_recordset = $this->dbh->DbExecutePrepared(2, Array($intRootId), 'recordset'))
    {
        foreach ($moz_bookmarks_recordset as $moz_bookmarks_row)
        {
            $moz_bookmarks_id       = $moz_bookmarks_row[0];
            $moz_bookmarks_title    = EdlUtil::filename_safe($moz_bookmarks_row[1]);
            $moz_bookmarks_type     = $moz_bookmarks_row[2];
            $moz_bookmarks_fk       = $moz_bookmarks_row[3];
            $moz_bookmarks_url = '';
            $moz_bookmarks_favicon_id = '';

            // A bookmark can be one of three things: process (1) urls, (2) directories and (3) dividers
            if ($moz_bookmarks_type==self::BOOKMARKTYPE_URL)
            {
                $this->processFFUrl($moz_bookmarks_id, $moz_bookmarks_fk, $moz_bookmarks_title, $strRootFolder);
            } 
            elseif ($moz_bookmarks_type==self::BOOKMARKTYPE_DIRECTORY)
            {       
                $dir = $strRootFolder . '/'. $moz_bookmarks_title . '/';
                if (!file_exists($dir)) 
                {
                    if (!mkdir($dir, 0777, true)) 
                    {
                        die('Failed to create folders...');
                    }                   
                }
                $this->parsePagesPerTree($moz_bookmarks_id, $strRootFolder . '/'. $moz_bookmarks_title);
            }
            elseif ($moz_bookmarks_type==self::BOOKMARKTYPE_DIVIDER)
            {
                // todo         
            }       
        }
    }   
    return;
}   

//
function getFaviconIcon($moz_bookmarks_favicon_id, $moz_bookmarks_url)
{
    $icon_data = '';
    $moz_bookmarks_favicon = '';
    if ($moz_bookmarks_favicon_id)
    {
        if ($moz_favicons_recordset = $this->dbh->DbExecutePrepared(5, Array($moz_bookmarks_favicon_id), 'recordset'))
        {
            foreach ($moz_favicons_recordset as $moz_favicons_row)
            {
                $icon_data      = $moz_favicons_row[0];
                $icon_mime_type = $moz_favicons_row[1];
                // the following array is also defined in the google icon checker!
                $icon_type = array(  'image/png'    => 'a.png',
                                 'image/gif'    => 'a.gif',
                                 'image/x-icon' => 'a.ico',
                                 'image/jpeg'   => 'a.jpg',
                                 'image/bmp'    => 'a.bmp');                                     

                $moz_bookmarks_favicon = $icon_type[$icon_mime_type];
                // TODO reimplement echo 'warning: you should add:' . $icon_mime_type;              

                //if ('http://apps.facebook.com/frontierville/' == $moz_bookmarks_url)
                //{
                //  echo $moz_bookmarks_favicon_id . " - " . $icon_mime_type . " - " .
                //      $moz_bookmarks_favicon;
                //}
            }   
        }   
    }
    // if $moz_bookmarks_favicon = empty then provide weird name
    if ($moz_bookmarks_favicon) {
        $populair_cache = new EdlCache($moz_bookmarks_url, $moz_bookmarks_favicon);
        $obj = $populair_cache->CheckCacheData($icon_data, FILECACHE_FIREFOX, false);
    }

    // we dont want to return the data it only needs to be update
    return;         
}
 } 

Ich hoffe, ich kann Ihnen Hinweise geben, um noch einen Schritt weiter zu gehen.

1) Was ich wollte, ist eine einfachere Möglichkeit, meine Lesezeichen zu verwalten und sie mit bereits vorhandenen Informationen zu bereichern. 2) Die verschiedenen Systeme wie Alexa, Delcious, StumbleUpon usw. geben nicht alle Informationen auf einer URL-Ebene aus, z. Alexa gibt Informationen auf einer höheren Ebene in der Domänenstruktur, z. abc.def.com: Sie benötigen def.com für das Ranking oder abc.def.com/whatever/rtc.php: dafür benötigen Sie z. brauche def.com/user (wie youtube). Sie benötigen also sowohl die Domänenstruktur als auch die relative URL-Struktur und haben jeden einzelnen Knoten jeder möglichen URL (sowohl Domäne als auch relative) als Eintrag in der Datenbank, um dies später darstellen und anreichern zu können, und Sie benötigen die Beziehungen zwischen beiden Teil der URL, um sie darstellen zu können.

  1. Ich habe eine Klasse geschrieben, die in die offizielle TLD-Struktur geladen wird und diese als Stammelemente in meiner Datenbank verwendet. Also bekommt .uk die ID 1 und .co.uk eine Eltern-ID 1. Ich habe sowohl die Mozilla-Liste als auch andere verwendet: Quelle ist die öffentliche Mozilla-Suffix-Liste: http: // publicsuffix. org/ , aber das ist ein bisschen veraltet, also müssen Sie es hinzufügen

  2. Jetzt, da ich die offiziellen TLDs dort habe, habe ich eine Klasse, die in den Alexa-Top-1.000.000-Websites geladen wird. Dies wird auf die gleiche Weise verknüpft. Viele davon sind inoffizielle Top-Level-TLDs. Da z.B. "google.com" ist nicht so offiziell wie die TLD eines Landes, scheint aber wichtiger zu sein. Auf diese Weise entdecken Sie einige Muster, aber auch einige Ausnahmen, z. Sie finden IP-Adressen, die populair sind. Jeder dieser Einträge füllt das Feld "Alexa Ranking" aus. (Für die Leistung lade ich zuerst die .csv-Datei in eine Hilfetabelle.) Alexa wird Sie zwingen, die Muster zu überprüfen, damit sie gut sind. (Ein guter Testsatz.)

  3. Ich habe eine Klasse geschrieben, die meine Firefox-Datenbanken (SQL Lite) durchläuft und alle darin enthaltenen URLs als .URL in einer hierarchischen Verzeichnisstruktur exportiert. Außerdem werden die Favoriten exportiert, unabhängig davon, ob sie .ico, .png, .gif usw. sind (siehe unten). Dies wird auch in der Datenbank gelesen. Da ich dies sehr oft aktualisiere, synchronisiert es sich mit der in 1 und 2 beschriebenen Datenbank. (Am Anfang habe ich auch die Teiler exportiert, aber ich habe damit aufgehört).

  4. Ich habe gerade damit begonnen, Lesezeichen aus anderen Browsern, z. von chrome ziehe ich einfach ein lesezeichen aus dem browser in das verzeichnis das auch die .url datei liefert. Die Verzeichnisstruktur von URLs, denen ich zusätzliche Eigenschaften gegeben habe, z. (h) am Anfang des Namens wird ein "Herz", z.B. Eine URL, die mir besonders gefällt, und # 01 # wird sie oben platzieren (oder zumindest so, wie der Code weiter unten damit umgeht). Ich habe diese Verzeichnisstruktur in eine Dropbox gelegt. Ich muss immer noch den Code auf den Server schreiben, um in ständiger Synchronisation zu sein, damit der Dropbox-Server funktioniert. (Mein WORDPRESS auf dem Server-Gegenstück liest ständig die URL-Verzeichnisstruktur zum Synchronisieren und Aktualisieren von Lesezeichen wie oben, aber ich verwende jetzt die FTP-Synchronisierung.)

  5. Ich habe Klassen für delicious (Sie benötigen ein MD5) und StumbleUpon geschrieben, um nicht nur das Ranking (delicious = Anzahl der Lesezeichen) (SU = Anzahl der Bewertungen und Anzahl der Seitenzugriffe), sondern auch die TAGs und die Beschreibung zu erhalten, die die Leute verwenden (warum sollten) Ich erfinde meine eigenen Tags, wenn sie schon vergeben wurden. Da Sie eine begrenzte Anzahl von Anrufen haben, die Sie an diese Systeme senden können, müssen Sie diese über einen längeren Zeitraum verteilen, um Ihre Datenbank zu erweitern. (Wenn Sie jetzt zu delicious gehen und einen Link nachschlagen, sehen Sie auf der rechten Seite, wie die Taxonomie der Tags für Links aussieht.)

  6. Ich verwende den Google Favicons-Anbieter (const GOOGLE_ICON_URL = 'http://www.google.com/s2/favicons?domain=';), um die Favicons anzuzeigen, ABER da Google nicht über alle Symbole verfügt (z. B. nicht für Facebook-Anwendungen). Ich bereichere den Cache mit den Symbolen, die ich aus Firefox exportiert habe. Dazu benötigen Sie ein Prioritätssystem, in dem das richtige Favicon vor dem anderen ausgewählt wird.

  7. Um dies zwischenzuspeichern, habe ich eine Caching-Struktur, die aussieht wie die Domain für die umgekehrt. Teile, z.B. .com.facebook.apps.geochallenge und auf einer tieferen Ebene die relative Pfadstruktur. In jedem Verzeichnis in dieser Cache-Struktur speichere ich die Cache-Favoriten. In einer früheren Version speichere ich dort auch die Ergebnisse der Aufrufe zu delicious und stumblupon.

Es scheint, dass dies WordPress ist, aber tatsächlich (grins) ist es sehr in-scope. Die eingebaute Linkfunktionalität hat keine guten Metaoptionen/keine Metatabelle und es gibt einige weitere Einschränkungen wie keine hierarchischen Kategorien usw. Außerdem müssen Sie Informationen selbst eingeben, während es viele Dienste gibt, die bereits URLs kategorisieren (zB dmoz) und gib ihm Tags etc ... die zu einer Art Standard geworden sind.

Das liegt also "unter" meiner WordPress-Site, um meine Links zu verwalten.

Ich mache dieses Setup mit allen Informationen von mindestens den Top-1.000.000-Websites, um die Anzahl der Anrufe zu verringern und dies später als Plugin zu teilen. Ich habe ein Stumbleupon-Plugin in der wp-Plugin-Datenbank und das hat dazu geführt. Es kann Ihnen Informationen zu den externen Links geben, die Sie in Ihrem Weblog haben. Es gibt viele Plugins, die Ihnen Informationen zu SEO allgemein geben, aber keine, die Ihnen Berichte und Vergleiche von z. Welcher Prozentsatz Ihrer ausgehenden Links ist in welcher Kategorie oder beliebt oder nicht usw.? Es gibt auch Ranglisten für Ihre eingehenden und ausgehenden Links usw. usw.

4
edelwater