나는 내 생각이 아닌 다른 출처의 양식을 스크립트에 넣었습니다. 이 기능을 작동시켜야하는 이유는 opencart가 우수한 웹 상점 기능을 처리하는 동안 우수한 cms 기능을 사용할 수 있도록 opencart 설치 상단에 drupal 톱 메뉴를 가져 오는 것입니다.drupal 메뉴의 인쇄 캐시를 사용하고 상대 경로를 절대 경로로 변환하는 데 도움이 필요합니다.
스크립트의 캐시 파일에 인쇄하는 메뉴는 상대적 url.s을 사용합니다. 이것은 메뉴가 하위 도메인에있는 opencart에 필요할 때 경로가 하위 도메인의 경로를 표시한다는 것을 의미합니다. 안좋다.
편집 : 좋아, 나는 일하는 코드를 얻었고 잠시 혼란 스러웠다. 모든 $ content와 $ contents는 어디에나있다. 아래 보이는 코드가 어떻게 보이는지 변경합니다. 시간 간격을 1 초로 변경해야하는데 그렇지 않으면 drupal 페이지가 매우 이상하게 작동했습니다. 가게의 메뉴가 변경 would't 이후
<?php
$cache_time = 1; // Time in seconds to keep a page cached
$cache_folder = 'cache'; // Folder to store cached files (no trailing slash)
$cache_filename = $cache_folder.md5($_SERVER['REQUEST_URI']);
// Location to lookup or store cached file
//Check to see if this file has already been cached
// If it has get and store the file creation time
$cache_created = (file_exists($cache_file_name)) ? filemtime($cache_filename) : 0;
if ((time() - $cache_created) < $cache_time) {
readfile($cache_filename);
// The cached copy is still valid, read it into the output buffer
die();
}
?>
<?php ob_start(); // Turns on output buffering ?>
<?php $contents = ob_get_contents(); ?>
<!-- //Stores the contents of the buffer in a variable as a string -->
<?php if ($page['header_menu']): ?>
<div id="header-menu-wrapper">
<div id="header-menu">
<?php print render($page['header_menu']); ?>
</div>
</div>
<?php endif; ?>
<?php
$contents = ob_get_contents();
$contents = str_replace('href="','href="http://yourdomain.com', $contents);
file_put_contents($cache_filename, $contents());
ob_end_flush();
?>
또한, 그렇지 않으면 매우 좋은하지 않을 것, 항상 같은 파일 이름에 기록 캐시 된 파일을 얻을 수있는 것이 좋은 것입니다 때 드루팔 메뉴가 변경되면 새 파일 이름이 생깁니다.
drupal 및 절대 경로와 관련하여 여기에서 다른 질문을 보았지만 충분히 이해하지 못하거나 적용 할 수 없습니다.
SWEET! 좋아, 내가 코드가 작동하고 절대 경로를 얻고 있어요. 대단히 감사합니다 :) 나는 독창적 인 키 등등에 관한 것을 얻지 않으며, 장신구가 그림에 들어오는 곳을 찾지 않습니다. 캐시 파일은 drupal 설치 루트에 저장되므로 opencart에서 사용하는 테마에 캐시 파일이 필요합니다. 그래서 저는 실제 캐시 파일을 가져 오는 것 이외에는 opencart를 사용하여 더 많은 것을하려고하지 않습니다. 그래서, 내가해야 할 일은 drupal의 루트에서 항상 같은 이름이고 그것을 덮어 쓰는 것입니다. 다시 고맙습니다. – user1334233
아 아하. 문제 없어. 이 문제가 해결되면 내 대답 옆에있는 체크를 클릭하십시오 :) –
클릭을 시도했지만 내 평판이 존재하지 않아서 투표 할 수 없습니다. 아니면 다른 것을 클릭 할 의향이 있습니까? – user1334233