FuNi – zmyślny CMS na plikach tekstowych

Narzędzia SEO Luty 27th, 2010

FuNi jest darmowym CMSem opartym na plikach tekstowych. Inspiracją do napisania tego prostego systemu zarządzania treścią był PikoCMS mendaxa. Od razu przyznam się, że nigdy nie używałem tego produktu. Po prostu szukałem narzędzia, które pomogłoby mi w prosty sposób zarządzać artykułami na stronach bez konieczności żmudnej konfiguracji bazy danych.

PikoCMS wyglądał ok, ale zupełnie nie pasował do mojej koncepcji, nie generował dodatkowych podstron dla tagów, a zarządzanie nim wydawało się nieczytelne ze względu na „wypluwanie” i edycję wszystkich danych na raz. Był prosty, chciałem czegoś bardziej zmyślnego. Przeglądałem tematy na PiO dotyczące prostych CMSów. Większość z nich wcale nie była prosta, a prawie każdy korzystał z bazy danych. Oczywiście trudno się nie zgodzić z tym, że MySQL daje o niebo większe możliwości, ale ja potrzebowałem czegoś względnie małego i prostego z możliwością szybkiej instalacji.

Największy nacisk w skrypcie został położony na sposób przechowywania danych, tak by mógł być jak najbardziej wydajny, przy zachowaniu nieduplikowania tych samych danych w kilku plikach. Wybrane rozwiązanie przypomina nieco sposób przechowywania informacji w bazach danych.

Szybki dostęp:

  1. Wstęp
  2. Demo
  3. Download
  4. Instalacja
  5. Obsługa
  6. Szablony
  7. FAQ

Co charakteryzuje FuNi:

  • wydajność; mimo, że korzysta wyłącznie z plików tekstowych, to wybrane rozwiązanie sposobu przechowywania danych jest przemyślane
  • instalacja ogranicza się do wgrania plików na serwer
  • proste, 5-minutowe dostosowywanie szablonów; całość zamyka się do edycji 1 pliku
  • wbudowany, intuicyjny edytor HTML; możliwość kopiowania artykułów bezpośrednio z Worda
  • wgrywanie zdjęć do galerii; nie musimy używać połączenia FTP, możemy to zrobić przez panel
  • obsługa tagów, generujących dodatkowe podstrony
  • zarządzanie artykułami; intuicyjne, proste i szybkie
  • import artykułów z plików tekstowych; wystarczy przygotować pliki o odpowiednim formacie i wgrać
  • pingowanie; przy dodawaniu lub imporcie arykułów skrypt wysyła pingi
  • mapa strony; linki do wszystkich artykułów
  • opcje ustawień

W skrypcie nie mogło zabraknąć oczywiście implementacji przyjaznych adresów URL:)

Warunkiem użytkowania FuNi jest pozostawienie linka prowadzącego do strony autora. Opcją dla osób, które nie chcą „ujawniać” swoich stron jest wykupienie możliwości jego niewyświetlania. W przypadku uiszczenia kwoty 59zł netto (71,98zł brutto) możemy usunąć informację o skrypcie na każdej stronie, na której zostało zainstalowane oprogramowanie i której właścicielem jest ten sam Licencjonobiorca. Tym samym możliwość taka dotyczy wszystkich domen właściciela licencji.

Pieniążki w kwocie 71,98zł należy wpłacać na konto:

KEO
ul. Bursztynowa 41/32
20-576 Lublin
NIP: 7123104545
MultiBank: 49 1140 2017 0000 4502 0755 3011

Tytułem: Oprogramowanie FuNi – usunięcie linka ze stopki

Po dokonaniu wpłaty proszę koniecznie wysłać maila na adres ps{osiołek}iqq.pl. W treści proszę zawrzeć:

  • dane do faktury (dane firmy lub osoby prywatnej, w tym nr NIP)
  • dane osoby lub firmy, której przyznana zostanie możliwość usunięcia linka ze stopki

Demo:

Wygląd zewnętrzny:
http://demo.ghosti.pl

