function assetTreeConvertToOneRegionTemplate(aohs\AssetOperationHandlerService $service, p\Child $child, $params = NULL, &$results = NULL) { if (!isset($params['site-storage']) || !isset($params['global-link-script']) || !isset($params['page-title']) || !isset($params['search-form']) || !isset($params['content-type'])) { throw new \Exception("Some of the parameters are missing."); } $type = $child->getType(); if ($type != a\Page::TYPE) { return; } // skip entire folder if (strpos($child->getPathPath(), "_extra/") !== false) { return; } if (strpos($child->getPathPath(), "_cascade/") !== false) { return; } $site_storage_block = $params['site-storage']; $global_link_script_block = $params['global-link-script']; $page_title_block = $params['page-title']; $search_form_block = $params['search-form']; $one_region_ct = $params['content-type']; $page = $service->getAsset($child->getType(), $child->getId()); try { $page->setContentType($one_region_ct); $cur_sd = $page->getStructuredData(); $new_sd = $cur_sd->mapData(); $page->setStructuredData($new_sd); $page->setBlock("site-config-group;site-storage", $site_storage_block)->setBlock("site-config-group;global-link-script", $global_link_script_block)->setBlock("site-config-group;page-title", $page_title_block)->setBlock("site-config-group;search-form", $search_form_block)->edit(); } catch (\Exception $e) { echo $page->getId(), BR; throw $e; } }
public function retrieveAsset(p\Child $child) { $id = $child->getId(); if (!isset($this->cache[$id])) { $this->cache[$id] = $child->getAsset(self::$service); } return $this->cache[$id]; }
function processPage(aohs\AssetOperationHandlerService $service, p\Child $child, $params = NULL, &$results = NULL) { // Get the next page to be processed $page = $child->getAsset($service); echo "<tr>\n"; // get the full Page asset echo "<td><a href='" . $GLOBALS['url'] . $child->getId() . "'>" . $child->getPathPath() . "</a></td>\n<td>" . $page->getContentTypePath() . "</td>\n"; echo "</tr>\n"; }
function assetTreeFindDDBlockPageWithIntialId(aohs\AssetOperationHandlerService $service, p\Child $child, $params = NULL, &$results = NULL) { if (!isset($params['partial-id'])) { throw new \Exception("The id is not included"); } $partial_id = $params['partial-id']; $type = $child->getType(); if ($type != a\DataBlock::TYPE && $type != a\Page::TYPE) { return; } $id = $child->getId(); if (!u\StringUtility::startsWith($id, $partial_id)) { return; } else { echo $id; } }
function assetTreeRemoveAsset(aohs\AssetOperationHandlerService $service, p\Child $child, $params = NULL, &$results = NULL) { if (is_array($results) && is_array($results[c\F::REPORT_ORPHANS]) && in_array($child->getPathPath(), $results[c\F::REPORT_ORPHANS][$child->getType()])) { if (isset($params[c\F::REMOVE_ASSET][c\F::UNCONDITIONAL_REMOVAL]) && $params[c\F::REMOVE_ASSET][c\F::UNCONDITIONAL_REMOVAL] == true) { $service->delete($child->toStdClass()); } else { if (!in_array($child->getId(), $params[c\F::REMOVE_ASSET][$child->getType()]) && !in_array($child->getPathPath(), $params[c\F::REMOVE_ASSET][$child->getType()])) { $service->delete($child->toStdClass()); } } } }
function assetTreeSwitchPageContentType(aohs\AssetOperationHandlerService $service, p\Child $child, array $params = NULL, array &$results = NULL) { if ($child->getType() != a\Page::TYPE) { return; } // make sure that there is a content type passed in if (!isset($params['ct'])) { throw new \Exception("No content type is supplied"); } // make sure that there is a base page passed in if (!isset($params['bp'])) { throw new \Exception("No base page is supplied"); } // make sure that there are global blocks passed in if (!isset($params['google-tag']) || !isset($params['site-storage']) || !isset($params['link-script']) || !isset($params['page-title']) || !isset($params['search-form'])) { throw new \Exception("No global blocks are supplied"); } // pages to skip if (isset($params['skip'])) { $skip = $params['skip']; } // skip whatever that is supposed to be skipped if (isset($skip) && is_array($skip) && in_array($child->getPathPath(), $skip)) { return; } // retrieve all required assets $ct = $params['ct']; $bp = $params['bp']; $google_tag = $params['google-tag']; $site_storage = $params['site-storage']; $link_script = $params['link-script']; $page_title = $params['page-title']; $search_form = $params['search-form']; // can run into phantom nodes try { // retrieve page to be processed $p = $child->getAsset($service); // get number of content-group $identifier = "content-group;0"; $num_of_groups = 1; // get the number of instances of the multiple node if ($p->hasIdentifier($identifier)) { $num_of_groups = $p->getNumberOfSiblings($identifier); } // get the current structured data with data $sd_old = $p->getStructuredData(); if (!isset($sd_old)) { return; } // create enough instances of the multiple field if ($num_of_groups > 1) { $bp->createNInstancesForMultipleField($num_of_groups, $identifier); } // get the blank structured data with needed nodes $sd_new = clone $bp->getStructuredData(); // roll back the base page if ($num_of_groups > 1) { $bp->createNInstancesForMultipleField(1, $identifier); } // switch the content type $p->setContentType($ct, false); // fix the data if (u\StringUtility::endsWith($p->getPath(), 'index')) { $sd_new->setText("right-column", "yes"); } else { $sd_new->setText("right-column", "no"); } $sd_new->setText("left-column", "yes"); $sd_new->setText("left-column-group;left-setup", "default"); // the H1 echo "Title: ", $p->getMetadata()->getTitle(), BR; $title = $p->getMetadata()->getTitle() != "" ? $p->getMetadata()->getTitle() : "Title to be set"; $sd_new->setText("main-content-title", $p->getMetadata()->getTitle()); // main WYSIWYG $sd_new->setText("main-content-content", $sd_old->getText("main-content-content")); // multiple groups with choosers for ($i = 0; $i < $num_of_groups; $i++) { $identifier = "content-group;" . $i . ";content-group-chooser"; // null the id for the upcoming round $block_id = NULL; // read the block if ($sd_old->hasIdentifier($identifier)) { $block_id = $sd_old->getBlockId($identifier); } // if there is a block attached if (isset($block_id) && $block_id != "") { $b = a\Block::getBlock($service, $block_id); $sd_new->setBlock($identifier, $b); $identifier = "content-group;" . $i . ";content-group-size"; $size_str = strtolower($sd_old->getText($identifier)); // fix the possible value for the new data definition if ($size_str != 'full') { $size_str = 'half'; } $sd_new->setText($identifier, $size_str); $identifier = "content-group;" . $i . ";content-group-block-floating"; $sd_new->setText($identifier, strtolower($sd_old->getText($identifier))); } // WYSIWYGs in group $identifier = "content-group;" . $i . ";content-group-content"; $sd_new->setText($identifier, $sd_old->getText($identifier)); } // set the data $p->setStructuredData($sd_new); } catch (e\NoSuchFieldException $e) { $page_id = $child->getId(); $phantom_page = new a\PagePhantom($service, $service->createId(a\PagePhantom::TYPE, $page_id)); $dd = $phantom_page->getDataDefinition(); $healthy_sd = new p\StructuredData($dd->getStructuredData(), $service, $dd->getId()); $phantom_sd = $phantom_page->getStructuredDataPhantom(); $healthy_sd = $healthy_sd->removePhantomNodes($phantom_sd); $phantom_page->setStructuredData($healthy_sd); } // attach the five global blocks $p->setBlock("site-config-group;google-tag-manager", $google_tag)->setBlock("site-config-group;site-storage", $site_storage)->setBlock("site-config-group;global-link-script", $link_script)->setBlock("site-config-group;page-title", $page_title)->setBlock("site-config-group;search-form", $search_form)->setBlock("site-config-group;global-script")->edit(); }