Wstęp

Z Dokumentacja CMS WEGO

Spis treści

Informacje podstawowe

Ogólna metoda wołania API modułów

Moduły posiadają znormalizowane API, do którego serwis ma dostęp na kilka możliwych sposobów. Część z funkcji ma sens tylko w przypadku wywołania z poziomu kodu PHP. Każdy moduł udostępnia określoną listę metod API. Każda z nich może przyjmować inną liczbę parametrów, część z nich może być opcjonalna, dlatego też chcieliśmy uniknąć udostępniania API w postaci globalnych funkcji PHP. Zanim jednak przejdziemy do opisu API warto wspomnieć o dokumentacji API dostępnej z poziomu panela.

Inicjalizacja WEGO

Poniższy kod powinien znaleźć się na początku każdego pliku PHP, który musi bezpośrednio obsłużyć zapytanie wysłane z przeglądarki (z pominięciem automatycznego routingu wego):

require_once($_SERVER['DOCUMENT_ROOT'] . '/panel/check.settings.php');
require_once($_SERVER['DOCUMENT_ROOT'] . '/class/engine.class.php');
require_once('wegocms/class/engine.class.php');
 
$engine = engine::getInstance($systemData);
$site = new siteEngine($engine);

Wywołanie API modułów

Od tego momentu zmienna $site zawiera wskaźnik na silnik serwisu. Dostęp do modułów jest możliwy przez funkcję call klasy engine. Przykład:

$foo = $site->engine->call('news/list', array('filter' => 'current'));

Ogólna postać wywołania jest następująca:

call('nazwaModułu/nazwaMetodyApi', array('parametr1' => 'wartość1', ...))

Kod Smarty

W przypadku większości typowych serwisów, nie ma potrzeby omijania wbudowanego routingu WEGO i można pozwolić samemu silnikowi na tłumaczenie adresów wysłanych z przeglądarki na odpowiednie wywołania szablonów Smarty. W takim przypadku nie ma potrzeby pisania choćby jednej linii kodu PHP, a dostęp do niezbędnego API realizuje samo Smarty.

Dostępna jest ogólna metoda wywołująca API dowolnego modułu:

{wego brick="nazwaModułu/nazwaMetodyApi" [parametr1="wartość1" ...] [assign="nazwaZmiennej"]}

Nazwę modułu i nazwę metody można znaleźć w panelu WEGO(zaraz po zalogowaniu po prawej stronie jest widoczny link do API), podobnie listę atrybutów, które podaje się w konwencji HTML/XML - jako pary nazwa=wartość. Istnieje jeden specjalny atrybut, assign, który pozwala przypisać wynik wywołania do odpowiedniej zmiennej Smarty.

W celu dokładnego zapoznania się z danymi zwracanymi przez daną metodę warto skorzystać z funkcji
{debug}
co spowoduje wyświetlenie informacji o wszystkich dostępnych z poziomu Smarty zmiennych wraz z ich wartościami.

Drzewo katalogów

Jedynym obowiązkowym katalogiem w WEGO jest /templates/ w którym należy umieszczać szablony Smarty. Jednakże z uwagi na przejrzystość systemu zalecamy następującą organizację katalogów:

  • /templates/ - wyżej wymieniony obowiązkowy katalog z szablonami Smarty
  • /css/ - arkusze stylów
  • /js/ - skrypty JavaScript
  • /images/ - wszelkiego rodzaju obrazki
  • obrazki dodawane za pomocą TinyMCE dla artykułów, produktów, galerii zdjęć są dodawane do katalogu /images_mce/
  • pliki dodawana za pomocą TinyMCE są umieszczane w katalogu /files_mce/

Ważne pliki

  • /css/main.css określa style z których korzysta TinyMCE przy edycji WYSIWYG w panelu.
  • /templates/not-found.html - wywoływany przy wystąpieniu błędu 404
  • /templates/box/pagging.html - stworzony przez nas skrypt realizujący stronicowanie (np. stronicowanie w archiwum aktualności)

Dostępne skrypty

WEGO zawiera kilka gotowych skryptów JS oraz .htc. Dostępne są:

  • /css/csshover.htc - efekt "whatever hover" dla IE
  • lightbox.js - zmodyfikowany na potrzeby WEGO lightbox 2.0. Modyfikacja dotyczyła ukrywania animacji flash przy wywoływaniu lightboxa. Wymagane pliki:
    • /css/lightbox.css
    • /js/lightbox.js
    • /js/prototype.js
    • /js/scriptaculous.js
    • /images/prev.gif
    • /images/next.gif
    • /images/loading.gif
    • /images/close.gif
  • /js/suckerfish.js - popularny skrypt suckerfish dropdowns.

Dostępne są też skrypty z efektami dla scriptaculous.js:

  • /js/builder.js
  • /js/controls.js
  • /js/dragdrop.js
  • /js/effects.js
  • /js/slider.js
  • /js/util.js

oraz dwa bardzo przydatne skrypty:

  • /js/swfobject.js -osadzanie flasha na stronie z obejściem patentu Eolas
  • /js/pngfix.mod.js - przezroczyste png dla IE - ta wersja jest zmodyfikowana celem poprawienia współpracy z swfobject.js

Od wersji WEGO 1.2 usunęliśmy biblioteki prototype i scriptacoulous wraz z opartym na nich lightboxem. Zamiast tego zdecydowaliśmy się używać jquery.lightbox wraz z jquery(biblioteka jest po prostu lżejsza). Przy aktualizacjach skryptu jquery.lightbox należy pamiętać o dodaniu kodu:

$(document).ready(function(){
  $(function() {
   $('a[@rel*=lightbox]').lightBox();
  });  
 });

które umożliwią poprawną współpracę skryptu z WEGO.

Użytkownik może oczywiście dodawać własne skrypty js.

Obsługa wersji językowych

Wybór wyświetlanej wersji językowej

WEGO automatycznie wykrywa język w którym powinien zostać wyświetlony serwis (negocjuje język z przeglądarką). Opcję tą można wyłączyć z poziomu panelu Wego -> ustawienia. Jeśli negocjacja wersji językowej z przeglądarką zakończy się niepowodzeniem, serwis jest wyświetlany w domyślnej wersji językowej, którą również można zmienić w panelu Wego -> ustawienia. Informacja o bieżącej wersji językowej jest przechowywana w zmiennej:

{$lang}

Konstrukcja adresów URI odwołujących się do dowolnej strony w aktualnym języku:

/{$lang}/template_name

Przykład menu umożliwiającego zmianę aktualnie wyświetlanej wersji językowej:

<h2>{translate text="[header] wersja językowa"}</h2>
    <ul id="languages">
      <li><a href="/pl/{$section}/{$subsection}">{translate text="[menu] pl"}</a></li>
      <li><a href="/en/{$section}/{$subsection}">{translate text="[menu] en"}</a></li>
      <li><a href="/de/{$section}/{$subsection}">{translate text="[menu] de"}</a></li>
    </ul>

Dodawanie/usuwanie wersji językowych

Dodawanie i usuwanie wersji językowych jest możliwe tylko w zakładce ustawienia w Panelu Sterowania WEGO. Do wprowadzenia tych zmian niezbędne są uprawnienia superadministratora.

Osobiste