示例#1
0
        } else {
            $content .= $cms_language->getmessage(MESSAGE_PAGE_EMPTY_SET);
        }
        $content .= '<br /><br />
		<form action="polymod_plugin_definition.php" method="post">
			<input type="hidden" name="moduleCodename" value="' . $moduleCodename . '" />
			<input type="hidden" name="object" value="' . $object->getID() . '" />
			<input type="submit" class="admin_input_submit" value="' . $cms_language->getMessage(MESSAGE_PAGE_ACTION_NEW) . '" />
		</form><br />';
    }
    //Oembed
    if ($object->getID()) {
        $content .= '
		<dialog-title type="admin_h2">' . 'Oembed' . ' :</dialog-title>
			<br />';
        $definitions = CMS_polymod_oembed_definition_catalog::getDefinitionsForObject($object->getID());
        if (!empty($definitions)) {
            $content .= '<table border="0" cellpadding="2" cellspacing="2">
			<tr>
				<th class="admin">Libell&eacute;</th>
				<th class="admin">Codename</th>
				<th class="admin">Action</th>
			</tr>';
            $count = 0;
            foreach ($definitions as $oembedDefinition) {
                $count++;
                $td_class = $count % 2 == 0 ? "admin_lightgreybg" : "admin_darkgreybg";
                $content .= '<tr alt="ID : ' . $oembedDefinition->getId() . '" title="ID : ' . $oembedDefinition->getId() . '">
					<td class="' . $td_class . '">' . $oembedDefinition->getLabel() . '</td>
					<td class="' . $td_class . '">' . $oembedDefinition->getCodename() . '</td>
					<td class="' . $td_class . '">
示例#2
0
 /**
  * Treat given content tag by this module for the specified treatment mode, visualization mode and object.
  *
  * @param string $tag The CMS_XMLTag.
  * @param string $tagContent previous tag content.
  * @param integer $treatmentMode The current treatment mode (see constants on top of CMS_modulesTags class for accepted values).
  * @param integer $visualizationMode The current visualization mode (see constants on top of cms_page class for accepted values).
  * @param object $treatedObject The reference object to treat.
  * @param array $treatmentParameters : optionnal parameters used for the treatment. Usually an array of objects.
  * @return string the tag content treated.
  * @access public
  */
 function treatWantedTag(&$tag, $tagContent, $treatmentMode, $visualizationMode, &$treatedObject, $treatmentParameters)
 {
     switch ($treatmentMode) {
         case MODULE_TREATMENT_BLOCK_TAGS:
             return parent::treatWantedTag($tag, $tagContent, $treatmentMode, $visualizationMode, $treatedObject, $treatmentParameters);
             break;
         case MODULE_TREATMENT_CLIENTSPACE_TAGS:
             return parent::treatWantedTag($tag, $tagContent, $treatmentMode, $visualizationMode, $treatedObject, $treatmentParameters);
             break;
         case MODULE_TREATMENT_PAGECONTENT_TAGS:
             if (!$treatedObject instanceof CMS_page) {
                 $this->raiseError('$treatedObject must be a CMS_page object');
                 return false;
             }
             switch ($tag->getName()) {
                 case "span":
                     $ids = explode('-', $tag->getAttribute('id'));
                     $selectedPluginID = (int) $ids[1];
                     $selectedItem = (int) $ids[2];
                     //then create the code to paste for the current selected object if any
                     if (sensitiveIO::isPositiveInteger($selectedItem) && sensitiveIO::isPositiveInteger($selectedPluginID)) {
                         //get plugin
                         $selectedPlugin = new CMS_poly_plugin_definitions($selectedPluginID);
                         //get plugin definition
                         $definition = $selectedPlugin->getValue('compiledDefinition');
                         //set parsing parameters
                         $parameters = array();
                         $parameters['itemID'] = $selectedItem;
                         $parameters['pageID'] = $treatedObject->getID();
                         $parameters['public'] = $visualizationMode == PAGE_VISUALMODE_HTML_PUBLIC || $visualizationMode == PAGE_VISUALMODE_PRINT || $visualizationMode == PAGE_VISUALMODE_HTML_PUBLIC_INDEXABLE ? true : false;
                         //get originaly selected text
                         if (!$selectedPlugin->needSelection()) {
                             $parameters['selection'] = '';
                         } else {
                             $hasSelection = preg_match('#<!--(.*)-->#s', $tag->getInnerContent(), $matches);
                             $parameters['selection'] = io::decodeEntities($hasSelection ? $matches[1] : $tag->getInnerContent());
                             //$parameters['selection'] = io::decodeEntities($tag->getInnerContent());
                         }
                         $tagContent = '<?php $parameters = ' . var_export($parameters, true) . ';' . "\n" . io::substr($definition, 5);
                         //save in global var the page ID who need this module so we can add the header code later.
                         CMS_module::moduleUsage($treatedObject->getID(), $this->_codename, array('block' => true));
                         //Cache management
                         if ($parameters['public']) {
                             //create definition hash
                             $cacheHash = md5(serialize(array('definition' => $tagContent, 'parameters' => $parameters)));
                             $tagContent = CMS_cache::wrapCode($cacheHash, $tagContent);
                         }
                     }
                     return $tagContent;
                     break;
             }
             break;
         case MODULE_TREATMENT_PAGEHEADER_TAGS:
             $content = parent::treatWantedTag($tag, $tagContent, $treatmentMode, $visualizationMode, $treatedObject, $treatmentParameters);
             if ($treatedObject instanceof CMS_page && $tag->getName() === "atm-meta-tags") {
                 $oembed = CMS_polymod_oembed_definition_catalog::getByCodename($treatedObject->getCodename());
                 if ($oembed && CMS_poly_object_catalog::getModuleCodenameForObjectType($oembed->getObjectdefinition()) === $this->_codename) {
                     $content .= '<?php ' . "\n" . 'echo CMS_polymod_oembed_definition::getDiscoveryEndpoint(); ?>';
                 }
             }
             return $content;
             break;
         case MODULE_TREATMENT_WYSIWYG_INNER_TAGS:
             switch ($tag->getName()) {
                 case "span":
                     global $cms_language;
                     $ids = explode('-', $tag->getAttribute('id'));
                     $selectedPluginID = (int) $ids[1];
                     $selectedItem = (int) $ids[2];
                     //then create the code to paste for the current selected object if any
                     if (sensitiveIO::isPositiveInteger($selectedItem) && sensitiveIO::isPositiveInteger($selectedPluginID)) {
                         //get plugin
                         $selectedPlugin = new CMS_poly_plugin_definitions($selectedPluginID);
                         //get selected item
                         $item = CMS_poly_object_catalog::getObjectByID($selectedItem, false, $visualizationMode == PAGE_VISUALMODE_HTML_PUBLIC || $visualizationMode == PAGE_VISUALMODE_PRINT || $visualizationMode == PAGE_VISUALMODE_HTML_PUBLIC_INDEXABLE ? true : false);
                         if ($item && !$item->hasError()) {
                             //get originaly selected text if any
                             $selectedText = '';
                             if ($selectedPlugin->needSelection()) {
                                 $hasSelection = preg_match('#<!--(.*)-->#s', $tag->getInnerContent(), $matches);
                                 $selectedText = $hasSelection ? $matches[1] : $tag->getInnerContent();
                                 $tagContent = '<span id="polymod-' . $selectedPluginID . '-' . $selectedItem . '" class="polymod" title="' . io::htmlspecialchars($selectedPlugin->getLabel($cms_language) . ' : ' . trim($item->getLabel($cms_language))) . '">' . $selectedText . '</span>';
                             } else {
                                 $tagContent = '<span id="polymod-' . $selectedPluginID . '-' . $selectedItem . '" class="polymod" title="' . io::htmlspecialchars($selectedPlugin->getLabel($cms_language) . ' : ' . trim($item->getLabel($cms_language))) . '">' . CMS_poly_definition_functions::pluginCode($selectedPluginID, $selectedItem, '', $visualizationMode == PAGE_VISUALMODE_HTML_PUBLIC || $visualizationMode == PAGE_VISUALMODE_PRINT || $visualizationMode == PAGE_VISUALMODE_HTML_PUBLIC_INDEXABLE ? true : false, true) . '</span>';
                             }
                         } else {
                             $tagContent = '';
                         }
                     }
                     //strip cache comment
                     $tagContent = preg_replace('#<!--{cache:(.*)}-->#Us', '', $tagContent);
                     //encode all ampersand without reencode already encoded ampersand
                     $tagContent = sensitiveIO::reencodeAmpersand($tagContent);
                     return $tagContent;
                     break;
             }
             return $tagContent;
             break;
         case MODULE_TREATMENT_WYSIWYG_OUTER_TAGS:
             switch ($tag->getName()) {
                 case "span":
                     $ids = explode('-', $tag->getAttribute('id'));
                     $selectedPluginID = (int) $ids[1];
                     $selectedItem = (int) $ids[2];
                     //then create the code to paste for the current selected object if any
                     if (sensitiveIO::isPositiveInteger($selectedItem) && sensitiveIO::isPositiveInteger($selectedPluginID)) {
                         //get plugin
                         $selectedPlugin = new CMS_poly_plugin_definitions($selectedPluginID);
                         //get originaly selected text if any
                         $selectedText = $commentSelectedText = '';
                         if ($selectedPlugin->needSelection()) {
                             $hasSelection = preg_match('#<!--(.*)-->#s', $tag->getInnerContent(), $matches);
                             $selectedText = $hasSelection ? $matches[1] : $tag->getInnerContent();
                             $commentSelectedText = '<!--' . ($hasSelection ? $matches[1] : $tag->getInnerContent()) . '-->';
                         }
                         $tagContent = '<span id="polymod-' . $selectedPluginID . '-' . $selectedItem . '" class="polymod">' . "\n" . '<?php echo CMS_poly_definition_functions::pluginCode(\'' . $selectedPluginID . '\', \'' . $selectedItem . '\', ' . var_export($selectedText, true) . ', true); ?>' . "\n" . $commentSelectedText . '</span>';
                     }
                     return $tagContent;
                     break;
             }
             return $tagContent;
             break;
     }
     return $tag->getContent();
 }
示例#3
0
<?php

define("ENABLE_HTTP_COMPRESSION", false);
require_once dirname(__FILE__) . '/../cms_rc_frontend.php';
$url = urldecode(io::get('url'));
$format = io::get('format', '', 'json');
$page = CMS_tree::analyseURL($url);
if (!$page) {
    header('HTTP/1.x 404 Not Found', true, 404);
    exit;
}
$oembedDefinition = CMS_polymod_oembed_definition_catalog::getByCodename($page->getCodename());
if (!$oembedDefinition) {
    header('HTTP/1.x 404 Not Found', true, 404);
    exit;
}
$pageLang = $page->getLanguage(true);
$cms_language = new CMS_language($pageLang);
define('CURRENT_PAGE', $page->getID());
$website = $page->getWebsite();
$htmlDefinition = $oembedDefinition->getHtml();
$module = CMS_poly_object_catalog::getModuleCodenameForObjectType($oembedDefinition->getObjectdefinition());
$polymodModule = CMS_modulesCatalog::getByCodename($module);
$transformedDefinition = $polymodModule->convertDefinitionString($htmlDefinition, false);
$parameters = array();
$parameters['module'] = CMS_poly_object_catalog::getModuleCodenameForObjectType($oembedDefinition->getObjectdefinition());
$parameters['objectID'] = $oembedDefinition->getObjectdefinition();
$parameters['public'] = true;
$parameters['cache'] = false;
$parameters['pageID'] = CURRENT_PAGE;
$definitionParsing = new CMS_polymod_definition_parsing($transformedDefinition, true, CMS_polymod_definition_parsing::BLOCK_PARAM_MODE, $parameters['module']);
 * PHP page : polymod oembed definition
 *
 */
require_once dirname(__FILE__) . '/../../cms_rc_admin.php';
require_once PATH_ADMIN_SPECIAL_SESSION_CHECK_FS;
//checks rights
if (!$cms_user->hasAdminClearance(CLEARANCE_ADMINISTRATION_EDITVALIDATEALL)) {
    header("Location: " . PATH_ADMIN_SPECIAL_ENTRY_WR . "?cms_message_id=" . MESSAGE_PAGE_CLEARANCE_ERROR . "&" . session_name() . "=" . session_id());
    exit;
}
//load page objects and vars
$moduleCodename = io::request("moduleCodename");
$objectDefitionId = io::request("objectdefinition");
$objectDefinition = CMS_poly_object_catalog::getObjectDefinition($objectDefitionId);
$oembedDefinitionId = io::request("definition");
$oembedDefinition = CMS_polymod_oembed_definition_catalog::getById($oembedDefinitionId);
if (!$oembedDefinition) {
    $oembedDefinition = new CMS_polymod_oembed_definition();
}
if ($moduleCodename) {
    $polymod = CMS_modulesCatalog::getByCodename($moduleCodename);
}
$cms_message = "";
switch ($_POST["cms_action"]) {
    case "validate":
        $oembedDefinition->setObjectdefinition(io::post('objectdefinition'));
        $oembedDefinition->setCodename(io::post('codename'));
        $oembedDefinition->setHtml(io::post('html'));
        $oembedDefinition->setParameter(io::post('parameter'));
        $oembedDefinition->setLabel(io::post('label'));
        if ($oembedDefinition->validate()) {
 public static function getObjectName()
 {
     $page = CMS_tree::getPageByID(CURRENT_PAGE);
     $oembedDefinition = CMS_polymod_oembed_definition_catalog::getByCodename($page->getCodename());
     $parameterName = $oembedDefinition->getParameter();
     if (io::get($parameterName) && ($embededObject = CMS_poly_object_catalog::getObjectByID(io::get($parameterName), false, true))) {
         return $embededObject->getLabel();
     }
     return '';
 }