Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: SowaCms
Forum PHP.pl > Forum > Gotowe rozwiązania > Systemy portalowe i CMS'y
060156
Kilka miesiecy temu przegladalem rozne CMS i
jakos zaden nie zaspokoil moich potrzeb.
Dlatego napisalem swoj.
Jego ide mozna objezec na http://208.67.193.20/Cms/SowaCms/Index.php
A kilka aplikacji wykonanych w nim to:
http://www.teamrobinsonusa.com/
http://http://208.67.193.20/Cms/ppvas/Index.php
http://208.67.193.20/Cms/RmCms/Index.php
http://www.myfinanceguard.com/
Wdzieczny bede za uwagi i sugestie.
Pozdrawiam
bg
AxZx
nie podobają mi się URL poszczególnych podstron.
060156
Jak tylko to Ci sie nie podoba to super.
Oczywiscie Url-e mozna zmienic uzywaja rewrite module, aczkolwiek sa one tak dobrane ze wzgeldu na SEO.
Dzieki za uwagi.
vokiel
Sorry bardzo ale co jest z SEO w adresie ...Cms/SowaCms/page/1.1/1.php
Chyba tylko pozycjonowanie słowa SowaCMS, bo page/1.1/1.php w żaden sposób...

Ogólnie to dał byś jakiś demo panel adm

A co to za krzaczek?
  1. </HEAD>

- Poza tym układ mieszany tabelkowo-divowy
- skrypty js porozrzucane po całym dokumencie
- kliknięcie w logo(nazwę) nie przenosi do strony głównej (adresu bazowego) tylko do strony home z tym dziwnym adresem 1.1.....

Co do wyglądu, to są gusta i guściki, ten SowaCms dość ładny. Ciekawe jak wygląda sprawa templatów.

W3C - CSS
W3C - HTML
Pozdrawiam
netvalue
Cytat(vokiel @ 18.04.2009, 11:15:45 ) *
Sorry bardzo ale co jest z SEO w adresie ...Cms/SowaCms/page/1.1/1.php
Chyba tylko pozycjonowanie słowa SowaCMS, bo page/1.1/1.php w żaden sposób...


Kompletnie się mylisz... nazwą pliku/katalogu nie pozycjonujesz, bynajmniej w googlach.
Moli
Cytat
Kompletnie się mylisz... nazwą pliku/katalogu nie pozycjonujesz, bynajmniej w googlach.

Adres nazwa.pl/1.1/1.php jest lepiej pozycjonowany od nazwa.pl/strona/tytul-strony.html ? Człowieku poczytaj o pozycjonowaniu, co to za seo jak masz końcówkę ".php" ? haha.gif
060156
Przegladalem troche roznyh CMS i podstawowy problem ktore one maja to:

*) mizerna prezentacja grafincza (nie mozna sowjej zaprojektowac)
*) niezbyt porosty panel zarzadzania kontentem
- osoby nie majace wiedzy o webie moga miec problemy poslugiwaniem
*) wydajnosciowe problemy

W SowaCms wiekszosc tych problemow usunalem przez zastowanie:
*) generowanie hedera/menu/stron na podstawie opracowanego CSS stylu,
czyli mozna latwo wymienic styl stron zachowujac kontent
*) strona posiada regiony (np: row1.col1, row1.col1, row1.col2, etc...)
*) do regionu strony mozna dolaczyc story
*) story jest generowane jako HTML i prezentuje ono:
- default post
- popup widnow
- email
*) story moga miec media (image, video, flash), link i menu
*) zdjecia po upload moga podlegac obrobce (image processing) czyli automatycznie zmienianie ich rozmiar (wysokosc lub szerokosc) aby dopasowac do post-a.

*) module do komunikacji z back end systemem np:
- login, comments, poll, etc...
- dynamiczne konfigurowanie
- walidacja pol w javascript

*) wiele rzeczy uproscilo sie przez zastosowanie Ajax+JSON (asymteryczny) zamiast form post.


Wjecej o koncepcji SowaCms mozna zobaczyc pod:
http://208.67.193.20/Cms/SowaCms/page/1.1/67.php

