Beiträge von codestyling

    Das Plugin hat mehrere Probleme:

    1.) mehrere Textdomains, die nicht geladen werden (BUG) denn die normale Textdomain lautet: "AWPCP":

    Code
    debug page
    category shortcode
    add fee
    Used for decimal separation: (The dot in 1,000.00)

    2.) Textdomains, die keine sind, wie hier (BUG):

    PHP
    $decimalPlace = __(".", 'Used for decimal separation: (The dot in 1,000.00).', "AWPCP");

    3.) Die Sprachdatei wird geladen während des Ladens des Plugins und nicht nach Intialisierung von WordPress. Damit gilt die Spracheinstellung, die zum Zeitpunkt des Starts des Plugins gilt und nicht die Spracheinstellung, die möglicherweise eine Plugin oder der Core während der Initialisierung festlegt (BUG):

    PHP
    // l10n MO file can be in the top level directory or inside the languages
    // directory. A file inside the languages directory is prefered.
    if (get_awpcp_option('activatelanguages')) {
        $basename = dirname(plugin_basename(__FILE__));
        if (!load_plugin_textdomain('AWPCP', false, $basename . '/languages/')) {
            load_plugin_textdomain('AWPCP', false, $basename);
        }
    }

    Damit kommt es innerhalb des Plugins zu Problemen, wenn es um das Backend geht. Für das Frontend gibt es nur dann Probleme, wenn WordPress mehrsprachig ist und die aktive Sprache erst bei Init festgelegt wird.

    Das sollte an den Author weitergegeben werden, damit er sein Plugin reparieren kann.

    Es wäre als Erstes mal sinnvoll, dem Pluginauthor die Sprachdatei zur verfügung zu stellen. Dann wird diese in dem Zustand auch beim Update mit mit ausgeliefert.

    Zweitens kannst du deine Sprachdateien sichern, ein Update machen, diese wieder hochladen und dann z.B. mein Plugin (http://wordpress.org/extend/plugins…g-localization/) benutzen, um die restlichen Texte dann direkt im Backend von WordPress übersetzen. Danach kannst du die Dateien wieder sichern für das nächste Update.

    gibt es eine Möglichkeit meine digitalen Güter (die Videos) irgendwie zu sichern und davor zu schützen das diese nicht unerlaubt weitergegeben werden oder gar weiter verkauft werden?


    Das gleiche versucht auch die Musikindustrie in den Griff zu bekommen. Wenn erstmal das Gut irgend jemand hat, kann man nur schwer dafür sorgen, daß es nicht kostenlos oder re-sale weitergegeben wird.
    Natürlich bleibt immer ein Rechtsweg, aber mach das mal, wenn der reseller sonstwo sitzt und du die Prozesskosten vorschiessen mußt.

    Die MI versucht das mit DRM (digital rights management) indem sie das Gut an ein bestimmtes Gerät bindet und die Abspielbarkeit nur dort erlaubt. Aber auch dies kann mit Aufwand umgangen werden.

    So gesehen bleiben dir nicht viele Möglichkeiten. Gegen die Trittbrettfahrer kannst du am Ende nur deine Kompetenz und Service setzen, sodaß es nicht lukrativ ist, diese Güter außerhalb deines Supports zu erwerben oder zu nutzen.

    Ja, das ist der Grund.
    Anbei die ganze Sache als Plugin.

    Die Sektion, wo Änderungen zu machen sind, ist markiert und dieses hier:

    Code
    //------------ configuration starts here ---------------------------------------
        //additional entries per paginated page from foreign table
        $per_page = 10;
        //define the static WordPress Page ID should contains the additional content
        $affected_page_id = 43;
        //external database settings
        $db_user = 'root'; $db_password = ''; $db_name = 'purity'; $db_host = 'localhost';
        //------------ configuration ends here -----------------------------------------

    Und natürlich den Tabellennamen in den 2 SQL Abfragen darin anpassen (und Ausgabe deiner Columns, was immer du da auslesen magst).

    Dort kannst du auch die Daten für die andere Datenbank angeben und mit der anderen DB arbeiten. Hab ich auch testet.
    Wenn du es als Plugin einsetzt, dann muß es aus der functions.php wieder raus :-)

    page-with-external-content-paginated.zip

    Ich glaub, du liest nicht, was ich geschrieben hab.

    Mein statische Seite heißt "Testpage für Externen Inhalt" und hat die ID 43. Das sollte bei dir schon mal anders sein. In meinem Codeschnipsel beziehe ich mich weiterhin auf meine Datenbanktabelle "cs_xt_counter_userinfostat", die zwar in der gleichen Datenbank steht, aber nicht zu WordPress gehört.
    Die Struktur meiner Tabelle hab ich ja beschrieben, die Struktur deiner Tabelle solltest du selbst kennen.
    Also muß das noch an deine Tabelle angepasst werden und die Ausgabe der eingelesenen Zeilen entsprechend deinen Wünschen angepasst werden.
    Wenn das samt deiner Anpassungen dann in deiner functions.php steht, dann bekommst du automatisch auf deiner statischen Seite die Fremdinformationen zum blättern angezeigt.

    Sobald du die von mir genannten Variablen (Seiten ID, Anzahl pro Seite) und die entsprechende Datenbanktabelle in den 2 SQL Anfragen angepasst hast (sowie in der enthalten Schleife über die Zeilen aus der anderen Tabelle das markup und die Daten so generiert hast, dann erscheint es in der Seite, die du mit Seiten ID festgelegt hast automatisch).

    Hallo Andreas,

    vielleicht hilft dir dies weiter. Zuerstmal eine Tabelle, die ich zusätzlich zu WordPress Tabellen in meiner Datenbank habe:

    Code
    CREATE TABLE IF NOT EXISTS `cs_xt_counter_userinfostat` (
      `id` int(14) NOT NULL AUTO_INCREMENT,
      `lang` varchar(255) COLLATE latin1_german2_ci NOT NULL DEFAULT '',
      `os` varchar(255) COLLATE latin1_german2_ci NOT NULL DEFAULT '',
      `browser` varchar(255) COLLATE latin1_german2_ci NOT NULL DEFAULT '',
      `robot` varchar(255) COLLATE latin1_german2_ci NOT NULL DEFAULT '',
      `hits` int(14) NOT NULL DEFAULT '0',
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci AUTO_INCREMENT=184 ;


    Bei mir hat dieses Tabelle im Test über 180 Einträge, die Betriebssystem, Browser etc. als Statistiken enthält. Diese möchte ich nun mit 10 Zeilen pro blätterbarer Seite auf einer WP static Page anzeigen, ohne mir jemals wieder Gedanken darüber zu machen und vollautomatisch je nach Zustand der "externen Tabelle".

    Zuerst habe ich einen neue Testseite angelegt. Diese hat bei mir die ID=43. Kannst deine existierende Seite auch benutzen.

    Danach habe ich in die functions.php meines Themes folgendes eingebaut. Man kann es auch als Plugin verpacken, dann geht es mit jedem Theme:


    Die einzigen Änderungen, die du machen müsstest, wären $per_page (Anzahl Zeilen pro Page), $affected_page_id (die betroffend statische WordPress Seite) , natürlich die entspechende Datenbanktabelle in beiden SQL Abfragen und ggf. das Markup, in das du die Daten verpacken willst.

    Dann läuft das ganz ohne weiteres Zutun mit einem stinknormalen Page Template, ich hatte Twenty Twelfe im Einsatz. Hier ein Screenshot:

    Ich versuch mal zu verstehen und wiederzugeben, was ich mir aus deinen Fragen zusammenreimen kann. Bitte korrgier mich, wenn ich das falsch verstehe:

    1.) du hast eine Datenbank (oder DB Tabelle) die nix mit WordPress zu tun hat.
    2.) die Inhalte dieser Tabelle (Anzahl) ist bei weitem größer als 30 Einträge.
    3.) du möchtest alle Einträge per WordPress statischer Seite blätterbar machen in Schritten zu 30 Datenbankeinträgen.
    4.) du hast dazu ein eigenes WordPress Template für eine spezielle statische Seite angelegt und diese mit o.g. Code modifiziert.

    Wenn das o.g. stimmt, dann wirst du das auf diese Weise nicht zum Blätterns bringen können. In so einem Falle kommst du nur mit einem eigenen Plugin dahin, das auf eine spezielle statische Page während des Erstellen des eigentlichen Datenbankinhaltes der WordPress Seite eingreift und deren Inhalt noch vor Benutzung als Loop im Template so modifiziert, das schon ein paginierbares Ergebnis vorliegt.

    Sollte ich was falsch verstanden haben, dann ist o.g. kurzer Anriss einer Lösungsmöglichkeit hinfällig. Deswegen hab ich den noch nicht detaillierter ausgeführt.

    Also wenn du von Provider xy die Domain per ANAME oder CNAME auf die IP von MSI konfiguriert hast, dauert das ein bischen, bis alle DNS Server das kennen. In deiner Multisite mappst du derzeit diese Domain auf deine entsprechende Subdomain und schaltest sie primär.

    Ab dann (und nach DNS Updates) wird ein Aufruf der Domain xy direkt auf MSI aufschlagen und per domain mapping auf die subdomain übersetzt. Produziert wird dann vom DM Plugin wieder die Domain, Links und URL's die der Domain entsprechen, von der du gekommen bist.

    PS: Setzt allerdings voraus, das du die IP ganz alleine hast und keine Share VHOST IP.

    Je nach Schiftart, Text und Buchstabenanordnung ergeben sich automatisch unterschiedlicher Platzbedarf in x und y Richtung, das kann man mit einem festen Wert niemals erschlagen (ausser du nimmst eine Schiftart, die für jeden Buchstaben gleich breit ist wie Courier New oder Monotype. Ansonsten würde ich die Höhe der Box tatsächlich festlegen und nur sicherstellen, das der gegrenzte Text im Normalfall passt.
    Den ReadMore Button (oder Link) würde ich per CSS sowieso ganz nach unter an das Ende der Box verschieben, denn nur so bekommst du den einheitlich auf die gleiche Höhe.