php 메타 - Magento 시스템 구성에서 데이터를 얻는 방법




태그 오픈 (5)

Magento 1.x

(아래에 제공된 magento 2 예제)

sectionName , groupNamefieldName 은 모듈의 etc / system.xml 파일에 있습니다.

PHP 구문 :

Mage::getStoreConfig('sectionName/groupName/fieldName');

CMS 페이지 또는 정적 블록의 내용과 같이 관리자의 편집기 내에서. 카탈로그 카테고리, 카탈로그 제품 등의 설명 / 간단한 설명

{{config path="sectionName/groupName/fieldName"}}

"편집기 내부"접근 방식의 경우 필드 값은 {{...}} 내용을 구문 분석 할 수 있도록 필터를 통해 전달되어야합니다. Magento는 CMS 페이지 및 정적 블록뿐만 아니라 범주 및 제품 설명을 위해이 작업을 수행합니다. 그러나 사용자 정의보기 스크립트에서 컨텐트를 출력하고이 변수를 파싱하려면 다음과 같이 할 수 있습니다.

<?php
    $example = Mage::getModel('identifier/name')->load(1);
    $filter  = Mage::getModel('cms/template_filter');
    echo $filter->filter($example->getData('field'));
?>

식별자 / 이름 을로드하려는 모델의 적절한 값으로 대체하고 출력 할 속성의 이름을 입력하십시오. 구문 분석 할 필요가있는 {{...}} 항목이 포함될 수 있습니다.

Magento 2.x

\ Magento \ Framework \ View \ Element \ AbstractBlock을 확장하는 모든 Block 클래스에서

$this->_scopeConfig->getValue('sectionName/groupName/fieldName');

다른 PHP 클래스 :

클래스 (그리고 그것의 부모가 아닌)가 생성자를 통해 \Magento\Framework\App\Config\ScopeConfigInterface 를 삽입하지 않으면 클래스에 추가해야합니다.

// ... Remaining class definition above...

/**
 * @var \Magento\Framework\App\Config\ScopeConfigInterface
 */
protected $_scopeConfig;

/**
 * Constructor
 */
public function __construct(
    \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
    // ...any other injected classes the class depends on...
) {
  $this->_scopeConfig = $scopeConfig;
  // Remaining constructor logic...
}

// ...remaining class definition below...

클래스에 클래스를 삽입하면 블록 클래스에 대해 위에 제공된 구문 예제와 동일한 저장소 구성 값을 가져올 수 있습니다.

클래스의 __construct () 매개 변수 목록을 수정 한 후에는 생성 된 클래스와 종속성 삽입 디렉토리를 지워야 할 수도 있습니다. var/generation & var/di

난 그냥 내 사용자 정의 모듈에 대한 구성 데이터를 얻을 수있는 방황. 구성은 admin system->configuration 및 프론트 엔드에서 가져 오는 방법으로 설정할 수 있습니다.


$configValue = Mage::getStoreConfig('sectionName/groupName/fieldName');

sectionName , groupNamefieldName 은 모듈의 etc / system.xml 파일에 있습니다.

위의 코드는 현재 조회 된 저장소의 구성 값을 자동으로 가져옵니다.

현재보고있는 저장소가 아닌 다른 저장소의 구성 값을 가져 오려면 다음과 같이 저장소 ID를 getStoreConfig 함수의 두 번째 매개 변수로 지정할 수 있습니다.

$store = Mage::app()->getStore(); // store info
$configValue = Mage::getStoreConfig('sectionName/groupName/fieldName', $store);

다음 코드를 사용해야합니다.

$configValue = Mage::getStoreConfig(
                   'sectionName/groupName/fieldName',
                   Mage::app()->getStore()
               ); 

Mage::app()->getStore() 이것은 현재 저장소에 대한 올바른 구성 값을 얻을 수 있도록 저장소 코드를 가져 오기 값에 추가하므로 magento가 다중 저장소 /보기에도 사용되므로 저장소를 추가해야하므로 잘못된 저장소 값을 방지합니다. magento로 무엇이든 가져올 코드.

저장소가 여러 개 있거나 여러 개의 뷰가 구성된 경우 현재 저장소에 대한 값을 얻고 있음을 보장합니다.


예를 들어 config-> store 전자 메일 주소에서 EMAIL ADDRESS를 가져 오려면. 주소를 원할 상점을 지정할 수 있습니다.

$store=Mage::app()->getStore()->getStoreId(); 
/* Sender Name */
Mage::getStoreConfig('trans_email/ident_general/name',$store); 
/* Sender Email */
Mage::getStoreConfig('trans_email/ident_general/email',$store);

또 다른 좋은 대안은 YouTube에서 지원하는 oEmbed API를 사용하는 것입니다.

oEmbed URL에 YouTube URL을 추가하기 만하면 미리보기 이미지와 삽입 할 html 코드가 포함 된 JSON이 전송됩니다.

예:

http://www.youtube.com/oembed?format=json&url=http%3A//youtube.com/watch%3Fv%3DDLzxrzFCyOs

줄 것입니다 :

{
  thumbnail_url: "https://i.ytimg.com/vi/DLzxrzFCyOs/hqdefault.jpg",
  width: 459,
  author_name: "AllKindsOfStuff",
  version: "1.0",
  author_url: "https://www.youtube.com/channel/UCLNd5EtH77IyN1frExzwPRQ",
  thumbnail_width: 480,
  type: "video",
  provider_url: "https://www.youtube.com/",
  html: "<iframe width="459" height="344" src="https://www.youtube.com/embed/DLzxrzFCyOs?feature=oembed" frameborder="0" allowfullscreen></iframe>",
  title: "Some title bla bla foo bar",
  thumbnail_height: 360,
  provider_name: "YouTube",
  height: 344
}

자세한 내용은 설명서를 참조하십시오.





php magento