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
9201 Pobrań
Pobierz Funi Szablony1
2492 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. Magnificent beat ! I would like to apprentice while you amend your website, how could
    i subscribe for a blog site? The account aided me
    a acceptable deal. I had been a little bit acquainted of this
    your broadcast offered bright clear concept

  2. Naprawdę bardzo świetny jest ten wasz nowy CMS, który to pomaga mi w bardzo szybki sposób stworzyć masę stron w oparciu o unikalne szablony i nie tylko. Naprawdę warto wykorzystywać to narzędzie do wszelakich projektów SEO. Cieszę się, że trafiłem na tą stronę i mogę korzystać z tego narzędzia CMS. Polecam wszystkim je serdecznie – naprawdę jest co podziwiać. Gorąco zapraszam do pobierania tego narzędzia.

  3. excellent issues altogether, you just won a new reader. What would you suggest
    about your post that you just made some days ago?
    Any sure?

  4. CMS Ghosti to świetna sprawa, szkoda, że już projekt umarł i nie mówi się o nim dużo. Tak świetnie się zapowiadał, że myślałem o większej ilości stron opartej o ten CMS a tu trochę klapa bo projekt nie jest rozwijany i nie wiadomo jak za jakiś czas będzie wyglądało jego bezpieczeństwo.

  5. Hej, niesamowite rozwiązanie ten CMS Ghosti. Cieszę się, że powstają tego typu projekty. Naprawdę jest co podziwiać, chociaż martwi mnie fakt, że już projekt jakby umarł. Admin nic nie pisze o nowościach w systemie itd. trochę szkoda projektu bo świetnie się zapowiadał, ale tak jest w większości darmowych projektów, że nie są prowadzone do końca bo fundusze nie pozwalają a są ważniejsze rzeczy.

  6. Delco will testify as the lawyer’s forensic expert for Finley.

    It’s easy to tell some apps were rushed out the door in order to arrive on day
    one. Here is a list of some of its advantages and disadvantages:.

  7. Through consumer testing, we’ve learned that when mixing 300 Tile Cleaner with Plaster White and Bright it will remove rust stains from your
    salt water pool’s slate and flagstone within seconds and then, we suggest sealing it with TPS PROTECTANT
    and Restorative for a beautiful finish. This will help eliminate the unconscious snacking that is so
    much a part of being overweight. I also enlightened her on the differences between digital and analog
    scales.

  8. This article gives clear idea in favor of the new people of blogging,
    that truly how to do blogging.

  9. I think the admin of this site is truly working hard in support of his
    site, for the reason that here every stuff is quality based material.

  10. It’s an remarkable paragraph in favor of all the
    web viewers; they will get benefit from it I am sure.

  11. Bardzo dobrze, że projekty darmowych CMS nadal są tworzone i rozwijane. Zróżnicowanie tego typu silników jest potrzebne w promocji stron i nie tylko. Dzięki Ci za to wszystko. Oby tak dalej.

  12. This entails plumbing work, fixing electrical fittings,
    and providing various accessories for maximum pleasure and comfort.
    But just as one day, as we suddenly realize that we weigh
    pounds more than we want to, we may realize that a stumble or uneven pavement
    causes a fall that we would have avoided in the past. A birthday card that arrives on time or early says „I cared enough” much more than a belated card.

  13. Hej, bardzo się cieszę, że tego typu strona zostaje nadal rozwiajana przez profesjonalistów, którzy znajdą się na programowaniu. Oby CMS ten został nadal rozwijany i mógł przerosnąć nawet wordpress-a. Pozdrawiam i życzę powodzenia, kamila.

  14. Witam serdecznie wszystkich, ja również jestem mega zadowolony ze stworzonego CMS Funi, który wydaje się jednym z najlepszych CMS pod marketing jaki powstał i jest publikowany za darmo. Szkoda, że ostatnio nie jest on tak mocno rozwijany. Pozdrawiamy z grajewa.

  15. Siemanko, ten skrypt jest niesamowity. Uwielbiam tworzyć strony w oparciu o funi. To Idealny CMS dla początkujących webmasterów, którzy nie lubią dużych CMS-ów takich jak wordpress.

  16. Hej ludziska. Muszę przyznać, że bardzo mi się podoba ten CMS, który został stworzony przez ekipę ghosti. Świetnie to wszystko wyszło i bardzo wydajnie.

  17. Fajna sprawa ten CMS, super, że ktoś dba o ludzi i chce tworzyć dla nich system zarządzania treścią, który pomoże w szybkim stworzeniu strony WWW, która może mieć dynamiczny content. Dzięki wielkie.

  18. Dziękujemy, że mogliśmy oprzeć swoją stronę WWW o tak fajny i Ciekawy projekt jak ghosti. W przyszłości planujemy o wiele więcej stron opartych o ten CMS, ponieważ jest szybki i fajny.

  19. Bardzo Ciekawy projekt, muszę przyznać, że jedna z naszych stron oparta o ghosti bardzo fajnie się pozycjonuje, jest lekka i szybko się wczytuje. Dziękujemy bardzo.

  20. Jeden z Bardzo ciekawych projektów, które ostatnio widziałem. Oby więcej tego CMS-ów zostało stworzonych. Bo są naprawdę bardzo fajne.

  21. spróbowałem na mojej stronie lokalnie, i zastanawiam się nad przejściem na ten CMS
    przystępny, prosty, przejrzysty
    pozdrawiam
    A.M. rolnik z Krk

  22. Hi to all, it’s in fact a pleasant for me to pay
    a quick visit this web page, it contains priceless Information.

  23. Lubię tego cms za to, że jest lekki i można w szybki sposób stworzyć stronę WWW dla siebie lub swoich klientów. Szkoda że tak mało szablonów jest do niego.

  24. I don’t even know the way I stopped up here, but I assumed
    this post was once great. I don’t recognise who you might be however certainly you are
    going to a well-known blogger in case you aren’t already.
    Cheers!

  25. Bardzie Ciekawy skrypt CMS, w zasadzie bardzo skoda, że nadal nie jest rozwijany bo zapowiadał się naprawdę bardzo dobrze. Mam nadzieję, że jeszcze kiedyś zostanie odświeżony i zyska nową wersję.

  26. Wykorzystujemy ten CMS na kilku naszych portalach o języku angielskim i nie tylko. Muszę przyznać, że CMS jest bardzo przyjazny. Fajnie, że powstają tego typu skrypty.

  27. Zamierzamy użyć tego CMS w trakcie budowy kilkunastu stron o tematyce budowlanej. Dziękujemy za możliwość skorzystania z waszego CMS. Pozdrawiam Serdecznie.

  28. Bardzo fajnie, że powstał ten CMS bo go uwielbiam pod każdym względem. Cieszę się że mogę go używać. Oby więcej dodatków do niego powstało.

  29. Idealny CMS do wszystkich stron jakie sobie tylko można wymarzyć. Bardzo prosty w obsłudze i idealny dla laików! Dzięki ci wielkie.

  30. Fantastic beat ! I would like to apprentice while you amend your website, how can i subscribe for a blog site?
    The account aided me a acceptable deal. I were a little bit familiar of this
    your broadcast provided vibrant clear idea

Dodaj komentarz