Forum Gry Hobby Sprzęt Rozmawiamy Archiwum Regulamin

Forum: Kącik Webmasterski (HTML, JavaScript, PHP i inne) [cz.41]

15.05.2012 10:47
legrooch
1
legrooch
231
MPO Squad Member

Kącik Webmasterski (HTML, JavaScript, PHP i inne) [cz.41]

Słowem wstępu:

Kącik ten powstał w celu gromadzenia informacji, zapytań, porad, a także jako miejsce publikacji i oceny witryn stworzonych przez forumowiczów GOLa. Wszystko powinno znajdować się w jednym miejscu, aby można było łatwiej i przyjemniej odnaleźć informacje związane z tworzeniem stron www. Liczymy na to, że kącik będzie bardzo często odwiedzany :)

-----------------------------------------------------------------------------------------------------------------

NARZĘDZIA WEBMASTERSKIE:

Edytory graficzne - WYSIWYG:

- Macromedia Dreamwaver MX - http://www.macromedia.com
- Amaya - http://www.w3.org/amaya
- Adobe GoLive - http://www.adobe.com
- Microsoft FrontPage
- Microsoft FrontPage Express
- Pajaczek
- CoffeeCup Free
- Free HTML 6.0
- 1st page 2000

Edytory tekstowe:

- Macromedia Dreamwaver MX - www.macromedia.com
- Notatnik
- Webmajster
- Pajaczek pro
- Zajaczek
- HotDog Pro
- ezHTML
- NoteTab Light
- Website Pro
- Notepad ++
- EditPlus

Programy do obróbki grafiki i animacji:

- Flash MX
- 3D Flash Animator
- Ulead GIF Animator
- Adobe Photoshop
- Paint Shop Pro
- GIMP
- Corel Draw

Narzędzia do publikacji stron na serwerach:

- CuteFTP
- Total Commander
- WS_FTP
- FlashFXP
- Filezilla

Domeny
- http://home.pl
- http://az.pl
- http://nazwa.pl
- http://domeny.pl

Płatne serwery
- http://webd.pl
- http://home.pl
- http://nazwa.pl
- http://netmark.pl
- http://netarteria.pl
- http://ovh.org

Spis darmowych serwerów

- http://forum.webhelp.pl/viewtopic.php?t=1145

Najlepsze kursy HTML

- http://www.kurshtml.boo.pl
- http://webmaster.helion.pl/kurshtml/

Manual

- http://php.net/

BŁĘDY W TWORZENIU STRON - koniecznie przeczytaj!

- http://pornel.net/bledy
- http://www.kreativ.pl/10_zasad/

Ciekawe strony dla webmasterów:

- http://ezhtml.bydnet.com.pl/
- http://www.webhelp.pl/
- http://www.siteql.net/
- http://www.kess.snug.pl/
- http://osiolki.net/tabelki/
- http://www.kailastudio.com.pl/design/
- http://netdesign.wroclaw.pl/
- http://mimas.ceti.pl/dia/
- http://www.typografia.ogme.pl/index.php/artykuly-mainmenu-4/6-typografia-internetowa/6-451-czyli-typografia-bez-papieru
- http://colorschemedesigner.com/

Za darmo dla webmasterów:

- http://www.4free.pl/
- http://www.ksiegi.emix.net.pl/
- http://www.free4web.pl/
- http://www.dhost.info/

Nasze strony:

wi3dzmin
- http://www.brokilon.aplus.pl

hotDog
- http://www.lookas.prv.pl

Slowik
- http://fotografia.gry-online.pl/

================================
Archiwum Kącika:
================================

cz. 01: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=282993
cz. 01: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=1724087 REIKARNACJA
cz. 02: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=293434
cz. 03: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=561138
cz. 04: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=681039
cz. 05: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=709817
cz. 06: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=778829
cz. 07: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=860865
cz. 08: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=987171
cz. 09: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=1348213
cz. 10: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=1966148
cz. 11: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2031618
cz. 12: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2059468
cz. 13: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2160961
cz. 14: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2219048
cz. 15: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2305650
cz. 16: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2374934
cz. 17: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2404162
cz. 18: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2479809
cz. 19: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2531725
cz. 20: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2661899
cz. 21: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2739264
cz. 22: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2940573
cz. 23: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=3283908
cz. 24: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=3713891
cz. 25: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=4000035
cz. 26: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=4101026
cz. 27: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=4177593
cz. 28: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=4379688
cz. 29: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=4722727
cz. 30: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=4979111
cz. 31: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=5179288
cz. 32: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=5566907
cz. 33: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=5880745
cz. 34: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=6280629
cz. 35: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=6280629
cz. 36: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=7016083
cz. 37: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=8042674
cz. 38: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=9012594
cz. 39: http://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=9868816
cz. 40: https://www.gry-online.pl/S043.asp?ID=10374114

15.05.2012 10:49
legrooch
2
odpowiedz
legrooch
231
MPO Squad Member

Katane, Tuminure ==> Dzięki! Ślepym :)

Edit:
Ostatnie pytanie - jak najlepiej ograniczyć w takim ifie 13 wariantów?
Mam 13 id, które będą w miejscu tego 'quiz'. Jest w php łączenie porównań?
Coś na Andach czy Orach?

15.05.2012 10:56
maviozo
3
odpowiedz
maviozo
226
autor zdjęć

Może switch?
A co do łączenia warunków, to tak jak wszędzie
if ($a==1&&$b==1)
else if (($a==3&&$b==3)||$c==3)

[4]
edit: aaaa, takie coś. No to rozwiązanie Katane'a jest chyba najlepsze, ewentualnie bez zmiennej tymczasowej:
if (in_array($mod->modname, array("id1","id2")) ...

15.05.2012 10:56
Katane
4
odpowiedz
Katane
170
Useful_Idiot_

Nie wiem, czy dobrze rozumiem, ale:
robisz sobie zmienną:

$ids = array('id1', 'id2', 'id3', ...);

if (in_array($mod->modname, $ids)) ...

15.05.2012 11:17
legrooch
👍
5
odpowiedz
legrooch
231
MPO Squad Member

Dzięki, sprawdzam :)

Edit:
Zastosowałem in_array i wszystko pięknie gra. Dzięki Panowie!

15.05.2012 23:12
Bri
😱
6
odpowiedz
Bri
148
Hekatonhejr

legrooch - weź tam wyrzuć ze wstępniaka mój link - aż wstyd :P
od 7 lat ten link wisi we wstępniaku :O
ile to czasu....

16.05.2012 07:19
legrooch
👍
7
odpowiedz
legrooch
231
MPO Squad Member

31.05.2012 22:06
kaczmen
8
odpowiedz
kaczmen
98
GINOBILI!!!

pytanie z mysql
mam tabele news, galerie i zdjęcia
jak napisać zapytanie, aby wyszukiwało 4 najnowsze news'y i ewentualnie zdjęcie główne, jeżeli istnieje takowe dla galerii połączonej z newsem (w galerii jest pole "glowne")

SELECT pola...
FROM news
LEFT JOIN galerie
ON news.news_id=galerie.news_id
LEFT JOIN zdjecia
ON galeria.galeria_id=zdjecia.galeria_id
WHERE ... ?

naprowadzi mnie ktoś?

31.05.2012 22:33
Loczek
9
odpowiedz
Loczek
160
El Loco Boracho
31.05.2012 22:49
kaczmen
10
odpowiedz
kaczmen
98
GINOBILI!!!

nie wydaje mi się, żeby to było to... chcę, żeby zdjęcie podawało tylko w wypadku, jeżeli wartosc glowne=1, przy order by DESC zacznie od 1, ale poda tez te z zerami, tylko je ustawi w kolejności... limit 4 (dla sql TOP) juz uzywam, dla wyrzucenia 4 news'ów, czy zupełnie się mylę?

