/concreteOLD/tools/themes/preview_external.php

https://bitbucket.org/selfeky/xclusivescardwebsite · PHP · 58 lines · 40 code · 7 blank · 11 comment · 5 complexity · b431146775f1bb9a5242cace29db6109 MD5 · raw file

  1. <?php
  2. defined('C5_EXECUTE') or die("Access Denied.");
  3. Loader::model('collection_types');
  4. $previewCID=intval($_REQUEST['previewCID']);
  5. $themeCID=intval($_REQUEST['themeCID']);
  6. $themeHandle=$_REQUEST['themeHandle'];
  7. $ctID=intval($_REQUEST['ctID']);
  8. $collectionType=CollectionType::getByID($ctID);
  9. if($collectionType) $ctHandle=$collectionType->getCollectionTypeHandle();
  10. $c = Page::getByID($previewCID,"RECENT");
  11. $cp = new Permissions($c);
  12. if(!$cp->canWrite()) throw new Exception(t("Access Denied."));
  13. //$previewVersion=$previewCollection->getVersionObject();
  14. $previewVersionID=$c->getVersionID();
  15. $db=Loader::db();
  16. $previewBlocksData=$db->getAll('SELECT bID, arHandle FROM CollectionVersionBlocks AS cvb WHERE cvID=? AND cID=?',array($previewVersionID, $previewCID) );
  17. $areasBlocksHTML=array();
  18. //get collection areas / blocks HTML
  19. foreach($previewBlocksData as $previewBlockData){
  20. if( !intval($previewBlockData['bID']) || !strlen($previewBlockData['arHandle']) ) continue;
  21. $b = Block::getByID( intval($previewBlockData['bID']) );
  22. $bv = new BlockView();
  23. ob_start();
  24. $bv->render($b);
  25. $blockHTML=ob_get_contents();
  26. ob_end_clean();
  27. $areasBlocksHTML[$previewBlockData['arHandle']][]= $blockHTML;
  28. }
  29. $areasBlocksSerialized=serialize($areasBlocksHTML);
  30. $postStr='content='.urlencode($areasBlocksSerialized).'&themeHandle='.$themeHandle.'&ctID='.$ctID.'&ctHandle='.$ctHandle;
  31. if (!function_exists('curl_init')) { ?>
  32. <div><?php echo t('curl must be enabled to preview external themes.')?></div>
  33. <?php }else{
  34. $curl_handle = curl_init();
  35. curl_setopt($curl_handle, CURLOPT_URL, MARKETPLACE_THEME_PREVIEW_URL);
  36. curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $postStr);
  37. //curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, $timeout);
  38. curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
  39. $contents = curl_exec($curl_handle);
  40. curl_close($curl_handle);
  41. echo $contents;
  42. }
  43. /*
  44. foreach($areasBlocksHTML as $areaName=>$areaBlocksHTML){
  45. echo '<br><br><strong>'.$areaName.'</strong>';
  46. foreach($areaBlocksHTML as $areaBlockHTML){
  47. echo $areaBlockHTML.'<br>';
  48. }
  49. }
  50. */
  51. ?>