dziekuje za uwagi
060156
Nie chwale sie bo nie musze, oczekuje sugesti i kilka juz zostalo mi przedstawionych.
Wiem ze na tym formu ludzie maja dobre pomysly i korzystam z tego.

Zawansowane strony pod wzgledem ukladu i grfiki wymagaja CSS
bowiem zadawanie stylu przy kazdym tagu jest nieefektywne i trudno tym zarzadzac.
drake88
Mi tam się nawet podoba, ile czasu to pisałeś?
060156
Odpowiadajac:
*) zaczalem pracowac nad SowaCms w sierpniu 2008 po kilka godzin wieczorami
*) po analizie Drupal, Joomla i innyh CMS-ow doszedlem do wnisku ze najlepsze jest podejscie pisania generatorow (php dla naglowka i strony, html dla story) np. ustalonego stylu web site. Oczywiscie kazdy moze dodac swoj generator i styl.
*) Uklad strony mozna zmienic, bowiem jest ona podzielona na regiony do ktorych dolacza sie story, mozna napisac tez swoj generator strony (jezyk php z drobnymi zmianami aby nie bylo kolizji z $, ", etc..) i zaprojektowac styl do tego.

Przyklad wygenerowanej strony:

  1. <?php
  2. define("CMS_PAGE_ID",12);
  3. define("CMS_PAGE_URI","1.1/12");
  4. include_once("SowaSession.inc");
  5. $_ses = new Session();
  6. include_once("../../inc/Config.inc");
  7. SowaCms::check_cms_url();
  8. if(SowaCms::page_test())
  9.     include_once("../../inc/HeaderTest.inc");
  10.    else
  11.   include_once("../../inc/Header.inc");
  12. start_page("About Us",__FILE__,"","",0);
  13.          Html::js("SowaCms.CMS_PAGE_ID='12'");
  14.          Html::js("SowaCms.CMS_PAGE_URI='1.1/12'");
  15. Html::css("http://localhost/Cms/SowaCms/layout/css/StoryDefault.css");
  16. Html::script("http://localhost/Cms/SowaCms/layout/js/StoryDefault.js");
  17. $content_wrap = new Div("content-wrap");
  18.           $main = new Div("main","style='width:760px'");
  19. $tc = new HtmlTable("style='width:760px'");
  20.            $tc->trtd("align=center");
  21. $tr = new HtmlTable("style='width:760px'");
  22. $tr->trtd();
  23.  SowaCms::story("story/1.1/20.html");
  24. unset($tr, $tc, $main);
  25. unset($content_wrap);
  26.        if(isset($_ses)) {
  27.          global  $__no_last_page_uri;
  28.         if(isset($__no_last_page_uri) && $__no_last_page_uri) {
  29.          if($lp = SowaCms::sarg("last_page_uri")) {
  30.            Html::js("SowaCms.CMS_LAST_PAGE_URI='$lp'");
  31.          }
  32.         }
  33.          else
  34.           SowaCms::sarg("last_page_uri",CMS_PAGE_URI);
  35.         }
  36.         end_page(__FILE__);
  37.         SowaCms::search();
  38. ?>


Przyklad wygenerowanego story:

  1. <A id="anchor" name="anchor_1.1/20">
  2. <DIV class='post_box' align=justify>
  3. <DIV class='post_box_title'>ABOUT US</DIV>
  4.  
  5. <DIV class='post_box_body' style='height:100%'><B>SowaCms</B> is a world leader in the <B><I>Content Management Systems</I></B> and Interactive Web Site development, offering the industry's most comprehensive and affordable solutions for growing their business and assuring customer satisfaction. <B>SowaCms</B> specializes in providing companies with flexible sales, marketing, support, and business automation web based solutions.
  6. <BR/ ><BR/ >
  7. 6300 Milgen Rd #1047<BR/ >
  8. Columbus GA, 31907<BR/ >
  9. Phone: 678-429-1155<BR/ >
  10. <A href="mailto:boguslaw.gil@gmail.com?subject=sowacms">boguslaw.gil@gmail.com</A>
  11. </DIV>
  12. <DIV class='post_box_end'><A href='http://localhost/Cms/SowaCms/page/1.1/5.php' class='a'>contact us</A>&nbsp;<IMG src='http://localhost/Cms/SowaCms/layout/img/arrow.png' style='margin-bottom:-2px'></DIV>
  13. </DIV>
  14. </A>


Tutaj jest url do tej strony: http://208.67.193.20/Cms/SowaCms/page/1.1/12.php
060156
Jest to porawnie:

jesli widzisz pod obrazkeim other gallery>> to odswierza sie strona jak klikniesz na obrazek aby pokazac inna galerie wygenerowana random, jesli masz napis see more >> to przechodzi do innej strony celowo gdzie jest opis elementu galerii.
Oczywiscie to sie ustala podczas projektowania galerii.
http://208.67.193.20/Cms/SowaCms/page/1.1/1.php

dzieki za uwagi
l0ud
Na pewno nie jest poprawne to, że link po kliknięciu przekierowuje na localhost tongue.gif
060156
Przepraszam zle zrozumialem poprzednigo posta,
Oczywiscie masz racje. Jest jakis blad i to poprawie.

Dzieki za spostrzezenie ..
AxZx
Cytat(60156 @ 18.04.2009, 08:06:13 ) *
Jak tylko to Ci sie nie podoba to super.
Oczywiscie Url-e mozna zmienic uzywaja rewrite module, aczkolwiek sa one tak dobrane ze wzgeldu na SEO.
Dzieki za uwagi.


pod kątem SEO to wcale taki adres nie jest dobry.
więcej nie wiem co mi się nie podoba, bo co mam oceniać?
to co udostępniłeś to jest jakiś efekt działania aplikacji.
jeżeli mam oceniać obsługę tej aplikacji, czyli uzupełnianie strony treścią, dodawanie obrazków, zdjęć, tworzenie galerii etc to udostępnij panel administracyjny gdzie będzie można to robić.
Pilsener
Cytat
Jego ide mozna objezec na
- nie no, sorry, ale przecież taką stronę można zrobić w każdym CMS'ie, daj lepiej strukturę bazy albo dostęp do panelu administracyjnego.

Z tego co napisałeś (regiony, story) kompletnie nic nie rozumiem - i po co tu jakiś AJAX? Po mojemu to CMS ma mi umożliwiać:

1. utworzenie dowolnej liczby kategorii i podkategorii
2. kwestie typu przesuwanie pozycji menu góra-dół
3. generator menu
4. możliwość przypisania do każdej kategorii:
- dowolnego szablonu (templatu)
- dowolnej liczby styli w podziale na poszczególne media (bardzo ważne)
- dołączanie dowolnej liczby fragmentów kodu HTML+CSS (nazywam to panelami)
- grafiki i plików
- modułów generujących dynamiczną treść, włącznie z łatwą implementacją własnych
5. nice url on/off oraz wiele innych parametrów
6. wykorzystanie dziedziczenia (np. tworzę nową podkategorię i dziedziczy ona style i meta z kategorii nadrzędnej)
7. parametryzowany generator meta-tagów (dziedziczenie tagów, generowanie dynamiczne, generowanie mieszane, szerokie wsparcie SEO, definiowanie własnych słów kluczowych itp.)
8. możliwość dołączania dowolnej liczby styli i podziału ich na media (dla mnie kluczowe - bo jak mam np. zdefiniować wydruk strony)

Pewnie coś pominąłem. Dla mnie CMS ma mi zapewniać 100% edycji kodu HTML+CSS i koniec - inaczej to zwykły skrypt, musi to być narzędzie do tworzenia serwisu a nie serwis, w którym można edytować treść, CMS nie ma mieć najmniejszego wpływu na efekt końcowy w postaci strony www - bo ten ma zależeć tylko i wyłącznie od użytkownika.
060156
Odpowiadajac na Twoje Pytania:
*) Ajax zamiast form post
*) no wlansie SowaCms w podstawowej wersji nie wymaga edycji CSS i HTML,
tylko zaklada sie strony (galerie, post), menu, page i tyle.
*) obecne CMS sa takie np: ze aby jezdzic samochodem to trzeba sie zanc na tym jak skonstruowany jest silnik
(bezsens koncepcyjny calkowity)
*) do @ V sxe
- jak nie rozumiesz to pogladaj spokojnie
- jesli mi mozesz pdodac przyklady stron CMS-ow o ktorych piszesz,
bede bardzo wdzieczny.

