2013-07-23 1 views
0

맞춤 모듈과 맞춤 cron 작업을 만들었습니다. 내 코드는 다음과 같습니다.magento가 프런트 엔드에서 config.xml로 변수를 전달합니다.

<crontab> 
    <jobs> 
     <customer_cron_job> 
      <schedule> 
       <cron_expr>*/1 * * * *</cron_expr><!-- will be configurable from custom admin frontend--> 
      </schedule> 
      <run> 
       <model>globalconnector/observer::cronUpdates</model> 
      </run> 
     </customer_cron_job> 
    </jobs> 
</crontab> 

이제이 모듈에는 사용자 정의 관리 프론트 엔드가 있습니다. 여기서 사용자가 cron 작업을 실행할 시간 (cron_expr)을 지정하는 기능을 제공하려고합니다. 즉 'cron_expr'이 동적으로 설정됩니다. 어떤 도움이라도 대단히 감사합니다.

답변

0

내가 여기에 .... 그것을 가지고 내가 한 일이다.

  1. 내가 내 사용자 지정 adminmodule.phtml에 대한 블록 파일을 생성하여 config.xml에

     <schedule> 
         <cron_expr>*/1 * * * *</cron_expr><!-- will be configurable from custom admin frontend--> 
        </schedule> 
    
  2. 에서 다음과 같은 댓글을 달았습니다. 이 파일에는 사용자가 다양한 매개 변수를 제공 한 다음 동일한 페이지에 양식을 제출하는 양식이 들어 있습니다.

  3. setCron ($ cronData)이라는 함수를 만들었습니다. 이 기능은 PHTML에서 호출 :

    function setCron($cronData){ 
        $gcSwitch = new Mage_Core_Model_Config(); 
        $cronExprString = ''; 
        foreach ($cronData as $key => $value) { 
         $cronExprString = $cronExprString.' '.$value; 
        } 
        $cronExprString = ltrim($cronExprString); 
    
        $gcSwitch ->saveConfig('crontab/jobs/customer_cron_job/schedule/cron_expr', $cronExprString, 'default', 0); 
    } 
    

    이것이하는 일은 데이타베이스에서 "core_config_data"테이블을 업데이트입니다 다음과 같이

    $this->setCron($_POST) 
    
  4. 기능입니다. 더 많은 증거가 필요하면이 표를보십시오. 이 테이블에는 다음과 같은 열이 있습니다

    config_id(PK),scope,scope_id,path,value 
    

내가 1 위 setConfig() 메소드의 동작을 이해할 수있는 지금은 생각합니다. 테이블에 이미 "crontab/jobs/customer_cron_job/schedule/cron_expr"항목이 있습니다. 그렇지 않으면 config.xml에 문제가 있습니다.

0
<crontab> 
     <jobs>     
      <company_export_send_order> 
       <schedule> 
        <!-- Use the config path in your system.xml here --> 
        <config_path>globalconnector/general/cron_settings</config_path> 
       </schedule> 
       <run> 
        <model>globalconnector/observer::cronUpdates</model> 
       </run> 
      </company_export_send_order> 
     </jobs> 
    </crontab> 

모듈의 system.xml에서 cron 표현식을 입력 할 텍스트 필드를 정의하기 만하면됩니다. 여기

더 자세히 : magento cron in backend configuration

+0

하지만 기존 기본 시스템 구성 페이지에 텍스트 필드를 추가한다고 말한 것이 아닙니까? 양식이 포함 된 사용자 정의 module.phtml 파일이 있습니다. 양식에서 나는 사용자로부터 cron_expr의 가치를 취할 텍스트 필드를 가지고 있으며이 cron_expr을 config.xml에서 설정하고 싶습니다. 이 일을 할 수있는 방법이 있습니까? – Krishna

관련 문제