doc - OpenTurbulus

advertisement
openTurbulus Technical Report
openTurbulus
[ technical report ]
Date: 10/25/2011
Author: Ricardo José Martínez Clerigué
project web: www.openturbulus.org
Online documentation: http://www.openturbulus.org/en/docs/
At Sourceforge: http://sourceforge.net/projects/openturbulus/
Downloads: http://sourceforge.net/projects/openturbulus/files/
Email: info@openturbulus.org
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
1
openTurbulus Technical Report
Index
Development platform ..................................................................................................... 3
Development Languages and databases ............................................................................. 4
Product Operating Environments .................................................................................... 4
Enviroments for which is packaged ................................................................................... 5
Operating Platform ........................................................................................................ 5
Documentation formats ................................................................................................... 5
Support ........................................................................................................................ 6
Development framework .................................................................................................. 7
File and folders structure ....................................................................................... 19
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
2
openTurbulus Technical Report
Development methodology or guidelines:
In openTurbulus we used a pattern of development, MVC object oriented programming.
By using an MVC design, we design basically divided into models, views and controllers.
Model:
In the model layer, we have introduced all
access to the database, this layer, serves the
controller classes, all the data you need, and all
actions that require database in all kinds of
drivers
.
View:
in openTurbulus, views, can be understood as
templates that generate web pages, can not
directly access database, only load data vectors
already extracted and served from a controller.
A level of programming they can only use logical
operators
are
simple.
The philosophy we have followed them with the
view is as simple as possible from the
programming side for ease of modification or
creation.
Controller:
It is responsible for capturing, events and user actions and respond to them in
openTurbulus, drivers rely on classes and from classes is connected with the views and
models.
Development platform
To develop openTurbulus in our case we used a plain text editor for Gnome called gedit,
but just any plain text editor.
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
3
openTurbulus Technical Report
Development Languages and databases
In openTurbulus, we have used the following languages and database:
 PHP
 MySQL
 HTML
 JavaScript
 CSS
Product Operating Environments
In openTurbulus, we used a client-server architecture:
 Server: seves any operating system that supports Apache, MySql and PHP.
Therefore we have Linux, Windows and Mac OS. We personally recommend using
Linux.
 Client: is designed to run on desktop computers that can run a web browser
updated to todays date (October 2011). We tested with Firefox, Explorer Chrome
and Safary. In Mobile devices that can run a web browser with javascript should
also be able to access and use openTurbulus, but may have problems. With some
resolutions and so on.
For proper operation on the server recommend using these versions:
 PHP - recommend using 5.2.x or higher. (Not recommended for use in production
environments with PHP 4).
 MySQL - we recommend using 5.5.13 or higher.
 Apache - we recommend using 2.x or higher.
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
4
openTurbulus Technical Report
Enviroments for which is packaged
By using a client-server, the client side only needs a browser of the above date.
On the server side, supports the following operating systems tested:
 Linux
 Windows
 Mac OS
While we must expose, which will run on any operating system that can move the above
versions of Apache, PHP and MySQL.
The application provides compressed files. Zip and. Tar.gz
http://sourceforge.net/projects/openturbulus/files/ ( can be downloaded from this address )
Operating Platform
At
the
level
of
infrastructure
to
implement
openTurbulus,
we
need:
 Server: need a server that provides web services and databases. Today there are
many companies that offer web hosting services. Because we need to start
openTurbulus, there are bargains in every price depending on your needs.
 Client: Any desktop computer (Desktop) or laptop, it serves.
Documentation formats
The formats used for publishing openTurbulus documentation are:
 .pdf
 .odt
 .doc
