Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> SowaCms, easy way to manage dynamic content
060156
post
Post #1





Grupa: Zarejestrowani
Postów: 146
Pomógł: 0
Dołączył: 9.03.2006
Skąd: Columbus Georgia

Ostrzeżenie: (0%)
-----


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

Ten post edytował 60156 4.05.2009, 20:07:49
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
060156
post
Post #2





Grupa: Zarejestrowani
Postów: 146
Pomógł: 0
Dołączył: 9.03.2006
Skąd: Columbus Georgia

Ostrzeżenie: (0%)
-----


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)

Ten post edytował 60156 7.05.2009, 12:01:54
Go to the top of the page
+Quote Post

Posty w temacie
- 60156   SowaCms   18.04.2009, 05:47:29
- - AxZx   nie podobają mi się URL poszczególnych podstron.   18.04.2009, 06:59:10
- - 60156   Jak tylko to Ci sie nie podoba to super. Oczywisci...   18.04.2009, 07:06:13
|- - AxZx   Cytat(60156 @ 18.04.2009, 08:06:13 ) ...   18.04.2009, 21:45:33
- - vokiel   Sorry bardzo ale co jest z SEO w adresie ...Cms/So...   18.04.2009, 10:15:45
- - netvalue   Cytat(vokiel @ 18.04.2009, 11:15:45 )...   18.04.2009, 14:55:49
- - Moli   CytatKompletnie się mylisz... nazwą pliku/katalogu...   18.04.2009, 15:27:06
- - 60156   Przegladalem troche roznyh CMS i podstawowy proble...   18.04.2009, 16:06:36
- - 60156   Nie chwale sie bo nie musze, oczekuje sugesti i ki...   18.04.2009, 16:32:23
- - vonEverest   Mi tam się nawet podoba, ile czasu to pisałeś?   18.04.2009, 16:37:34
- - 60156   Odpowiadajac: *) zaczalem pracowac nad SowaCms w ...   18.04.2009, 17:05:08
- - 60156   Jest to porawnie: jesli widzisz pod obrazkeim oth...   18.04.2009, 20:16:20
- - l0ud   Na pewno nie jest poprawne to, że link po kliknięc...   18.04.2009, 20:23:12
- - 60156   Przepraszam zle zrozumialem poprzednigo posta, Ocz...   18.04.2009, 21:30:49
- - Pilsener   CytatJego ide mozna objezec na - nie no, sorry, al...   18.04.2009, 23:04:03
- - 60156   Odpowiadajac na Twoje Pytania: *) Ajax zamiast fo...   19.04.2009, 02:12:04
- - Pilsener   Cytatno wlansie SowaCms w podstawowej wersji nie w...   19.04.2009, 11:07:52
- - marcio   Dobra Koles Cms jest lajtowy fajnie wyglada niby ...   19.04.2009, 11:43:02
- - 60156   Uzycie Ajax-u zdecydowanie upraszcza przesylanie...   19.04.2009, 17:10:55
- - wlamywacz   Cytat(60156 @ 19.04.2009, 16:10:55 ) ...   6.05.2009, 22:19:15
- - 60156   Dzieki za uwagi, Uzycie Ajax-u wynika z tego ze ...   6.05.2009, 23:24:53
- - dr_bonzo   Dosyc niewygodne, bo jak zamkne okno to nie wiem c...   6.05.2009, 23:32:33
- - 60156   Dokladnie, wiesz bo pola nie wypelnione lub zle wy...   6.05.2009, 23:44:29
- - dr_bonzo   Ano teraz widze roznice.   6.05.2009, 23:45:55
- - 60156   Czyli zgadzasz sie ze mna ze jest to lepsze rozwia...   6.05.2009, 23:52:14
|- - bełdzio   Cytat(60156 @ 7.05.2009, 00:52:14 ) C...   8.05.2009, 17:44:47
- - vokiel   Jednak lepiej by było gdyby dało się uzupełniać fo...   7.05.2009, 06:57:05
- - wlamywacz   A pokaż nam jeszcze kod którym generujesz taki for...   7.05.2009, 09:22:35
- - 60156   Rejestracja sklada sie z 3 czesci 1) PREZENTACJA ...   7.05.2009, 12:00:16
- - wlamywacz   Moim zdaniem kod js powinien być generowany wraz z...   7.05.2009, 12:31:10
- - 60156   Masz racje i jest to calkowicie mozliwe, generowa...   7.05.2009, 12:51:19
- - wlamywacz   Może jednak pokazałbyś PA ?   7.05.2009, 13:29:47
- - 60156   Przyslij email na adres: 060156@gmail.com podami ...   8.05.2009, 00:37:34
- - wlamywacz   Jakoś PA do mnie nie przemawia i jest mało intuicy...   8.05.2009, 08:59:14
- - nospor   panowie, jesli to PA ma miec dostep jedna czy dwie...   8.05.2009, 09:01:12
- - wlamywacz   060156 Czy mogę udostępnić dane do PA lub sam je u...   8.05.2009, 10:20:15
- - 60156   Przygotuje na jutro wersje PA dostepna dla wszystk...   8.05.2009, 16:05:35
- - 60156   Jak najbardziej masz racje, dotychczas nie spotkal...   8.05.2009, 17:55:53
|- - bełdzio   Cytat(60156 @ 8.05.2009, 18:55:53 ) J...   8.05.2009, 20:57:38
- - 60156   No mam inne obserwacje. Firma dla ktorej pracuje ...   8.05.2009, 22:09:28
- - dr_NO   Do you want to login ? heh wszystko na około, ...   28.05.2009, 12:04:55


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 16:15