Pozdrawiam
Pilsener
Cytat
no wlansie SowaCms w podstawowej wersji nie wymaga edycji CSS i HTML,
tylko zaklada sie strony (galerie, post), menu, page i tyle
- no i niczym to się nie różni od skryptu, w którym edytujesz "środek", a cała reszta jest statyczna. A ja chce założyć serwis, gdzie np. kategoria 1 będzie miała dwie kolumny a kategoria 2 już trzy kolumny - i co wtedy? Wymagam też wydajności: mają być wczytywane tylko te elementy, które są niezbędne - czyli np. galeria nie jest w ogóle includowana, jeśli nie jest potrzebna. Dla mnie CMS to coś zupełnie innego niż np. dodawanie newsa czy galerii - to robią zewnętrzne skrypty, które mogę dodać do swojego CMS'a jako jego moduły i wybrać kategorie serwisu, dla których będą wykonywane. Dobry CMS ma mi umożliwić bezproblemowe wykonane szkieletu pierwszej lepszej strony przy pomocy swojego panelu administracyjnego.

Z CMS'ów o większych możliwościach nie należy zapominać o Drupalu. I nie nazywajmy CMS'ami systemów typu "daję Ci 3 kolumny, a Ty edytujesz zawartość środkowej", bo to żaden CMS dla mnie. Chyba, że wymyślimy jakąś nową nazwę dla systemów do stawiania serwisów internetowych.
060156
Cytat
1)Ale po co AJAX zamiast POST, skoro i tak przeladowuje sie cala strona zamaist okreslonego kawalka? IMHO bez sensu...