Panel administracyjny:
http://demo.ghosti.pl/ext/

login: deMo
hasło: deMo1

Zrzuty ekranu:

Wygląd zewnętrzny

Panel administracyjny

Download

Pobierając skrypt lub wykorzystując go w jakikolwiek sposób jednocześnie oświadczasz, że zapoznałeś/aś się z warunkami licencji, akceptujesz je i zgadzasz się na warunki rekompensaty w przypadku naruszenia warunków użytkowania skryptu FuNi.

Pobierz FuNi CMS
8736 Pobrań
Pobierz Funi Szablony1
2389 Pobrań
FuNi v.1.0 Beta4 Szablony 1

Instalacja

  1. Edycja pliku conf.php, w tym miejscu ustawiamy login i hasło do panelu administratora oraz nazwy odpowiednich katalogów.
  2. Wgranie wszystkich plików na serwer.
  3. Ustawienie chmodów wg poniższego schematu

Dla plików:

_heart.txt 666
_settings.txt 666
_tags.txt 666

Zależnie od ustawień serwera zaleca się ustawienie niższych chmodów, tj. dla plików 644 lub 664. Do testowania poprawności działania skryptu z wybranymi chmodami najlepiej używać zakładki ustawienia. Po kliknięciu przycisku Zmień nowe dane zostaną zapisane lub wystąpi błąd (zależnie od ustawień chmodów dla pliku _settings.txt).

Dla katalogów:

katalog_galerii 777
katalog_artykułów 777

Domyślnymi katalogami są: dla artykułów – katalog funi, dla galerii katalog – zdjecia. Zależnie od ustawień serwera zaleca się ustawienie niższych chmodów, tj. dla katalogów 755 lub 775. Do testowania ich poprawności najlepiej skorzystać z opcji wgrywania zdjęć na serwer.

Obsługa

Dostęp do panelu administracyjnego uzyskujemy dopisując do adresu ext/. Jest to domyślny adres zarządzania skryptem.

Zakładka dodaj

  • dodawanie i publikowanie nowych artykułów
  • wgrywanie zdjęć do galerii (aby wgrać klikamy na „Wgraj do galerii” – prawy górny róg, wybieramy plik i wgrywamy go, w rezultacie dostajemy adres przesłanego zdjęcia, teraz pozostaje skorzystać z edytora HTML, klikamy Obraz i wklepujemy do pola URL adres zdjęcia)

Zakładka edytuj

  • edycja i usuwanie artykułów

Zakładka import

  • import artykułów z plików tekstowych

Warunkiem są odpowiednio przygotowane pliki tekstowe.

Pierwsza jego linijka to tytuł nowego artykułu (jako adres URL może być brany tutuł artykułu lub nazwa importowanego pliku, zależnie od ustawień -> patrz zakładka ustawienia).

Druga linijka to oddzielone przecinkiem tagi przypisane do artykułu.

Kolejne dotyczą już samej treści artykułu. Stosowanie tagów HTML jest dozwolone.

W pierwszym etapie wgrywamy pliki na serwer, dopiero potem możemy wybierać, które pliki chcemy zaimportować. Nie należy przejmować się białymi znakami, takimi jak spacje czy tabulatory, występującymi na początkach i końcach linii. Zostaną one automatycznie usunięte.

Nową opcją jest możliwość importu artykułów z jednego pliku. W tym celu należy wgrać na serwer odpowiednio przygotowany plik input.txt, w którym artykuły powinny być oddzielone od siebie podwójnym znakiem nowej linii (podwójnym enterem). Po kliknięciu opcji „Pokrój plik input.txt” automatycznie zostaną utworzone pliki z pojedynczymi artykulami, które będzie można już normalnie importować (wszystkie na raz lub pojedynczo).

Zakładka ustawienia

  • edycja ustawień skryptu, w tym m.in. włączanie/wyłączanie pingowania, ustawienia dla importu, ustawienia dla tagów, meta-tagi strony, struktury adresów URL, panel boczny.

Dostosowywanie szablonów