31.05.2012 22:54
Loczek
11
odpowiedz
Loczek
160
El Loco Boracho

kaczmen: sortby do posortowania po dacie, limit do ograniczenia wyników do 4.

31.05.2012 22:58
kaczmen
12
odpowiedz
kaczmen
98
GINOBILI!!!

w sumie to źle napisałem to pierwsze pytanie, część z wybraniem 4 najnowszych news'ów ogarniam spokojnie, tylko nie mogę uzyskać tylko głównych zdjęć...

chyba na razie będę musiał to zrobić "na około"

31.05.2012 23:09
Loczek
13
odpowiedz
Loczek
160
El Loco Boracho

SELECT * FROM (news LEFT JOIN galerie ON news.news_id=galerie.news_id) LEFT JOIN zdjecia ON galeria.galeria_id=zdjecia.galeria_id

DO tego oczywiście warunek odnośnie zdjęcia głównego

31.05.2012 23:35
kaczmen
14
odpowiedz
kaczmen
98
GINOBILI!!!

w sensie na końcu warunek WHERE? takie rozwiązanie da mi newsy tylko ze zdjęciami głównymi, a nie o to mi chodzi

31.05.2012 23:39
Loczek
15
odpowiedz
Loczek
160
El Loco Boracho

SELECT * FROM (news LEFT JOIN galerie ON news.news_id=galerie.news_id) LEFT JOIN zdjecia ON (galeria.galeria_id=zdjecia.galeria_id AND zdjecia.glowne=true)

Albo jakkolwiek masz to zapisane (EDIT: mam na myśli flage oznaczającą zdjęcie główne :P). Powinno być ok

31.05.2012 23:47
kaczmen
👍
16
odpowiedz
kaczmen
98
GINOBILI!!!

dzieki wielkie, teraz działa, ale będe musiał popatrzeć na to dłużej, żeby skumać o co chodzi :D

edit. a już kumam! ale tej konstrukcji sam bym nie wymyślił ...

01.06.2012 20:38
Loczek
17
odpowiedz
Loczek
160
El Loco Boracho

Nie ma za co :)

11.06.2012 00:36
18
odpowiedz
Apocaliptiq
167
Legend

Mam pytanie dotyczące Outline w HTML5.
Chciałbym umieścić logo w <header>. Jak wiadomo ten znacznik tworzy nową sekcję, więc musi zawierać nagłówek. Okey. Przy czym logo jest obrazkiem a zatem:
<header>
<h1><img src="..." alt="..." /></h1>
</header>

Nie daje poprawnej nazwy sekcji w outline. Dotychczas ustawiałem dla h1 text-indent na minusową wartość. Niby technika spamerska itd. ale niektórzy uważają, że jeżeli 'chowany' tekst zawiera treść z obrazka, to nie ma problemu. Ano nie do końca bo samo ukrycie tekstu wg. forum google zapala 'czerwoną lampkę'.

Zatem chciałbym tego uniknąć, jakieś porady w jaki sposób wrzucić obrazek bez zostawiania sekcji bez nazwy?

edit: problem odnosi się nie tylko do tej sytuacji. No ale np. mamy znacznik tworzący nową sekcję gdzie zwyczajnie nie ma gdzie wstawić nagłówka. Co wtedy?

11.06.2012 00:51
19
odpowiedz
QrKo
147
Yarr!

https://developer.mozilla.org/en/Sections_and_Outlines_of_an_HTML5_document

W akapicie Sections outside the outline jest napisane, ze aside, nav, footer i header sa poza outlinem, wiec albo korzystasz bez outlina, albo wpakuj to logo do czegos innego.

Osobiscie nigdy tego nie uzywalem, wiec nie do konca rozumiem zamysl, chodzi o tworzenie rozdzialow, podrozdzialow i podpodrozdzialow tak? To po co umieszczac logo posrod nich? :>

15.06.2012 20:06
20
odpowiedz
zanonimizowany680221
38
Generał

Czy się da - a jeżeli tak to jak:
Chciałbym stworzyć własne obramowanie, tzn linie pionowe i poziome, zapisane jako obrazki (rozciągają się) oraz 4x narożniki. Wszystko zmieniałoby się w zależności od wielkości div'a.

16.06.2012 13:07
Loczek
21
odpowiedz
Loczek
160
El Loco Boracho
16.06.2012 22:56
😊
22
odpowiedz
zanonimizowany680221
38
Generał

Dzięki wielkie! Wpisywałem różne hasła w google i nic. A to było tak proste ;)

19.06.2012 20:26
😒
23
odpowiedz
zanonimizowany680221
38
Generał

kolejny problem, tym razem z php.

Ta strona działała na komputerze na zajęciach, w domu już nie chce działać (w ogóle nie ma obszarów klikalnych):
<body>

<?php

$k=$_GET['klucz'];
if (!isset($_GET['klucz'])) $k=0;
echo "k wynosi $k <br />";

$l=$_GET['lina'];
if (!isset($_GET['lina'])) $l=0;
echo "l wynosi $l <br />";

if ($k==1 and $l==1) $pic="11.jpg";
if ($k==0 and $l==1) $pic="01.jpg";
echo "Pic wynosi $pic <br />";
echo "<img src=\"$pic\" />";

if($k==0 and $l==0) $mapa="00";
if($k==0 and $l==1) $mapa="01";
echo "<img src=\"$pic\" usemap=\"$mapa\" />";

?>\

<map name="m01">
<area shape="rect" coords="273,587,430,726" href="dupa.html" />
<area shape="rect" coords="573,602,920,753" href="dupa2.html" />
</map>

</body>

obrazki są typu 01.jpg, 11.jpg - np przy 01.jpg znaczy ze k=0 i l=1

więc jeżeli wpiszę w przeglądarce localhost/1.php?klucz=0&lina=1 powinno cokolwiek działać, a nie działa nic :( wyświetlają się tylko informacje typu "l wynosi 0" i pojawia obrazek, ale na nic kliknąć nie mogę.

z góry dziękuję za pomoc!

19.06.2012 20:48
kaczmen
24
odpowiedz
kaczmen
98
GINOBILI!!!

if($k==0 and $l==0) $mapa="00";
if($k==0 and $l==1) $mapa="01";

powinno być raczej:

if($k==0 and $l==0) $mapa="m00";
if($k==0 and $l==1) $mapa="m01";

edit ;)
albo:
<map name="01">

23.06.2012 14:05
domin12
25
odpowiedz
domin12
101
Run
Image

mam mały problem z blogiem a dokładnie ze znalezieniem skryptu odpowiedzialnym za wstawianie niepożądanej rameczki pod wpisami a dokładnie.. dam na przykład: http://rowerowelove.blogspot.com/2012/06/najlzszejsze-hamulce-formula-one.html
i mowie o ramce pokazanej obok ---->

przeszukałem cały kod w edycji szablonu lecz niczego nie znalazłem lecz po wejściu w ten wpis i kliknięciu PPM "pokaż źródło strony" w 810 linijce widać budowę tej niepożądanej ramki.

może mi ktoś pomoc pozbyć się tego?

24.06.2012 13:39
Loczek
26
odpowiedz
Loczek
160
El Loco Boracho

domin: jaki to cms?

24.06.2012 15:49
domin12
27
odpowiedz
domin12
101
Run

Loczek: WP

26.06.2012 14:20
domin12
28
odpowiedz
domin12
101
Run

up

26.06.2012 14:26
jiser
29
odpowiedz
jiser
94
generał-major Zajcef

Ciekaw jestem czy ktoś z Was pracuje na Python/Django?

Polecacie jakiś przyzwoicie skalujący się komercyjny hosting dla Django? Skalujący się tzn. z tanim małym planem i możliwością powiększenia go?

26.06.2012 14:33
30
odpowiedz
Tuminure
105
Senator