No bardzo przydatny ze wzgeldu na wygode:
*) zalaczam przyklad (pobranie danych do rejestracji, wyslanie do servisu i przejscie do innej strony jak rejestracja sie udala)
- pobranie danych do rejestracji
  1. var sign = Gui.objectFromView("customer","first_name;last_name;address1;address2;city;state;zip;phone;email;user_name
  2. password");

- wyslanie do servisu i przejscie do innej strony jak rejestracja sie udala
  1. MyService.service(SowaCms.cmsUrl("module")+"ModuleServices.php","registration",
  2. [["sa","sign",sign,
  3. ["sr",Registration_onSubmit_Yes_response]]);
  4. function Registration_onSubmit_Yes_response(body, args, error) {
  5. SowaCms.location(SowaCms.CMS_LAST_PAGE_URI);
  6. }
marcio
Dobra Koles tongue.gif Cms jest lajtowy fajnie wyglada niby wszystko miodzio ale dopoki nam nie pokazesz PA to co my mamy oceniac kod html,layout etc??

Zapodaj site do PA to bedzie co oceniac bedziemy mogli zobaczyc jak chodzi ten cms i w ogole.
060156
Uzycie Ajax-u zdecydowanie upraszcza przesylanie Content objektow (Jawascript) w przegladarce do PHP Serwisu, gdzie sie staja PHP obiektami i mozna je procesowac. Php serwis, ktory je procesuje przesyla
odpowiedz (np. blad) i nie ma wtedy potrzeby zmiany strony tylko uzytkownik musi poprawic
wartosci wprowadzane (np. Bledne haslo uzytkownika). Jesli chcesz uzyc np. javascript popularnej biblioteki Ext
do wyswietlania Grid-ow etc.. to przy tym rozwiazaniu staje sie to bardzo latwe.

Natomiast uzywajac form & post jak wiesz doskonale mozesz przesylac tylko pary (name, value) i
strona musi byc odswierzona. Ponadto sa problemy z Back w przegladarce.
wlamywacz
Cytat(60156 @ 19.04.2009, 16:10:55 ) *
Uzycie Ajax-u zdecydowanie upraszcza przesylanie Content objektow (Jawascript) w przegladarce do PHP Serwisu, gdzie sie staja PHP obiektami i mozna je procesowac. Php serwis, ktory je procesuje przesyla
odpowiedz (np. blad) i nie ma wtedy potrzeby zmiany strony tylko uzytkownik musi poprawic
wartosci wprowadzane (np. Bledne haslo uzytkownika). Jesli chcesz uzyc np. javascript popularnej biblioteki Ext
do wyswietlania Grid-ow etc.. to przy tym rozwiazaniu staje sie to bardzo latwe.

Natomiast uzywajac form & post jak wiesz doskonale mozesz przesylac tylko pary (name, value) i
strona musi byc odswierzona. Ponadto sa problemy z Back w przegladarce.


Ajax stosowany jako dodatek i udogodnienie a nie podstawa działania. Jeśli chodzi o back & post, to zasada jest taka, że jeśli wystąpił błąd to użytkownik dostaje te samą stronę + błędy + przefiltrowane dane w $_POST którymi się wypełnia inputy. W innym wypadku robi się zwykły redirect + komunikaty na session i gotowe. W ogóle wydaje mi się, że masz mizerną wiedzę na ten temat.
060156
Dzieki za uwagi,

Uzycie Ajax-u wynika z tego ze wczesniej robilem dokladnie tak jak opisales
i bardzo mi sie to nie podobalo.

Polecam strone: http://208.67.193.20/Cms/SowaCms/page/1.1/4.php
wybierz Submit i moze zobaczysz roznice miedzy tym rozwiazaniem a
zwyklym postem.
dr_bonzo
Dosyc niewygodne, bo jak zamkne okno to nie wiem co zle wypelnilem (a jest kilka pozycji i wszystkich nie pamietam). A w czasie gdy okienko jest widoczne to formularz jest zabokowany.
060156
Dokladnie, wiesz bo pola nie wypelnione lub zle wypelnione,
wyswietlaja sie w innym kolorze (skyblue) czyli wiesz dokladnie co masz wypelnic.
Moze kolor jest zle dobrany.
Poprawilem specjanie dla Ciebie smile.gif na bardziej widoczny.
http://208.67.193.20/Cms/SowaCms/page/1.1/4.php
dr_bonzo
Ano teraz widze roznice.
060156
Czyli zgadzasz sie ze mna ze jest to lepsze rozwiazanie
od wyswietlania gdzies informacji na stronie odswiezonej o tym co zostalo zle wypelnione ?
Teraz widac dokladnie co musisz wypelnic.
vokiel
Jednak lepiej by było gdyby dało się uzupełniać formularz wraz z aktywnym okienkiem z błędami, taka ściągawka. Tak to trzeba zamknąć okienko, żeby móc coś wpisać.
Poza tym byłby to niezły ficzer, żeby okienko się aktualizowało w trakcie poprawiania formularza;)
wlamywacz
A pokaż nam jeszcze kod którym generujesz taki formularz
060156
Rejestracja sklada sie z 3 czesci

1) PREZENTACJA (VIEW):
  1. <?php
  2. // Registration Module View
  3.  $l = SowaCms::login();
  4. JScript::vars("SowaCms.vars",isset($vars)?$vars:"");
  5. $t = new HtmlTable();
  6. $t->script(SowaCms::cms_url("module")."js/sowa_validate.js");
  7. $t->script(SowaCms::cms_url("module")."js/Registration.js");
  8. if($l)
  9.  $t->trlb("PLEASE UPDATE YOUR REGISTRATION INFORMATION","class='label_box'");
  10.  else
  11.  $t->trlb("PLEASE ENTER YOUR REGISTRATION INFORMATION","class='label_box'");
  12. $t->trtd("align=center");
  13.  $f = new HtmlFieldSet("Account Informaton","class='legend'","style='margin:3px;width:99%'");
  14.   $f->trtd("align=center");
  15.   $c = new HtmlTable("cellspacing=5");
  16.   $c->tr();$c->tdlb("* First Name","class='label_input'");
  17.           $c->tdlb("* Last Name","class='label_input'");
  18.   $c->tr();$c->tdtext("customer.first_name","class='text' style='width:255px'","customer.last_name",$l?$l->first_name:"");
  19.            $c->tdtext("customer.last_name","class='text' style='width:255px'","customer.address1",$l?$l->last_name:"");
  20.   $c->tr();$c->tdlb("Address1","class='label_input' colspan=3");
  21.   $c->trtd("colspan=2");$c->text("customer.address1","class='text' style='width:515px' colspna=2","customer.address2",$l?$l->address1:"");
  22.   $c->tr();$c->tdlb("Address2","class='label_input' colspan=3");
  23.   $c->trtd("colspan=2");$c->text("customer.address2","class='text' style='width:515px' colspna=2","customer.city",$l?$l->address2:"");
  24.   $c->trtd("colspan=2");
  25.    $ts = new HtmlTable();
  26.    $ts->tr(); $ts->tdlb("City","class='label_input'");
  27.               $ts->tdlb("State","class='label_input'");
  28.               $ts->tdlb("Zip","class='label_input'");
  29.    $ts->tr(); $c->tdtext("customer.city","class='text' style='width:275px' colspan=2","customer.state",$l?$l->city:"");
  30.               $c->td();$c->sp();$c->select("customer.state",$states,"class='options'",$l?$l->state:"");
  31.               $c->sp();$c->tdtext("customer.zip","class='text' style='width:98px'","customer.phone",$l?$l->zip:"");
  32.    unset($ts);
  33.    $c->tr();$c->tdlb("Phone Number","class='label_input'");
  34.             $c->tdlb("* Email Address","class='label_input'");
  35.    $c->tr();$c->td("align=left"); $c->text("customer.phone","class='text' style='width:150px'","customer.email",$l?$l->phone:"");
  36.             $c->tdtext("customer.email","class='text' style='width:255px'",$l?"customer.password":"customer.user_name",$l?$l->email:"");
  37.    $c->tr();$c->tdlb("* User Name","class='label_input'".($l?" disabled=true":""));
  38.             $c->tdlb("* Password","class='label_input'");
  39.    $c->tr();$c->td("align=left");$c->text("customer.user_name","class='text' style='width:150px'".($l?" disabled=true":""),"customer.password",$l?$l->user_name:"");
  40.             $c->tdpassword("customer.password","class='text' style='width:255px'","customer.first_name",$l?$l->password:"");
  41.  unset($c,$f);
  42.  $t->trtd("align=right style='padding-top:5px'");
  43.  if($l) {
  44.   $t->button("No Thanks","Registration_onThanks()","class='button' style='width:80px'");$t->sp();
  45.   $t->button("Update Account","Registration_onSubmit(event,1)","class='button' style='width:120px'","button.submit");
  46.  }
  47.  else {
  48.   $t->button("No Thanks","Registration_onThanks()","class='button' style='width:80px'");$t->sp();
  49.   $t->button("Submit","Registration_onSubmit(event,0)","class='button' style='width:80px'","button.submit");
  50.  }
  51.  $t->trh("5px");
  52.  unset($t);
  53.  $d = new Div("dialog.message","style='left:0;top:0;visibility:hidden;position:absolute'");
  54.  unset($d);
  55.  
  56.  global  $__no_last_page_uri;
  57.          $__no_last_page_uri = 1;
  58.  
  59. ?>