updated documentation can be downloaded from:
http://www.openturbulus.org/en/docs/
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
5
openTurbulus Technical Report
Support
You can contact us at:
 Project Web: http://www.openturbulus.org/es/contacto/
 Email: info@openturbulus.org
 Sourceforge; se pueden utilizar todos los recursos de la forja que utilizamos (
www.sourceforge.net ) como son:
◦
Project Forums :
▪ Help
▪ Open Discussion
◦ Project followers:
▪ Bugs
▪ Support Requests
▪ Patch Tracking System
▪ Feature Request Tracking System.
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
6
openTurbulus Technical Report
Development framework
We are not using any external framework for development, really what we have done / are
doing is implementing and developing our own.
We think the best way to get an application is to start designing the database, so here we
go! =)
Structure and design of the database
It is planned that we have many more select type queries that inserts, updates and
deletes.
Therefore, the best engine or motor, we can use to gain speed, it is MyISAM, MySQL is a
very fast engine, ideal when the main workload of the database manager will be select
query type.
The main advantage of this engine is speed, so we're going to have to give something in
return is that speed, that something is the Foreing Keys (FK) or foreign key, referential
constraints between two tables.
Does this mean that we will not be able to relate tables?? NO, the relationships between
tables do programmatically from PHP.
openTurbulus
uses
a
total
of
9
tables
or
entities:
 admins contents administrators from Module 3








config various configuration parameters.
controllers registered controllers.
families1 first level families.
families2 second level families.
headers headers used by products.
langs registered languages.
pages pages, in example, a catalog is a page.
products products and services in the catalog.
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
7
openTurbulus Technical Report
Admins table contains the users whio can enter the module 3 to manage the content of
openTurbulus.
It consists of the following columns:
 id
The id is an integer, which is in turn key and autoincrement primary.
 login
The login is the administrator name is used in the login field: when accessing the module
3.
This is a varchar to 250 chars, with utf8_unicode_ci collation
 pass
Is the password used, it should be noted that sha1 encryption takes
This is a varchar to 250 chars, with utf8_unicode_ci collation
 name
Is the administrator name.
This is a varchar to 250 chars, with utf8_unicode_ci collation
 lastName
Administrator lastName.
This is a varchar to 250 chars, with utf8_unicode_ci collation
 email
Is the administrator email.
This is a varchar to 250 chars, with utf8_unicode_ci collation
 active
We use it to indicate if an admin is active.
This is an int of a digit, so it only can be 1 or 0.
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
8
openTurbulus Technical Report
The config table stores data corresponding to the company:
· as the name
· the web address of the same
· and the company email
then used in different parts such as the generation of catalogs via pdf.
It has 3 columns:
companyName
company name, it is a varchar (250) with collation utf8_unicode_ci
companyweb
is the web address of the company, it is a varchar (250) with collation
utf8_unicode_ci
companyEmail
mailing address of the company, it is a varchar (250) with collation
utf8_unicode_ci
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
9
openTurbulus Technical Report
The table stores data controllers who are active drivers which are required, is also used to
find out what place each section in the navigation bar within the private panel of Module 3.
It has 6 columns:
 id
The id is an integer, which in turn is a primary key and autoincrement.
 name
is the name of the controller will then use to go look at your directory, and mount the entire
structure. This is a varchar (250) with utf8_unicode_ci collation.
 showName
Is used to display under each button, the name of what is in the navigation bar sections or
driver control panel. This is a varchar (250) with collation utf8_unicode_ci
 required
This field indicates if the driver is required. This is an int (1) that indicates whether
mandatory or not (value 1 indicates that is mandatory).
 navigationBarPosition
This field indicates the position of the button on the top navigation bar for Module 3, or
what is the same which to place the button that calls each section.
Is an integer that can take values from 0 onwards, with 0 being the first button / section
that appears. It is an int (11).
 active
Indicates whether a record is on, 0 off, 1 on, is an int (1).
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
10
openTurbulus Technical Report
The table stores families1-class families. Is related to the languages table (langs). Each
familia1 is in a language.
 Id
This field is an integer, which in turn is a primary key and autoincrement.
 idLang
family1 related field with an id of language. The relationship becomes programmatically
from PHP. This is an int (10).
 name
Is the name of family1, it is a varchar (250) with collation utf8_unicode_ci
 description
is the description of family1, it is a varchar (250) with collation utf8_unicode_ci
 img
This field stores the relative path to the image using familia1
 active
