2013-09-25 11 views
3

지금 MVC 구성 요소를 만드는 법을 배우고 있습니다. 구성 요소 작성자를 사용하여 만든 코드를 연구했습니다.Joomla - 어디에서 삽입 SQL을 편집할까요?

이제 편집 단추에서 저장 단추를 클릭 한 후 삽입 기능을 호출하기 위해 양식을 보내려면 SQL 삽입 기능을 찾고 싶습니까?

com_astock/관리 /보기/addstock/tmpl/edit.php

<?php 
/** 
* @version  1.0.0 
* @package  com_astock 
* @copyright Copyright (C) 2013. All rights reserved. 
* @license  GNU General Public License version 2 or later; see LICENSE.txt 
* @author  Joe <[email protected]> - http:// 
*/ 
// no direct access 
defined('_JEXEC') or die; 

JHtml::addIncludePath(JPATH_COMPONENT . '/helpers/html'); 
JHtml::_('behavior.tooltip'); 
JHtml::_('behavior.formvalidation'); 
JHtml::_('formbehavior.chosen', 'select'); 
JHtml::_('behavior.keepalive'); 

// Import CSS 
$document = JFactory::getDocument(); 
$document->addStyleSheet('components/com_astock/assets/css/astock.css'); 
?> 
<script type="text/javascript"> 
    js = jQuery.noConflict(); 
    js(document).ready(function(){ 

    }); 

    Joomla.submitbutton = function(task) 
    { 
     if(task == 'addstock.cancel'){ 
      Joomla.submitform(task, document.getElementById('addstock-form')); 
     } 
     else{ 

      if (task != 'addstock.cancel' && document.formvalidator.isValid(document.id('addstock-form'))) { 

       Joomla.submitform(task, document.getElementById('addstock-form')); 
      } 
      else { 
       alert('<?php echo $this->escape(JText::_('JGLOBAL_VALIDATION_FORM_FAILED')); ?>'); 
      } 
     } 
    } 
</script> 

<form action="<?php echo JRoute::_('index.php?option=com_astock&layout=edit&stock_code=' . (int) $this->form->getInput('stock_code')); ?>" method="post" enctype="multipart/form-data" name="adminForm" id="addstock-form" class="form-validate"> 
    <div class="row-fluid"> 
     <div class="span10 form-horizontal"> 
      <fieldset class="adminform"> 

         <div class="control-group"> 
       <div class="control-label"><?php echo $this->form->getLabel('stock_code'); ?></div> 
       <div class="controls"><?php echo $this->form->getInput('stock_code'); ?></div> 
      </div> 
       <div class="control-group"> 
       <div class="control-label"><?php echo $this->form->getLabel('name'); ?></div> 
       <div class="controls"><?php echo $this->form->getInput('name'); ?></div> 
      </div> 
      <div class="control-group"> 
       <div class="control-label"><?php echo $this->form->getLabel('state'); ?></div> 
       <div class="controls"><?php echo $this->form->getInput('state'); ?></div> 
      </div> 
        <div class="control-group"> 
       <div class="control-label"><?php echo $this->form->getLabel('time_created'); ?></div> 
       <div class="controls"><?php echo $this->form->getInput('time_created'); ?></div> 
      </div> 
      <div class="control-group"> 
       <div class="control-label"><?php echo $this->form->getLabel('created_by'); ?></div> 
       <div class="controls"><?php echo $this->form->getInput('created_by'); ?></div> 
      </div> 


      </fieldset> 
     </div> 



     <input type="hidden" name="task" value="" /> 
     <?php echo JHtml::_('form.token'); ?> 

    </div> 
</form> 

경우 HTML 작업은 index.php를 /보기 레이아웃 편집을한다 = addstock & 레이아웃 = 편집

에게 전화 해? 내 모든 구성 요소를 찾으려고했는데 삽입 SQL을 찾을 수 없습니다. 나뿐만 아니라

<?php 
/** 
* @version  1.0.0 
* @package  com_astock 
* @copyright Copyright (C) 2013. All rights reserved. 
* @license  GNU General Public License version 2 or later; see LICENSE.txt 
* @author  Joe <[email protected]> - http:// 
*/ 

// No direct access 
defined('_JEXEC') or die; 

jimport('joomla.application.component.view'); 

/** 
* View to edit 
*/ 
class AStockViewAddstock extends JViewLegacy 
{ 
    protected $state; 
    protected $item; 
    protected $form; 