2) VALIDACJA i WYSLANIEM AJAX-em requestu do Serwisu (CONTROLLER)
  1. function Registration() {
  2. }
  3.  
  4. function Registration_onSubmit(event, mode) {
  5. if(!SowaCms._onLoad)
  6. return ;
  7. Validate.reset();
  8. Validate.validate("customer.first_name","Missing First Name");
  9. Validate.validate("customer.last_name","Missing Last Name");
  10. Validate.validate("customer.email","Email Missing",Validate.email(),"Invalid Email");
  11. Validate.validate("customer.user_name","Missing User Name");
  12. Validate.validate("customer.password","Missing Password");
  13.  
  14. if(Validate.getError()) {
  15. Dialog.message("dialog.message", event, 0, mode?"MY ACCOUNT":"REGISTRATION ERROR",Validate.getError(),"Validate.setFocus()");
  16. return Dialog.modal("dialog.message");
  17. }
  18. Dialog.decision("dialog.message",event,0, mode?"MY ACCOUNT":"REGISTARTION","Do you want to "+(mode?"update my account":"submit registration")+" ?","Registration_onSubmit_Yes("+mode+")","Gui.setFocus('customer.first_name')");
  19. Dialog.modal("dialog.message");
  20. }
  21. function Registration_onSubmit_Yes(mode) {
  22. var cust = Gui.objectFromView("customer","first_name;last_name;address1;address2;city;state;zip;phone;email;user_name
  23. password");
  24. cust.account_id = SowaCms.accountId();
  25. Gui.disableElement("button.submit");
  26. Dialog.info("dialog.message",Gui._mouseX, Gui._mouseY, mode?"MY ACCOUNT":"REGISTRATION","Your request is processing ...");
  27. Dialog.modal("dialog.message");
  28. MyService.service(SowaCms.cmsUrl("module")+"ModuleServices.php","registration",
  29. [["sa","cust",cust],
  30. ["sr",Registration_onSubmit_Yes_response]]);
  31. function Registration_onSubmit_Yes_response(body, args, error) {
  32. Gui.enableElement("button.submit");
  33. if(error)
  34. return Dialog.message( "dialog.message",Gui._mouseX, Gui._mouseY, mode?"MY ACCOUNT ERROR":"REGISTRATION ERROR",error, "Gui.setFocus('customer.user_name')");
  35. if(mode) {
  36. if(SowaCms.CMS_LAST_PAGE_URI)
  37. SowaCms.location(SowaCms.CMS_LAST_PAGE_URI);
  38. else
  39. SowaCms.home();
  40. }
  41. else {
  42. if(SowaCms.vars.login_page)
  43. SowaCms.location(SowaCms.vars.login_page);
  44. else
  45. SowaCms.home();
  46. }
  47. }
  48. }
  49.  
  50. function Registration_onThanks() {
  51. if(!SowaCms._onLoad)
  52. return ;
  53. if(SowaCms.CMS_LAST_PAGE_URI)
  54. SowaCms.location(SowaCms.CMS_LAST_PAGE_URI);
  55. else
  56. SowaCms.home();
  57. }
  58.  
  59. function onLoad() {
  60. Gui.init();
  61. SowaCms.onLoad();
  62. Gui.setFocus("customer.first_name");
  63. }


3) SERWIS WYKONUJACY REJESTRACJE (MODEL)
  1. <?php
  2. // Registration Service
  3. include_once("SowaService.inc");
  4. $log = SowaCms::log();
  5. $db = SowaCms::db();
  6. $ses = SowaCms::ses();
  7. $_req = new Request();
  8. switch($_req->service()) {
  9.   case "registration":$cust = $_req->arg("cust");
  10.                       $user = SowaCms::login();
  11.                       if($user) {
  12.                         $db->update_object("cms_customer",$cust,"user_id={$user->user_id}");
  13.                         $user = $_db->query_object("cms_customer","*","user_id={$user->user_id}");
  14.                         $user->name = $user->first_name." ".$user->last_name;
  15.                         $user->cms_url = CMS_URL;
  16.                         $ses->sarg("_login_user",$user);
  17.                       }
  18.                       else {
  19.                        $cust->create_date = $_db->get_date_time();
  20.                        $db->insert_object("cms_customer",$cust,"",1);
  21.                        if(!$db->insert_id())
  22.                         $_req->error("User name '".$cust->user_name."' already exists, try other.");
  23.                       }
  24.                       break;
  25.    
  26.  default: {
  27.    $_req->error("Service  '".$_SERVER['PHP_SELF']."/".$_req->service()."'  not Implemented");
  28.  }
  29. }
  30. $_req->response();
  31. ?>


