ForumCała strona

Nawigacja

Aktualnie online

Gości online: 5

Użytkowników online: 0

Łącznie użytkowników: 25,359
Najnowszy użytkownik: kdomi

Logowanie

Nazwa użytkownika

Hasło



Zarejestruj się

Odzyskaj hasło

Shoutbox

Musisz zalogować się, aby móc dodać wiadomość.

JazOOn
24.01.2022 19:47:13
czór

hoopak
16.01.2022 15:25:40
Bry Smile

JazOOn
29.12.2021 01:06:59
@piterus - Szambo wybija w polskim rządzie...

bartek124
27.12.2021 00:33:10
Siema ludzie!! Grin

piterus
24.12.2021 12:29:22
Dobrze, że wybija emerytów niż szambo Pfft

Pobierz nową wersję
Pobierz podręcznik
Zobacz inne oficjalne Supporty
Statystyki supportu
PHP-Fuson PL na Facebooku

RSS

Wykaz postów użytkownika - Gander - które otrzymały punkt za pomoc

Gander



Podczas wgrywania zdjęć do galerii zauważyłem że miniaturki są albo wyższe albo szersze niż ustawiona przezemnie wielkość w panelu administracji.
Nie wiem może to jest zamierzone, ale dla mnie to jest błąd.
Zajrzałem do skryptu i zorientowałem się że skrypt jest niedokładny.
Występują w nim jakieś niezrozumiałe dla mnie sprawdzenia, który bok obrazka jest dłuższy (!?).
Przeanalizowawszy kod, napisałem swój kod, który spisuje się dobrze, i wylicza prawidłowe wymiary miniaturki, mieszczącej się w zadanej przezemnie powierzchni.
Rozwiń Kod źródłowy
   
Gander



Co to jest ścieżka?
Ścieżka (dostępu) to adres do utworu. Przykłady adresów:
http://www.twoja-strona.pl/mp3/utwor.mp3
http://www.inny-serwer.pl/mp3/utwor.mp3
/mp3/utwór.mp3
../../mp3/utwor.mp3
Aby dowiedzieć się jak wpisywać adresy inne niż dokładny (pierwszy), przeczytaj HTML dla zielonych - Wstawienie obrazka

Po co jest tytuł skoro nie widać go w odtwarzaczu?
Przede wszystkim pomaga zorientować się o utworach znajdujących się na playliście.
Być może w przyszłości napiszę swój darmowy MP3 Flash Player, który będzie wyświetlać tytuły.
W tytule nie można wpisywać polskich fontów.

Wpisuję tytuł i ścieżkę, ale po naciśnięciu guzika [Zapisz] nic się nie dodaje
Sprawdź czy nie wpisałeś nie dozwolonych znaków w ścieżce.Częste błędy to nazwy plików ze spacjami lub polskie fonty w adresie strony:
http://www.twoja-strona.pl/mp3/moj ulubiony utwor.mp3
http://www.twoja-strona.pl/mp3/mój_ulubiony_utwór.mp3

Po dodaniu panelu musicbox_panel i aktywowaniu go, nie widać go na stronie
Dopóki nie dodasz ścieżek i nie utworzysz pliku playlisty panel będzie niewidoczny.
Demo panelu widać tylko w panelu administracyjnym wtyczki.

Nie mogę nadać uprawnień 777 lub z innego powodu playlista się nie generuje
W takim wypadku pozostaje tylko napisanie playlisty samodzielnie.
Przyjrzyj się zawartości pliku playlist-demo.xml, wypełnij go własnymi danymi i wgraj na serwer.

Dodałem ścieżki i plik playlist.xml jest dobrze napisany, a mimo to po otworzeniu odtwarzacza nie są ładowane utwory
Plik playlist.xmlprzy pierwszym wczytaniu jest zapisywany w pamięci przeglądarki i przy następnym uruchomieniu playera jest wczytywany ponownie z pamięci.
Niestety nie da się tego kontrolować za pomocą jakichkolwiek znaczników HTML i to jest największą wadą tego playera.
Jeśli jesteś natomiast w trakcie testowania / projektowania playlisty możesz po każdej aktualizacji przeczyszczać sobie pamięć podręczną.
Na razie nie da się zrobić nic więcej :/