@domin12
Osobiście zastanowiłbym się nad używaniem tego szablonu. Dlaczego? Kliknij w link na dole swojej strony (Template by: Urangkurai).

Żeby pozbyć się tego, musiałbyś mieć dostęp do plików szablonu - masz taki dostęp?

26.06.2012 20:16
domin12
31
odpowiedz
domin12
101
Run

tego podpisu na końcu już się pozbyłem.. wydawało mi się, że już to zrobiłem na początku:)

tak mam dostęp do niego.


<b:if cond='data:blog.pageType == "item"'>
<div class='box-admin'>
<h4>Penulis : <b><a expr:href='data:blog.homepageUrl'><data:post.author/></a></b> ~ Sebuah blog yang menyediakan berbagai macam informasi</h4>
<div class='kontainer'>
<div class='photo-admin'> </div>Artikel <b><a expr:href='data:post.url'><data:post.title/></a></b> ini dipublish oleh <b><data:post.author/></b> pada hari <b><data:post.dateHeader/></b>. Semoga artikel ini dapat bermanfaat.Terimakasih atas kunjungan Anda silahkan tinggalkan komentar.sudah ada <b><b:if cond='data:post.numComments == 1'>1<data:commentLabel/>:<b:else/><data:post.numComments/> komentar:</b:if></b> di postingan <b><a expr:href='data:post.url'><data:post.title/></a></b>
<div style='clear:both;'/>
</div>
</div>
</b:if>
</div>

usunięcie tej części powinno załatwić sprawę po moich oględzinach całości

No i pomogło :(

27.06.2012 07:19
32
odpowiedz
Tuminure
105
Senator

Po co pozbywasz się tego podpisu? Przecież to nie Twój szablon, tylko kogoś innego - usuwając taką stopkę bez zgody autora łamiesz prawo.

03.07.2012 10:20
legrooch
33
odpowiedz
legrooch
231
MPO Squad Member

Jak się formalnie nazywa podpinanie pod pole tekstowe listy wyników, które pasują z bazy? Tak, jak ma to google zaimplementowane w wyszukiwarce?

03.07.2012 10:23
Katane
34
odpowiedz
Katane
170
Useful_Idiot_

autocomplete

03.07.2012 10:28
35
odpowiedz
Icm
109
Winczi

Siema, czy ktoś z was odpalał aplikację railsową na hostingu linuxpl.com? Potrzebuje zmigrować tam serwis i coś nie chce banglać.

03.07.2012 10:35
legrooch
36
odpowiedz
legrooch
231
MPO Squad Member

Dzięki

06.08.2012 10:05
37
odpowiedz
Hakim
234
Senator

Czy możliwe jest stworzenie takiego zapytania do bazy SQLite (przez PDO)?
Mam wyraz: abecadło.
W bazie mam tabelę Kawalki z polem Zawiera, która ma ileś tam rekordów, w tym np. dło oraz beca czy ad (czyli części wyrazu abecadło) oraz części jakichś innych wyrazów, które nie pasują do tego abecadła, np. hron, ni, skr...
I teraz chcę z pola Zawiera wyciągnąć wszystkie takie pasujące części danego wyrazu.

SELECT Zawiera FROM Kawalki WHERE ...

PS. znaleźć tutaj coś na forum przez tę golową szukarkę to niezły wyczyn.
PS2. Idzie powiesić wątek bezpośrednio z tego wątku? Czy mogę to zrobić tylko na stronie głównej forum?

06.08.2012 12:05
38
odpowiedz
Tuminure
105
Senator

Niestety nigdy nie pracowałem na SQLite, więc nie jestem pewien czy zadziała ale na MySQLu da się to zrobić tak:

SELECT `zawiera`
FROM `kawalki`
WHERE 'abecadło'
LIKE CONCAT('%', `zawiera`, '%');

Wydaje mi się, że działa jak powinno, przynajmniej w MySQLu :P.

@PS2 - pod komenatrzami jest "podwieś wątek".

06.08.2012 14:02
39
odpowiedz
Hakim
234
Senator

Dzięki, będę próbował.
Z tym podwieszeniem to chyba nie byłem zalogowany wyświetlając wątek, a zalogowałem się dopiero klikając Odpowiedź, bo teraz to widzę.

07.08.2012 10:46
40
odpowiedz
zanonimizowany154655
5
Konsul

Jak zaimplementować w funkcję prostego slidera automatyczne przesuwanie slajdów co np. 5 sekund, ale gdy użytkownik kliknie kropkę z innym slajdem przesuwanie automatyczne wyłącza się?

<script type="text/JavaScript">
$(document).ready(function ()‹
$('#paginacja a').click(function()‹
var integer = $(this).attr('rel');
$('#myslide .cover').animate(‹left:-900*(parseInt(integer)-1)›) /*----- Width of div mystuff (here 160) ------ */
$('#paginacja a').each(function()‹
$(this).removeClass('active');
if($(this).hasClass('paginacja'+integer))‹
$(this).addClass('active')›
›);
›);
›);
</script>

Drugie pytanie, jak ustawić cookie w js? :P Jak sądzę jest ono potrzebne by po kliknięciu [x] na pasku, który ma załączone showhide() nie pojawiał się po przeładowaniu strony.

07.08.2012 10:59
Katane
41
odpowiedz
Katane
170
Useful_Idiot_

Poquelin --> zmienianie slajdów definiujesz używając setInterval, zwracaną wartośc zapisujesz w zmiennej. Po kliknięciu przez usera wywołujesz clearInterval z tą zmienną.

Cookiesy - są do tego pluginy do jQuery, ale możesz tez to zrobić ręcznie, choć mało to wygodne: <a href=https://developer.mozilla.org/en-US/docs/DOM/document.cookie target=_blank>https://developer.mozilla.org/en-US/docs/DOM/document.cookie

07.08.2012 15:51
😜
42
odpowiedz
zanonimizowany154655
5
Konsul

[41] Whoa, moja wiedza z zakresu js ogranicza się do prostych przeróbek istniejącego kodu. Podasz przykład użycia w działającym kodzie czy mam sam spędzić najbliższą godzinę na próbowaniu metodą prób i błędów? :P

07.08.2012 15:56
maviozo
43
odpowiedz
maviozo
226
autor zdjęć

piszesz sobie coś takiego:
zegar=setInterval('przewijaj()',5000);
która uruchamia co 5 sekund funkcję przewijaj() - w której sobie piszesz wszystko co ma się wydarzyć przy zmianie obrazka.

Teraz wystarczy podłączyć do przycisku coś takiego:
clearTimeout(zegar);
by zatrzymać automatyczne uruchamianie funkcji.
Oczywiście możesz pójść o kroczek dalej i np. przywracać przewijanie, ponownie wywołując pierwszy przykład z mojego postu (nawet bezpośrednio po wyczyszczeniu zegara)

07.08.2012 16:03
44
odpowiedz
zanonimizowany154655
5
Konsul

Dobra, będę próbował i dam znać co z tego wyjdzie.

13.08.2012 14:12
45
odpowiedz
Sage
155
Arbiter Elegantiae

Nigdy wcześniej nie zakładałem strony, a zależy mi, aby była wysoko w wynikach Google. Branża na tyle wąska, że Google samo z siebie nawet nie zapełnia pierwszej strony odpowiednimi wynikami. Mógłby ktoś wytłumaczyć w jaki sposób zrobić tak, aby wszystko działało jak należy? Gdzie co wpisać, gdzie zapłacić..

15.08.2012 18:49
😡
46
odpowiedz
zanonimizowany154655
5
Konsul

Niech się jakiś spec od js wypowie - czemu to #$# nie działa? Czemu nie tworzy mi ciastka o nazwie jezyk, z zawartoscią zależną od klikniętego linku i parametru name="" ?

<script language = "JavaScript">
function writeCookie()
‹;
var waznosc = new Date()
waznosc.setMonth(waznosc.getMonth()+12)
var c = "jezyk" + document.getElementsByName(a) + ";expires=" + waznosc;
document.cookie = c;
›;
</script>

I HTML (fragment)

<a name="pl" onClick="writeCookie();" onMouseOver="overlib('<br /><center>Kliknij aby wybrać język polski.</center>', TEXTSIZE, '11px', FGCOLOR, '#667C94', BGCOLOR, '#00FFFF', TEXTCOLOR, '#FFFFFF', HEIGHT, 40)" onMouseOut="nd();" href=""><img style="margin-top:2px;" width="16" height="11" src="flags/pl.png" /></a>

<a name="ru" onMouseOver="overlib('<br /><center>&#1053;&#1072;&#1078;&#1084;&#1080;&#1090;&#1077;, &#1095;&#1090;&#1086;&#1073;&#1099; &#1074;&#1099;&#1073;&#1088;&#1072;&#1090;&#1100; &#1088;&#1091;&#1089;&#1089;&#1082;&#1080;&#1081;.</center>', TEXTSIZE, '11px', FGCOLOR, '#667C94', BGCOLOR, '#00FFFF', TEXTCOLOR, '#FFFFFF', HEIGHT, 40)" onMouseOut="nd();" href=""><img style="margin-left:10px;margin-top:2px;" width="16" height="11" src="flags/ru.png" /></a>

16.08.2012 18:41
kaczmen
47
odpowiedz
kaczmen
98
GINOBILI!!!

pytanie do golowiczów - iloma tabelami w bazie obsługujecie galerie? gdzie określacie zdjęcia główne? przechowujecie gdzieś liczbę zdjęć, czy za każdym razem je liczycie? jakoś specjalnie zmieniacie nazwy plików?
chodzi o takie ogólne podejście do galerii...

postanowiłem zrobić na stronie okienko "najnowsze galerie" z wybieranym zdjęciem głównym + liczoną liczbą zdjęć w jednym zapytaniu MySQL

SELECT *,COUNT(zdjecia.galeria_id) AS liczba_zdjec FROM galerie LEFT JOIN zdjecia ON (galerie.galeria_id = zdjecia.galeria_id) GROUP BY galerie.galeria_id

wcześniej, bez liczenia zdjęć do ON dodawałem "AND zdjecia.glowne=1", no ale z nie przejdzie
jest jakaś opcja do sortowania tej części zapytania?

edit.
OK, wydaje mi się, że zrobiłem to...
SELECT *,COUNT(zdjecie_id) AS liczba_zdjec
FROM
(
SELECT
galerie.galeria_id,zdjecia.filename,zdjecia.zdjecie_id,zdjecia.glowne
FROM galerie LEFT JOIN zdjecia ON (galerie.galeria_id = zdjecia.galeria_id)
ORDER BY zdjecia.glowne DESC
) AS galerie_temp
GROUP BY galeria_id

i teraz pytanie dodatkowe - co bardziej zamula bazę? takie zapytanie w zapytaniu, czy 2 normalne zapytania?

18.08.2012 19:22
48
odpowiedz
zanonimizowany861550
5
Centurion

Ciekaw jestem czy ktoś z Was pracuje na Python/Django?

Polecacie jakiś przyzwoicie skalujący się komercyjny hosting dla Django? Skalujący się tzn. z tanim małym planem i możliwością powiększenia go?

jiser - polecam Azure od Microsoft'u. Oferują wirtualne maszyny, na których można zainstalować zarówno Windows Server, bądź jedne z popularniejszych dystrybucji Linuksa (coś co pewnie bardziej zainteresuje developerów tworząch w Pythonie). Ich plan jest zależny od zużytego bandwitch'u - można ustawić maksymalną miesięczną kwotę - ale płacisz tylko za zużyty transfer i miejsce.

08.09.2012 15:05
49
odpowiedz
zanonimizowany377077
45
Legend

Chce sobie zmierzyć czas wykonania zapytania. Aplikacja w PHP, baza w MSSQL/MySQL/PostGreSQL/Oracle. Jak to uczynić? Pobieranie czasu przed wykonaniem query i po wykonaniu raczej działa słabo.

08.09.2012 18:51
jiser
50
odpowiedz
jiser
94
generał-major Zajcef

Vodahmin ~~~>
Dzięki. Nie widziałem wcześniej Twojej odpowiedzi. Mocno skalowalne, zapamiętam.

10.09.2012 09:30
legrooch
51
odpowiedz
legrooch
231
MPO Squad Member

Panowie, bo już głupieję...

Potrzebuję regexpa na następujący zestaw znaków (dozwolone dwie kombinacje w polu tekstowym)

xx-1111 (dwie litery, myślnik, cztery cyfry)

oraz
xxx-xx-11111 (trzy litery, myślnik, dwie litery, myślnik, 5 cyfr)

Pomoże mi ktoś?

10.09.2012 09:52
Regis
😊
52
odpowiedz
Regis
133

Tzn. chciałbyś to załatwić jednym regexprem bez "ora" w środku? Nie sądzę, żeby to było możliwe, bo musiałbyś uzależnić ostatni "składnik" regexpa od pierwszego (zależnie od ilości liter na początku dopasuj inną ilość cyfr na końcu). Ja bym to po prostu zrobił tak:

(^\w‹2›-\d‹4›$)|(^\w‹3›-\w‹2›-\d‹5›$)

Jeśli \w nie odpowiada Ci, bo zawiera za dużo znaków, to naturalnie proponuję wymianę na [a-z] ;)

