joomla安裝,代碼結構

joomla-安裝

  1. 下載源碼php

  2. 解壓到apache發佈目錄css

  3. 訪問http://xxx/installation/index.php 根據實際狀況訪問html

  4. 按每步提示操做,mysql庫要先創建,ftp可暫時不開mysql

  5. 刪除安裝文件便可web


joomla代碼結構

Joomla 2.5主要目錄結構
├─administrator     # 後臺程序部分
├─cache             # 用於存放cache,須要保持可寫
├─components        # 組件,每一個組件一個文件夾,一般是com_**
├─images            # 圖片資源,上傳的文件都會存放在這裏,因此要保持可寫
├─language          # 語言包目錄,名稱要與components、plugin或module的名稱對應才能生效
│  ├─en-GB          # 如:language/en-GB/en-GB.com_content.ini
│  └─overrides      # 從2.5開始,語言文字能夠在後臺重寫,被重寫的語言信息存在位置
├─libraries         # joomla的核心類庫,須要深刻API的能夠閱讀裏面的代碼
├─logs              # 日誌目錄,要保持可寫
├─modules           # 所安裝模塊的位置
├─plugins           # 所安裝插件的位置
├─templates         # 所安裝模板的位置,每一個子目錄對應一個模板
│  ├─atomic         # atomic是個典型的模板,適合於初學者
│  │  ├─css         # CSS目錄,關於模板的樣式文件都放在這裏
│  │  ├─html        # 組件與模塊都有本身的默認模板(tmpl目錄),主模板有權限重寫它們,重寫的模板在這裏
│  │  ├─images
│  │  ├─js
│  │  └─language    # 模板在後臺能夠擁有配置參數,而參數的語言包會放在這裏
│  │      └─en-GB
│  └─system         # 全部template都基於system模板,不要修改它
│      ├─css
│      ├─html
│      └─images
└─tmp                # 臨時目錄,須要保持可寫
configuration.php    # 配置文件,裏面含有數據庫與網站設置信息
.htaccess            # 沒有它,在apache就不能實現僞靜態連接
web.config           # 沒有它,在IIS7就不能實現僞靜態連接

component目錄結構,舉其中一個com_users的組件的栗子:
├─com_users            # user組件,joomla裏很是重要的組件之一
│  ├─controllers       # 控件器集
│  ├─helpers           # helpers用於存放輔助類與函數  
│  ├─models            # 數據庫model
│  │  └─forms          # Joomla2.5開始,表單能夠基於XML來配置,forms是指定配置目錄   
│  └─views             # 視圖集
│      ├─login         # 登陸頁面視圖
│      │  │  metadata.xml
│      │  │  view.html.php      # 視圖邏輯,做用是model與template的橋樑
│      │  │  view.json.php      # 若是URL上有參數format=json,就會使用這個視圖邏輯,如此類推
│      │  └─tmpl                # 默認模板,會由視圖引入
│      │          default.php   # 其中一個模板
│      │          default.xml   # 後臺添加菜單時須要選擇menu type,組件是否出如今menu上靠這文件
│      │          default_login.php        # default.php的子模板,由loadTemplate引入
│      │          default_logout.php

註釋:sql

  1. 組件與模塊都有本身的默認模板(位於tmpl裏), 若是自定義的模板下的html文件夾有相同的組件或模塊,則執行渲染時,joomla會使用此下面的,也即原組件或模塊的模板被覆蓋了數據庫


模板裏的位置

每一個模板裏所包含的位置都位於templateDetails.xml裏<positions>下apache

好比下面在給模塊選擇顯示位置時json

--》app

此處列表的位置值即從各個模板的templateDetails.xml下去取的

而模板裏則用<jdoc:include type="modules" name="left" style="tz_style" />去引用


菜單項類型

在建立新菜單,選擇菜單項選項時

彈出的內容

總的來講就是取各模塊的view下文件夾展現的,詳細步驟以下:

  1. 實際訪問的是http://xxx/administrator/index.php?option=com_menus&view=menutypes&tmpl=component&recordId=101

  2. 按上面執行步驟知道其找的是administrator/components/com_menus/views/menutypes/view.html.php

  3. 看display代碼有$this->get('TypeOptions'), 此處$this指libraries/joomla/application/component/view.php

  4. 而view.php裏get是獲取model裏相應的$method = 'get' . ucfirst($property); 此處$property即爲'TypeOptions'

  5. 從getTypeOptions方法裏可見其從**_extensions表裏取值,以下

  6. $db = JFactory::getDBO();
    $query = $db->getQuery(true);
    $query->select('name, element AS ' . $db->qn('option'));
    $query->from('#__extensions');
    $query->where('type = ' . $db->q('component'));
    $query->where('enabled = 1');
    $query->order('name ASC');
    $db->setQuery($query);
  7. 獲取到component名稱後,再獲取具體連接

  8. 其會先獲取$mainXML = JPATH_SITE.'/components/'.$component.'/metadata.xml',若是此xml不存在,則

  9. $options = $this->getTypeOptionsFromMVC($component),也即

  10. $path = JPATH_SITE.'/components/'.$component.'/views'

  11. $views = JFolder::folders($path); (libraries/joomla/filesystem/folder.php)

  12. 也即列出views下文件夾返回(注意這裏文件夾下都有tmpl,顯然是頁面級,其菜單名稱從其tmpl/default.xml獲取)

  13. 拿com_contact舉例:其下文件夾categories/, category/,   contact/,    featured/

相關文章
相關標籤/搜索