Czyli jak mozna zauwazyc jest to klasyczny model MVC (Model–view–controller)
wlamywacz
Moim zdaniem kod js powinien być generowany wraz z php a nie, ze user sam musi pisać go.
060156
Masz racje i jest to calkowicie mozliwe,
generowanie kodu dla model, view, conntrol.
Zostawilem to sobie na pozniej.
Dziekuje za uwagi
wlamywacz
Może jednak pokazałbyś PA ?
060156
Przyslij email na adres: 060156@gmail.com
podami Ci URL i user/password


Dodalem do SowaCms wspomaganie do RSS;
- RSS Reader
- RSS Building
- Rss Listing

Tutaj jest url: http://208.67.193.20/Cms/SowaCms/page/1.1/167.php
wdzieczny bede za opinie
wlamywacz
Jakoś PA do mnie nie przemawia i jest mało intuicyjny.
nospor
panowie, jesli to PA ma miec dostep jedna czy dwie osoby, to sobie na gg pogadajcie o PA bo w tym temacie to bedzie bezsensu
wlamywacz
060156
Czy mogę udostępnić dane do PA lub sam je udostępnij.
060156
Przygotuje na jutro wersje PA dostepna dla wszystkich
i podam dane do niej.


Ddalem mozliwosc uruchomienia Demo SowaCms User Portal (PA).
Instrukcja jest na: http://208.67.193.20/Cms/SowaCms/Index.php
w sekcji MEMBERS AREA