EDIT: Oczywiście GOL rozwalił składnię - widzę, że w tej kwestii bez zmian od 2002... Nawiasy klamrowe, a nie trójkątne...

10.09.2012 10:08
Regis
😊
53
odpowiedz
Regis
133

[47] Zagnieżdżone zapytania to zbrodnia na wydajności i generalnie zły zwyczaj. Odradzam. Jeśli nie jesteś w stanie załatwić sprawy pojedynczym zapytaniem (nie wnikałem w kod, nie bardzo mam czas), to zrób to "łopatologicznie" + cache'owanie frontendu. Albo zliczaj zdjęcia w galerii triggerami odpalanymi przy operacjach na tabeli ze zdjęciami. Opcji jest sporo, zależnie od tego czy mówimy o małej stronce na pojedynczym serwerze, czy o jakiejś rozproszonej "kobyle" obsługujących miliony odsłon dziennie.

[49] Wypluwaj sobie takie informacje do logów - w Postgresie to kwestia zmiany w configu. Potem masz narzędzia do analizowania tych zapytań i robienia statystyk - co zajęło najwięcej czasu itp.

[50] Zbadaj Amazon Web Services. Ogólnie, rozwiązań cloudowych jest obecnie multum ;)

10.09.2012 10:27
legrooch
👍
54
odpowiedz
legrooch
231
MPO Squad Member

Regis ==> Jedno uruchomienie na 2-5 godzin i sprawdzenie formularza z identyfikatorem, więc wisi mi wydajność w tym przypadku :)

Dzięki, o to mi chodziło :)

10.09.2012 16:09
kaczmen
55
odpowiedz
kaczmen
98
GINOBILI!!!

Regis -> dzięki wielkie, a jak to jest z łączeniem dwa razy do tej samej tabeli pod aliasem? też tak żre zasoby?

zapytanie wyglądałoby tak:
SELECT
galerie.*,
zdjecie.*,
COUNT(licz.zdjecie_id) AS liczba_zdjec
FROM galerie
LEFT JOIN zdjecia AS zdjecie ON (galerie.galeria_id = zdjecie.galeria_id AND zdjecie.glowne = '1')
LEFT JOIN zdjecia AS licz ON (galerie.galeria_id = licz.galeria_id)
GROUP BY galerie.galeria_id
;

