Szukam współpracownika

w dziale Dostosowywanie Opery do własnych potrzeb
meaglin napisał(a):

Otóż chcę stworzyć skrypt (a raczej dwa) dzięki któremu mozna by umieszczać na stronach notatki, w taki sposób, aby każda (posiadająca skrypt) osoba wchodząca na stronę mogła je zobaczyć. Problem polega na tym, że nie znam się zbyt dobrze na JS. Co za tym idzie poszukuję osoby do współpracy. Mam też parę wątpliwości natury technicznej, które, mam nadzieję, pomożecie mi rozwiązać.

Skrypt działałby w taki sposób (jeśli coś nie pasuje, to mogę zmienić):
1.Użytkownik otwiera stronę
2.Ładuje się skrypt użytkownika
3.Skrypt tworzy identyfikator strony (I tu najwiękrza wątpliwość: Jak? Ze zwykłym plikiem html nie problem, ale php z sidem? To by utrudniło sprawę.)
4.Skrypt wczytuje (wykorzystujac identyfikator) ze zdalnego serwera plik ze zmiennymi.
5.Skrypt generuje notatki na stronie.

Chciałbym aby notatki wyglądały podobnie do tych

Z koleji aby dodać notatkę:
1.Klikamy przycisk
2.Pojawia sie nam karteczka
3.Ustawiamy ją w odpowiednim miejscu, zminiamy rozmiar
4.Zatwierdzamy
5.Wczytuje się nam strona
6.Logujemy się
7.Strona się zamyka (albo przechodzi do profilu uzytkownika), notatka została dodana do listy oczekujących.
8.Teraz wchodzi jakis moderator i zatwierdza, lub usuwa notatkę.


Tak to mniej więcej (raczej mniej niż więcej) by wyglądało. Dla ścisłości podam, że skrypt serwera (no i użytkownika też) były by ogólno dostępne. Aby korzystać ze skryptu trzeba by było sobie znaleźć serwer na którym by daną osobę przygarneli wink Koniec opisu, lecę na próbę chóru. smile

Zajec napisał(a):

Ja nic nie rozumiem. Chcesz trzymać własne notatki w internecie? I umożliwić to samo innym? Po co?

meaglin napisał(a):

Po nic. Było by to za pewne ciekawą formą... komunikacji. Mnie osobiscie czegoś takiego brakowało. Jeśli nie znajdzie się nikt chętny to pomocy, to zapewne sam to zrobię, tylko zajmie to odpowiednio dłużej.
Jeśli mozna zrobić coś takiego w Operze, to w sumie, dla czego by nie spróbować. smile

Zajec napisał(a):

Mogę pomóc, ale nadal nie doatrło do mnie co to ma być. Zapytałeś czy chodzi tylko o trzymanie notatek na serwerze, Ty nie zaprzeczyłeś a potem napisałeś coś o komunikacji - której ja nie widzę ;-)

meaglin napisał(a):

Ah! faint bigsmile Nie to nie ma byc trzymanie notatek na serwerze, bo to byłby zupełny bezsens. Chodzi o cos innego. Powiedzmy wchodzisz na stronę, masz jakieś spostrzeżenia, robisz notatkę. Potem wchodzi ktoś inny i widzi tą notatkę. Jeśli nie chcesz oglądać cudzych notatek, to po prostu klikasz przycisk i wszystkie się minimalizują. Oto mój pomysł.

Zajec napisał(a):

OK. Teraz coś załapałem ;-) Choć nie wiem w czym problem, sprawa banalna.

1) Strona
Na stronie umieszczasz formularz rejestracji, logowania oraz dodawania notatki

2) Użytkownik
a) Rejestracja - wiadomo, sprawdzasz czy login nie został użyty i jeśli nie to rejestujesz
b) Logowanie - jeśli podano poprawny login i hasło to w sesji umieszczasz login użytkownika

3) Dodawanie
Po wpisaniu notatki dodajesz ją do tabeli MySQL zapisując m.in. login osoby, która ją dodała

