2012-03-22 8 views
1

우리는 사이트를 인수하여 typo3에서 Orchard로 이식합니다. 지금 당장은 데이터베이스와 사이트 파일이 하나도 없습니다. mysql에서 데이터베이스를 설정하고 데이터를 쿼리 할 수있다. 현재 사용중인 typo3의 버전을 알 수 없습니다. 필요하다면, 알아낼 수도 있지만, 말했듯이 지금 당장 가지고있는 것은 데이터베이스뿐입니다.Typo3에서 데이터 가져 오기

오차드로 가져 오기 위해 필요한 XML에 데이터를 기록 할 수 있도록 데이터를 사용 가능한 형식으로 가져와야합니다. 문제는, typo3의 데이터베이스가 어떻게 설정되었는지에 대한 문서를 찾을 수 없다는 것입니다. 그래서 콘텐츠를 얻을 수 없었습니다 ... 지금까지 발견 된 유용한 테이블은 "페이지"테이블입니다 ,하지만 실제로는 페이지의 인스턴스에서 콘텐츠를 뺀 것을 저장하는 것 같습니다.

Page Title 
Parent Page (for hierarchical concerns) 
Content for a page 

누군가 내가이 내용을 꺼내 찾기 위해 필요한 테이블에 도움이 되거 수 : 여기에 내가 필요로하는 물건은 무엇입니까? tt_content의 각을 통과 한 후

select p.Uid PageId, p.pid ParentId, Title, c.BodyText, concat('index.php?id=',p.Uid) OriginalUrl, 
p.deleted, c.deleted 
from pages p 
left join tt_content c on p.Uid = c.Pid 
where p.deleted = 0 and c.deleted = 0 

그리고 :이 쿼리를 사용하여 데이터를 수집 내가 한 것은

되었다

  • 편집 * 내가 사용하는 작업 뭔가를 얻을 수 있었다 레코드를 만들고 이들을 연결하여 하나의 페이지에 대해 다소 일관된 HTML을 형성하고 평평하게 만듭니다. 이것은 아무것도 아닌 것보다 낫습니다. 나는 아직 플러그인으로 아무 것도하지 않았지만 거기에 tx_ 테이블을 보았다. ... 관계없이, 이것은 시작이다. by PageId, c.pid

+0

아침 내내 검색 한 후이 질문을 게시하기로 결정했습니다. 게시 한 후, 나는 돌아가 db를 보았고, 내가 완전히 놓친 tt_content 테이블이있다. 이것에 대해 살펴 보겠습니다. 그 동안 다른 사람이 추가 할 것이 있으면 알려주세요. – tjans

+0

** 페이지 ** 표에는 모든 페이지가 포함되어 있습니다. ** tt_content ** 표에는 페이지의 모든 내용이 포함되어 있습니다. 그러나 데이터베이스에 저장된 콘텐츠는 TYPO3에서 출력 한 콘텐츠와 동일하지 않습니다. 원본 TYPO3 웹 사이트에서 생성 된 올바른 HTML 출력을 얻으려면 적용해야하는 변환 작업이 있습니다. – tmt

+0

심각합니까? 그렇다면이 변환을 적용하는 방법을 알 수있는 방법이 있습니까? 아니면 데이터를 가져 오는 더 좋은 방법이 있습니까? 웹 사이트의 인스턴스를 실행하고 실행할 수 있다면 거기에 내보내기 기능이 있습니까? – tjans

답변

2

데이터베이스 구조는 매우 간단하다. 당신은 uid와 pid를 가진 페이지 테이블을 가지고 있습니다. pid는 레코드가 생성 된 페이지를 항상 정의합니다.

Page Title => pages.title 
Parent Page (for hierarchical concerns) => pages.pid 
Content for a page => tt_content.* where pid = pages.pid order by sorting 

페이지 유형이 다양하며 그 중 일부는 레코드를 보유하는 폴더이지만 페이지는 메뉴에 없습니다.

tt_content와 동일합니다. 텍스트, 이미지, 텍스트/이미지, 헤더 등 다양한 콘텐츠 요소가 많이 있습니다. 이를 위해 tt_content.CType을 살펴보십시오. 이미지가 정의되었지만 누군가가 텍스트 요소 만 TEXT로 변경했기 때문에 이미지가 TYPO3에서 렌더링되지 않습니다. colPos도 살펴야합니다. 이 필드는 내용이 표시 될 열을 나타냅니다. colPos = 0은 일반적으로 보통 열, colPos = 1 left, colPos = 2 right 등입니다. 그러나 그 방법은 다릅니다. 이 열 내에서 정렬을 사용하여 올바른 순서를 얻을 수 있습니다.

tt_content 외에 추가 테이블과 함께 제공되는 "플러그인"또는 "확장명"이 있습니다. 일반적으로 tx_ 또는 tt_로 시작합니다. 그래서 그들은 기록을 보유 할 것입니다.

템플릿없이 TYPO3을 사용하여 각 페이지에 필요한 XML을 렌더링 할 수 있습니다. 데이터베이스로 충분할 것입니다. 하지만이를 위해서는 TypoScript와 TYPO3 데이터베이스 스키마를 이해해야합니다. 제 생각에, 당신은 순수한 데이터를 얻는 것이 좋을 것입니다.

몇 가지 추가 필드가 있지만 중요 정보는 이해하기 쉽습니다. deleted = 0/1, hidden = 0/1, starttime, endtime, uid, pid.

+1

작업을 조금 더 어렵게 만들려면 번역 및 작업 영역이 사용되어야합니다. 다음은 문서 링크입니다 (임시 URL을 유감스럽게 생각하지만 실제 문서는 너무 느리다) http://srv123.typo3.org/~mbless/DOCROOT_HTDOCS/TYPO3v4/doc_core_inside/html/02/02-06/02 -06-02-Relational_Database_Structure.html 및 http://srv123.typo3.org/~mbless/DOCROOT_HTDOCS/TYPO3v4/doc_core_inside/html/02/02-07/02-07-01-Versioning_in_TYPO3.html 및 http : /// /srv123.typo3.org/~mbless/DOCROOT_HTDOCS/TYPO3v4/doc_core_tca/html/ – pgampe

+0

친절하게 감사드립니다 ... 지금은 원시 데이터 만 사용하고 나중에 누군가가 콘텐츠를 수정해야합니다 ... – tjans