10.09.2012 17:56
Regis
😊
56
odpowiedz
Regis
133

W ciemno powiem, opierając się tylko na tym, jak wygląda zapytanie i na własnym doświadczeniu (wyczuciu), że ta opcja na pewno będzie nieporównywalnie lepsza. A jak jeszcze do tego założysz odpowiednie indeksy, to już w ogóle nie będzie problemu (zakładając nie–skrajne obciążenie serwisu ;-)).

BTW. Polecam zaprzyjaźnić się z poleceniami do analizy złożoności zapytań – poszukaj informacji o EXPLAIN ANALYZE lub czymś analogicznym dla bazy, której używasz :-) A potem po prostu sprawdź oba zapytania, tak z indeksami jak i bez, i wyciągnij wnioski ;-)

16.09.2012 14:16
57
odpowiedz
zanonimizowany377077
45
Legend

Znacie może jakąś literaturę poświęconą badaniu wydajności baz danych? Pracę sobie magisterską piszę i muszę mieć coś do rozdziału teoretycznego.

17.09.2012 16:24
legrooch
58
odpowiedz
legrooch
231
MPO Squad Member

Głupieję z SQL...
Mam dwie tabele:

1)
id_kodu
id_osoby
id_punktow

2)
id_osoby
imie
nazwisko
itd....

Potrzebuję otrzymać następujący zakres:
komplet id_kodu
tam gdzie jest id_osoby
tam gdzie jest id_punktow
tam gdzie jest imie
tam gdzie jest nazwisko
tam gdzie jest itd

pomoże ktoś? :)

Edit:
Dobra, nieważne.... :] Głupieję już jak zaznaczyłem na wstępie. Zrobione :)

30.09.2012 11:18
59
odpowiedz
zanonimizowany154655
5
Konsul

Witajcie

Tworzę pewien projekt, który zakłada min. stronę w 4 językach - polskim (domyślny), angielskim, rosyjskim i niemieckim.

Problem w tym, że nie wiem jak się za to zabrać od strony technicznej. Wymyśliłem sobie, że poszczególne zestawy stron w innych językach znajdą się w głównym folderze ze stroną czyli

/ru/
/en/
/de/
index_polski_domyslny.php

Za zmianę języka zaś będzie odpowiadał plik lang.php, tworzący ciastko jezyk z zawartym weń skrótem języka. Tylko nie wiem co teraz - jak odwoływać się do tych podfolderów językowych. A może moje rozwiązanie jest zwyczajnie złe?

30.09.2012 11:58
60
odpowiedz
Tuminure
105
Senator

@up
Czy strona po angielsku to inna strona, niż po polsku - inna struktura, inne linki, inne ceny (jeżeli dotyczy), inne opcje?

Jeżeli strona różni się tylko tekstami, to dobrze by było nie powielać widoków (jeżeli tworzysz zgodnie z mvc) i po prostu podmieniać teksty na stronie. Ja wielojęzykową stronę tworzyłem ostatnio przy użyciu frameworku Kohana, gdzie wstawiałem
echo __('register_new_user_save');
zamiast
echo 'Zapisz';
co później było tłumaczone w pliku pl.php na
array('register_new_user_save' => 'Zapisz');
albo w pliku en.php na
array('register_new_user_save' => 'Save');

Jeżeli strona różni się funkcjonalnością, to Twoje rozwiązanie wydaje się ok.

Rozwiązanie z ciasteczkami jest złe, ponieważ strona będzie źle indeksowana przez Google. Nie jestem jakimś specem od pozycjonowania i nie wiem jak bot od Google traktuje cookies, jednak strona będzie zaindeksowana albo tylko w polskim języku albo w losowych językach. Działoby się tak dlatego, że tak naprawdę pod adresem /index.php miałbyś 4 różne strony, które powinny być zaindeksowane. Najlepszym rozwiązaniem jest zrobić po prostu www.<adres>.com/pl/, www.<adres>.com/en/, www.<adres>.com/ru/ itd.

Na potwierdzenie tego, nie chcę szukać żadnych dowodów z for internetowych - po prostu sugerowałbym brać przykład z największych korporacji - www.microsoft.com/pl-pl/ http://www.apple.com/pl/ http://www.samsung.com/pl/ http://www.lg.com/pl i tak dalej, i tak dalej...
lub jeżeli stać Cię na utrzymywanie kilku domen, skorzystać z rozwiązania SONY (www.sony.net, www.sony.pl, www.sony.ru)

Jeżeli tworzysz projekt, który ma być dostępny dla osób wyszukujących w Google, to musisz zmienić koncepcję.
Jeżeli tworzysz projekt, który jest aplikacją jakiejś firmy (albo po prostu użytkownicy nie będą wchodzić z googli), to teoretycznie możesz stosować cookies do tego, jednak... czy nie lepiej mimo tego napisać stronę, która będzie przyjazna dla wyszukiwarki?

01.10.2012 14:34
Loczek
61
odpowiedz
Loczek
160
El Loco Boracho

jw. Projektujesz router w taki sposób, żeby pierwszy parametr odpowiadał za język.
http://www.domena.com/pl/
http://www.domena.com/en/

Powinieneś otrzymać parametr lang=pl/en. Na tej podstawie ładujesz odpowiednie pliki lokalizacyjne.

20.11.2012 17:53
maviozo
😃
62
odpowiedz
maviozo
226
autor zdjęć

Mam pewien problem. Muszę napisać kod do witrynki, w której użytkownicy mogą się logować i dodawać pewną treść. Swoją treść mogą obejrzeć w czymś w stylu "moje konto", natomiast na normalnym front-endzie tę samą treść sortuje się wg np. daty.
To wszystko jest strasznie proste o ile korzysta się przynajmniej z php i mysql, gdzie wszystko samo się robi. Sprawa jednak jest taka, że muszę z mysqla nie korzystać.
No i teraz mam zagwozdkę, jak do tego usiąść. Wiadomo, że całą treść trzeba w takim wypadku przechowywać w plikach. Nie oczekuję w ogóle gotowca, tylko nakierowanie jak to dość sensownie zaplanować :)

20.11.2012 18:06
Loczek
63
odpowiedz
Loczek
160
El Loco Boracho

'Sprawa jednak jest taka, że muszę z mysqla nie korzystać. '

Tzn. w ogóle bez BD? Na plikach?

EDIT: dopiero doczytałem następną linijkę... Trochę karkołomne, ostatnio robiłem coś podobnego. Miałem cachować duże ilości danych relacyjnych, bez BD.

Rozwiązałem to w ten sposób, że każdemu rekordowi BD odpowiadał obiekt zawierający arraye z relacjami. Obiekty były serializowane i zapisywane do takiej struktury katalogów, która pozwalała na następne jednoznaczne zlokalizowanie plików na podstawie relacji zawartych w w/w tablicach.

Odszukiwanie rekordów wykonywałem za pomocą operacji na tablicach - array_intersect, array_merge itp.

20.11.2012 20:47
maviozo
64
odpowiedz
maviozo
226
autor zdjęć

Właśnie chodzi o to, że nie mogę użyć żadnej bazy danych. Jedyny problem pobierania pliku z arrayami jest taki, że trzeba byłoby je pobierać przy każdym otwarciu strony.

Albo może trzymać w strukturze folderów wg użytkowników i tylko modyfikować dodatkowo plik z listą na "główną" jako ściągawka, które pliki pobierać a które nie?

20.11.2012 21:18
65
odpowiedz
Hakim
234
Senator

A SQLite też odpada?

20.11.2012 21:47
Loczek
66
odpowiedz
Loczek
160
El Loco Boracho

[64] np coś takiego (prosty przykład dla użytkowników i newsów)
1. Struktura katalogów
/data
../users
..../user1id.data
..../user2id.data
../news
..../news1id.data
..../news2id.data
..../newsList.data