Cytat(wlamywacz @ 8.05.2009, 07:59:14 ) *
Jakoś PA do mnie nie przemawia i jest mało intuicyjny.

Pewnie masz racje lecz budowanie zawansowanych stron tez nie jest proste.
Jesli masz jakies sugestie to chetnie je uwzglednie i wporawadze do PA.
bełdzio
Cytat(60156 @ 7.05.2009, 00:52:14 ) *
Czyli zgadzasz sie ze mna ze jest to lepsze rozwiazanie
od wyswietlania gdzies informacji na stronie odswiezonej o tym co zostalo zle wypelnione ?
Teraz widac dokladnie co musisz wypelnic.

tylko masz taki minus ze jak ktos ma wylaczona obsluge JS to zaden formularz nie dziala
060156
Jak najbardziej masz racje,
dotychczas nie spotkalem takiego przypadku bowiem
wiekszosc uzytkownikow internetu jest nastawiona na korzysci
plynace z Web 2.0 a tutaj JavaScript jest podstawa.
bełdzio
Cytat(60156 @ 8.05.2009, 18:55:53 ) *
Jak najbardziej masz racje,
dotychczas nie spotkalem takiego przypadku bowiem
wiekszosc uzytkownikow internetu jest nastawiona na korzysci
plynace z Web 2.0 a tutaj JavaScript jest podstawa.

1. przecietny uzytkownik nie ma pocjecia co to jest JS czy web 2.0 smile.gif
2. niektorzy korzystaja z komorek, a tam roznie bywa z js
060156
No mam inne obserwacje.
Firma dla ktorej pracuje ma ponad 40 milionow klientow i duza czesc
aplikacji do ich obslugi jest zgodna z Web2.0 i aby ewentualnie zgodzic sie z Toba
lub nie spytalem Customer Support ilu narzekalo na to ze
wymagana jest JavaScript.
Odpowiedz 15-stu na 35 milionow wejsc w ostatnim miesiaca.

Odnosnie telefonow: ze wzgeldu na rozmiar ekranu aplikacje sie projektuje
inaczej, aczkolwiek testy na IPHONE wypadly dobrze.

Dzieki za uwagi.
dr_NO
Do you want to login ?

heh wszystko na około, wszystko trzeba obiec by gdzieś dotrzeć ...

Mówisz na iPhone testy wyszły dobrze ? hmm no to mój przypadek jest najwidoczniej odosobniony ...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.