    /** 
    * Display the view 
    */ 
    public function display($tpl = null) 
    { 
     $this->state = $this->get('State'); 
     $this->item  = $this->get('Item'); 
     $this->form  = $this->get('Form'); 

     // Check for errors. 
     if (count($errors = $this->get('Errors'))) { 
      throw new Exception(implode("\n", $errors)); 
     } 

     $this->addToolbar(); 
     parent::display($tpl); 
    } 

    /** 
    * Add the page title and toolbar. 
    */ 
    protected function addToolbar() 
    { 
     JFactory::getApplication()->input->set('hidemainmenu', true); 

     $user  = JFactory::getUser(); 
     $isNew  = ($this->item->stock_code == 0); 
     if (isset($this->item->checked_out)) { 
      $checkedOut = !($this->item->checked_out == 0 || $this->item->checked_out == $user->get('stock_code')); 
     } else { 
      $checkedOut = false; 
     } 
     $canDo  = AStockHelper::getActions(); 

     JToolBarHelper::title(JText::_('COM_ASTOCK_TITLE_STOCK'), 'addstock.png'); 

     // If not checked out, can save the item. 
     if (!$checkedOut && ($canDo->get('core.edit')||($canDo->get('core.create')))) 
     { 

      JToolBarHelper::apply('addstock.apply', 'JTOOLBAR_APPLY'); 
      JToolBarHelper::save('addstock.save', 'JTOOLBAR_SAVE'); 
     } 
     if (!$checkedOut && ($canDo->get('core.create'))){ 
      JToolBarHelper::custom('addstock.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); 
     } 
     // If an existing item, can save to a copy. 
     if (!$isNew && $canDo->get('core.create')) { 
      JToolBarHelper::custom('addstock.save2copy', 'save-copy.png', 'save-copy_f2.png', 'JTOOLBAR_SAVE_AS_COPY', false); 
     } 
     if (empty($this->item->stock_code)) { 
      JToolBarHelper::cancel('addstock.cancel', 'JTOOLBAR_CANCEL'); 
     } 
     else { 
      JToolBarHelper::cancel('addstock.cancel', 'JTOOLBAR_CLOSE'); 
     } 

    } 
} 
+0

시도 샘플을 다운로드하십시오. com_helloworld http://docs.joomla.org/Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5 –

+0

나는 tr을 만들었습니다. 그것을 따르는 ied,하지만 joomla 3 잘 작동하지 않는 및 SQL 삽입 함수를 찾을 수 없습니다 –

답변

4

내 index.html.php을 보여주는 것입니다

당신은 당신의 컨트롤러로 코드를 저장 볼 수없는 모델은 상위 클래스를 확장합니다. 컨트롤러 및 모델에 사용자 고유의 공용 함수 저장을 만들거나 재정의 할 수 있습니다. 데이터로드 모델을 검증 '저장'라고

  1. 컨트롤러 방법 : 는 기본적으로이 작동하는 방법입니다.
  2. 컨트롤러는 모델을 호출하고 유효한 데이터를 전달합니다. 데이터를 저장하고 참 또는 거짓
  3. 모델을 돌려줍니다
  4. 모델로드의 JTable는, 부울는
  5. 컨트롤러는 재 처리 컨트롤러에 반환

클래스에 있습니다 도서관/기존/컨트롤러 및 라이브러리/레거시/모델

+0

그래서 내가 재정의 할 경우, 우리는에서 만들어야합니까? 함수 이름은 저장 권리라고 부릅니까? –

+0

은 저장하려는 부분에 따라 다릅니다. 저장하기 전에 일부 데이터를 변경 하시겠습니까, 아니면 무엇을 변경 하시겠습니까? – di3sel

+0

db에 저장할 내용을 제어하려고합니다. 나는 위의 mysql 삽입을 무시하고 싶다. –

0

Component Creator을 사용하여 구성 요소를 생성하고 어떻게하는지보십시오. 훌륭한 도구 일 수 있습니다.

+0

조언을 주셔서 감사합니다, 나는 실제로 그것으로부터 배웁니다. –

0

간단한 프리 세이브 훅 :

이 모델로 이동 및 쓰기 :

public function save($data){ 

    // do stuff with $data 

    return parent::save($data); 

} 

prepareTable 기능을 사용하는 것보다 나은 : 당신은 또한 할 수있는 공식 튜토리얼을 따라

protected function prepareTable($table) 
{ 

     $table->fieldname = 'new_value'; 

}