/**
  * Render the link or ajax link
  * @param string $id the ID of the button
  * @param array $button the button configuration which may contain 'label', 'url', 'imageUrl' and 'options' elements.
  * See {@link buttons} for more details.
  * @param integer $row the row number (zero-based)
  * @param mixed $data the data object associated with the row
  */
 protected function renderButton($id, $button, $row, $data)
 {
     if (isset($button['visible']) && !$this->evaluateExpression($button['visible'], array('row' => $row, 'data' => $data))) {
         return;
     }
     $label = isset($button['label']) ? $button['label'] : $id;
     if (isset($button['url'])) {
         $url = $this->evaluateExpression($button['url'], array('data' => $data, 'row' => $row));
         // Not Coding Standard
     } else {
         $url = '#';
     }
     $options = isset($button['options']) ? $button['options'] : array();
     if (!isset($options['title'])) {
         $options['title'] = $label;
     }
     if (isset($button['ajaxOptions'])) {
         unset($options['ajaxOptions']);
         echo ZurmoHtml::ajaxLink($label, $url, $button['ajaxOptions'], $options);
     } else {
         if (isset($button['imageUrl']) && is_string($button['imageUrl'])) {
             echo ZurmoHtml::link(CHtml::image($button['imageUrl'], $label), $url, $options);
         } else {
             echo ZurmoHtml::link($label, $url, $options);
         }
     }
 }
 /**
  * Renders amount
  * @return string
  */
 protected function renderAmountContent()
 {
     $model = $this->model;
     $amount = Yii::app()->numberFormatter->formatCurrency((double) $model->amount->value, $model->amount->currency->code);
     $content = ZurmoHtml::tag('p', array('class' => static::DESCRIPTION_CLASS), Zurmo::t('OpportunitiesModule', 'Amount') . $this->overlayKeyValueSeparator . $amount);
     return $content;
 }
 /**
  * @return string
  */
 protected function renderEditableSecondValueContent()
 {
     $htmlOptions = $this->getHtmlOptionsForSecondValue();
     $inputContent = $this->form->textField($this->model, 'value', $htmlOptions);
     $error = $this->form->error($this->model, 'value', array('inputID' => $this->getSecondValueEditableInputId()), true, true, $this->getSecondValueEditableInputId());
     return $inputContent . $error . ZurmoHtml::tag('span', array(), ' ' . Zurmo::t('WorkflowsModule', 'value(s)'));
 }
 /**
  * Renders the setting as a radio list.
  * @return A string containing the element's content.
  */
 protected function renderThemeContent()
 {
     $gameLevel = GameLevel::resolveByTypeAndPerson(GameLevel::TYPE_GENERAL, Yii::app()->user->userModel);
     $content = ZurmoHtml::tag('h3', array(), Zurmo::t('Core', 'Theme'));
     $content .= ZurmoHtml::radioButtonList($this->getEditableInputName(KanbanBoard::SELECTED_THEME), $this->model->getKanbanBoard()->getSelectedTheme(), $this->resolveThemeColorNamesAndLabelsForLocking($gameLevel), $this->getEditableThemeHtmlOptions(), array(), $this->resolveDataHtmlOptions($gameLevel));
     return $content;
 }