Jak wyczyścić pamięć podręczną (cache) przeglądarki?

W trakcie pisania - będzie gotowe w sobotę lub niedzielę


Więcej o WebPlayer 2.0.1 przeczytasz na stronie http://www.webminster.org/webplayer/
   
Gander



Bardzo prosto:
W pliku setuser.php znajdujesz linijkę:
Rozwiń Kod źródłowy

i zamieniasz na:

Rozwiń Kod źródłowy


Ten sposób ma jedną wadę: nie wraca na strony z parametrem np viewpage.php?page_id=1


Chodzi mi po głowie jeszcze jeden pomysł, ale zrobię go rano bo dziś jestem już bardzo zmęczony ;)
   
Gander



(I) No więc bierzemy w obroty plik user_info_panel.php:

1) dodajemy w adresie linku wylogowującego paramtr page:

Rozwiń Kod źródłowy

2) w formularzu logowania dodajemy pole ukryte:

Rozwiń Kod źródłowy

(II) Teraz trzeba dodać coś niecoś w maincore.php. Znajdź linijkę o treści:

Rozwiń Kod źródłowy

po:

Rozwiń Kod źródłowy

dodaj:

Rozwiń Kod źródłowy

a następnie dopisz na końcu każdego adresu zmienną $page:

Rozwiń Kod źródłowy


(III) Teraz zmodyfikujemy ostatni plik, setuser.php aby przekierowywał spowrotem na właściwą stronę:

W nagłówku zmieniamy znacznik meta-refresh:

Rozwiń Kod źródłowy


Dzięki tym zabiegom użytkownik wróci na stronę, z której się zalogował lub wylogował.


W załączniku znajdują się wszystkie 3 zmodyfikowane pliki (z pakietu 6.01.6).
   
Gander



Edytuję plik register.php z paczki php-fusion v6.01.11:



w linii 30 po:
Rozwiń Kod źródłowy

wstawiam:
Rozwiń Kod źródłowy





w linii 37 po:
Rozwiń Kod źródłowy

wstawiam:
Rozwiń Kod źródłowy





w linii 142 po:
Rozwiń Kod źródłowy

wstawiam:
Rozwiń Kod źródłowy





w linii 148 po:
Rozwiń Kod źródłowy

wstawiam:
Rozwiń Kod źródłowy



Numery linii są realne po dodaniu kodu, zgodnie z podaną kolejnością.


Działanie: Po zakończeniu rejestracji z wynikiem pozytywnym, natychmiast zapisywane jest ciasteczko fusion_user a następnie przekierowanie do setuser.php?user=xxx jak przy zwykłym logowaniu. Użytkownik ląduje na stronie otwierającej jako zalogowany. Ta sama operacja dzieje się po aktywacji e-mail.
   
Gander



W PHP-Fusion 7 plik footer.php znajduje się w katalogu themes/templates/.

W linii 25 masz kod:
Rozwiń Kod źródłowy PHP


Kod Google Analytics wstawiasz przed tą linijką, w postaci:
Rozwiń Kod źródłowy PHP


// Kod Poprawiony - Gander

Takie użycie <?php i ?> spowoduje wyłączenie tego kodu z treści PHP i będzie się to zachowywało identycznie jakbym użył polecenia echo.
   
Gander



Bo w PHP-Fusion 7 zmieniła się struktura... Pamiętaj o tym gdy stosujesz rozwiązania z v6!

Dla v7 będzie to wyglądało mniej więcej tak:

Rozwiń Kod źródłowy


Musisz sobie dostosować ten kod, tak jak potrzebujesz. Nie pytaj jak to zrobić, bo żeby to zrobić, trzeba wpierw poznać podstawy PHP i PHP-Fusion, a niestety tego nauczyć się musisz sam.