4) Wyświetlanie
Wyświetlasz wszystkie notatki, ale jeśli koleś jest zalogowany, to wszykim nie jego notatką dodajesz class="obce". Potem dodajesz skrypt JS ukrywający wszystko z blass "obce".

meaglin napisał(a):

No sprawa jest banalna, gdy nie wnikamy w szczegóły. No i ja umiem (IMO nie najgorzej) php, ale z JS to u mnie cieniutko. Więc problemów jest kilka:
1. Potrzebny mi ktoś kto napisze część w JS.
2. Nie do końca wiem jak rozwiązać problem identyfikacji strony (Najwiękrzy problem w tej chwili).
3. Nie wiem jeszcze w jakiej postaci skrypt ma te notatki wczytywać z serwera. Sprawa do dyskusji.
4. Zastanawiałem się nad bazą MySQL i tekstową+MySQL (skrypt php generuje plik tylko raz, zapisuje go na serwerze i nie musi być on generowany za każdym razem gdy bedzie potrzebny), ale w sumie się już nie zastanawiam, bo zdaje sie, że więcej plusów ma MySQL.

I to by były chyba najpoważniesze problemy. Całoś przedstawiałem tu w lekkim uproszczeniu. Jeśli jesteś zainteresowany współpracą to omówimy szczegóły na PM.

Zajec napisał(a):

A tu jest coś do napisania w JS? Jeśli chodzi o funkcję od ukrywanie elementów o okreslonej class to żaden problem. A wszystko inne chyba leci po stronie serwera?

Użytkownika identyfikuj najlepiej przez logowanie. Login czy id zapisujesz w jego sesji i pokłopocie.

SELECT * FROM table?

Polecam MySQL. Plików nigdy zresztą nie lubiłem.

meaglin napisał(a):

Chyba sie nie dogadamy. bigsmile W ogóle nie wiesz o co mi chodzi faint

Originally posted by Zajec:

A tu jest coś do napisania w JS?


Tak cały skrypt wyświetlajacy notatki.

Originally posted by Zajec:

Użytkownika identyfikuj najlepiej przez logowanie. Login czy id zapisujesz w jego sesji i pokłopocie.


Tak wiem, jak zrobić logowanie w php. Ale mnie chodzi o identyfikację strony... Chyba zrobię ten skrypt sam.

janbar napisał(a):

Cos sie malo precyzyjnie wyrazasz, meaglin wink. Czy Ty chcesz umozliwic ludziom ogladanie dowolnych notatek dotyczacych w swej tresci dowolnych stron w necie? I miec mozliwosc sortowania ich pod wzgledem adresu strony, ktorej dotycza? Z przykladowym parametrem Wyswietl/ukryj?
Czy to moze ma wygladac tak, ze klient loguje sie na serwer, pobiera wszystkie notatki, albo jakis spis w skrypcie i potem wchodzi na jakas strone, i pokazuja mu sie Notatki, ktore zostawili inni uzyszkodnicy dla tej strony, z menu umozliwiajacym jakies podstawowe operacje na tych notatkach?

Pozdrawiam,

janbar.smile)

skolman napisał(a):

Originally posted by janbar:

Czy to moze ma wygladac tak, ze klient loguje sie na serwer, pobiera wszystkie notatki, albo jakis spis w skrypcie i potem wchodzi na jakas strone, i pokazuja mu sie Notatki, ktore zostawili inni uzyszkodnicy dla tej strony, z menu umozliwiajacym jakies podstawowe operacje na tych notatkach?



raczej po wejsciu na dowolna strone userjs laczy sie z serwerem, przekazuje url, a dostaje w zamian liste notatek dla przekazanego urla.

logowanie wymagane tylko dla stworzenia notatki. nawet fajne tylko z moderacja bedzie slabo smile

od strony technicznej nie widze problemow.

Zajec napisał(a):

O, taki pomysł to mi się nawet spodobał :-) W weekend przemyślę sobie to jeszcze.

skolman napisał(a):

Originally posted by meaglin:

2. Nie do końca wiem jak rozwiązać problem identyfikacji strony (Najwiękrzy problem w tej chwili).


to nie jest problem
var temp = document.URL.split('/');
var domena = temp[2].replace("www.",""); 