Beispiel #5
0
 /**
  * Renders the attribute from the model.
  * @return The element's content.
  */
 protected function renderControlNonEditable()
 {
     if ($this->model->{$this->attribute} != null) {
         $content = DateTimeUtil::convertDbFormattedDateTimeToLocaleFormattedDisplay($this->model->{$this->attribute});
         return ZurmoHtml::encode($content);
     }
 }
 /**
  * Override to change the editableTemplate to place the label above the input.
  * @see DetailsView::resolveElementDuringFormLayoutRender()
  */
 protected function resolveElementDuringFormLayoutRender(&$element)
 {
     if ($element->getAttribute() == 'name') {
         $notification = ZurmoHtml::tag('span', array('class' => 'row-description'), Zurmo::t('MarketingListsModule', 'Name will be publicly viewable by Contacts/Leads to manage their subscriptions'));
         $element->editableTemplate = '<th>{label}</th><td colspan="{colspan}">{content}' . $notification . '{error}</td>';
     }
 }
 public function run()
 {
     $id = $this->getId();
     $this->htmlOptions['id'] = $id;
     if (isset($this->htmlOptions['disabled']) && $this->htmlOptions['disabled'] == 'disabled') {
         $tokenListClassSuffix = ' disabled';
     } else {
         $tokenListClassSuffix = '';
     }
     echo ZurmoHtml::textField($this->name, null, $this->htmlOptions);
     $javaScript = "\$(document).ready(function () { ";
     $javaScript .= "\$('#{$id}').tokenInput('{$this->sourceUrl}', { ";
     $javaScript .= "queryParam: 'term',";
     // Not Coding Standard
     if ($this->hintText != null) {
         $javaScript .= "hintText: '" . Yii::app()->format->text($this->hintText) . "',";
         // Not Coding Standard
     }
     if ($this->onAdd != null) {
         $javaScript .= "onAdd: " . $this->onAdd . ",";
         // Not Coding Standard
     }
     if ($this->onDelete != null) {
         $javaScript .= "onDelete: " . $this->onDelete . ",";
         // Not Coding Standard
     }
     if ($this->jsonEncodedIdsAndLabels != null) {
         $javaScript .= "prePopulate: " . $this->jsonEncodedIdsAndLabels . ",";
         // Not Coding Standard
     }
     $javaScript .= "preventDuplicates: 'true', classes: {tokenList: 'token-input-list" . $tokenListClassSuffix . "'}";
     $javaScript .= "});";
     $javaScript .= "});";
     Yii::app()->getClientScript()->registerScript(__CLASS__ . '#' . $id, $javaScript);
 }
 /**
  * Render a hidden input, a text input with an auto-complete
  * event, and a select button. These three items together
  * form the Opportunity Editable Element
  * @return The element's content as a string.
  */
 protected function renderControlEditable()
 {
     $content = null;
     $content .= ZurmoHtml::textField('stageToProbabilityMapping_notUsed', null, array('id' => $this->getEditableInputId(), 'style' => "display:none;"));
     $fieldData = CustomFieldData::getByName('SalesStages');
     if ($fieldData->serializedData != null) {
         $values = unserialize($fieldData->serializedData);
         if (!is_array($values)) {
             $values = array();
         }
     } else {
         $values = array();
     }
     $stagesToProbabilities = OpportunitiesModule::getStageToProbabilityMappingData();
     foreach ($values as $value) {
         if (isset($stagesToProbabilities[$value])) {
             $probability = $stagesToProbabilities[$value];
         } else {
             $probability = 0;
         }
         $htmlOptions = array('name' => $this->getNameForInputField($value), 'value' => $probability);
         $element = $this->form->textField($this->model, $this->attribute, $htmlOptions);
         $element .= ZurmoHtml::tag('span', array(), $value);
         $content .= ZurmoHtml::tag('div', array('class' => 'has-lang-label'), $element);
     }
     return $content;
 }
 protected function renderContent()
 {
     $content = $this->renderTitleContent();
     $content .= '<ul class="configuration-list">';
     $modules = Module::getModuleObjects();
     $moduleClassNamesAndLabels = array();
     foreach ($modules as $module) {
         $moduleTreeMenuItems = $module->getDesignerMenuItems();
         if ($module->isEnabled() && !empty($moduleTreeMenuItems)) {
             $moduleClassNamesAndLabels[get_class($module)] = $module::getModuleLabelByTypeAndLanguage('Plural');
         }
     }
     asort($moduleClassNamesAndLabels);
     foreach ($moduleClassNamesAndLabels as $moduleClassName => $label) {
         if (RightsUtil::canUserAccessModule($moduleClassName, Yii::app()->user->userModel)) {
             $route = $this->moduleId . '/' . $this->controllerId . '/modulesMenu/';
             $content .= ZurmoHtml::openTag('li');
             $content .= '<h4>' . $label . '</h4>';
             $content .= ZurmoHtml::link(ZurmoHtml::wrapLabel(Zurmo::t('Core', 'Configure')), Yii::app()->createUrl($route, array('moduleClassName' => $moduleClassName)), array('class' => 'white-button'));
             $content .= ZurmoHtml::closeTag('li');
         }
     }
     $content .= '</ul>';
     return $content;
 }
 protected function renderTabs()
 {
     $content = ZurmoHtml::link(Zurmo::t('ZurmoModule', 'Library'), '#', array('class' => 'choose-tab active', 'data-view' => 'ImageModalSearchAndListView'));
     $content .= ZurmoHtml::link(Zurmo::t('ZurmoModule', 'Upload'), '#', array('class' => 'upload-tab', 'data-view' => 'ImageFilesUploadView'));
     $content .= ZurmoHtml::link(Zurmo::t('ZurmoModule', 'Import From Url'), '#', array('class' => 'upload-tab', 'data-view' => 'ImageFilesImportFromUrlView'));
     return ZurmoHtml::tag('div', array('class' => 'image-tabs clearfix'), $content);
 }
 protected function renderContent()
 {
     $imagePath = Yii::app()->themeManager->baseUrl . '/default/images/ajax-loader.gif';
     $progressBarImageContent = ZurmoHtml::image($imagePath, 'Progress Bar');
     $cs = Yii::app()->getClientScript();
     $cs->registerScriptFile($cs->getCoreScriptUrl() . '/jquery.min.js', CClientScript::POS_END);
     $zurmoUpgradeStepTwoUrl = Yii::app()->createUrl($this->moduleId . '/' . $this->controllerId . '/stepTwo/');
     $loginUrl = Yii::app()->createUrl('zurmo/default');
     $content = '<div class="MetadataView">';
     $content .= '<table><tr><td>';
     $content .= '<div id="upgrade-step-two" style="display:none;">';
     $content .= '<table><tr><td>';
     $content .= Zurmo::t('InstallModule', 'The next step is to reload the application and upgrade the schema.');
     $content .= '<br/><br/>';
     $content .= ZurmoHtml::link(Zurmo::t('InstallModule', 'Click Here to continue with next step'), $zurmoUpgradeStepTwoUrl);
     $content .= '</td></tr></table>';
     $content .= '</div>';
     $content .= '<div id="progress-table">';
     $content .= '<table><tr><td class="progress-bar">';
     $content .= Zurmo::t('InstallModule', 'Upgrade in progress. Please wait.');
     $content .= '<br/>';
     $content .= $progressBarImageContent;
     $content .= '<br/>';
     $content .= '</td></tr></table>';
     $content .= '</div>';
     $content .= Zurmo::t('InstallModule', 'Upgrade Output:');
     $content .= '<div id="logging-table">';
     $content .= '</div>';
     $content .= '</td></tr></table>';
     $content .= '</div>';
     return $content;
 }
 public function render()
 {
     $htmlOptions = $this->getHtmlOptions();
     $request = Yii::app()->getRequest();
     if ($request->enableCsrfValidation && isset($htmlOptions['csrf']) && $htmlOptions['csrf']) {
         $htmlOptions['params'][$request->csrfTokenName] = $request->getCsrfToken();
     }
     if (isset($htmlOptions['params'])) {
         $params = CJavaScript::encode($htmlOptions['params']);
         unset($htmlOptions['params']);
     } else {
         $params = '{}';
     }
     if (isset($htmlOptions['class'])) {
         $htmlOptions['class'] .= ' z-button';
     } else {
         $htmlOptions['class'] = 'z-button';
     }
     $cs = Yii::app()->getClientScript();
     $cs->registerCoreScript('jquery');
     $cs->registerCoreScript('yii');
     $handler = "jQuery.yii.submitForm(this, '', {$params}); return false;";
     if (isset($htmlOptions['onclick'])) {
         $htmlOptions['onclick'] = $htmlOptions['onclick'] . $handler;
     } else {
         $htmlOptions['onclick'] = $handler;
     }
     $aContent = ZurmoHtml::tag('span', array('class' => 'z-spinner'), null);
     $aContent .= ZurmoHtml::tag('span', array('class' => 'z-icon'), null);
     $aContent .= ZurmoHtml::tag('span', array('class' => 'z-label'), $this->getLabel());
     return ZurmoHtml::link($aContent, '#', $htmlOptions);
 }
 protected function resolveLabelAndWrap()
 {
     if ($this->wrapLabel()) {
         return ZurmoHtml::wrapLabel($this->getLabel(), 'button-label');
     }
     return $this->getLabel();
 }
 protected function renderMergeTagsContent()
 {
     $title = ZurmoHtml::tag('h3', array(), Zurmo::t('Default', 'Merge Tags'));
     $view = new MergeTagsView('Campaign', Element::resolveInputIdPrefixIntoString(array(get_class($this->model), 'textContent')), Element::resolveInputIdPrefixIntoString(array(get_class($this->model), 'htmlContent')), false);
     $content = $view->render();
     return $title . $content;
 }
 /**
  * Render a test button. This link calls a modal
  * popup.
  * @return The element's content as a string.
  */
 protected function renderTestButton()
 {
     $content = '<span>';
     $content .= ZurmoHtml::ajaxLink(ZurmoHtml::wrapLabel(Zurmo::t('EmailMessagesModule', 'Send Test Email')), Yii::app()->createUrl('emailMessages/default/sendTestMessage/', array()), static::resolveAjaxOptionsForTestEmailSettings($this->form->getId()), array('id' => 'SendATestEmailToButton', 'class' => 'EmailTestingButton z-button'));
     $content .= '</span>';
     return $content;
 }
 protected function renderContent()
 {
     $imagePath = Yii::app()->themeManager->baseUrl . '/default/images/ajax-loader.gif';
     $progressBarImageContent = ZurmoHtml::image($imagePath, 'Progress Bar');
     $cs = Yii::app()->getClientScript();
     $cs->registerScriptFile($cs->getCoreScriptUrl() . '/jquery.min.js', CClientScript::POS_END);
     $loginUrl = Yii::app()->createUrl('zurmo/default');
     $content = '<div class="MetadataView">';
     $content .= '<table><tr><td>';
     $content .= '<div id="upgrade-step-two" style="display:none;">';
     $content .= '<table><tr><td>';
     $content .= Zurmo::t('InstallModule', 'Upgrade process is completed. Please edit perInstance.php file, and disable maintenance mode.');
     $content .= '<br/><br/>';
     $content .= ZurmoHtml::link(Zurmo::t('InstallModule', 'Click here to access index page, after you disable maintenance mode.'), $loginUrl);
     $content .= '</td></tr></table>';
     $content .= '</div>';
     $content .= '<div id="progress-table">';
     $content .= '<table><tr><td class="progress-bar">';
     $content .= Zurmo::t('InstallModule', 'Upgrade in progress. Please wait.');
     $content .= '<br/>';
     $content .= $progressBarImageContent;
     $content .= '<br/>';
     $content .= '</td></tr></table>';
     $content .= '</div>';
     $content .= Zurmo::t('InstallModule', 'Upgrade Output:');
     $content .= '<div id="logging-table">';
     $content .= '</div>';
     $content .= '</td></tr></table>';
     $content .= '</div>';
     return $content;
 }
 protected function renderContent()
 {
     $imagePath = Yii::app()->themeManager->baseUrl . '/default/images/ajax-loader.gif';
     $progressBarImageContent = ZurmoHtml::image($imagePath, 'Progress Bar');
     $cs = Yii::app()->getClientScript();
     $cs->registerScriptFile($cs->getCoreScriptUrl() . '/jquery.min.js', CClientScript::POS_END);
     $loginUrl = Yii::app()->createUrl('zurmo/default');
     $content = '<div class="MetadataView">';
     $content .= '<table><tr><td>';
     $content .= '<div id="complete-table" style="display:none;">';
     $content .= '<table><tr><td>';
     $content .= Zurmo::t('InstallModule', 'Congratulations! The demo data has been successfully loaded.');
     $content .= '<br/>';
     $content .= '<br/>';
     $content .= Zurmo::t('InstallModule', 'Click below to go to the login page. The username is <b>super</b>');
     $content .= '<br/><br/>';
     $content .= ZurmoHtml::link(Zurmo::t('ZurmoModule', 'Sign in'), $loginUrl);
     $content .= '</td></tr></table>';
     $content .= '</div>';
     $content .= '<div id="progress-table">';
     $content .= '<table><tr><td class="progress-bar">';
     $content .= Zurmo::t('InstallModule', 'Loading demo data. Please wait.');
     $content .= '<br/>';
     $content .= $progressBarImageContent;
     $content .= '<br/>';
     $content .= '</td></tr></table>';
     $content .= '</div>';
     $content .= Zurmo::t('InstallModule', 'Installation Output:');
     $content .= '<div id="logging-table">';
     $content .= '</div>';
     $content .= '</td></tr></table>';
     $content .= '</div>';
     return $content;
 }
 protected function resolveWrapperTdNonEditableByContent($content, array $properties = array())
 {
     $this->resolveContentWhenColumnIsEmpty($content);
     $content = parent::resolveWrapperTdNonEditableByContent($content, $properties);
     $content .= ZurmoHtml::tag('td', $this->resolveNonEditableExpanderTdHtmlOptions(), '');
     return $content;
 }
 protected function renderAfterFormLayout($form)
 {
     $element = new SortableContactWebFormAttributesElement($this->model, 'serializedData', $form);
     $content = $element->render();
     $content .= ZurmoHtml::hiddenField('getPlacedAttributeAction', Yii::app()->createUrl('contactWebForms/default/getPlacedAttributeByName'));
     return $content;
 }
 protected function getCheckboxContent($translatedLabel, $class)
 {
     $htmlOptions = array('onClick' => 'js:$(".' . $class . '").parentsUntil("li").parent().toggle();');
     $label = ZurmoHtml::label($translatedLabel, $translatedLabel, array('class' => 'label-for-marketing-list-widgets'));
     $content = ZurmoHtml::checkBox($translatedLabel, true, $htmlOptions) . $label;
     return $content;
 }
 /**
  * Override to ensure label is pointing to the right input id
  * @return A string containing the element's label
  */
 protected function renderLabel()
 {
     if ($this->form === null) {
         throw new NotImplementedException();
     }
     return ZurmoHtml::tag('h3', array(), Zurmo::t('ImportModule', 'Please select the module you would like to import to:'));
 }
 protected function renderContent()
 {
     $this->resolveContentForFooter();
     $this->resolveContentForMergeTags();
     $content = ZurmoHtml::tag('div', array('id' => 'footer-preview-modal-content', 'class' => 'footer-preview-modal'), $this->placeholderContent);
     return $content;
 }
 protected function renderCustomThemeColorChooser()
 {
     $attribute = 'customThemeColor1';
     $inputId = $this->getEditableInputId($attribute);
     $cClipWidget = new CClipWidget();
     $cClipWidget->beginClip($attribute);
     // Begin Not Coding Standard
     $cClipWidget->widget('application.core.widgets.ZurmoColorPicker', array('inputName' => $this->getEditableInputName($attribute), 'inputId' => $this->getEditableInputId($attribute), 'inputValue' => $this->model->{$attribute}, 'htmlOptions' => array('class' => 'color-picker'), 'change' => "function(event, ui) {\n                                                    \$('#{$inputId}').css('border-color', ui.color.toString());\n                                                    \$('div.custom .theme-color-1').css('background-color', ui.color.toString());\n                                          }"));
     // End Not Coding Standard
     $cClipWidget->endClip();
     $content = ZurmoHtml::tag('div', array(), $cClipWidget->getController()->clips[$attribute]);
     $attribute = 'customThemeColor2';
     $inputId = $this->getEditableInputId($attribute);
     $cClipWidget = new CClipWidget();
     $cClipWidget->beginClip($attribute);
     // Begin Not Coding Standard
     $cClipWidget->widget('application.core.widgets.ZurmoColorPicker', array('inputName' => $this->getEditableInputName($attribute), 'inputId' => $inputId, 'inputValue' => $this->model->{$attribute}, 'htmlOptions' => array('class' => 'color-picker'), 'change' => "function(event, ui) {\n                                                    \$('#{$inputId}').css('border-color', ui.color.toString());\n                                                    \$('div.custom .theme-color-2').css('background-color', ui.color.toString());\n                                          }"));
     // End Not Coding Standard
     $cClipWidget->endClip();
     $content .= ZurmoHtml::tag('div', array(), $cClipWidget->getController()->clips[$attribute]);
     $attribute = 'customThemeColor3';
     $inputId = $this->getEditableInputId($attribute);
     $cClipWidget = new CClipWidget();
     $cClipWidget->beginClip($attribute);
     // Begin Not Coding Standard
     $cClipWidget->widget('application.core.widgets.ZurmoColorPicker', array('inputName' => $this->getEditableInputName($attribute), 'inputId' => $this->getEditableInputId($attribute), 'inputValue' => $this->model->{$attribute}, 'htmlOptions' => array('class' => 'color-picker'), 'change' => "function(event, ui) {\n                                                    \$('#{$inputId}').css('border-color', ui.color.toString());\n                                                    \$('div.custom .theme-color-3').css('background-color', ui.color.toString());\n                                          }"));
     // End Not Coding Standard
     $cClipWidget->endClip();
     $content .= ZurmoHtml::tag('div', array(), $cClipWidget->getController()->clips[$attribute]);
     return ZurmoHtml::tag('div', array('id' => 'customThemeColorPicker', 'class' => 'clearfix'), $content);
 }