// kod poprawiony w odpowiedzi na następny post - Gander
   
Gander



Musiałem chwilę poczytać o IFNULL() bo nie znałem tego polecenia...

To chyba powinno wyglądać tak:

Rozwiń Kod źródłowy


Pozmieniałem tu trochę...

1. Przesunąłem zapytanie w obręb panelu (bo takie mam nawyki)
2. Zmieniłem treść zapytania na bardziej eleganckie, oraz użyłem stałe określające nazwy tabel w php-fusion 7
3. Poprawiłem identyfikator "Stron informacyjnych" na właściwy, czyli "C"
4. Dodałem sprawdzanie czy komentujący jest użytkownikiem czy gościem sprawdzając czy jego imię to liczba czy ciąg (liczba = użytkownik, ciąg = gość)
5. Dodałem "ucinacz" ciągów w postaci funkcji trimlink(), usunąłem wyświetlanie emotek funkcją parsesmileys(), dodałem likwidowanie tagów funkcją strip_tags() - wszystko to po to by zlikwidowało wszystkie tagi HTML, które mogą zostać ucięte przez trimlink(), a ponieważ emotki graficzne to przecież tagi HTML <img>, czy nie lepiej zostawić emotki w postaci tekstu?
6. Wszystko przetestowałem na swoim localhoście, i potwierdzam że działa :)
   
Gander



Użyłem wbudowanej funkcji render_news() i przerobiłem plik news_cats.php, tak żeby wyświetlał nie linki, tylko streszczenia newsów, tak samo jak wyświetlane są one na stronie głównej. Mam nadzieję ze pasuje?
   
Gander



Zawsze byłem ku prostocie i dobrym odbiorze...

Nawalone masz grafik na początku, może to logo, tytuły itp, ale użytkownik musi przewinąć część strony żeby zobaczyć treść. Grafika na górze powinna być, ale bez przesady, nie na pół ekranu! Po każdym przeładowaniu strony kolejne przewijanko... To samo tyczy się paneli... Marnotrawstwo przestrzeni na jakieś wymyślne obrazki... Można było to zrobić dużo lepiej...

Ergonomia: 3/10


Grafika na górze prezentuje się dobrze, choć zauważalna jest uniwersalność i pewna symetria tego logo? Lepiej pasował by tu delikatny nieład... Grafika paneli wygląda jakby została zerżnięta z Diablo czy WarCraft-a... Jakość: niska. Kropeczki kojarzą mi się z FallOut-em...

Grafika: 5/10


Widzę bardzo mało miejsc, gdzie dało się użyć styli zamiast obrazków... Pewnie cały szablon musiałby się wczytywać jak ten obrazek, a obrazek trochę przymulał...

Lekkość layoutu: 2/10


Ocena ogólna: Góra zaciekawia, przykuwa wzrok, chętnie się ogląda, jednakże gdy spojrzę w dół (na panele) tracę zainteresowanie treścią, kiepska grafika zniechęca... Layout raczej mi się nie podoba.
   
Gander



Na moim blogu wykorzystującym silnik WordPress, mam bardzo fajną, wbudowaną funkcję, która powoduje wymuszanie określonego hostu (adresu / domeny) jako domyślnego. Chodzi mi o to, że jak mam ustawiony host www.gander.pl to gdy ktoś wejdzie na stronę np:
http://gander.pl/category/php-fusion/
zostanie automatycznie przekierowany na stronę:
http://www.gander.pl/category/php-fusion/

Jest to przydatne, ponieważ chcę na przykład aby w Google widniała moja strona pod jednym adresem, a nie pod dwoma. W przypadku for dyskusyjnych, linki odwołujące się do innych postów z tego samego forum są z tego samego hosta, dzięki czemu użytkownik podążający za takim linkiem nie trafi na wersję hosta, na którym jest niezalogowany (cookies są zapisywane osobno dla każdej domeny, z www i bez).