Dostosowanie szablonu polega na stworzeniu pliku template.php z wykorzystaniem funkcji udostępnianych przez skrypt. Do wersji, którą pobierasz dołączony jest tak przygotowany plik.

Dostępne funkcje:

generateLegal()

bezwzględnie wymagana funkcja, drukuje informacje o skrypcie; jej umieszczenie jest warunkiem licencji użytkowania bezpłatnego

generateMenu($begin,$end,$show_map,$limit,$chars,$random,$trim)

funkcja wyświetla linki do artykułów, 7-parametrowa, kolejno
$begin – kod wyświetlany przed każdym artykułem, np. ‚<li>’, domyślnie ”
$end – kod wyświetlany po każdym artykule, np. ‚</li>’, domyślnie ”
$show_map – czy pokazywać link do mapy, np. false (true – tak, false – nie), domyślnie false
$limit – ograniczenie wyświetlania ilości linków (0 oznacza wyświetl wszystkie), domyślnie 0
$chars – ograniczenie ilości znaków dla tytułów artykułów (0 oznacza wyświetl cały tytuł), domyślnie 0
$random – czy mają być losowe (true – tak, false – nie), domyślnie false
$trim – czy obciąć końcowy znak $end (true – tak, false – nie), domyślnie false

Przykładowe wywołania w szablonie:

<?php generateMenu(‚<li>’,'</li>’,true) ?>
Jako wynik otrzymamy linki do wszystkich artykułów w kolejności od najstarszego i na końcu także link do mapy strony, wszystkie ozdobione znacznikami li.

<?php generateMenu(‚<li>’,'</li>’,false,3,15) ?>
Spowoduje to wyświetlenie 3 linków prowadzących do najstarszych artykułów, każdy tytuł zostanie ograniczony do 15 znaków.

<?php generateMenu(‚<li>’,'</li>’,true,0,0,true) ?>
W efekcie zostaną wyświetlone linki do wszystkich artykułów, jednak w losowej kolejności, każdy tytuł zostanie pokazany w całości. Dodatkowo wyświetlony zostanie także link do mapy.

<?php generateMenu(”,’ | ‚,true,1,25,false,true) ?>
Linki zostaną wyświetlone w ilości 1, będzie to link do najstarszego artykułu, jeśli jego anchor będzie dłuższy niż 25 znaków, to zostanie obecięty do tyluż znaków. Linki będą oddzielone od siebie wyrażeniem ” | „. Dodatkowo wyświetlony zostanie także link do mapy. Po ostatnim linku wyrażenie ” | ” nie wystąpi.

generateTags($begin,$end,$before,$after,$random,$limit,$trim)

funkcja wyświetla linki do tagów, 7-parametrowa, kolejno
$begin – kod wyświetlany przed całym blokiem tagów np. ‚<h4>Tagi</h4><ul>’, domyślnie ”
$end – kod wyświetlany po całym bloku z tagami, np. ‚</ul>’, domyślnie ”
$before – kod wyświetlany przed każdym tagiem, np. ‚<li>’, domyślnie ”
$after – kod wyświetlany po każdym tagu, np. ‚</li>’, domyślnie ”
$random – czy mają być losowe (true – tak, false – nie), domyślnie false; false oznacza wyświetl te przypisane do artykułu
$limit – ograniczenie wyświetlania ilości tagów (0 oznacza wyświetl wszystkie), domyślnie 0
$trim – czy obciąć końcowy znak $after, domyślnie false

Przykładowe wywołania w szablonie:

<?php generateTags(”,”,”,’ ‚,true,6) ?>
Spowoduje to wyświetlenie 6 losowych tagów.

<?php generateTags(‚<h4>Tagi</h4><ul>’,'</ul>’,'<li>’,'</li>’) ?>
W efekcie wyświetlony zostanie blok tagów powiązanych z artykułem.

<?php generateTags(”,”,”,’, ‚,true,20,true) ?>
Jako wynik zobaczymy linki do 20 losowo wybranych tagów, oddzielonych przecinkiem. Po ostatnim tagu przecinek nie zostanie wyświetlony, o czym decyduje ostatni parametr funkcji.

generateMeta($css)

wyświetla meta-tagi strony, w tym tytuł strony
$css – nazwa pliku lub ścieżka do arkusza stylów CSS, np. ‚default.css’, domyślnie ”; wartość pusta oznacza, że link do arkusza stylów w ogóle nie będzie wyświetlany

generateTopic()

wyświetla temat strony, konfigurowany w zakładce ustawienia

generateTitle()

wyświetla tytuł strony; jest to temat artykułu, dla tagu inny

generateAbout()

wyświetla informacje o stronie (zakładka ustawienia); jeśli wartość pusta to wyświetlany jest adres strony

generateAddress()

wyświetla adres strony

generateContent()

wyświetla treść artykułu

generateSidebar()

wyświetla kod panelu bocznego, konfigurowanego w zakładce ustawienia

FAQ

1. Dlaczego zamiast strony głównej dostaję komunikat:

„404 Nie znaleziono
Strona nie istnieje. Przyczyna moze byc brak artykulu z nazwa pliku _.”?

Aby poprawnie wyświetlana była strona główna wymagane jest, by jeden z artykułów miał jako nazwę pliku podany znak _. Skorzystaj z zakładki edycja i zmień nazwę jednego z artykułów na _ lub dodaj nowy artykuł wpisując jako nazwę pliku znak _.

2. Dlaczego strona główna nie jest pierwsza w menu generowanym funkcją generateMenu()?

Na kolelność wyświetlania pozycji menu wpływ ma data stworzenia artykułu. Aby tak było należy utworzyć artykuł z nazwą pliku _ jako pierwszy, można to zrobić dodając nowy artykuł lub importując go.

3. Co zrobić, aby w adresach tagów podobnie jak dla artykułów widniał na końcu znak /?

Za wyświetlanie bloku tagów odpowiada funkcja generateTags() , której implementacja zawarta jest w pliku router.php. Dla osiągnięcia zamierzonego celu od wersji 1.0 Beta2 wzwyż wystarczy dokonać odpowiednich zmian w panelu admina w zakładce ustawienia.

4. Jak uzyskać własny adres do podstrony tagu?

Dla uproszczenia załóżmy, że chcemy uzyskać adres o strukturze /tag/nazwa-tagu/.

Ważne! Od wersji 1.0 Beta2 możemy dowolnie definiować strukturę adresów URL dla artykułów, tagów oraz mapy strony. Jeśli chcemy wykonać takie zmiany to wystarczy przejść do zakładki ustawienia w panelu administracyjnym, nie ma potrzeby jakichkolwiek zmian w plikach. W miejsce nazwy tagu należy wpisać {TNAME}, a w miejsce nazwy artykuły {ANAME}.

Dla uzyskania zamierzonego efektu w polu Struktura URL dla tagów należy wpisać wartość /tag/{TNAME}/.

5. Dlaczego nie działa import w funi? Tak jakby nie widział plików. Czy wgram na serwer normalnie, czy za pośrednictwem panelu, caly czas wyświetla „brak plików do importu”.

Po pierwsze pliki do importu muszą mieć rozszerzenie .txt, po drugie ich nazwy mogą się składać tylko z liter (bez typowo polskich), cyfr i znaków przecinka, myślnika lub znaku podkreślenia. Dodatkowo nie mogą składać się z samych cyfr, np. 12.txt. Taka formę przyjmują po imporcie, wtedy nie będą wyświetlone tylko uznane za już importowane.

6. Po zalogowaniu do panelu admina nie widzę absolutnie nic poza całą pustą stroną koloru tła panelu, co mogę zrobić w tej sytuacji?

Zapewne w pliku conf.php zdefiniowałeś nieprawidłowy login lub hasło. Typowym problemem jest wybranie zbyt krótkiego hasła. Względy bezpieczeństwa nie pozwalają na wybranie hasła poniżej 5 znaków. Po więcej szczegółów zajrzyj do pliku conf.php. Przy każdej ze zmiennych jest tam wypisany zestaw dopuszczalnych znaków i liczby tychże znaków.

7. Chciałbym/-ałabym, żeby nieistniejące podstrony serwisu zamiast błędu 404 o nieznalezieniu strony przekierowywały użytkowników na stronę główną.

Pierwszym krokiem jest stworzenie lub wgranie artykułu na stronę główną. By przystąpić do dalszej części absolutnie konieczne jest poprawne działanie strony głównej (tj. niezgłaszanie błędu 404 o nieznalezieniu strony po wejściu na stronę główną). W przeciwnym razie skrypt się zapętli. Otwórz teraz plik index.php z katalogu głównego i dokonaj zmian w jego końcowej części. Zamień w nim fragment:

header(„HTTP/1.1 404 Not Found”);
echo ‚<h1>404 Nie znaleziono</h1>’;
echo ‚Strona nie istnieje. Przyczyna moze byc brak artykulu z nazwa pliku <strong>_</strong>.’;

na

header (‚HTTP/1.1 301 Moved Permanently’);
header (‚Location: http://’.$_SERVER['HTTP_HOST']);

.

8. Wpisanie nieprawidłowego tagu w adresie URL powoduje przekierowanie 301 na stronę główną serwisu. Może to powodować problemy z weryfikacją właściciela serwisu poprzez wgranie pliku (usługi Google Analytics, Narzędzia dla webmasterów i inne). Tej weryfikacji można dokonać w inny sposób, np. dołączając odpowiedni meta tag. Jeśli jednak z jakich innych powodów chcesz, by nieprawidłowy tag zgłaszał błąd 404, to

Otwórz teraz plik router.php z katalogu głównego i dokonaj zmian w jego środkowej części. Zamień w nim fragment:

header (‚HTTP/1.1 301 Moved Permanently’);
header (‚Location: http://’.$_SERVER['HTTP_HOST']);

na

header(„HTTP/1.1 404 Not Found”);
echo „<h1>404 Nie znaleziono</h1>\nStrona nie istnieje.”;

.

Tagi: , , , , ,

Skomentowano 97 razy

  1. Ergo przy asortymencie rekuperatora przede doszczętnym uczęszcza odnieść troskę na:

    - ekonomiczność:

    Uściśla szlamie powietrza podgrzewacz jest w istnienie przecisnąć w cugu samotnej
    ery

  2. Bardzo udany skrypt, podoba nam się bardzo. Z pewnością będziemy go wykorzystywać jak najwięcej razy w swoich projektach, które realizujemy każdego dnia.

  3. If you desire to take much from this post then you have to apply such methods to your won blog.

  4. Mam wykupiony ten skrypt i szczerze mogę polecić. Bardzo lekki i stosunkowo konfigurowalny!

  5. Przepraszam za koment nie na temat, ale to bardzo ważne.
    Co roku w Przemyślu organizowane jest pochód Ukraińców na którym jawnie czczą zbrodnicze organizacje OUN i
    UPA które okrutnie zamordowały 200 000 Polaków na kresach w czasie 2 wojny światowej.
    Idą z czerwono czarną banderowską flagą. To jest jawne plucie Polakom w twarz za przyzwoleniem zdradzieckich władz Przemysla.
    Powiedzmy temu stop, to wstyd i hańba. Podpiszcie petycję, link zalączony.
    Jeśli czujesz się prawdziwym Polakiem i patriotą podpisz petycję
    i udostępnij link dalej, np na swoim Facebook-u. Zamordowane kobiety i dzieci na Wołyniu przewracają się w grobach kiedy święto zbrodniarzy
    UPA odbywa się na terenie Polski!

  6. I am really loving the theme/design of your site. Do you ever
    run into any internet browser compatibility problems?
    A few of my blog readers have complained about my blog not working correctly in Explorer but looks great in Opera.
    Do you have any tips to help fix this issue?

  7. Aktualna sytuacja na drogach, kotki, utrudnienia – drogowskaz24.pl

Dodaj komentarz