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://funi.ghosti.pl

Panel administracyjny:
http://funi.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
315 Pobrań
Pobierz Funi Szablony1
206 Pobrań
FuNi v.1.0 Beta2 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ć.

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.

Tagi: , , , , ,

Skomentowano 24 razy

  1. Odnośnie FAQ1 – próbuję dodawać nowy artykuł, edytować stare, ale wciąż nic, pomimo znaku _ w nazwa pliku nie działa…

  2. Czy plik _heart.txt po dodaniu artykułu jest niepusty? Czy katalog z artykułami, domyślnie „funi” zawiera wtedy pliki tekstowe?

  3. Plik _heart.txt jest zawiera trochę treści, katalog z artykułami podobnie – wszystkie artykuły w plikach .txt.

  4. Mówiąc szczerze, to tak w ciemno ciężko mi coś powiedzieć, ale możesz spróbować zainstalować skrypt na innym hostingu lub podesłać mi pliki (wystarczą tekstowe z główego katalogu + katalog funi z zawartością), a ja to sprawdzę u siebie. Mail jest na podstronie „O mnie”. Aha..z jakiego hostingu korzystasz? Być może przyczyną są jakieś ustawienia serwera.

  5. Masternet.pl, czyli serwerownia hetzner. Zaraz przetestuję na innym hostingu :)

  6. Wpadłem przypadkiem na przyczynę problemu. Wartość zmiennej $_SERVER['REDIRECT_URL'] może być różna w zależności od ustawień serwera. Najprościej pobierz sobie nową wersję i powinno być ok:)

  7. Dzięki, teraz działa bez problemów :)

  8. A może jakiś przykład już gotowego szablonu css?

    Bo mi ni hoho szablon nie pasuje wpisuje i modyfikuje tak jak powinno być a tu wielki klops i szablon się rozjeżdża

  9. Zapowiada się znakomicie. Czy można tak skonfigurować skrypt by adres artykułu kończył się na .html lub .php?

  10. @Biznes, standardowa templatka jest dołączona od razu do skryptu, paczkę 5 innych możesz pobrać z tej strony. Zawiera ona obrazki, arkusz CSS i plik template.php. Wystarczy je po prostu nadpisać.

    @Rain, dziękuję. Już tak, ale trzeba pobrać nową paczkę i wtedy będzie można dowolnie konfigurować URLe:)

  11. Jeszcze taka sprawa. Jaki może być powód tego, że po nadaniu choćby nie wiem jakich chmodów, po zalogowaniu do panelu nie widzę absolutnie nic poza całą pustą stroną koloru tła panelu?;) Serwer w laohost, w zasadzie chyba wszystko tam śmiga jak należy, nigdy problemów nie było.

  12. Fajnie to wyglada, tylko mam takie cos:
    Co moze byc przyczyna lub jako to naprawic? Bo nie chce znowu tracic czasu na grzebanie sie ze skryptem…

    Warning: shuffle() expects parameter 1 to be array, boolean given in /home/a7960828/public_html/router.php on line
    62Warning: Invalid argument supplied for foreach() in /home/a7960828/public_html/router.php on line 64

  13. ok, super juz mam – czyli powinno byc w skrypcie WYMUSZONE dodanie minimum jednego tagu.
    I druga sprawa – gdzie sa wysylane pingi (jesli gdzies juz jest napisane to przepraszam)

  14. @Rain, przyjrzę się temu jutro:)

    @ap_seo, oczywiście przyznaję rację, poprawimy.. a jeśli chodzi o listę serwisów do pingowania to zajrzyj do pliku pingo/pinglist.txt.

  15. czy przewidywany jest dodatek w postaci prostego edytora tekstu?

  16. przepraszam – najpierw napisałem a później zabrałem się za sprawdzanie – już wszystko widzę… ;)

  17. Może i zmyślny CMS. Szkoda tylko, że nie można go uruchomić.
    Parse error: syntax error, unexpected ‘{‘ in /home/usluga/public_html/funi/index.php on line 13

  18. @janos, po wgraniu plików powinien pojawić się komunikat:

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

    Jeśli pojawił się błąd, o którym piszesz, to przyczyną może być stara wersja php i brak obsługi wyjątków. Informacje o wersji PHP można uzyskać po utworzeniu na serwerze pliku z treścią:
    < ?php echo phpinfo(); ?>
    i odpaleniu go przez przeglądarkę.
    Ps. Spróbuj wgrać pliki na inny serwer.

  19. Dzięki za odpowiedź. Wgrałem do podkatalogu na innym serwerze. Katalog nazwałem funi. Otwiera się panel administracyjny, pliki się zapisują z „_”…tylko gdzie szukać strony głównej?? Zapewne coś trzeba zmienić w config.php lub htaccess, ale co..?

  20. Podeślij mi na maila adresik, gdzie to wgrałeś. Zobaczę jak to wygląda.
    Ps. Mój e-mail jest na stronie „O mnie”.

  21. HAHA jaja sobie robisz 70 zeta za takie gówno?

  22. Skrypt jest za darmo, natomiast to jest cena za usunięcie linka ze stopki. Możesz wtedy usunąć linka ze wszystkich swoich stron, na których używasz tego cmsa. Przykładowo przy postawieniu 100 stronek, koszt dla jednej to 70 groszy.

  23. Nie wydaje mi się by to takie „gówno” było, zdaje się być lepsze od PikoCms, który mimo że prosty też potrafił pare problemów spłatać
    A cena podług mnogości stron jakie można na nim postawić akceptowalna.
    Martwi mnie jednak modyfikacja dostępnych free szablonów do wymagań Funi.cms, nie znam się na tym dobrze

  24. @Rain, dopisałem, odsyłam do punktu nr 6 w FAQ. Stawiam na zbyt krótkie hasło do admina:)

    @Dertus, na początku września uruchomię opcję otrzymania szablonów premium. Prawdopodobnie warunkiem otrzymania dostępu będzie wysłanie kilku przerobionych templatek.

Dodaj komentarz