indicates whether a record is active or not, this is an int (1) that can have 0 or 1.
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
11
openTurbulus Technical Report
Families2 table stores the families of second level is related to the table langs.
 Id
This field is an integer, which in turn is a primary key and autoincrement.
 idLang
family2 related field with an id of language. The relationship becomes programmatically
from PHP. This is an int (10).
 Family1Name
This field stores the name of the familia1 to which it belongs. This is a varchar (250) with
collation utf8_unicode_ci
 name
is the name of family2, it is a varchar (250) with collation utf8_unicode_ci
 description
is the descriptionof this family2, it is a varchar (250) with collation utf8_unicode_ci
 img
This field stores the relative path to the image using family2, it is a varchar (250) with
collation utf8_unicode_ci
 active
indicates whether a record is active or not, this is an int (1) that can have 0 or 1.
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
12
openTurbulus Technical Report
The table headers, headers handles product is also related languages (langs)
 Id
This field is an integer, which in turn is a primary key and autoincrement
 idLang
headers related field with an id of language. The relationship becomes programmatically
from PHP. This is an int (10).
 name
is the name of the header, it is a varchar (250) with collation utf8_unicode_ci
 description
is the description of the header, it is a varchar (250) with collation utf8_unicode_ci
 header1
is the text of the header1, it is a varchar (250) with collation utf8_unicode_ci
 header2
is the text of the header2, it is a varchar (250) with collation utf8_unicode_ci
 header3
is the text of the header3, it is a varchar (250) with collation utf8_unicode_ci
 header4
is the text of the header4, it is a varchar (250) with collation utf8_unicode_ci
 active
indicates whether a record is active or not, this is an int (1) that can have 0 or 1.
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
13
openTurbulus Technical Report
The board is responsible for storing langs languages, multiple tables are related to this
table.
 Id
This field is an integer, which in turn is a primary key and autoincrement.
 PrivateName
This field is an integer, which in turn is a primary key and autoincrement. is an internal
reference, to know that we utillizando name, and help us use the control panel. It is a
varchar (250) with collation utf8_unicode_ci
 description
is the description of language, it is a varchar (250) with collation utf8_unicode_ci
 publicName
Language is the name visible in the PDF and on the public Web. This is a varchar (250)
with collation utf8_unicode_ci
 isDefault
we can define a default language for the public, so that when loaded, if the visitor has not
defined the language loaded by default this language. This is an int (1) can have 0 or 1
values.
 dateRegistered
keep this date just to know when you signed up a particular language, the date is saved as
Vacher (250) with utf8_unicode_ci collation.
 meta1
This field is used on the public for positioning issues, says a robot that is a meta name
description. Therefore we can store in it a description. This is a varchar (250) with collation
utf8_unicode_ci
 meta2
This is used in the public part, to issues of positioning signals to robots, which is a
meta name keywords. Therefore it can store keywords. This is a varchar (250) with
collation utf8_unicode_ci
 sheet
This is used in the public part, to issues of positioning signals to robots, which is a meta
name keywords. Therefore it can store keywords. This is a varchar (250) with collation
utf8_unicode_ci
 catalog
Contains the text of Download pdf catalog for each language. It is used in the public
templates. This is a varchar (250) with collation utf8_unicode_ci
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
14
openTurbulus Technical Report
 flagImg
contains the path up on the image for each language, in this case are the flags for each
language. This is a varchar (250) with collation utf8_unicode_ci
 active
indicates whether a record is active or not, this is an int (1) that can have 0 or 1.
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
15
openTurbulus Technical Report
The pages table contains the different types of pages that may have openTurbulus either a
catalog, a website company, location or news.
 Id
This field is an integer, which in turn is a primary key and autoincrement
 idLang
pages related field with an id of language. The relationship becomes programmatically
from PHP. This is an int (10).
 name
is the name of the page, also used for the navigation bar, it is a varchar (250) with collation
utf8_unicode_ci
 description
is the description of the page is for internal use, it is a varchar (250) with collation
utf8_unicode_ci
 body
