묻고답하기
고수님들 조금만 도와주세요 ㅠㅠ twitter card애드온관련
2015.01.19 04:18
안녕하세요!
제가 트위터 카드애드온을 쓰던중 불편한부분이 있어 고쳐보려고했으나 초보자의 한계로 장렬히 실패하여 ...ㅠ 도움을 구하고자 글씁니다.
제가쓰는 애드온은
https://www.xpressengine.com/index.php?mid=download&package_id=22753315
(게시물내용을 트위터카드 -싸이트주소입력되었을시 rss처럼 부가적인 내용이 나올수있게 해줌) 이것입니다.
애드온이 정말 완벽하고 펄풱하고 너무 멋진데, 단 하나의 단점이,
파일첨부가 없을때, 외부이미지 링크로는 트위터카드의 썸네일을 생성하지 못한다는 것입니다..ㅠㅠ
애드온php를 보면
$content = cut_str(trim(preg_replace('/\s\s+/', ' ',strip_tags($oDocument->get('content')))),200,'');
$file_list = $oDocument->getUploadedFiles();
if($file_list)
{
$source = $file_list[0]->uploaded_filename;
if(strlen($source) >= 2 && substr_compare($source, './', 0, 2) === 0)
{
$filePath = Context::get('request_uri') . substr($source, 2);
}
}else{
$filePath = $addon_info->logo;
}
중략
<meta name="twitter:image:src" content="'.$filePath.'">
첨부파일리스트가 없으면 애드온설정에서 입력받은 홈페이지로고파일이 자동으로 들어갑니다..
저렇게말고 내용 태그 중에 img태그나 jpg,png,gif로 끝나는 파일이있을때 그파일을 썸네일로 넣어주고싶어서
document.item.php파일까지 뒤졌습니다.
// If not exists, file an image file from the content
if(!$source_file)
{
$content = $this->get('content');
$target_src = null;
preg_match_all('/<\s*img[^>]*src\s*=\s*["\']?([^"\']*)/i', $content, $matches, PREG_SET_ORDER);
$cnt = count($matches);
for($i=0;$i<$cnt;$i++)
{
$target_src = trim($matches[$i][1]);
if(preg_match('/\/(common|modules|widgets|addons|layouts)\//i', $target_src)) continue;
else
{
if(!preg_match('/^(http|https):\/\//i',$target_src)) $target_src = Context::getRequestUri().$target_src;
$tmp_file = sprintf('./files/cache/tmp/%d', md5(rand(111111,999999).$this->document_srl));
if(!is_dir('./files/cache/tmp')) FileHandler::makeDir('./files/cache/tmp');
FileHandler::getRemoteFile($target_src, $tmp_file);
if(!file_exists($tmp_file)) continue;
else
{
$source_file = $tmp_file;
$is_tmp_file = true;
break;
}
}
}
}
그런데 저내용을 뜯어서 제딴에는 될거라생각해서 수정한 내용들이 오류만먹고 계속 화이얀 화면으로 저를 반겨주더라구요 ..ㄸㄹ
제가 깊은 지식이 없다보니 계속 해보려해도 실패만 해버립니다.
작은 관심만 표해주셔도 초보에겐 큰 도움이 된답니다 . (꾸벅)