Każdy user ma arraya z IDkami jego newsów (vel. relacja jeden-do-wielu - array oprócz parentId bo w przeciwnym wypadku musiałbyś otwierać wszystkie newsy żeby odszukać te które należą do użytkowników).

Każdy news ma parentId.

NewsList podstawowe dane newsów (na potrzeby paginacji, sortowania itp. w zależności od tego co jest potrzebne).

Wiadomo - rozwiązanie bardziej problematyczne od bazodanowych, ale to jest raczej oczywiste :)

29.11.2012 09:24
67
odpowiedz
Apocaliptiq
167
Legend

Hej
Czy ktoś z Was miał styczność z testami A/B ? Jakie narzędzie proponujecie? Tutoriale mile widziane.

13.12.2012 12:20
kaczmen
68
odpowiedz
kaczmen
98
GINOBILI!!!

kolejne pytanie :)
przez AddHandler w .htaccess mogę zmienić wersję php wykorzystywaną na serwerze?

próbuję
AddHandler application/x-httpd-php53 .php .php5 .php4 .php3
ale to powoduje jedynie ściągnięcie skryptu na dysk podczas próby otworzenia strony...

serwer to kei.pl, w info na stronie jest informacja, że zmiana php na 5.3 była obligatoryjna w grudniu 2011, ale u mnie działa 5.2.17, dostępu do panelu klienta nie mam, bo przejmuje to od innej osoby a login i hasło są inne niż do serwera

13.12.2012 13:06
69
odpowiedz
Tuminure
105
Senator

@up
Obawiam się, że bez kontaktem z serwerownią nie dasz rady odpalić php 5.3. Swoją drogą, też mam na kei.pl wersję php 5.2.17.

28.12.2012 09:15
legrooch
70
odpowiedz
legrooch
231
MPO Squad Member

Mógłby mi ktoś pomóc ze znalezieniem pluginu do Joomla 1.5, który pozwoliłby na wyświetlanie na jednej stronie zgrabnie wizytówek osób?
Sam jeszcze nie wiem, jak miałoby to wyglądać. Wiem na pewno, że potrzebuję wyświetlić zdjęcie i opis na podstawie danych w bazie.

Dobrze by było, gdyby dało się wyświetlić po kliknięciu w wizytówkę nowego nałożonego diva ze szczegółami.
Ogólna lista by przypominała forum/komentarze.

28.12.2012 13:34
71
odpowiedz
rodro
55
Centurion

sorry za banalne pytanie, ale jak zrobic w htmlu, zeby po kliknieciu na przycisk otwieral sie link (w tym samym oknie)
mam np <input type="button" value="idz do innej strony">

28.12.2012 14:31
72
odpowiedz
Apocaliptiq
167
Legend

Rodro -> Wykorzystaj element 'a'.

Np:
<a href="nazwa_strony.html">Nazwa odnośnika</a>

Elementy input wykorzystujesz w formularzach. Np:
<form action="" method="POST">
<input type="text" name="nazwa_pola" value="" />
<input type="submit" value="Wyślij" />
</form>

28.12.2012 15:59
73
odpowiedz
rodro
55
Centurion

Dzieki, ale chce, zeby to byl przycisk. podpialem funkcje z linijka kodu:

window.location = "link.html";

28.12.2012 16:05
74
odpowiedz
Tuminure
105
Senator

@up
Korzystając z takich funkcji, uniemożliwiasz dostęp do strony osobom, które mają wyłączony w przeglądarce javascript.
Lepiej zrobić <a href="link.html>[tu obrazek, który wygląda jak przycisk]</a> i w cssie zrobić "animację klikania".

30.01.2013 20:03
legrooch
75
odpowiedz
legrooch
231
MPO Squad Member

Pomocy z wiedzą Panowie i Panie :)

Szukam do WordPressa jakiejś ładnej galerii. Plugin + Theme.
Założenie:
- wyświetlenie tego w jakiś przystępny sposób za pomocą losowego zdjęcia jako album, a następnie wyświetlenie listy + ładne przewijanie zdjęć
- możliwość uploadu wielu plików na raz

02.02.2013 16:17
76
odpowiedz
Saghot
19
Pretorianin

Witam wszystkich.
Czy mógł by ktoś mi przybliżyć kwestie związane z lokalizacją po numerze IP. Chodzi mi głównie o to jak dokładnie można określić położenie użytkownika który wchodzi na stronę i czy strona po numerze IP może sama zadecydować w jakim języku ma być wyświetlona, chodzi tu o możliwość wyświetlania danej strony w wielu językach w zależności od tego w jakim kraju znajduje się użytkownik.

02.02.2013 16:29
Regis
😊
77
odpowiedz
Regis
133

Dwie różne sprawy:
1. Do określania informacji nt. lokalizacji użytkownika możesz użyć biblioteki GeoIP (a dokładnie jakichś bindingów do niej, zależnie od tego z jakiego języka programowania korzystasz). Np. dla Pythona jest to python-geoip. W PHP też jest coś używającego GeoIP.
2. Do określenia języka, który będzie dla usera najlepszy, należy raczej użyć czegoś, co znajduje się w nagłówkach HTTP - pewnie są nawet jakieś biblioteki do tego. Nie jestem z tym na bieżąco, ale ja dawno temu korzystałem z HTTP_ACCEPT_LANGUAGE i wydaje mi się, że skoro taka informacja jest wysyłana przez przeglądarkę, to powinno się jej używać. Ja np. mam ustawiony system na język angielski, mimo że mieszkam PL i niechciałbym, żeby strony chciały mi "podsuwać" na siłę" j. polski, skoro sam im "mówię", że chcę j. angielski ;-)

27.03.2013 15:46
Bri
78
odpowiedz
Bri
148
Hekatonhejr

Koledzy starzy wyjadacze, potrzebuję dobrej porady.

We firmie pracujemy na takim systemie oprogramowania w którym jedna aplikacja generuje raporty html które sobie drukujemy, a inna aplikacja zaczytuje te html i po pierwsze dodaje sobie kilka wpisów do własnej bazy danych a po drugie pozwala na podgląd tego html w dowolnym momencie nawet jak zniknie z dysku.
Obie aplikacje pochodzą od różnych producentów i ta wczytująca jest lekko beznadziejna ale nie o to chodzi. Jeśli was ciekawi co to za apki to jedna to TruTOPS a druga Comarch CDN XL.

Doszedłem do tego jak przerobić oryginalny html (zrobiłem własny szablon i podstawiłem go pierwszej aplikacji) ale ta pierwsza aplikacja nie przewidzi nigdy jakie dodatkowe informacje trzeba dopisać długopisem do wydrukowanego htmla nim zostanie posłany na warsztat, po prostu jest tu sporo zależności które w tej aplikacji nie są brane pod uwagę bo są (jeszcze na tym etapie) zbędne.

Zaszyłem w szablonie htmla trzy formularze :
2 listy rozwijane <form><select><option> ...
i pole edycji <form> <input> ...
- tuż przed wydrukiem w oknie przeglądarki można sobie rozwinąć te listy z dodatkowymi danymi, a w polu wpisać uwagę. Dzięki temu mamy mniej pisania długopisami - wszystko się ładnie drukuje.

Teraz potrzebuję sposobu aby wybrane w listach opcje i wpisany text w inpucie zapisać z powrotem do tego html'a by pokazywały się za każdym kolejnym otwarciem. Nie mają tu powstawać kolejne pliki - ma się to zapisać w tym pliku który akurat jest oglądany/drukowany.
Wyobrażam sobie że działałoby to jak TiddlyWiki czyli potrzebuję sprytny skrypt w js, tylko że nie mogę na niego nigdzie w sieci wpaść. Jeśli to ułatwi sprawę to potrzeba tylko 2 zmienne liczbowe (odpowiadające pozycji na liście) i jedna string. No ale ten mechanizm zapisu to już dla mnie wyższa szkoła.

