Skocz do zawartości

Rekomendowane odpowiedzi

Opublikowano

Integruje forum ipb 3+ ze stroną.

Jedną z funkcjonalności jest wyciągnięcie kalendarza na stronę główną STRONY.

Ponieważ nie bardzo wiedziałem, skąd wyciągnąć informacje o wydarzeniach z bieżącego miesiąca postanowiłem przerobić plik calendars.php i w metodzie calendarShowMonth() zwracam kalendarz, który w oryginale jest przypisywany tylko do zmiennej.

Dzięki temu i kilku preg_replace jestem w stanie wyświetlić sobie tabelkę z kalendarzem:

$forum_path = 'forum/';
chdir( $forum_path );
$forum_path='';
define( 'IPB_THIS_SCRIPT', 'public' );
require_once( $forum_path . 'initdata.php' );
/**
* Get IPB registry
*/
require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );
$ipbRegistry    = ipsRegistry::instance();
$ipbRegistry->init();
include_once $forum_path."admin/sources/base/ipsController.php";
require_once( $forum_path . 'admin/applications_addon/ips/calendar/modules_public/calendar/calendars_1.php' );
$cal= new public_calendar_calendar_calendars;
$cal->makeRegistryShortcuts($ipbRegistry);
$cal -> initCalendar();
$calendar=$cal -> calendarShowMonth();
$this->month=$calendar[1];
$this->year=$calendar[2];
$c=preg_replace(array("/<ul>[^<]*<li class=\'cal\'>[^<]*<a[^>]+>[^<]+<\/a>[^<]*<\/li>[^<]*<\/ul>/",'/: Dziś/','/<th[^>]+>[^<]*<a[^>]+>[^<]*<img[^>]+>[^<]*<[^>]+>[^<]*<[^>]+>/'), array(' ',' ',' '), $calendar[3]);
chdir("../");
return $c;

A teraz moje pytanie. Czy da się to zrobić dzięki jakiejś klasie w "pretensjonalniejszy" sposób? Mój będzie mnie zmuszał do zmiany regexpa za każdym razem gdy zmieni się skin kalendarza...

Opublikowano

Trochę niżej masz metodę getMiniCalendar().

a ta metoda, która wywoływałem wywołuje ją z 5 razy. Że też tego nie zauważ yłem. :)

solved.

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.