Originally posted by meaglin:

3. Nie wiem jeszcze w jakiej postaci skrypt ma te notatki wczytywać z serwera. Sprawa do dyskusji.


potrzebne sa tresc i koordynaty, tresc warto ograniczyc.

Originally posted by meaglin:

4. Zastanawiałem się nad bazą MySQL i tekstową+MySQL (skrypt php generuje plik tylko raz, zapisuje go na serwerze i nie musi być on generowany za każdym razem gdy bedzie potrzebny), ale w sumie się już nie zastanawiam, bo zdaje sie, że więcej plusów ma MySQL.



hm, problemem bedzie to, ze przy kazdym wejsciu na jakakolwiek strone serwer bedzie odpytywany, a to nie rokuje zbyt dobrze.

Zajec napisał(a):

Originally posted by skolman:

hm, problemem bedzie to, ze przy kazdym wejsciu na jakakolwiek strone serwer bedzie odpytywany, a to nie rokuje zbyt dobrze.

1) Komunikacja z serwerem raz na otwarcie jednego serwisu: sprawdzanie referrer'a i jeśli jest inny niż obecna domena to JS otwiera stronę.
2) Duży transfer danych - poprawny XHTML i po kłopocie.

skolman napisał(a):

Originally posted by Zajec:

1) Komunikacja z serwerem raz na otwarcie jednego serwisu: sprawdzanie referrer'a i jeśli jest inny niż obecna domena to JS otwiera stronę.
2) Duży transfer danych - poprawny XHTML i po kłopocie.


jesli referer nie jest pusty, a to sie zdarza - opcje. faktem jest ze to odciazy lekko serwer.
o transfer sie nie martwie. po co xhtml? nie pamietam czy da sie przekazac tablice do js ze skryptu po stronie serwera.

meaglin napisał(a):

Originally posted by skolman:

Originally posted by meaglin:

2. Nie do końca wiem jak rozwiązać problem identyfikacji strony (Najwiękrzy problem w tej chwili).


to nie jest problem
var temp = document.URL.split('/');
var domena = temp[2].replace("www.",""); 


Napewno? A co jak adres wygląda tak:
http://www.bleble.pl/index.php?sid=(tutaj ciąg znaków)&(kolejne parametry)

Sid jest generowany dla sesji, więc jeśli uwzględni się go w identyfikatorze i wstawi notatkę, to będzie ona martwa. Wyświetli się tylko w tym bardzo mało prawdopodobnym przypadku gdy sid będzie taki sam jak ten przy tworzeniu. Z tego wynika, że sid trzeba usunąć. A to oznacza, że trzeba będzie go rozpoznać. W sumie to da się to zrobić, ale nie będzie raczej pewności, ze będzie na pewno działało.

Miło, że się taka dyskusja wywiązała. Czekam na kogoś chętnego do napisania części w JS. Z PHP powinienem sobie poradzić bez więkrzych problemów, więc tą część napiszę ja. smile

Zajec napisał(a):

Myślałem o XML. JS musi się jakoś dostać do treści strony, na której będą notatki, chyba jedynie przez iframe da się tego dokonać. A referrer strasznie odciąży serwer. Kilkakrotnie nawet bym powiedział.

Zajec napisał(a):

Originally posted by meaglin:

Napewno? A co jak adres wygląda tak:

http://www.bleble.pl/index.php?sid=(tutaj ciąg znaków)&(kolejne parametry)

Owszem.


var temp = document.URL.split('/');
temp[0]: http
temp[1]:
temp[2]: www.blebleble.pl
temp[3]: index.php?sid=(tutaj ciąg znaków)&(kolejne parametry)


var domena = temp[2].replace("www.","");
domena: blebleble.pl


Powinieneś to wiedzieć znając php...

skolman napisał(a):

Originally posted by meaglin:

Napewno?


na pewno, tego kodu nie testowalem (wycialem go ze starszego projektu) ale swego czasu w ten sposob rozwiazalem ten problem.

Originally posted by Zajec:

JS musi się jakoś dostać do treści strony, na której będą notatki, chyba jedynie przez iframe da się tego dokonać.