is the body of the page, if not a type catalog. The catalog page types do not use this field.
This is a text, with collation utf8_unicode_ci
 bottomImg
is the path on the lower image of the pages, catalog does not use these images. This is a
varchar (250) with collation utf8_unicode_ci
 sideImg
is the relative path to the image side of the pages, catalog does not use these images.
This is a varchar (250) with collation utf8_unicode_ci
 navigationBarPosition
This field indicates in which position of the navigation bar above (navigation pages) must
contain the name of this page. It is an int (10).
 type
Defines the type of page, there are 4 types of page, 1 is reserved for the catalog, the
company 2 for the 3 to 4 for location and news. it is an int (1) that can have 0 or 1.
 active
indicates whether a record is active or not, this is an int (1) that can have 0 or 1.
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
16
openTurbulus Technical Report
The products table stores the products and services registered in openTurbulus.
 Id
This field is an integer, which in turn is a primary key and autoincrement.
 idLang
products related field with an id of language. The relationship becomes programmatically
from PHP. This is an int (10).
 idFamily2
products related field with an id of family2. The relationship becomes programmatically
from PHP. This is an int (10).
 idHeaders
products related field with an id of headers. The relationship becomes programmatically
from PHP. This is an int (10).
 name
is the product name is also used for navegaciónde bar products, it is a varchar (250) with
collation utf8_unicode_ci
 description
is the description of the product is for internal use, it is a varchar (250) with collation
utf8_unicode_ci
 field1
first field of the product of a total of 4, is used to get product data. This is a text, with
collation utf8_unicode_ci
 field2
second field of the product of a total of 4, is used to get product data. This is a text, with
collation utf8_unicode_ci
 field3
third field of the product of a total of 4, is used to get product data. This is a text, with
collation utf8_unicode_ci
 field4
fourth field of the product of a total of 4, is used to get product data. This is a text, with
collation utf8_unicode_ci
 img1
This field stores the relative path to the image using the product, the first image, is also
used for PDF, it is a varchar (250) with collation utf8_unicode_ci
 img1Active
image1 indicates whether active or not, this is an int (1) that can have 0 or 1.
 img2
This field stores the relative path to image 2 to product is a varchar (250) with collation
utf8_unicode_ci
 img2Active
image2 indicates whether active or not, this is an int (1) that can have 0 or 1.
 img3
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
17
openTurbulus Technical Report
This field stores the relative path to image 3 to product is a varchar (250) with collation
utf8_unicode_ci
 img3Active
image3 indicates whether active or not, this is an int (1) that can have 0 or 1.
 img4
This field stores the relative path to image 4 to product is a varchar (250) with collation
utf8_unicode_ci
 img4Active
image4 indicates whether active or not, this is an int (1) that can have 0 or 1.
 meta
This field is used in the public part, to issues of positioning, it is a varchar (250) with
collation utf8_unicode_ci
 active