Niestety nie wchodzi w rachubę każdorazowe otwieranie źródła html w notatniku i edytowanie bo dla niektórych korzystanie z comboboxów to była druga rewolucja informatyczna w życiiu :D (pierwsza to otwieranie plików html z dysku a nie z internetu...)

Z góry dzięki za każdą pomoc.

27.03.2013 16:21
maviozo
79
odpowiedz
maviozo
226
autor zdjęć

Myślę, że mógłbyś z powodzeniem wykorzystać do tego ciasteczka. Albo przez document.cookie, albo przez któryś framework, który ułatwia zapisywanie ciastek, bo nie musisz wtedy pisać własnej ich obsługi (choć oczywiście są gotowce)

27.03.2013 16:45
Bri
80
odpowiedz
Bri
148
Hekatonhejr

Dzięki za sugestię ale zapomniałem dodać że ma to działać na dowolnym komputerze, i w przeglądarkach IE9 IE8 i Firefoxie.
Myślałem o ciasteczkach ale to działa tylko na jednym kompie. Dlatego zasugerowałem się TiddlyWiki, bo w poprzedniej firmie zrobiłem takie wewnętrzne Wiki na tym dla mojego działu. W tiddly działa dynamiczne tworzenie pozycji - nowych tiddlerów, w tym co ja chcę uzyskać nie potrzeba aż takiego bajeru, ilość danych będzie stała.
Serwerowanie odpada, php odpada, na MS sharepoint nie ma co liczyć .

27.03.2013 17:14
maviozo
81
odpowiedz
maviozo
226
autor zdjęć

Zostaje w takim razie jakiś prosty osadzony flash, localstorage.
Kiedyś miałem patent do IE, który zapisywał dany plik, ale trzeba było potwierdzić zapis na dysku - nadpisywałem ciągle ten sam plik, który był podłączony jako plik javascript i odczytywany przez tę samą stronę.
Tylko że to na około.

27.03.2013 18:16
82
odpowiedz
Tuminure
105
Senator

Serwerowanie odpada, php odpada, na MS sharepoint nie ma co liczyć .
Nie mam w takim razie zielonego pojęcia jak chcesz zrealizować ten fragment:
Myślałem o ciasteczkach ale to działa tylko na jednym kompie.

27.03.2013 18:46
Bri
83
odpowiedz
Bri
148
Hekatonhejr

maviozo - nawet takie rozwiązanie na około się sprawdzi - może powstawać do każdego html'a dodatkowy mały pliczek, automatycznie wczytywany onLoad a zapisywany onButtonClick :)
tuminure - ciasteczka nie.

Dlatego dalej upieram się przy TiddlyWiki, nie wiem czy kojarzycie, ale to jest jedyna rzecz robiąca to co teraz chcę uzyskać i trzymam się tego wzorca póki nie wykombinuje czegoś innego.

TiddlyWiki jest pojedynczym plikiem html w 99% wypełnionym kodem js. Trzymasz go gdziekolwiek na dysku, otwierasz w przeglądarce (najwyżej zgadasz się na działanie skryptów). Tworzysz nowy tiddler (nową notatkę), gdy klikniesz link "zapisz" tiddly zapisuje notatkę wewnątrz tego samego pliku html (wewnątrz siebie) i odświeża stronę (odświeża siebie) już z tym wpisem. Voila - tak bym chciał, rozwiązanie idealne. Możesz zabrać ten plik na pendrive, wrzucić na dropboxa, każdy tekst się w nim zmieści, gdzie go nie otworzysz to będziesz miał.

A jak się nie da to może jakieś js'owe save_to_file i if_file_exist_then_read_from_file?

Wszystkie pliki są w sieci firmowej na zmapowanych dyskach z pełnymi uprawnieniami, z tym nie ma problemu.

--------------

Znalazłem wreszcie chwilę i wpadłem na kilka tropów SPA (Single Page Application), i rozwiązań self-saving. Rozbija się to o jquery.twfile i inne rzeczy których nie ogarniam :D

27.03.2013 20:46
maviozo
84
odpowiedz
maviozo
226
autor zdjęć

Bri - to Tiddly w takim razie działa tak samo, jak to co ja opisałem. Klikasz na przycisk, ale IE wyświetla okienko w którym wskazujesz plik.
Szukaj w googlu czegoś takiego:
if( d.execCommand( 'SaveAs', null, name ) )‹

28.03.2013 15:13
Bri
85
odpowiedz
Bri
148
Hekatonhejr

Nic z tego jednak nie będzie, za skomplikowane to jquery.twfile.
To już łatwiej aplikacje napisać w której wskazujesz html zaznaczasz kilka chekboxów i po nacisnięciu buttona odpowiednie rzeczy są dopisywane do pliku.

20.04.2013 12:25
86
odpowiedz
Lutz
173
Legend

Fajne narzedzie dla piszacych css (jak sie ma dwa monitory to juz calkiem)
edytorek jest prosty jak barszcz, ale ma uzupelnianie skladni i niektorym to wystarczy.

Najwazniejsze ze jest bezposrednie lacze z chrome i wszystkie zmiany css widac od razu (nawet nie trzeba zapisywac pliku), ogromna oszczednosc czasu.

http://brackets.io/

29.04.2013 00:45
87
odpowiedz
zanonimizowany110398
1
Generał

Hej, może ktoś z was zerknąłby na tych kilkadziesiąt linijek i powiedział mi co jest nie tak? Tracę już nerwy.

Skrypt generujący ankietę umozliwiającą głosowanie bez przeładowania strony. Próbuję to zaadaptować u siebie i tym bardziej się wkurwiam, bo nie jest to jakis skomplikowany kod. Ankieta generuje się poprawnie. Gdy nie wybiorę odpowiedzi i kliknę vote, pojawia się stosowny komunikat. Natomiast gdy wybieram odpowiedź i klikam vote, koło loading zaczyna się kręcić i skrypt staje w miejscu...

poll.js

$(document).ready(function() ‹;

$("#pollAjaxLoader").hide(); //hide the ajax loader
$("#pollMessage").hide(); //hide the ajax loader
$("#pollSubmit").click(function() ‹;
var pollAnswerVal = $('input:radio[name=pollAnswerID]:checked').val();//Getting the value of a selected radio element.
if ($('input:radio[name=pollAnswerID]:checked').length) ‹;
$("#pollAjaxLoader").show(); //show the ajax loader
$.ajax(‹;
type: "POST",
url: "../functions/functions_poll.php",
statusCode: ‹;
404: function() ‹;
alert("page not found");
›;›;,
data: ‹; pollAnswerID: pollAnswerVal, action: "vote" ›;,
success: function(theResponse) ‹;
//the functions.php returns a response like "1|13|#ffcc00-2|32|#00ff00-3|18|#cc0000-63" which the first number is the answerID, second is the points it has and third is the color for that answer's graph. The last number is the sum of all points for easilt calculating percentages.
if (theResponse == "voted") ‹;
$("#pollAjaxLoader").hide(); //hide the ajax loader
$("#pollMessage").html("sorry, you already voted.").fadeTo("slow", 1);
›; else ‹;
var numberOfAnswers = (theResponse).split("-").length-2;//calculate the number of answers
var splittedResponse = (theResponse).split("-");
var pollAnswerTotalPoints = splittedResponse[numberOfAnswers+1];

for (i=0;i<=numberOfAnswers;i++)
‹;
var splittedAnswer = (splittedResponse).split("|");
var pollAnswerID = (splittedAnswer[0]);
var pollAnswerPoints = (splittedAnswer[1]);
var pollAnswerColor = (splittedAnswer[2]);
var pollPercentage = (100 * pollAnswerPoints / pollAnswerTotalPoints);
$(".pollChart" + pollAnswerID).css("background-color",pollAnswerColor);
$(".pollChart" + pollAnswerID).animate(‹;width:pollPercentage + "%"›;);
$("#pollAnswer" + pollAnswerID).html(" (" + Math.round(pollPercentage) + "% - " + pollAnswerPoints + " votes)");
$("#pollRadioButton" + pollAnswerID).attr("disabled", "disabled"); //disable the radio buttons
›;
$("#pollAjaxLoader").hide(); //hide the ajax loader again
$("#pollSubmit").attr("disabled", "disabled"); //disable the submit button
›;
›;
›;);
return false;



›; else ‹;
$("#pollMessage").html("please select an answer.").fadeTo("slow", 1, function()‹;
setTimeout(function() ‹;
$("#pollMessage").fadeOut("slow");
›;, 3000);
›;);
return false;
›;

›;);

›;);

