Gru
23
2011

Jak pogodzić kod ProLinka z blogami działającymi w sieci WordPress?

Przez wiele lat prowadziłem swoje blogi na niezależnych instalacjach WordPressa i dopiero w zeszłym tygodniu zebrałem się na to, żeby je wszystkie połączyć w sieć. Cała operacja przebiegłaby gładko i bezproblemowo, gdyby nie ProLink  i jego niezbyt szczęśliwie przemyślany system „instalowania” kodu w WordPressach.

W czym tkwił problem? Otóż ProLink, po dodaniu bloga do systemu, daje nam trzy pliki, które trzeba umieścić w głównym katalogu WordPressa. Przy pojedynczych blogach problemu nie ma, ale w sieci główny katalog mamy tylko jeden – wspólny dla wszystkich blogów. Zgłosiłem problem do supportu ProLinka, ale niestety od tygodnia nie doczekałem się żadnej pomocy, dlatego na własną zrobiłem małą modyfikację jednego z plików ProLinka, która umożliwia bezproblemowe korzystanie w sieci blogów WP. ProLink jest zbyt cennym źródłem dodatkowego dochodu, żeby tak sobie czekać w nieskończoność na oficjalne rozwiązanie ;)

Dla każdego bloga dodanego w ProLinku otrzymujemy trzy pliki:

  • prolink.php
  • prolink_0186118al9s6a5ekcnd3bda5109d90p4.txt
  • prolink_config.php

Pierwszy z plików jest identyczny dla wszystkich blogów, więc wystarczy wrzucić go tylko raz do głównego katalogu naszej sieci. Drugi plik także możemy śmiało wrzucać do głównego katalogu, ponieważ ma on inną (unikatową) nazwę dla każdego z blogów. Natomiast jeżeli chodzi o trzeci plik, to trzeba go nieco zmodyfikować, ponieważ nazwę ma on wspólną dla wszystkich blogów, ale zawartość już się różni.

Standardowa zawartość pliku prolink_config.php wygląda następująco:

<?php
/**
 * Każdy użytkownik systemu posiada własną konfigurację, które jest
 * generowana do tego pliku konfiguracyjnego.
 */

/**
 * C_ID jednoznacznie identyfikuje użytkownika systemu.
 */
define('C_ID','0186118al9s6a5ekcnd3bda5109d90p4');

/**
 * Wersja systemu klienta zainstalowana u użytkownika.
 */
define('S_VERSION','1.0');

/**
 *
 */
error_reporting(0);
@ini_set('display_errors', '0');

Cały myk polega na tym, żeby zastąpić tą linię:

define('C_ID','0186118al9s6a5ekcnd3bda5109d90p4');

Takim kawałkiem kodu (dla przykładu dodałem od razu dwa kolejne blogi):

switch($_SERVER['HTTP_HOST']) {
case 'mydiy.pl':   define('C_ID','0186118al9s6a5ekcnd3bda5109d90p4'); break;
case 'więcek.pl':  define('C_ID','e58fac4a7c1d032b49bcc3024da5109d'); break;
case 'wiecek.biz': define('C_ID','8a7c1032b49bdfac9363bda5109d93ba'); break;
}

Oczywiście adresy blogów, oraz odpowiadające im identyfikatory musicie uzupełnić swoimi danymi :)

Tak zmodyfikowany plik także wrzucamy do głównego katalogu naszej sieci. Przy dodawaniu kolejnych blogów wystarczy dorzucić drugi z podesłanych przez ProLinka plików, oraz zmodyfikować już istniejący trzeci plik dodając do niego kolejną pozycję z adresem bloga i jego identyfikatorem.

Żeby wszystko grało i buczało, musicie pamiętać o jeszcze jednym – wstawiając kod ProLinka w szablonach blogów, zawsze podawajcie ścieżkę do pliku prolink.php znajdującego się w głównym katalogu sieci.

I to by było na tyle. Po takim zabiegu system ProLinka prawidłowo wykryje pliki instalacyjne, a linki bez żadnych problemów będą się wyświetlać na każdym z blogów w sieci. Mam nadzieję, że komuś się ta mała modyfikacja przyda :)

Powiązane wpisy

O autorze: Łukasz Więcek

Jestem urodzonym majsterkowiczem. Swoją pasję do majsterkowania realizuję zarówno w świecie rzeczywistym, grzebiąc godzinami przy różnych projektach opisywanych na blogu myDIY - zrób to sam!, jak i wirtualnym, majstrując codziennie przy WordPressie.

8 komentarzy + Dodaj komentarz

  • tym oto wpisem witamy Łukasza jako kolejnego współredaktora na dev.WPzlecenia! :) Mam nadzieję, że na jednym wpisie się nie skończy ;)

    • Waszego tempa na pewno nie utrzymam, ale z pewnością od czasu do czasu będę opisywał jakieś drobne modyfikacje WP i różnych wtyczek (i pewnie tylko na tym się skupię:)

      • Witamy, witamy!
        Nie wiem jak Konrada, ale mnie raczej szybko dogonisz, bo jak widzę lubisz pisać i masz na to czas :)
        Tak zaczynam sobie myśleć, czy nie zrobią się nam jakieś specjalizacje autorsko-tematyczne za jakiś czas?

        Co do wpisu, to sam przymierzam się do sieci od jakiegoś czasu, więc mam kolejny impuls do tego!

  • Ciekawy wpisy. Moglbys napisac czy „wszystkie połączyć w sieć” oznacza wordpress mu czy cos innego?

  • Ja ze swojej strony mogę zaproponować dwa podobne rozwiązania.

    Pierwsze to modyfikacja sposobu Łukasza: zamiast case i edycji pliku przy każdej nowej stronie proponuję include/require i wrzucanie nowego pliku dla każdej domeny. Różnica co prawda niewielka, ale może komuś będzie wygodniej w ten sposób.

    Drugie oparłbym na .htaccess, przepisując link do prolink_config.php w zależności od domeny. Ten przykład też wymaga dodania nowego pliku i/lub katalogu dla nowej domeny.

    Ilu ludzi, tyle rozwiązań, zwiększam tym wybór metody. Niektórzy wolą edytować jeden plik, inni wolą wrzucać/usuwać plik przy dodawaniu/usuwaniu domeny.

Uwaga, leci reklama:



Gdzie nas czytać?

Autorzy »
Komentujący »
#wpzlecenia »