Beispiel #24
0
 /**
  * Run this widget.
  * This method registers necessary javascript and renders the needed HTML code.
  */
 public function run()
 {
     $id = $this->getId();
     if (isset($this->htmlOptions['id'])) {
         $id = $this->htmlOptions['id'];
     } else {
         $this->htmlOptions['id'] = $id;
     }
     if (empty($this->options)) {
         $options = '';
     } else {
         $options = CJavaScript::encode($this->options);
     }
     if ($this->baseInputNameForSortableCollection != null) {
         echo ZurmoHtml::hiddenField($this->baseInputNameForSortableCollection);
     }
     Yii::app()->getClientScript()->registerScript(__CLASS__ . '#' . $id, "jQuery('#{$id}').sortable({$options});");
     echo ZurmoHtml::openTag($this->tagName, $this->htmlOptions) . "\n";
     if (empty($this->items)) {
         echo '<li></li>' . "\n";
     }
     foreach ($this->items as $id => $data) {
         echo strtr($this->itemTemplate, array_merge(array('{id}' => $id), $data)) . "\n";
     }
     echo ZurmoHtml::closeTag($this->tagName);
 }
 protected function renderActionBarContent()
 {
     $currentPageUrl = Yii::app()->createUrl($this->moduleId . '/' . $this->controllerId . '/runDiagnostic/');
     $content = '<br/><br/>';
     $content .= ZurmoHtml::link(ZurmoHtml::wrapLabel(Zurmo::t('InstallModule', 'Recheck System')), $currentPageUrl, array('class' => 'z-button'));
     return $content;
 }
 /**
  * @return string
  */
 protected function getLabel()
 {
     $content = ZurmoHtml::tag('span', array('class' => 'z-spinner'), null);
     $content .= ZurmoHtml::tag('span', array('class' => 'z-icon'), null);
     $content .= ZurmoHtml::tag('span', array('class' => 'z-label'), $this->getDefaultLabel());
     return $content;
 }
 protected function getMessageContent()
 {
     $message = Zurmo::t('Core', 'There are no more portlets to add');
     $content = ZurmoHtml::tag('span', array('class' => 'icon-notice'), '');
     $content .= ZurmoHtml::tag('p', array(), $message);
     return $content;
 }
 public static function getLinkStringForActivityItem($model, $linkRoute, $moduleClassName)
 {
     $modelClassName = get_class($model);
     $linkString = ActionSecurityUtil::resolveLinkToEditModelForCurrentUser(strval($model), $model, $moduleClassName, $linkRoute) . ' (' . $modelClassName . ')';
     $text = ZurmoHtml::tag('div', array(), $linkString);
     return $text;
 }
 /**
  * Render a test button. This link calls a modal
  * popup.
  * @return The element's content as a string.
  */
 protected function renderTestButton()
 {
     $content = '<span>';
     $content .= ZurmoHtml::ajaxLink(ZurmoHtml::tag('span', array('class' => 'z-label'), Zurmo::t('ZurmoModule', 'Test Connection')), Yii::app()->createUrl('zurmo/ldap/testConnection/', array()), static::resolveAjaxOptionsForTestLdapConnection($this->form->getId()), array('id' => 'TestLdapConnectionButton', 'class' => 'LdapTestingButton z-button'));
     $content .= '</span>';
     return $content;
 }
 protected function renderHideOrShowContent()
 {
     $name = MarketingDashboardIntroView::PANEL_ID . '-checkbox-id';
     $htmlOptions = array('id' => MarketingDashboardIntroView::PANEL_ID . '-checkbox-id');
     $checkBox = ZurmoHtml::checkBox($name, $this->resolveChecked(), $htmlOptions);
     return '<div class="screen-options"><h4>Screen Options</h4>' . $checkBox . Zurmo::t('MarketingModule', 'Show intro message') . '</div>';
 }