indicates whether a record is active or not, this is an int (1) that can have 0 or 1.
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
18
openTurbulus Technical Report
File and folders structure
Our mvc basically works this way, the root index.php file calls a driver (libs /
frontController), which is responsible, to form the name of the driver you need, and the
action we are going, if that is not spent any, take as default index action.
It also builds the path you need. If we get here, creates an instance of the controller, and
you miss the action requested.
So if we want to develop a new admin section for example, the controller will be created in
the folder admin / controllers / newSectionController.php
In this controller, if needed we can assist you with a class, we call admin / classes /
seccionNuevaClass.php
If you need the class to work with the database, we have to create us another file, type
model.
admin / models / newSectionModel.php
If in addition we want to view and interact with the user, we create ourselves in a template:
admin / views / sectionView.php
Keep in mind that openTurbulus actually has two applications, the first is in the public
module, located in the root where we have used the facility, and a second application
which repeats the MVC pattern, that we have within the admin folder.
We created the following directory structure and files:
In this folder, start the appropriate files to Module 3
admin/
classes/
Here are the kinds of help to drivers, the philosophy is to capture the data, actions, events
and business logic in the controller and work with these data is done in class, the class
also is calling and interact with the layer database in the models.
families1Class.php
This class helps the controller specifically families1Controller, performing work, how to tell
what languages are discharged (which asks the model families1Model)
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
19
openTurbulus Technical Report
// -> method selectLangs, get the list of langs
public function selectLangs()
{
$families1
$selectLangs
= new families1Model();
= $families1->selectLangs();
return $selectLangs;
}// end function selectLangs()
It is responsible to tell the model to add a new family in the database through addSql
method.
// -> method addSql: adds data to db
public function addSql($idLang,$name,$description)
{
$config = Config::singleton();
$families1
= new families1Model();
$count = $families1->checkRestrictionsName($idLang,$name); // family1
name must be unique for each lang
if(empty($name))
$notice = $config->get('families1Notice2'); // you must type a name
else
{
if($count == 0)// add the family1
{
$families1>addSql($idLang,$name,$description);
$notice =
$config-
>get('families1Notice3').$name." ."; // added families1
}
else// family1 already exists
{
>get('families1Notice4').$name." .";
$notice =
// error duplicate publicName
$config-
}
}
return $notice;
}// end public addSql
Suspends a family for example. This model tells the family should be stopped.
// -> method suspend, suspends a family1
public function suspend($id)
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
20
openTurbulus Technical Report
{
$config = Config::singleton();
$families1
= new families1Model();
$name = $families1->family1Name($id);
$families1->suspendSql($id);
$notice = $config->get('families1Notice7').$name." ."; // suspend family1
return $notice;
}
// end function suspend
The classes are also the methods used by the controller to mount different types of pages
that need to display eye! It is the view.
It can be observed loads all data vectors, $ data ['version'] contains for example the
current version of openTurbulus at the end of method will be seen as calling the different
templates to finish assembling the page.
This method can be called by the driver, when you need to display a form to collect data in
order to register a new family.
// -> method add: add form
public function add($idSelectedLang,$selectedLang,$notice)
{
// we do a instance
$navigationBar = new navigationBarModel();
// we ask to the model
$navigationBarVector
= $navigationBar->getControllers();
$data['controllers']
= $navigationBarVector;
$config
= Config::singleton();
$titleConfig
= $config->get('title');
$version
= $config->get('version');
$data['css']
= "css/admin.css";
$data['title']
= " families1 $titleConfig";
$data['version']
= $version;
$data['idSelectedLang'] = $idSelectedLang;
$data['selectedLang']
= $selectedLang;
$data['notice']
=
>get('families1Notice'.$notice).$name." ."; // no family1 for selected lang
$config-
$this->view->show("headerView.php",$data);
$this->view->show("navigationBarView.php",$data);
$this->view->show("families1AddView.php",$data);
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
21
openTurbulus Technical Report
$this->view->show("footerView.php",$data);
}
// end function add()
families2Class.php
This file contains the methods for the Module3 familias2 and helps families2Controller
headersClass.php
This file contains the methods for the headers and helps headersController Module3
indexClass.php
This file contains the methods for the index and helps IndexController Module3
langsClass.php
This file contains the methods for the Module3 langs and helps langsController
navigationBarClass.php
This class is a little more special, is responsible for mounting the top navigation bar with
the appropriate sections.
class navigationBarClass
{
// -> new instance of view
function __construct()
{
// we call to the model
require 'admin/models/navigationBarModel.php';
$this->view = new View();
} // end function __construct()
// -> method showNavigationBar()
public function showNavigationBar()
{
// we do a instance
$navigationBar = new navigationBarModel();
// we ask to the model
$navigationBarVector = $navigationBar->getControllers();
$data['controllers'] = $navigationBarVector;
$this->view->show("navigationBarView.php",$data);
}
Pulsar Inara | email:
// end function showNavigationBar()
info@openturbulus.org | www.openturbulus.org
22
openTurbulus Technical Report
}// end class navigationBarClass
pagesClass.php
This file contains the methods for the Module3 pagesClass and helps PagesController
productsClass.php
This file contains
ProductsController
the
methods
for
the
Module3
productsClass
and
helps
securityClass.php
controllers/
Here are the drivers of Module 3 for each section.
families1Controller.php
Here are some families.1 driver, we see that the first thing is to include the kind of help
(families1Class), and generates an object called $ families1.
Then enter a switch to see what action have passed.
Arriving index, pass a list of all the families who have for a given language.
require('classes/families1Class.php');
$families1
$ClassName
= new families1Class();
= 'families1Class';
switch($actionName)
{
case 'index':
$notice
= "";
$selectLangs
= $families1->selectLangs();
$idSelectedLang
= $_GET['idSelectedLang'];
// langs list
if(empty($idSelectedLang)) // no lang selected
{
$idSelectedLang= $families1->firstLang(); // get the first lang by public name
$families1->checkRequestsLangs(); // checks if there is any lang
}// end if empty($idSelectedLang)
$rowsNumber = $families1->rowsNumber($idSelectedLang);
$listVector
= $families1->getList($idSelectedLang); // families1 list for selected lang
$selectedLang = $families1->getNameSelectedLang($idSelectedLang);
$families1>index($listVector,$rowsNumber,$selectLangs,$idSelectedLang,$selectedLang,$notice);
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
23
openTurbulus Technical Report
break;
// form for can add families1 =)
But if it add, we have to load a form to add a new family of level 1.
The notice we use to send messages to the user, if left to introduce a field, if the name you
entered is repeated so many of these ads are variable in config.php.
case 'add':
$notice
= "";
$idSelectedLang
= $_GET['idSelectedLang'];
$notice
= $_GET['notice'];
$selectedLang
= $families1->getNameSelectedLang($idSelectedLang);
$families1->add($idSelectedLang,$selectedLang,$notice);
on the top line is called the add method, that method is responsible for serving the user in
the form of adding a new language.
break;
families2Controller.php
Family2 controller
headersController.php
Headers controller
indexController.php
Index controller or section administrator
langsController.php
Languages controller
logoutController.php
Exit controller ( destroys session )
pagesController.php
Pages controller
productsController.php
Products controller
securityController.php
Security controller
css/
In this directory we find the style sheets for Module 3.
admin.css
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
24
openTurbulus Technical Report
img/
Images folder of Module 3.
controllers/
here are the images that are used primarily for the top navigation between different
sections, we note that each image can have 3 states. This is to give a bit of animation or
effect to the button.
families1/
families11.png
families12.png
families13.png
families2/
families21.png
families22.png
families23.png
headers/
headers1.png
headers2.png
headers3.png
index/
index1.png
index2.png
index3.png
langs/
langs1.png
langs2.png
langs3.png
logout/
logout1.png
logout2.png
logout3.png
pages/
pages1.png
pages2.png
pages3.png
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
25
openTurbulus Technical Report
products/
products1.png
products2.png
products3.png
security/
logoHorizontalVertical.png
Here are the icons used views module 3, as a button, to edit, delete, add, open, etc.
suspended.
views/
families1/
add.png
del.png
edit.png
open.png
suspend.png
families2/
add.png
del.png
edit.png
open.png
suspend.png
headers/
add.png
del.png
edit.png
open.png
suspend.png
langs/
add.png
del.png
edit.png
locale.png
open.png
suspend.png
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
26
openTurbulus Technical Report
pages/
add.png
del.png
edit.png
open.png
suspend.png
products/
add.png
del.png
edit.png
open.png
suspend.png
otLogoHorizontal.png
libs/
These libraries are the heart of the design we are using.
config.php
frontController.php
spdo.php
view.php
models/
families1Model.php
This is the access layer database, for example families1Class class needs to know the
name of a given language, having the same id, the id is what would happen to this layer
are querying here, no more database access outside this layer.
// gets the name of a lang
public function getNameSelectedLang($idSelectedLang)
{
$sql= "select publicName from langs where id = $idSelectedLang;";
$query = $this->db->prepare($sql);
$query->execute();
$selectedLang = $query->fetchColumn();
return $selectedLang;
}//end function getNameSelectedLang
families2Model.php
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
27
openTurbulus Technical Report
headers.php
indexModel.php
langsModel.php
navigationBarModel.php
pagesModel.php
productsModel.php
securityModel.php
thirdparty/
(In this directory include resources that have not been developed by us but
the license is free too.)
tinymce/ it is the rich text editor for web
views/
This is the template layer, we must remember that only allows html, some simple and
logical operators to extract the data loop, you can not do database queries and so on.
We also note that each section, usually 3 files, one is to list all you have, another is to add
and the latter is to edit.
errorLoginView.php
families1AddView.php
here is an example template families1AddView.php
<br>
<?php
if(!empty($notice))
// views alerts
{
?>
<fieldset>
<legend>notice</legend>
<?php echo $notice;
// shows information about of the add to the database or others msgs ?>
</fieldset>
<?php
}
?>
<fieldset>
<legend> .: families1 :: add </legend>
<table width="100%" border="0" align="center" cellpadding="2" cellspacing="2" bgcolor="#fff">
<form
name="families1Add"
action="?controller=families1&action=addSql&idLang=<?php
$idSelectedLang; ?>" method="post">
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
echo
28
openTurbulus Technical Report
<tr>
<td width="10%" align="right">Selected language </td>
<td width="90%" align="left"><input name="selectedLang" type="text" id="selectedLang"
size="40" value="<?php echo $selectedLang; ?> " disabled></td>
</tr>
<tr>
<td width="10%" align="right">Family 1 name </td>
<td width="90%" align="left"><input name="name" type="text" id="name" size="40"></td>
</tr>
<tr>
<td width="10%" align="right">Description </td>
<td
width="90%"
align="left"><input
name="description"
type="text"
id="description"
size="40"></td>
</tr>
<tr>
<td align="right"><div align="right"></td>
<td align="left"><input type="submit" name="Submit" value="save record"></td>
</tr>
</form>
</table>
</fieldset>
families1EditView.php
families1IndexView.php
families2AddView.php
families2EditView.php
families2IndexView.php
footerView.php
headersAddView.php
headersEditView.php
headersIndexView.php
indexView.php
langsAddView.php
langsEditView.php
langsIndexView.php
loginView.php
navigationBarView.php
pagesAddView.php
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
29
openTurbulus Technical Report
pagesEditView.php
pagesIndexView.php
productsAddView.php
productsEditView.php
productsIndexView.php
config.php
config file
index.php
and the index which call to FrontController.php
Module 3 end here, the following files are related to Module 2 and who is responsible for
preparing the documents for visitors.
Module 2
observed that although the classes in this module and drivers are different MVC scheme is
the same.
classes/
catalogClass.php
indexClass.php
pagesClass.php
pdfClass.php
controllers/
catalogController.php
indexController.php
pagesController.php
pdfController.php
css/
public.css
img/
content/
(In this directory stores all the images, products, families that was uploaded)
families1/
families2/
langs/
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
30
openTurbulus Technical Report
pages/
pdf/
products/
banner.jpg
controllers/
in almost no images module for controllers
security/
logoHorizontalVertical.png
otLogoHorizontal.png
installer/ ( herein lies the installer openTurbulus )
index.php
installer.css
modInstaller.php
modInstaller is the file responsible for connecting to the database, to make the dump your
tables are going to use and write configuration files for both the module 2 to module 3.
libs/
fonts/ ( thirdparty )
class.ezpdf.php ( thirdparty )
config.php
frontController.php
spdo.php
view.php
models/
catalogModel.php
indexModel.php
pagesModel.php
pdfModel.php
thirdparty/
tinymce ( thirdparty )
views/
catalogView.php
footerView.php
headerView.php
indexView.php
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
31
openTurbulus Technical Report
pagesView.php
config.php
index.php
license.txt
Pulsar Inara | email:
info@openturbulus.org | www.openturbulus.org
32
Download