Na serwerach z obsługą .htaccess i włączonym mod_rewrite realizuję to następującym zapisem w pliku .htaccess:

Rozwiń Kod źródłowy

Kod wzięty z mod_rewrite Cheat Sheet (V2), Example: New domain


Niestety, na jednym z hostingów obsługa .htaccess jest wyłączona więc musiałem sobie poradzić inną metodą:

Rozwiń Kod źródłowy


Jest to kod PHP, który dodałem w pliku includes/header_include.php. Sprawdza on czy aktualnie używany host jest taki sam jak host podany w ustawieniach strony. Jeśli się różnią, to użytkownik jest przekierowywany na identyczny adres, tylko ze zgodnym hostem.

Przed użyciem tego kodu należy upewnić się czy adres strony w głównych ustawieniach PHP-Fusion jest poprawny, ponieważ złe ustawienie może spowodować pętlę przekierowań i w efekcie unieruchomić stronę.


Bardzo proszę o opinie i uwagi.
   
Gander



Panele nadal toporne, ale chyba lepsze...

Nie wiem czemu wszędzie muszą być te oka? Jedno, dwa - ok, ale w każdym panelu jedno na górze i w każdej tabeli na górze i na dole...! Można nabawić się jakichś fobii... Pamiętajmy że w Władcy Pierścieni było tylko jedno takie oko.

Nie wiem też czemu w stopce każdego panelu musi być powiadomienie, "Tolkien World", to nadal marnotrawi przestrzeń, nie mogło by być coś skromniejszego?

Wyobraź sobie jak to będzie wyglądało z kilkoma panelami / tabelami jeden-pod-drugim?

Już znaczna poprawa z tłem paneli, żadne łapu-capu a porządna kamienna ściana! Duży plus Smile

Tolkien Word w logo dałbym większe, w końcu to logo, musi być widoczne, a całe te obrazki są przecież tłem, czyż nie?


PS Domyślam się że chciałeś odświeżyć layout swojej strony, ale nastąpił przerost formy nad treścią...
   
Gander



W sumie chyba jest dobrze, tylko to logo jak dla mnie za małe - skoro grafika musi być tak duża, to dajże większe litery tytułu - tolkien po lewej, world po prawej. I tak dobrze zrobiłeś z dolną częścią paneli.
   
Gander



Witam. Chciałbym dziś przedstawić moje dodatkowe pole w profilu, którym jest płeć użytkownika. W edycji profilu jest ono widoczne jako lista opcji o wartościach: "Nie chcę podawać", "Mężczyzna" i "Kobieta". Jeśli użytkownik wybierze płeć, będzie ona widoczna w podglądzie profilu.

Instalacja:
  1. Umieść zawartość folderu php-files na serwerze w katalogu głównym witryny.
  2. Zaloguj się na stronie jako administrator.
  3. Przejdź do: Panel administracyjny -> Zarządzanie użytkownikami -> Pola profilu.
  4. Znajdź na liście to pole i je włącz.

Pliki instalacyjne oraz instrukcja instalacji znajdują się w załączonym pliku.
   
Gander



Chciałem przedstawić wykonaną przez siebie klasę cutter. Używam jej do pobierania dokładnie określonych wycinków z wczytanego ciągu, pliku tekstowego lub strony html. Na początku była to pojedyncza funkcja z ogromem parametrów, jednakże trudność jej używania skłoniła mnie do przepisania tego na postać obiektową.

Użytkowanie tej klasy jest bardzo proste, wystarczy zapamiętać tylko kilka poleceń i już można efektywnie uzyskiwać wyniki według zadanych kryteriów.

GeSHi: PHP
  1. require_once "class.cutter.php";
  2. $c = new cutter('http://www.example.com/index.php', true);
  3. $c -> start("<body>", false, 1);
  4. $c -> end("</body>", false, -1);
  5. $c -> replace("<br>","<br />");
  6. $c -> delete("<hr>");
  7. echo $c->cut();
  8. $result = $c->cutall();
