Frage

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

Erstens wollte ich, dass alle meine Lesezeichen etwas organisiert werden, und obwohl es einige Markierungsverlängerungen für Firefox gibt, schienen viele von ihnen zu sperrig zu sein. Rückblickend hätte ich einige von ihnen zuerst ausprobieren können.

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

Sie haben eine API und versteckt sich darin, diese URL http:// username:password@api.del.icio.us/v1/posts/all

Dies sollte Sie dazu bringen, Ihre Lesezeichen jetzt mit Tags als XML -Datei zu haben.

Als nächstes verwenden Sie das Skript von hier aus http://memografia.com/wordpress/delicious-to-wordpress-importer/ Um es als Blog zu importieren. Aber Sie können dieses Skript nicht in Ihr Plugins -Verzeichnis einfügen und es zum Laufen bringen! WordPress 3.0 veränderte die Art und Weise, wie sie die Importeure durchführen, aber sie ließen in einer älteren Unterstützung (obwohl dies nirgendwo dokumentiert ist). Machen Sie einfach den Ordner mit dem Namen "Eingabe" im Ordner wp-admin und löschen Sie die Delicious.php-Datei dort hinein . (Dies funktioniert mit jedem Importeur -Skript, das die Funktion register_importer () verwendet.)

Wenn Sie nun zu Ihrem Dashboard gehen und unter Tools> Import suchen, sehen Sie, dass köstliche Option ist. Sie können die Lesezeichen -Tags als Kategorien oder Tags importieren, und es wird für jedes Lesezeichen einen Beitrag erstellen.

Wenn jemand dies ausprobiert, würde ich den Rat lieben, was als nächstes zu tun ist. Ich setzte mich an, wie man das macht, damit ich meine Lesezeichen in den Griff bekommen und diejenigen kommentieren konnte, die am nützlichsten waren. Ich kann das tun, aber wenn jemand von Plugins weiß, die Auszüge schnappen würden, um die Dinge auszuräumen, lassen Sie es mich bitte wissen. Es ist ziemlich ordentlich, ein Archiv Ihrer Lesezeichen zu haben, das leicht nach der Zeit sortiert werden kann.

War es hilfreich?

Lösung

Um das Thema der Frage (Firefox) zu haben, denke ich nicht, dass der Ansatz, lecker als Zwischenschritt zu verwenden, bevorzugt wird, weil:

  1. Sie verlieren die hierarhische Taxonomie, die in Firefox angewendet wird (so wie Sie Dinge strukturiert haben)
  2. Sie verlieren die Favicons wie in Firefox gesammelt
  3. Sie verlieren die Informationen, die von Teilern zwischen Links hinzugefügt werden
  4. Sie verlieren Informationen über die Reihenfolge der Verzeichnisse und URLs, die in Firefox angewendet werden
  5. Es ist nicht mit anderen Quellen von Lesezeichen kompatibel, z. B. andere Browser und ein Verzeichnis von URLs

Daher ist es mein Ansatz, a) Firefox in eine "Lesezeichen" -Verzeichnungsstruktur zu exportieren, wobei jedes Lesezeichen als URL gespeichert ist. b) Dieses Lesezeichenverzeichnis ist das tatsächliche Herz und kann von anderen Browsern gefüllt werden, die hierarchischen Informationen enthält und in den .url -Dateien additonale Meta -Informationen platziert werden können.

(In dieser Phase habe ich den Teiler des Teilers in meinem aktuellen Code fallen lassen)

Von WordPress können Sie durch die Verzeichnisstruktur und in WP durchlaufen. Was Sie bemerken werden, ist, dass die Links, die derzeit in WordPress sind, auch die angewandte Verzeichnis -Taxonomie verlieren (z. Antwort auf Schritte danach).

Das Folgende ist möglicherweise das, was Sie benötigen, wenn Sie sich zuerst auf den Exportieren von Firefox konzentrieren möchten. Noch einmal: Durchqueren eines physischen Verzeichnisses und dann in z.

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 einen Schritt weiter zu gehen.