functions/functions_poll.php

//GETTING VARIABLES START
if (isset($_POST['action'])) ‹;
$action = $_POST['action'];
›;
if (isset($_POST['pollAnswerID'])) ‹;
$pollAnswerID = $_POST['pollAnswerID'];
›;
//GETTING VARIABLES END

function getPoll($pollID)‹;
$result = sql("SELECT * FROM polls LEFT JOIN pollanswers ON polls.pollID = pollanswers.pollID WHERE polls.pollID = " . $pollID . " ORDER By pollAnswerListing ASC");

$pollStartHtml = '';
$pollAnswersHtml = '';

while($row = mysql_fetch_array($result))
‹;
$pollQuestion = $row['pollQuestion'];
$pollAnswerID = $row['pollAnswerID'];
$pollAnswerValue = $row['pollAnswerValue'];

if ($pollStartHtml == '') ‹;
$pollStartHtml = '<div id="pollWrap"><form name="pollForm" method="post" action="../functions/functions_poll.php?action=vote"><h3>' . $pollQuestion .'</h3><ul>';
$pollEndHtml = '</ul><input type="submit" name="pollSubmit" id="pollSubmit" value="Vote" /> <span id="pollMessage"></span><img src="images/ajaxLoader.gif" alt="Ajax Loader" id="pollAjaxLoader" /></form></div>';
›;
$pollAnswersHtml = $pollAnswersHtml . '<li><input name="pollAnswerID" id="pollRadioButton' . $pollAnswerID . '" type="radio" value="' . $pollAnswerID . '" /> ' . $pollAnswerValue .'<span id="pollAnswer' . $pollAnswerID . '"></span></li>';
$pollAnswersHtml = $pollAnswersHtml . '<li class="pollChart pollChart' . $pollAnswerID . '"></li>';
›;
echo $pollStartHtml . $pollAnswersHtml . $pollEndHtml;
›;

function getPollID($pollAnswerID)‹;
$query = "SELECT pollID FROM pollAnswers WHERE pollAnswerID = ".$pollAnswerID." LIMIT 1";
$result = sql($query);
$row = mysql_fetch_array($result);

return $row['pollID'];
›;

function getPollResults($pollID)‹;
$colorArray = array(1 => "#ffcc00", "#00ff00", "#cc0000", "#0066cc", "#ff0099", "#ffcc00", "#00ff00", "#cc0000", "#0066cc", "#ff0099");
$colorCounter = 1;
$query = "SELECT pollAnswerID, pollAnswerPoints FROM pollAnswers WHERE pollID = ".$pollID."";
$result = sql($query);
while($row = mysql_fetch_array($result))
‹;
if ($pollResults == "") ‹;
$pollResults = $row['pollAnswerID'] . "|" . $row['pollAnswerPoints'] . "|" . $colorArray[$colorCounter];
›; else ‹;
$pollResults = $pollResults . "-" . $row['pollAnswerID'] . "|" . $row['pollAnswerPoints'] . "|" . $colorArray[$colorCounter];
›;
$colorCounter = $colorCounter + 1;
›;
$query = "SELECT SUM(pollAnswerPoints) FROM pollAnswers WHERE pollID = ".$pollID."";
$result = sql($query);
$row = mysql_fetch_array( $result );
$pollResults = $pollResults . "-" . $row['SUM(pollAnswerPoints)'];
echo $pollResults;
›;

//VOTE START
if ($action == "vote")‹;

if (isset($_COOKIE["poll" . getPollID($pollAnswerID)])) ‹;
echo "voted";
›; else ‹;
$query = sql("UPDATE pollAnswers SET pollAnswerPoints = pollAnswerPoints + 1 WHERE pollAnswerID = ".$pollAnswerID."");

setcookie("poll" . getPollID($pollAnswerID), 1, time()+259200, "/", ".domena.pl");
getPollResults(1);
›;
›;
//VOTE END

if (intval($_GET['cleanCookie']) == 1)‹;
setcookie("poll1", "", time()-3600, "/", ".domena.pl");
header('Location: http://domena.pl);
›;

30.04.2013 00:06
maviozo
88
odpowiedz
maviozo
226
autor zdjęć

Zgodnie z nową śmieszną ustawą, powinna być informacja o ciastkach. Na moich stronach generalnie z nich nie korzystam, mam jedynie zainstalowany analitycs - jak wiadomo ono korzysta z cookies. Strony to żadne portale społecznościowe, wyłącznie reklama prywatnych biznesów.
Analitycs jednak mi się przydaje.

Jakbym uczciwie podszedł do tematu, to powinienem generować kod analitycs dopiero po tym, jak ludek zaakceptuje ciasteczka, jednak wiadomo, że wymuszenie tego na nim może zaowocować opuszczeniem strony, z drugiej strony skromne info może być przeoczone - dzięki czemu nie będzie analitycsa. Poza tym wymagałoby to przeładowanie strony, żeby php wygenerowało kod do analitycsa. Penwie da się to załadować i przez ajaxa, ale to dodatkowe schody.

Poza tym nie ma chyba żadnej innej możliwości zabronienia analitycsowi korzystania z ciastek na mojej witrynie, czy nie tak?

Jak to rozwiązujecie?

30.04.2013 04:34
89
odpowiedz
Apocaliptiq
167
Legend

maviozo -> informacja, że nie wyłączenie opcji ciasteczek oznacza ich akceptację. Tak więc analytics działa tak jak dotychczas do czasu aż ktoś wyłączy ciasteczka.

btw.
Sam komunikat wrzucany AJAXem, żeby google nie indeksował niepotrzebnej treści.

30.04.2013 09:25
Loczek
90
odpowiedz
Loczek
160
El Loco Boracho

"Serwis internetowy abc.pl wykorzystuje pliki cookie, które umożliwiają i ułatwiają Ci korzystanie z jego zasobów. Korzystając z serwisu wyrażasz jednocześnie zgodę na wykorzystanie plików cookie. Możesz wyłączyć pliki cookie w opcjach swojej przeglądarki internetowej.

Szczegółowe informacje znajdziesz na stronie Ciasteczka"

chickenom: maszt o gdzieś wystawione? Jeśli nie, to możesz wkleić kod gdzieś, gdzie się da go przeczytać? :)

18.04.2014 00:16
Bri
91
odpowiedz
Bri
148
Hekatonhejr

Panowie - jest jakaś nowa część kącika?? ten "umarł" rok temu...

Ja mam pytanko - wiemy że pewne ikonki od razu przywodzą na myśl pewne cechy - np. kłódka sugeruje "bezpieczeństwo", pięść sugeruje "siłę" albo "uderzenie", koperta to "email".
A ja potrzebuję dobrać ikonki do cech przedmiotu takich jak: trwałość, elegancja, praktyczność - możecie mi coś zasugerować? Jakieś podobnie uniwersalne symbole?

Forum: Kącik Webmasterski (HTML, JavaScript, PHP i inne) [cz.41]