짧은 버전 :
그것은 태그 노드의의 배열을 가져옵니다, 적어도 이러한 태그 중 하나 을 사용하여 처음 10 개 노드이 각각에 대한 링크를 출력 검색 10 결과.
세부 버전 : 모든
우선, 가변 "$node
"는 특정 노드 (예를 들어 페이지 또는 스토리 노드)에 관한 데이터를 포함하는 오브젝트이다. 예를 들어 "$node->title
"은 해당 노드의 제목이됩니다. 이 태그가 없습니다 경우,이 같은 태그 (들)를 사용하여 다른 노드를 검색 할 수 있기 때문에
는 "$node->taxonomy
"테스트 (해당 노드 태그입니다. 노드와 연관된 하나 또는 여러 개의 태그가있을 때/페이지/이야기, $node->taxonomy
는 array
입니다
이제 SQL 쿼리에 대해 :.. 는 "node
는" 는 "term_node
는"기본 필드 모든 노드의 (비 CCK)입니다 저장하는 데이터베이스 테이블입니다 데이터베이스 테이블 t hat은 태그 ("taxonomy term
"라고 함)와 노드의 조합을 포함합니다. 두 테이블
"
nid
는"(내부 autoincremented 번호 임) "
unique Node ID
"이다. 이 열은 두 테이블 모두에 있으므로 테이블을 서로 조인 방법입니다. "
term_node
"의
"tid
는"(또한 내부 autoincremented 수 있음) "unique Term ID
"이다.
는 "
node
"테이블 별명이 "
n
"는 따라서 "
n.nid
"는 "
the Node ID stored in table node
"를 의미한다. "
term_node
"테이블의 별칭은 "
t
"이므로 "
t.tid
"은 "
the Term ID stored in table term_node
"을 의미합니다. 태그의 배열이 SQL 쿼리에 추가하기 위해 노드에 의해 사용 된 각 태그의
TERMID 추출하고 문자열로 변환을 내파를 통해
은 "foreach
"루프 간다. "%d
"가 "integer number
"의미
루프는 인수가 SQL 쿼리 별도로 전달 될 때 드루팔 데이터베이스 호출이 안전하기 때문에 변수 $args
의 실제 값이 변수 $tids
저장의 각 태그에 대한 SQL 쿼리의 조각을 저장 . 「db_query_range
」
데이터베이스에 다수의 행을 선택하는 함수이다 : 여기서, "0 10
"는 "retrieve the first 10 results
"를 의미한다. 은 "while
"루프 "db_fetch_object
"
는 목적 변수 "$o
"의 각 결과 저장을 검색한다.
따라서 "$o->title
"에는 SQL 쿼리에서 검색 한 열 "title
"의 값이 포함됩니다.
함수는 "l
"는 HTML 링크를위한 코드를 생성 드루팔 functin이다 : 첫번째 인자는 링크의 이름이고, 두 번째 인수는 드루팔 경로는 다음 드루팔에서 임의의 노드가 될 수있다 기본적으로 "www.yoursite.com/node/NodeID
", 을 사용하여 액세스하므로 "node/123
"(123
은 "Node ID
") 경로를 제공합니다.
이 함수는 사용자 지정 경로를 투명하게 처리하므로 노드에 "www.yoursite.com/my-great-page
"을 대신 사용하여 액세스 할 수있는 사용자 지정 경로가있는 경우 "www.yoursite.com/node/123
"대신 해당 페이지에 대한 링크가 자동으로 만들어집니다.
당신은 내 영웅입니다. 많은 많은 감사합니다. 그러나 나는 잘 따라갈 수없는 부분들이있다. "n"term_node ","tid "는"고유 용어 ID "(내부 자동 증가 번호이기도 함)입니다." 테이블 "term_node"를 살펴 보았습니다. 동일한 tid를 가진 동일한 행이 있습니다. – runeveryday
왜 내가이 두 줄을 "$ args = array ($ node-> nid); $ tids = array();" foreach 루프에서 – runeveryday
은 $ term from인데 어떻게 객체인지 알 수 있습니다. – runeveryday