1) Was ich wollte, ist eine einfachere Möglichkeit, meine Lesezeichen zu verwalten und sie mit Informationen zu bereichern, die bereits da draußen sind. 2) Die verschiedenen Systeme da draußen wie Alexa, Kernkasse, Stumbleupon usw. geben die Informationen auf einer URL -Ebene, z. Für das Ranking oder ABC.def.com/wh was auch immer/rtc.php: dafür benötigen Sie z. B. def.com/user (wie YouTube). Sie benötigen also sowohl die Domänenstruktur als auch die relative URL Teil in der URL, um sie darzustellen.

  1. Ich habe eine Klasse geschrieben, die die offizielle TLD -Struktur geladen und diese als Rootelemente in meiner Datenbank verwendet hat. Also erhält .uk die id 1 und .co.uk erhalten eine übergeordnete ID 1. Ich habe sowohl die Mozilla -Liste als auch andere verwendet: Quelle ist die MOZILLA Public Suffix -Liste: http://publicsuffix.org/ Aber das ist etwas veraltet, also müssen Sie es hinzufügen

  2. Jetzt, wo ich die offizielle TLD ist, habe ich eine Klasse, die die Alexa Top 1.000.000 Websites lädt. Dies wird auf die gleiche Weise verknüpft. Viele davon sind eine Art inoffizielle Top -Level -TLDs. Da zB "Google.com" nicht so offiziell ist wie die TLD eines Landes, aber es scheint wichtiger. Auf diese Weise entdecken Sie einige Muster, aber auch einige Ausnahmen, z. B. finden Sie IP -Adressen, die Populair sind. Jedes dieser Einträge füllt das Feld "Alexa -Ranking". (Für die Leistung lade ich zuerst das .csv in einer Hilfetabelle) Alexa wird Sie dazu zwingen, die Muster zu überprüfen, damit das gut ist (ein guter Testsatz)

  3. Ich habe eine Klasse geschrieben, die meine Firefox -Datenbanken (SQL Lite) durchquert und alle URLs dort als .url in einer hierarchischen Verzeichnisstruktur exportiert. Es exportiert auch die Favicons, ob sie .ico, .png, .gif usw. (siehe unten). Dies wird auch in der Datenbank gelesen. Da ich dies viel aktualisiere, sycns mit der in 1 und 2 beschriebenen Datenbank (am Anfang habe ich auch die Trenner exportiert, aber ich habe damit aufgehört).

  4. Ich habe gerade begonnen, Lesezeichen in dieser Verzeichnisstruktur aus anderen Browsern zu ziehen, z. B. aus Chrome Ich ziehe einfach ein Lesezeichen aus dem Browser in das Verzeichnis, das auch diese .url -Datei enthält. Die Verzeichnisstruktur von URLs Ich habe zusätzliche Eigenschaften gegeben, z. B. zu Beginn des Namen Code weiter mit dem Griff). Ich habe diese Verzeichnisstruktur in eine Dropbox gestellt. Ich muss den Code immer noch auf dem Server schreiben, um in konstanter Synchronisierung zu sein, damit der Dropbox -Serverteil. (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 FTP -Synchronisation)

  5. Ich habe Kurse für Delicious (Sie benötigen einen MD5) und Stumbleupon, um nicht nur das Ranking (lecker = Anzahl der Lesezeichen) (SU = Menge an Bewertungen und Anzahl der Seitenaufrufe), sondern auch die Tags und die Beschreibung, die die Leute verwenden (warum sollten sie sollten Ich erfasse meine eigenen Tags, wenn die Leute sie bereits gegeben haben). Da Sie eine Grenze an Anrufen haben, die Sie mit diesen Systemen ausführen können, müssen Sie sie im Laufe der Zeit verbreiten, um Ihre Datenbank zu bereichern. (Wenn Sie jetzt zu leckerem gehen und einen Link nachschlagen, sehen Sie die richtige Seite und machen Sie sich eine Vorstellung über die Taxonomie von Tags, die Links erhalten.)

  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 alle Ikonen (z. B. nicht für Facebook -Anwendungen) hat Ich bereichere den Cache mit den Symbolen, die ich aus Firefox exportierte. Dafür benötigen Sie einen Prioritätssystembau, in dem das richtige Favicon über den anderen wählt.

  7. Um dies zu leiten, habe ich eine Caching -Struktur, die aussieht, als ob die Domäne für die umgekehrt ist. Teile EG .com.facebook In Eeach -Verzeichnis in dieser Cache -Struktur speichere ich die Cache -Favicons. In einer früheren Veröffentlichung speichere ich dort auch die Ergebnisse der Anrufe an Delicious und Stumblupon.

Es scheint, dass dies WordPress außerhalb des SCOPE ist, aber tatsächlich (Grinsen) ist es sehr im Bereich. Die Build-In-Link-Funktionalität hat keine guten Meta-Optionen / keine Meta-Tabelle und es gibt einige weitere Einschränkungen wie keine hierarchischen Kategorien usw. Auch Sie müssen Informationen in sie selbst eingeben, während es viele Dienste gibt, die bereits URLs kategorisieren (zB DMOZ) und geben Sie ihm Tags usw., die eine Art Standard geworden sind.

Das liegt also "unter" meiner WordPress -Seite für den Umgang mit meinen Links.

Ich mache dieses Setup mit allen Informationen über mindestens die Top 1.000.000 plus Websites, um die Anzahl der Anrufe weniger zu gestalten und dies später als Plugin zu teilen. Ich habe ein StumbleUpon -Plugin im WP -Plugin -DB und das führte dazu. Es können Sie Informationen zu den externen Links geben, die Sie in Ihrem Weblog haben. Es gibt viele Plugins, die Ihnen Informationen zu SEO General geben, aber keine, die Ihnen Berichte und Vergleiche von EG ´Was Prozentsatz Ihrer ausgehenden Links zeigen, in welcher Kategorie oder nicht beliebt oder nicht usw. Es gibt auch Rankings für Ihre eingehenden Links und ausgehenden Links usw. usw. usw.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top