2011-10-20 3 views
3

기본적으로 분할 화면보기, 제품으로 가득 찬 원격 리포지토리 하나 그리드 및 그리드의 로컬 리포지토리를 보여주는 나란히있는 가상보기를 만들려고합니다.원격 데이터 소스를 Magento Admin Products Grid에로드

나는 원격 소스를 그리드에 통합하는 법을 말해 줄 수 있다면 본질적으로 요약 해 보겠다. 나는 거기에서도 그것을 처리 할 수 ​​있다고 생각한다. 제발, 내가 config.xml에서 내 리소스를 구성하는 방법을 듣고 정말로 싶지 않아요, 나는 이미 원격 데이터베이스와 함께 할 수있는, 나는 단지 개체/컬렉션에서로드 할 수 없습니다.

감사합니다.

+0

음, 현재 원격 데이터베이스에서 catalog_product_flat_1을 기반으로 모델을 만들려고 시도 중이지만 모델을 정상적으로 만들지 만 데이터를로드하지 않습니다. 나는 다른 것들을 시도해 봤어. 만약 다른 모든 것들이 실패한다면, 나는 단지 일반적인 varien_objects를 만들고 그 안에 수동으로 데이터를 가져 와서 그것을 generic 콜렉션에 추가 할 것이다. 나는 * 그것이 * inelegant로 작동한다는 것을 안다. 입니다. – sucitivel

답변

1

OK - 이와 같은 것을 시도한 사용자의 경우, 모듈의 소스로 둘 이상의 데이터베이스를 원할 때 ... 실제로 필요한 것은 모듈 그렇게하려면 (누군가가 차임하고 내가 틀렸다면 나를 바로 잡습니다.)

1 단계 : 원격 데이터베이스에 연결할 "더미"모듈을 만듭니다. 이 모듈은 etc/and Model /을 포함해야합니다. - 다른 것을 필요로하지 않습니다.

<config> 
<modules> 
    <Mage_RepoDummy> 
     <version>0.1.0</version> 
    </Mage_RepoDummy> 
</modules> 

<global> 
    <resources> 
     <repodummy_write> 
      <connection> 
       <use>repodummy_database</use> 
      </connection> 
     </repodummy_write> 
     <repodummy_read> 
      <connection> 
       <use>repodummy_database</use> 
      </connection> 
     </repodummy_read> 
     <repodummy_setup> 
      <connection> 
       <use>core_setup</use> 
      </connection> 
     </repodummy_setup> 
     <repodummy_database> 
      <connection> 
       <host><![CDATA[localhost]]></host> 
       <username><![CDATA[brandrepo]]></username> 
       <password><![CDATA[*******]]></password> 
       <dbname><![CDATA[brandrepo]]></dbname> 
       <model>mysql4</model> 
       <type>pdo_mysql</type> 
       <active>1</active> 
      </connection>   
     </repodummy_database>     
    </resources>  
    <models> 
     <repodummy> 
      <class>Mage_RepoDummy_Model</class> 
      <resourceModel>repodummy_mysql4</resourceModel> 
     </repodummy> 
     <repodummy_mysql4> 
      <class>Mage_RepoDummy_Model_Mysql4</class> 
      <entities> 
       <product> 
        <table>catalog_product_entity</table> 
       </product> 
      </entities> 
     </repodummy_mysql4> 
    </models> 
</global> 

<adminhtml> 
</adminhtml> 

이제 다음과 같은 모델 및 리소스 파일이 필요합니다 : Product.php에서

/Model/Product.php 
/Model/Mysql4/Product.php 
/Model/Mysql4/Product/Collection.php 

:

class Mage_RepoDummy_Model_Product extends Mage_Catalog_Model_Abstract 
{ 
    public function _construct() 
    { 
     $this->_init('repodummy/product', 'entity_id'); 
    } 
} 

다음과 같이 내 config.xml에 보인다 In Mysql4/Product.php

그리고 Mysql4/제품에서/Collection.php

당신은 마 젠토에있는 기본 모델을 위해 할 것 같은
class Mage_RepoDummy_Model_Mysql4_Product_Collection extends Mage_Catalog_Model_Resource_Collection_Abstract { 

    protected function _construct() 
    { 
      $this->_init('repodummy/product'); 
    } 
} 

그냥 베어 본 타입의 물건.

$test = Mage::getModel('repodummy/product')->load(10367); 

    die("::".$test->getSku()."::"); 
: 당신은 그냥 같은 간단한 일을 할 이것을 테스트하기를 원한다면 이제 다른 모듈에서, 그 어떤 다른 데이터베이스에 조작 된 것, 아마/아마도 당신의 로컬 인스턴스, 당신은 당신의 더미 객체를 호출하여이 원격 데이터 저장소에 액세스 할 수 있습니다

...이 모델은 원격 데이터베이스, 즐거운 코딩을 사용한다는 점을 제외하면 대부분의 경우 일반적인 제품 모델처럼 작동해야합니다!

+0

내가 후속 조치를하고 싶다고 말하면, 여기에 주어진 것만으로는이 컬렉션의 고급 사용이 불가능합니다. Product Grid 컨트롤을 복사하고이 새로운 모델을 연결했다면, 다른 모든 것들은 똑같지는 않을 것입니다 ... 그러나 그 나머지 대답은 여기 공간을위한 것입니다 - 똑똑하다면 어떤 방식 으로든 그것을 얻을 수 있어야합니다. – sucitivel

+0

내가 비슷한 것을하려고하고 있는데이 질문을 찾기가 어려웠 기 때문에 가시성을 위해 upvote로 이동하십시오. 필자는 마이그레이션과 관련하여 많은 개발자가 있다고 가정하고 오래된 API 방법은 실용적이지 않습니다. Magento 모델을 직접 사용하면 많은 양의 원격 데이터로 작업 할 때 훨씬 더 빠릅니다. – pspahn

+0

원격 테이블에 테이블 접두사를 추가하는 방법이 있습니까? – pspahn

관련 문제