nie tylko. mozna zrobic cos takiego:
document.write('<script type="text/javascript" src="nazwa.php"><\/script>')

wiem, strasznie to nieeleganckie ale dziala. to tak na szybko moge podac. pozniej odswieze pamiec i pomysle nad lepszym rozwiazaniem.

co do pisania czesci php czy js - zajmuje sie na codzien php, z js mialem tylko troche do czynienia.
mam tez serwer do testow w razie czego.

edytowane:

Originally posted by Zajec:

Powinieneś to wiedzieć znając php...


w php nie dziala to w ten sposob.

meaglin napisał(a):

Originally posted by skolman:

Originally posted by meaglin:

Napewno?


na pewno, tego kodu nie testowalem (wycialem go ze starszego projektu) ale swego czasu w ten sposob rozwiazalem ten problem.

Originally posted by Zajec:

JS musi się jakoś dostać do treści strony, na której będą notatki, chyba jedynie przez iframe da się tego dokonać.


nie tylko. mozna zrobic cos takiego:
document.write('<script type="text/javascript" src="nazwa.php"><\/script>')

wiem, strasznie to nieeleganckie ale dziala. to tak na szybko moge podac. pozniej odswieze pamiec i pomysle nad lepszym rozwiazaniem.


Dało by się też za pomocą pliku css to zrobić. Ale to też kombinowane podejście :/

Zajec napisał(a):

Originally posted by skolman:

document.write('<script type="text/javascript" src="nazwa.php"><\/script>')
wiem, strasznie to nieeleganckie ale dziala. to tak na szybko moge podac. pozniej odswieze pamiec i pomysle nad lepszym rozwiazaniem.

Fakt, mało eleganckie, już chyba lepsze byłoby ładowanie do stworzonej iframe pliku .php wysyłanego np. jako text/plain.


Originally posted by skolman:

edytowane:

Originally posted by Zajec:

Powinieneś to wiedzieć znając php...


w php nie dziala to w ten sposob.

http://pl2.php.net/manual/en/function.split.php
http://pl2.php.net/manual/en/function.str-replace.php
Przyznam, że nigdy nie widziałem różnicy między TurboPascalem/PHP/JS

meaglin napisał(a):

Jedno pytanie. Da się za pomocą JS zdefiniować zewnętrzny arkusz css?

Originally posted by Zajec:

Originally posted by skolman:

edytowane:

Originally posted by Zajec:

Powinieneś to wiedzieć znając php...


w php nie dziala to w ten sposob.

http://pl2.php.net/manual/en/function.split.php
http://pl2.php.net/manual/en/function.str-replace.php
Przyznam, że nigdy nie widziałem różnicy między TurboPascalem/PHP/JS


Ja zazwyczaj używałem funkcji explode... rolleyes

nowotny napisał(a):

Originally posted by Zajec:

Originally posted by meaglin:

Napewno? A co jak adres wygląda tak:

http://www.bleble.pl/index.php?sid=(tutaj ciąg znaków)&(kolejne parametry)

Owszem.
var temp = document.URL.split('/');
temp[0]: http
temp[1]:
temp[2]: www.blebleble.pl
temp[3]: index.php?sid=(tutaj ciąg znaków)&(kolejne parametry)


Tutaj trzeba by jeszcze wziąć pod uwagę adresy z wieloma slashami... np.: http://www.splitbrain.org/Programming/PHP/DokuWiki/index.php

Originally posted by meaglin:

Originally posted by Zajec:

http://pl2.php.net/manual/en/function.split.php
http://pl2.php.net/manual/en/function.str-replace.php


Ja zazwyczaj używałem funkcji explode... rolleyes


W przypadku php przy urlach akurat najlepiej użyć http://pl2.php.net/manual/en/function.parse-url.php lub http://pl2.php.net/manual/en/function.pathinfo.php

meaglin napisał(a):

Originally posted by nowotny:

Originally posted by meaglin:

Originally posted by Zajec:

http://pl2.php.net/manual/en/function.split.php
http://pl2.php.net/manual/en/function.str-replace.php