Zinterpretowano w sekund: 0.181, wykorzystano GeSHi 1.0.8.10
Podany kod pobiera zawartość strony http://www.example.com/index.php, następnie ustala że tekst do wycięcia znajduje się między znacznikami <body> i </body>. Dodatkowo zamienia wszystkie znaczniki <br> na <br /> i usuwa <hr>. Na koniec wyświetla wynik na ekranie.

Przeanalizujmy podany kod:
  1. Należy załączyć plik zawierający definicję klasy do pliku w którym chcemy wykorzystywać tą klasę. Można też ją załączać w pliku maincore.php, dzięki czemu będziemy mogli z niej korzystać na każdej podstronie portalu.
  2. Polecenie new cutter() tworzy nowy obiekt cutter. Pierwszy parametr typu string ustala źródło, czyli ciąg, który będziemy przeszukiwać. Źródłem może być także lokalny plik lub zewnętrzna witryna www (tak jak to prezentuję w podanym przykładzie). Drugi parametr typu boolean określa czy źródło jest ciągiem, plikiem lokalnym czy stroną zewnętrzną. Wartość true dotyczy tylko plików i stron.
  3. Polecenie start() ustala parametry wyszukiwania początku tekstu do wycięcia. Pierwszy parametr typu string ustala ciąg, od którego zaczyna się wyszukiwany tekst. Drugi parametr typu boolean określa czy ten ciąg ma być zawarty w wyniku. Trzecim parametrem typu integer określamy offset wycinania.
  4. Polecenie end() ustala parametry wyszukiwania końca tekstu do wycięcia. Pierwszy parametr typu string ustala ciąg, którym kończy się wyszukiwany tekst. Drugi parametr typu boolean określa czy ten ciąg ma być zawarty w wyniku. Trzecim parametrem typu integer określamy offset wycinania.
  5. Polecenie replace() umożliwia zamianę ciągów w wyniku. Pierwszy parametr typu string ustala ciąg do znalezienia, a drugi parametr również typu string ustala ciąg, na który ma zostać zamieniony znaleziony ciąg.
  6. Polecenie delete() robi prawie to samo co polecenie replace(), ale jak nazwa wskazuje, usuwa znaleziony ciąg. To polecenie przyjmuje dowolną ilość parametrów typu string, określających ciągi do usunięcia.
  7. Polecenie cut() powoduje zwrócenie poszukiwanego ciągu, lub wartość false jeśli operacja wyszukiwania się nie powiedzie. Opcjonalny pierwszy parametr typu boolean określa, czy wynik ma zostać również zapisany jako nowe źródło do wyszukiwania. Jest to przydatne, gdy chcemy stopniowo przycinać źródło, na przykład gdy jego struktura uniemożliwia uzyskanie od razu poszukiwanego ciągu. Domyślna wartość tego parametru to false.
  8. Polecenie cutall() jest podobne do polecenia cut(), jednakże zwraca tablicę (typ array) wszystkich ciągów znalezionych w danym źródle. Nie wolno podawać w niej żadnych parametrów, gdyż jest to funkcja rekurencyjna.


I to w sumie chyba wszystko...

Dodam jeszcze, że cutter posiada opcję debugowania w celu szybkiego lokalizowania błędów użytkownika (o tak, najczęściej to my się mylimy, nie maszyny). Żeby to uruchomić, należy na serwerze, w katalogu w którym użytkowany jest cutter, utworzyć plik o nazwie debug.log i nadać mu prawa chmod 777, a w poleceniu cutter() podać trzeci parametr o wartości true. Generowana zawartość powinna być w miarę zrozumiała...


