/** * public static getCloneFromID * * Clones a Row, changes some attributes * and writes it to persistence (MySQL for now) * * @param anyRowID as the ID of Row to be cloned * @param String label receive a new label for this Row * @param boolean $setPrivate Should the template be set as a private one ? ALSO determines if the new row should point to the same file * @return a valid new CMS_row */ static function getCloneFromID($rowID = 0, $label = false, $setPrivate = false) { $ret = false; $model = new CMS_row($rowID); if ($model->getID() > 0) { //New blank one $row = new CMS_row(); //First write a new object to get it's ID $row->writeToPersistence(); //Setting label $label = $label ? $label : $model->getLabel(); $row->setLabel($label); //Copying template definition file (if not private template) if ($setPrivate) { $filename = $model->getDefinitionFileName(); } else { $filename = "r" . $row->getID() . "_" . SensitiveIO::sanitizeAsciiString($row->getLabel()) . ".xml"; } if ($setPrivate || CMS_file::copyTo(PATH_TEMPLATES_ROWS_FS . "/" . $model->getDefinitionFileName(), PATH_TEMPLATES_ROWS_FS . "/" . $filename)) { $row->setDefinitionFile($filename); //Copying groupsStack from database foreach ($model->getGroups() as $grp) { $row->addGroup($grp); } //Copying image $row->setImage($model->getImage(CMS_file::WEBROOT, true)); //set private if asked to. if ($setPrivate) { $row->setPrivate(true); } //copy description $row->setDescription($model->getDescription()); //add filtered templates $row->setFilteredTemplates($model->getFilteredTemplates()); //Partial update for groups and image $row->writeToPersistence(); $ret = $row; } unset($model); } if ($row) { //Clean if any error when out if (!$ret) { $row->destroy(); } unset($row); } return $ret; }
foreach ($allIcons as $icon) { list($sizeX, $sizeY) = @getimagesize($_SERVER["DOCUMENT_ROOT"] . "/" . $icon); $maxheight = $sizeY > $maxheight ? $sizeY : $maxheight; } $maxheight += 10; $columns = sizeof($allIcons) < 5 ? sizeof($allIcons) : 5; $iconsField .= "{\n\t\txtype: \t\t'radiogroup',\n\t\tfieldLabel: '<span class=\"atm-help\" ext:qtip=\"{$cms_language->getJsMessage(MESSAGE_FIELD_ICON_DESC)}\">{$cms_language->getJsMessage(MESSAGE_FIELD_ICON)}</span>',\n\t\tcolumns: \t{$columns},\n\t\titems: ["; foreach ($allIcons as $icon) { $iconsField .= "{boxLabel: '<img src=\"{$icon}\">', height:" . $maxheight . ", inputValue:'{$icon}', name: 'image', checked:" . ($row->getImage() == $icon ? 'true' : 'false') . "},"; } //remove last comma from groups $iconsField = io::substr($iconsField, 0, -1); $iconsField .= "\n\t\t]\n\t},"; } //Templates filters $filteredTemplates = $row->getFilteredTemplates(); $templates = CMS_pageTemplatesCatalog::getAll(true, '', array(), '', array(), $cms_user, 0, 0, true); $availableTemplates = $selectedTemplates = array(); foreach ($templates as $id => $template) { if (in_array($id, $filteredTemplates)) { $selectedTemplates[] = array($id, $template->getLabel()); } else { $availableTemplates[] = array($id, $template->getLabel()); } } $availableTemplates = sensitiveIO::jsonEncode($availableTemplates); $selectedTemplates = sensitiveIO::jsonEncode($selectedTemplates); //DEFINITION TAB $rowDefinition = $rowDefinition ? $rowDefinition : '<row></row>'; $content = '<textarea id="row-definition-' . $rowId . '" style="display:none;">' . htmlspecialchars($rowDefinition) . '</textarea>'; $view->setContent($content);