Ja zazwyczaj używałem funkcji explode... rolleyes


W przypadku php przy urlach akurat najlepiej użyć http://pl2.php.net/manual/en/function.parse-url.php lub http://pl2.php.net/manual/en/function.pathinfo.php


Dzięki, przyda się. smile

skolman napisał(a):

notki maja byc tylko dla domen czy dla stron w ramach jednego serwisu takze?

Zajec napisał(a):

Zdecydowanie obstawiam domeny, inaczej ciężko byłoby trafić na jakąkolwiek notatkę ;-)

meaglin napisał(a):

Szczerze mówiąc to myślałem o stronach... Ale domeny prościej zrobić, łatwiej bedzie trafić, więc może być. Ostatecznie można zrobić i tak i tak.

skolman napisał(a):

Originally posted by meaglin:

Ale domeny prościej zrobić, łatwiej bedzie trafić


prosciej nie, zadna roznica w sumie. ale latwiej trafic na pewno.
jakis pomysly jak rozwiazac komunikacje js<->serwer?

skolman napisał(a):

hm, moze ajax.

http://skolman.az.pl/opera/notki.js
plik do wrzucenia do userjs (korzystalem z przykladow na http://developer.mozilla.org/pl/docs/AJAX:Na_początek)

na koncu mamy:

makeRequest('http://skolman.az.pl/opera/js.php?a='+domena);


js.php
<?php echo $_GET['a']; ?>


efekt:
Onet.pl - Polski Portal Internetowy
http://www.onet.pl/
User Javascript thread
Error:
name: Error
message: Security violation

dziala tylko po wejsciu na jakakolwiek strone z domeny skolman.az.pl
wyglada mi to na zabezpieczenie przeciwko cross-site scripting

jakies pomysly? smile

skolman napisał(a):

Originally posted by d.i.z.:

Jak ci się uda to ominąć to zgłość security buga do secunii


nie o to chodzi smile
inne pomysly jak rozwiazac komunikacje js<->serwer.

d.i.z. napisał(a):

Originally posted by skolman:

jakies pomysly?


Jak ci się uda to ominąć to zgłoś security buga do secunii smilebigsmile

quiris napisał(a):

Originally posted by skolman:

wyglada mi to na zabezpieczenie przeciwko cross-site scripting jakies pomysly?

Można skorzystać z "zrelaksowanej" Opery 8.50 pochodzącej z pakietu Opera Platform SDK, która ma usunięte zabezpiecznie cross-site scripting. Jednak ostrzegam - miecz jest obosieczny. Absolutnie odradzam korzystanie z tej przeglądarki do zwykłego surfowania po sieci.

skolman napisał(a):

Originally posted by quiris:

Można skorzystać z "zrelaksowanej" Opery 8.50 pochodzącej z pakietu Opera Platform SDK, która ma usunięte zabezpiecznie cross-site scripting. Jednak ostrzegam - miecz jest obosieczny. Absolutnie odradzam korzystanie z tej przeglądarki do zwykłego surfowania po sieci.


myslalem o tym ale nie ma sensu chyba, nie o to chodzilo w projekcie jak sadze

d.i.z. napisał(a):

Originally posted by quiris:

Można skorzystać z "zrelaksowanej" Opery 8.50 pochodzącej z pakietu Opera Platform SDK, która ma usunięte zabezpiecznie cross-site scripting.


Sprawdziłem tę wersję, ale widzę, że coś nie bardzo ma usunięte te zabezpieczenia. Dalej dostaje security error jak ajaxem chce zrobić request do innej strony.

edit: hmm, przykład z sdk działa także będę musiał jeszcze zobaczyć co tam namąciłem

edit2: jednak nic nie namąciłem. Zabezpieczenia są usunięte, ale tylko przy odpalaniu skryptu z lokalnego pliku (). Przy próbie odpalenia go na jakieś stronie lub lokalnym serwerze (http://localhost) dalej wywala security error. Także do potrzeb tego wątku i tak się nie nadaje.

edit3: zrobiłem sobie nawet bardziej 'zrelaksowaną' wersję wink