Planowane zmiany w projekcie:
  1. połączenie funkcji cut() z cutall() oraz zawsze zwracanie wyniku jako array
  2. wszystkie operacje wykonywane dopiero w poleceniu cut()
  3. kolejkowanie poleceń (obecnie wykonują się najpierw replace, potem delete)
  4. dodanie wyrażeń regularnych do wyszukiwania, zamiany i kasowania ciągów
  5. tryb debug w wersjach "do pliku" i "na ekran"
   
Gander



Chciałem zaprezentować moje kolejne pole użytkownika. Jest to "Województwo i Miasto użytkownika".

W jednej liście rozwijanej znajdują się 874 miasta w 16 województwach-grupach. Wybiera się więc od razu miasto w danym województwie. Prezentowanie tych danych w profilu jest już jednak w osobnych polach województwo/miasto.

Jeśli ktoś potrzebuje wyświetlić te dane na forum, w treści wątku, należy wykonać następujące modyfikacje. UWAGA! Nie wyjaśniam tu jak krok-po-kroku modyfikować pliki forum, musisz znać podstawy PHP i choć odrobinę orientować się w strukturze PHP-Fusion.

Na początku pliku forum/viewthread.php (linijka 21?) załączyć plik tłumaczeń:
Rozwiń Kod źródłowy PHP


Następnie koło linijki 305 w tym samym pliku, w zależności kto gdzie potrzebuje to umieścić, dodajemy kod podobny do tego:

Rozwiń Kod źródłowy PHP
   
Gander



Nazwa: Nadesłane Materiały
Typ: panel
Wersja: 1.0
Autor: Gander

ifotos.pl/uploaded/46243.png

Wyświetla w panelu bocznym informację o ilości nowo dodanych materiałów każdego typu, oraz link do panelu administracyjnego gdzie można przeglądać i zarządzać tymi materiałami.

Instrukcja instalacji:
1. Umieść zawartość folderu php-files na serwerze w katalogu głównym witryny.
2. Zaloguj się na stronie jako administrator.
3. Przejdź do: Panel administracyjny -> Zarządzanie stroną -> Zarządzanie panelami.
4. Dodaj nowy panel wskazując plik jako submissions_panel. Zapisz i włącz.
   
Gander



Ja zmodyfikowałem skórkę Phos by miała szerszy boczny panel (przykład na: http://www.renault19.pl/ , użyj przełącznika skórek).

ok 161 linijki w styles.css:
GeSHi: CSS
  1. #side-border-left {
  2. width: 25em;
  3. max-width: 25em;
  4. padding: 1em 0.75em;
  5. float: left;
  6. display: inline;
  7. }
  8. #side-border-right {
  9. width: 25em;
  10. max-width: 25em;
  11. padding: 1em 0.75em;
  12. float: right;
  13. display: inline;
  14. }
  15. .side-both #main-bg {margin: 0 26.5em;}
  16. .side-left #main-bg {margin: 0 0.5em 0 26.5em;}
  17. .side-right #main-bg {margin: 0 26.5em 0 0.5em;}
Zinterpretowano w sekund: 0.009, wykorzystano GeSHi 1.0.8.10


zmieniasz wartości width w stylach dla #side-border-left i #side-border-right oraz dodajesz odpowiednio wartości do margin w .side-both #main-bg, .side-both #main-bg i
.side-left #main-bg. Musisz trochę poeksperymentować i na pewno Ci wyjdzie :)

Widoczne wyżej wartości są dla skórki już zmodyfikowanej, więc możesz sobie porównać z oryginalną i ocenić ile "dodać" w swojej modyfikacji.

Jeśli Ci to pomogło, daj mi punkt do pomógł :)
   
Gander



Tak mimochodem dodam że właśnie dodali na MODS moje Pole użytkownika: MOD-Data urodzin Smile
   
Gander



Z tego co ja tu widzę to masz w zapytaniu:
Rozwiń Kod źródłowy
a chyba powinieneś mieć:
Rozwiń Kod źródłowy
?
   
Created by Arox Copyright (C) 2004
Copyright (C) 2004 - 2018 Ekipa PHP-Fusion.pl