public function render($tpl = null) { //get model and retrieve info $model = new EventModel(); if (TemplateHelper::isMobile()) { $model->set('current_events', true); } $events = $model->getEvents(); $eventDock = ViewHelper::getView('events', 'dashboard_event_dock', 'phtml', array('events' => $events)); $dealModel = new DealModel(); $dealModel->set('_view', 'dashboard'); $dealModel->set('recent', true); $dealModel->set('archived', 0); $recentDeals = $dealModel->getDeals(); $doc = JFactory::getDocument(); //get data for sales graphs $model = new GraphsModel(); $graph_data = $model->getGraphData(); $activityHelper = new ActivityHelper(); $activity = $activityHelper->getActivity(); //assign results to view $this->eventDock = $eventDock; $this->graph_data = $graph_data; $this->recentDeals = $recentDeals; $this->activity = $activity; $json = TRUE; $peopleModel = new PeopleModel(); if (TemplateHelper::isMobile()) { $dealModel->set('recent', false); $totalDeals = $dealModel->getTotal(); $peopleModel->set('type', 'leads'); $totalLeads = $peopleModel->getTotal(); $peopleModel->set('type', 'not_leads'); $totalContacts = $peopleModel->getTotal(); $companyModel = new CompanyModel(); $totalCompanies = $companyModel->getTotal(); $user = UsersHelper::getLoggedInUser(); $this->first_name = $user->first_name; $this->numEvents = count($events); $this->numDeals = $totalDeals; $this->numLeads = $totalLeads; $this->numContacts = $totalContacts; $this->numCompanies = $totalCompanies; } $peopleNames = $peopleModel->getPeopleNames($json); $doc->addScriptDeclaration("var people_names=" . $peopleNames . ";"); $dealModel = new DealModel(); $dealNames = $dealModel->getDealNames($json); $doc->addScriptDeclaration("var deal_names=" . $dealNames . ";"); /** get latest activities **/ $this->latest_activities = ViewHelper::getView('dashboard', 'latest_activities', 'phtml'); $this->latest_activities->activity = $activity; $activityHelper = new ActivityHelper(); $activity = $activityHelper->getActivity(); //display return parent::render(); }
public static function generateDropdown($type, $selection = null, $name = null, $raw = false) { //base html $html = ''; //grab db $db = \Cobalt\Container::fetch('db'); //generate query based on type $query = $db->getQuery(true); switch ($type) { case "company": $query->select('id,name FROM #__companies AS c where c.published > 0'); break; case "stage": $query->select('id,name FROM #__stages'); break; case "source": $query->select('id,name FROM #__sources'); break; case "deal_status": $query->select('id,name FROM #__deal_status'); break; case "people_status": $query->select('id,name FROM #__people_status'); break; case "deal": $query->select('d.id,d.name'); $query->from("#__deals AS d"); $query->where("d.published > 0"); $query->leftJoin('#__users AS users ON users.id = d.owner_id'); /** --------------------------------------------------------------- * Filter data using member role permissions */ $member_id = UsersHelper::getUserId(); $member_role = UsersHelper::getRole(); $team_id = UsersHelper::getTeamId(); if ($member_role != 'exec') { //manager filter if ($member_role == 'manager') { $query->where('users.team_id = ' . $team_id); } else { //basic user filter $query->where(array('d.owner_id = ' . $member_id)); } } break; } //run query and grab results if ($query != "") { $db->setQuery($query); $row = $db->loadAssocList(); } if ($type == 'owner') { $me = array(array('label' => TextHelper::_('COBALT_ME'), 'value' => UsersHelper::getLoggedInUser()->id)); $users = UsersHelper::getUsers(null, true); $row = array_merge($me, $users); } if (!isset($row)) { $row = array(); } elseif (!is_array($row) && !(count($row) > 0)) { $row = array(); } if ($raw) { return $row; } //determine which kind of dropdown we are generating $selected = $selection == null ? "selected='selected'" : ''; switch ($type) { case "company": $name = $name ? $name : "name=company_id"; $html = ' <select class="inputbox form-control" ' . $name . ' id="company_id">'; $html .= "<option value='0' " . $selected . ">" . TextHelper::_('COBALT_DROPDOWN_COMPANY_SELECT_COMPANY_OPTION_LABEL'); foreach ($row as $company => $info) { $selected = $info['id'] == $selection ? "selected='selected'" : ''; $html .= '<option value="' . $info['id'] . '" ' . $selected . ' >' . $info['name'] . '</option>'; } $html .= '</select>'; break; case "stage": $name = $name ? $name : "name=stage_id"; $html = ' <select class="inputbox form-control" ' . $name . ' id="stage_id">'; $html .= "<option value='0' " . $selected . ">" . TextHelper::_('COBALT_DROPDOWN_STAGE_SELECT_STAGE_OPTION_LABEL'); foreach ($row as $stage => $info) { $selected = $info['id'] == $selection ? "selected='selected'" : ''; $html .= '<option value="' . $info['id'] . '" ' . $selected . ' ' . $name . ' >' . $info['name'] . '</option>'; } $html .= '</select>'; break; case "source": $name = $name ? $name : "name=source_id"; $html = '<select class="inputbox form-control" ' . $name . ' id="source_id">'; $html .= "<option value='0' " . $selected . ">" . TextHelper::_('COBALT_DROPDOWN_SOURCE_SELECT_SOURCE_OPTION_LABEL'); if (count($row) > 0) { foreach ($row as $source => $info) { $selected = $info['id'] == $selection ? "selected='selected'" : ''; $html .= '<option value="' . $info['id'] . '" ' . $selected . ' ' . $name . ' >' . $info['name'] . '</option>'; } } $html .= '</select>'; break; case "probability": $name = $name ? $name : "name=probability"; $html = ' <select class="inputbox form-control" ' . $name . ' id="probability_id">'; $html .= "<option value='0' " . $selected . ">" . TextHelper::_('COBALT_DROPDOWN_PROBABILITY_SELECT_PROBABILITY_OPTION_LABEL'); for ($i = 5; $i <= 95; $i += 5) { $selected = $i == $selection ? "selected='selected'" : ''; $html .= '<option value="' . $i . '" ' . $selected . ' ' . $name . ' >' . $i . '%</option>'; } $html .= '</select>'; break; case "deal_status": $name = $name ? $name : "name=status_id"; $html = ' <select class="inputbox form-control" ' . $name . ' id="status_id">'; $html .= "<option value='0' " . $selected . ">" . TextHelper::_('COBALT_DROPDOWN_DEAL_STATUS_SELECT_STATUS_OPTION_LABEL'); foreach ($row as $status => $info) { $selected = $info['id'] == $selection ? "selected='selected'" : ''; $html .= '<option value="' . $info['id'] . '" ' . $selected . ' ' . $name . ' >' . $info['name'] . '</option>'; } $html .= '</select>'; break; case "people_status": $name = $name ? $name : "name=status_id"; $html = ' <select class="inputbox form-control" ' . $name . ' id="status_id">'; $html .= "<option value='0' " . $selected . ">" . TextHelper::_('COBALT_DROPDOWN_PEOPLE_STATUS_SELECT_STATUS_OPTION_LABEL'); foreach ($row as $status => $info) { $selected = $info['id'] == $selection ? "selected='selected'" : ''; $html .= '<option value="' . $info['id'] . '" ' . $selected . ' ' . $name . ' >' . $info['name'] . '</option>'; } $html .= '</select>'; break; case "deal": $name = $name ? $name : "name=deal_id"; $html = ' <select class="inputbox form-control" ' . $name . ' id="deal_id">'; $html .= "<option value='0' " . $selected . ">" . TextHelper::_('COBALT_DROPDOWN_DEAL_SELECT_DEAL_OPTION_LABEL'); foreach ($row as $deal => $info) { $selected = $info['id'] == $selection ? "selected='selected'" : ''; $html .= '<option value="' . $info['id'] . '" ' . $selected . ' ' . $name . ' >' . $info['name'] . '</option>'; } $html .= '</select>'; break; case "owner": $name = $name ? $name : "name=owner_id"; $html = ' <select class="inputbox form-control" ' . $name . ' id="owner_id">'; $html .= "<option value=\"0\" " . $selected . ">" . TextHelper::_('COBALT_DROPDOWN_OWNER_SELECT_OWNER_OPTION_LABEL'); foreach ($row as $i => $info) { $selected = $info['value'] == $selection ? "selected='selected'" : ''; $html .= '<option value="' . $info['value'] . '" ' . $selected . ' ' . $name . ' >' . $info['label'] . '</option>'; } $html .= '</select>'; break; default: $model = DropdownHelper::getModelFromType($type); $html = '<ul>'; $html .= '<li><a href="javascript:void(0)" onclick="saveAjax(\'' . $type . '\',\'' . $model . '\',\'Lead\')">' . TextHelper::_('COBALT_PERSON_LEAD') . '</a></li>'; $html .= '<li><a href="javascript:void(0)" onclick="saveAjax(\'' . $type . '\',\'' . $model . '\',\'Contact\')">' . TextHelper::_('COBALT_PEOPLE_CONTACT') . '</a></li>'; $html .= "</ul>"; break; } return $html; }
/** * Prepare HTML field templates for each dataTable column. * * @param string column name * @param object of item * @return string HTML template for propper field */ public function getDataTableFieldTemplate($column, $item) { switch ($column) { case 'id': $template = '<input type="checkbox" class="export" name="ids[]" value="' . $item->id . '" />'; break; case 'avatar': if (isset($item->avatar) && $item->avatar) { $template = '<img id="avatar_img_' . $item->id . '" data-item-type="people" data-item-id="' . $item->id . '" class="avatar" src="' . JURI::base() . 'src/Cobalt/media/avatars/' . $item->avatar . '"/>'; } else { $template = '<img id="avatar_img_' . $item->id . '" data-item-type="people" data-item-id="' . $item->id . '" class="avatar" src="' . JURI::base() . 'src/Cobalt/media/images/person.png' . '"/>'; } break; case 'name': $template = '<a href="' . RouteHelper::_('index.php?view=people&layout=person&id=' . $item->id) . '">' . $item->first_name . ' ' . $item->last_name . '</a>'; break; case 'company_name': $template = '<a href="' . RouteHelper::_('index.php?view=companies&layout=company&id=' . $item->company_id) . '">' . $item->company_name . '</a>'; break; case 'owner': if (!isset($item->owner_last_name) || !$item->owner_last_name) { $item->status_name = TextHelper::_('COBALT_CLICK_TO_EDIT'); } $me = array(array('label' => TextHelper::_('COBALT_ME'), 'value' => UsersHelper::getLoggedInUser()->id)); $users = UsersHelper::getUsers(null, true); $users = array_merge($me, $users); $template = '<div class="dropdown">'; $template .= ' <a href="#" class="dropdown-toggle update-toggle-html" role="button" data-toggle="dropdown" id="oerson_owner_' . $item->id . '_link">'; $template .= $item->owner_first_name . ' ' . $item->owner_last_name; $template .= ' </a>'; $template .= ' <ul class="dropdown-menu" aria-labelledby="deal_status_' . $item->id . '" role="menu">'; if (isset($users) && count($users)) { foreach ($users as $id => $user) { $template .= ' <li>'; $template .= ' <a href="#" class="owner_select dropdown_item" data-field="owner_id" data-item="person" data-item-id="' . $item->id . '" data-value="' . $user['value'] . '">'; $template .= ' <span class="person-owner-' . OutputFilter::stringURLUnicodeSlug($user['value']) . '">' . $user['label'] . '</span>'; $template .= ' </a>'; $template .= ' </li>'; } } $template .= ' </ul>'; $template .= ' </div>'; break; case 'status_name': if (!isset($item->status_id) || !$item->status_id) { $item->status_name = TextHelper::_('COBALT_CLICK_TO_EDIT'); } $statuses = PeopleHelper::getStatusList(); $template = '<div class="dropdown">'; $template .= ' <a href="#" class="dropdown-toggle update-toggle-html" role="button" data-toggle="dropdown" id="deal_stage_' . $item->id . '_link">'; $template .= ' <span class="person-status-' . $item->status_name . '">' . $item->status_name . '</span>'; $template .= ' </a>'; $template .= ' <ul class="dropdown-menu" aria-labelledby="deal_stage_' . $item->id . '" role="menu">'; if (isset($statuses) && count($statuses)) { foreach ($statuses as $id => $status) { $template .= ' <li>'; $template .= ' <a href="#" class="status_select dropdown_item" data-field="status_id" data-item="people" data-item-id="' . $item->id . '" data-value="' . $status['id'] . '">'; $template .= ' <span class="person-status-' . OutputFilter::stringURLUnicodeSlug($status['id']) . '">' . $status['name'] . '</span>'; $template .= ' </a>'; $template .= ' </li>'; } } $template .= ' </ul>'; $template .= ' </div>'; break; case 'source_name': if (!isset($item->source_id) || !$item->source_id) { $item->source_name = TextHelper::_('COBALT_CLICK_TO_EDIT'); } $sources = DealHelper::getSources(null, true); $template = '<div class="dropdown">'; $template .= ' <a href="#" class="dropdown-toggle update-toggle-html" role="button" data-toggle="dropdown" id="person_source_' . $item->id . '_link">'; $template .= ' <span class="person-source-' . $item->source_name . '">' . $item->source_name . '</span>'; $template .= ' </a>'; $template .= ' <ul class="dropdown-menu" aria-labelledby="person_source_' . $item->id . '" role="menu">'; if (isset($sources) && count($sources)) { foreach ($sources as $id => $name) { $template .= ' <li>'; $template .= ' <a href="#" class="source_select dropdown_item" data-field="source_id" data-item="people" data-item-id="' . $item->id . '" data-value="' . $id . '">'; $template .= ' <span class="person-source-' . OutputFilter::stringURLUnicodeSlug($name) . '">' . $name . '</span>'; $template .= ' </a>'; $template .= ' </li>'; } } $template .= ' </ul>'; $template .= ' </div>'; break; case 'type': if (!isset($item->type) || !$item->type) { $item->type = TextHelper::_('COBALT_CLICK_TO_EDIT'); } $types = PeopleHelper::getPeopleTypes(false); $template = '<div class="dropdown">'; $template .= ' <a href="#" class="dropdown-toggle update-toggle-html" role="button" data-toggle="dropdown" id="person_type_' . $item->id . '_link">'; $template .= $item->type; $template .= ' </a>'; $template .= ' <ul class="dropdown-menu" aria-labelledby="person_type_' . $item->id . '" role="menu">'; if (isset($types) && count($types)) { foreach ($types as $id => $name) { $template .= ' <li>'; $template .= ' <a href="#" class="type_select dropdown_item" data-field="type" data-item="people" data-item-id="' . $item->id . '" data-value="' . $id . '">'; $template .= ' <span class="person-type-' . OutputFilter::stringURLUnicodeSlug($name) . '">' . $name . '</span>'; $template .= ' </a>'; $template .= ' </li>'; } } $template .= ' </ul>'; $template .= ' </div>'; break; case 'notes': // $template = '<a rel="tooltip" title="'.TextHelper::_('COBALT_VIEW_NOTES').'" data-placement="bottom" class="btn" href="#" onclick="Cobalt.openNoteModal('.$item->id.', \'people\');"><i class="glyphicon glyphicon-file"></i></a>'; $template = ''; // @TODO: Implement notes modal break; case 'address': $template = $item->work_city . '<br>' . $item->work_state . '<br>' . $item->work_zip . '<br>' . $item->work_country; break; case 'created': $template = DateHelper::formatDate($item->created); break; case 'modified': $template = DateHelper::formatDate($item->modified); break; default: if (isset($column) && isset($item->{$column})) { $template = $item->{$column}; } else { $template = ''; } break; } return $template; }
/** * Prepare HTML field templates for each dataTable column. * * @param string column name * @param object of item * @return string HTML template for propper field */ public function getDataTableFieldTemplate($column, $item) { switch ($column) { case 'id': $template = '<input type="checkbox" class="export" name="ids[]" value="' . $item->id . '" />'; break; case 'type': $file_path = sprintf('%s/media/images/%s.png', JPATH_COBALT, $item->filetype); if (file_exists($file_path)) { $file_src = sprintf('%s/src/Cobalt/media/images/%s.png', JUri::base(), $item->filetype); $template = '<img src="' . $file_src . '" >'; } else { $file_src = sprintf('%s/src/Cobalt/media/images/file.png', JUri::base()); $template = '<img src="' . $file_src . '" >'; } break; case 'name': $template = '<div class="dropdown"><span class="caret"></span><a id="' . $item->id . '" class="document_edit dropdown-toggle" data-toggle="dropdown" role="button" href="javascript:void(0);"> ' . $item->name . '</a>'; $template .= '<ul class="dropdown-menu" role="menu">'; $template .= '<li><a href="' . RouteHelper::_('index.php?task=PreviewDocument&format=raw&tmpl=component&document=' . $item->filename) . '" target="_blank" class="document_preview" id="preview_' . $item->id . '"><i class="glyphicon glyphicon-eye-open"></i> ' . TextHelper::_('COBALT_PREVIEW') . '</a></li>'; $template .= '<li><a href="' . RouteHelper::_('index.php?task=DownloadDocument&format=raw&tmpl=component&document=' . $item->filename) . '" target="_blank" class="document_download" id="download_' . $item->id . '"><i class="glyphicon glyphicon-download"></i> ' . TextHelper::_('COBALT_DOWNLOAD') . '</a></li>'; if ($item->owner_id == UsersHelper::getLoggedInUser()->id) { $template .= '<li><a href="javascript:void(0);" class="document_delete" id="delete_' . $item->id . '"><i class="glyphicon glyphicon-remove"></i> ' . TextHelper::_('COBALT_DELETE') . '</a></li>'; } $template .= '</ul></div>'; break; case 'association': $association_type = $item->association_type; //assign association link switch ($association_type) { case "deal": $view = 'deals'; $association_type = "deal"; $item->association_name = $item->deal_name; break; case "person": $view = "people"; $association_type = "person"; $item->association_name = $item->owner_first_name . " " . $item->owner_last_name; break; case "company": $view = "companies"; $association_type = "company"; $item->association_name = $item->company_name; break; } if (isset($item->association_name)) { $template = '<a href="' . RouteHelper::_('index.php?view=' . $view . '&layout=' . $association_type . '&id=' . $item->association_id) . '" >' . $item->association_name; } else { $template = ""; } break; case 'owner': $template = $item->owner_name; break; case 'size': $template = FileHelper::sizeFormat($item->size); break; case 'created': $template = DateHelper::formatDate($item->created); break; case 'modified': $template = DateHelper::formatDate($item->modified); break; default: if (isset($column) && isset($item->{$column})) { $template = $item->{$column}; } else { $template = ''; } break; } return $template; }
public static function loadToolbar() { $app = \Cobalt\Container::fetch('app'); //load menu $menu_model = new MenuModel(); $list = $menu_model->getMenu(); //Get controller to select active menu item $controller = $app->input->get('controller'); $view = $app->input->get('view'); $class = ""; //generate html $list_html = '<div class="navbar navbar-default navbar-fixed-top" role="navigation">'; $list_html .= '<div class="container">'; $list_html .= '<div class="navbar-header">'; if (StylesHelper::getSiteLogo()) { $list_html .= '<div class="site-logo pull-left">'; $list_html .= '<img id="site-logo-img" src="' . StylesHelper::getSiteLogo() . '" />'; $list_html .= '</div>'; } $list_html .= '<a id="site-name-link" class="navbar-brand" href="' . JUri::base() . '">'; $list_html .= StylesHelper::getSiteName(); $list_html .= '</a>'; $list_html .= '</div>'; // navbar-header end $list_html .= '<ul class="nav navbar-nav">'; foreach ($list->menu_items as $name) { $class = $name == $controller || $name == $view ? "active" : ""; $list_html .= '<li><a class="' . $class . '" href="' . RouteHelper::_('index.php?view=' . $name) . '">' . ucwords(TextHelper::_('COBALT_MENU_' . strtoupper($name))) . '</a></li>'; } $list_html .= '</ul>'; $list_html .= '<ul class="nav navbar-nav navbar-right">'; $list_html .= '<li data-toggle="tooltip" title="' . TextHelper::_('COBALT_CREATE_ITEM') . '" data-placement="right" class="dropdown">'; $list_html .= '<a class="feature-btn dropdown-toggle" data-toggle="dropdown" href="#" id="create_button">'; $list_html .= '<i class="glyphicon glyphicon-plus-sign icon-white"></i>'; $list_html .= '</a>'; $list_html .= '<ul class="dropdown-menu">'; $list_html .= '<li>'; $list_html .= '<a href="' . RouteHelper::_('index.php?view=companies&layout=edit&format=raw&tmpl=component') . '" data-target="#CobaltAjaxModal" data-toggle="modal">'; $list_html .= '<i class="glyphicon glyphicon-plus-sign"></i> ' . ucwords(TextHelper::_('COBALT_NEW_COMPANY')); $list_html .= '</a>'; $list_html .= '</li>'; $list_html .= '<li><a href="' . RouteHelper::_('index.php?view=people&layout=edit&format=raw&tmpl=component') . '" data-target="#CobaltAjaxModal" data-toggle="modal">'; $list_html .= '<i class="glyphicon glyphicon-plus-sign"></i> ' . ucwords(TextHelper::_('COBALT_NEW_PERSON')); $list_html .= '</a></li>'; $list_html .= '<li><a href="' . RouteHelper::_('index.php?view=deals&layout=edit&format=raw&tmpl=component') . '" data-target="#CobaltAjaxModal" data-toggle="modal">'; $list_html .= '<i class="glyphicon glyphicon-plus-sign"></i> ' . ucwords(TextHelper::_('COBALT_NEW_DEAL')); $list_html .= '</a></li>'; $list_html .= '<li><a href="' . RouteHelper::_('index.php?view=goals&layout=add') . '">'; $list_html .= '<i class="glyphicon glyphicon-plus-sign"></i> ' . ucwords(TextHelper::_('COBALT_NEW_GOAL')); $list_html .= '</a></li>'; $list_html .= '</ul></li>'; $list_html .= '<li data-toggle="tooltip" title="' . TextHelper::_('COBALT_VIEW_PROFILE') . '" data-placement="bottom">'; $list_html .= '<a class="block-btn" href="' . RouteHelper::_('index.php?view=profile') . '" >'; $list_html .= '<i class="glyphicon glyphicon-user icon-white"></i>'; $list_html .= '</a>'; $list_html .= '</li>'; $list_html .= '<li data-toggle="tooltip" title="' . TextHelper::_('COBALT_SUPPORT') . '" data-placement="bottom">'; $list_html .= '<a class="block-btn" href="http://www.cobaltcrm.org/" target="_blank">'; $list_html .= '<i class="glyphicon glyphicon-question-sign icon-white"></i>'; $list_html .= '</a>'; $list_html .= '</li>'; $list_html .= '<li data-toggle="tooltip" title="' . TextHelper::_('COBALT_SEARCH') . '" data-placement="bottom">'; $list_html .= '<a class="block-btn" href="#" onclick="Cobalt.showSiteSearch(); return false;">'; $list_html .= '<i class="glyphicon glyphicon-search icon-white"></i>'; $list_html .= '</a>'; $list_html .= '</li>'; if (UsersHelper::isAdmin()) { $list_html .= '<li data-toggle="tooltip" title="' . TextHelper::_('COBALT_ADMINISTRATOR_CONFIGURATION') . '" data-placement="bottom">'; $list_html .= '<a class="block-btn" href="' . RouteHelper::_('index.php?view=cobalt') . '" >'; $list_html .= '<i class="glyphicon glyphicon-cog icon-white"></i>'; $list_html .= '</a>'; $list_html .= '</li>'; } if (UsersHelper::getLoggedInUser() && !(JFactory::getApplication()->input->get('view') == "print")) { $returnURL = base64_encode(RouteHelper::_('index.php?view=dashboard')); $list_html .= '<li data-toggle="tooltip" title="' . TextHelper::_('COBALT_LOGOUT') . '" data-placement="bottom">'; $list_html .= '<a class="block-btn" data-toggle="modal" href="#logoutModal">'; $list_html .= '<i class="glyphicon glyphicon-off icon-white"></i>'; $list_html .= '</a>'; $list_html .= '</li>'; } $list_html .= '</ul>'; $list_html .= '</div>'; $list_html .= '<div class="container">'; $list_html .= '<div style="display:none;" class="pull-right col-xs-3" id="site_search">'; $list_html .= '<form action="index.php" id="site_search_form">'; $list_html .= '<input type="text" class="form-control site_search" name="site_search_input" id="site_search_input" placeholder="' . TextHelper::_('COBALT_SEARCH_SITE') . '" value="" />'; $list_html .= '<input type="hidden" name="view" />'; $list_html .= '<input type="hidden" name="id" />'; $list_html .= '<input type="hidden" name="layout" />'; $list_html .= '</form>'; $list_html .= '</div>'; $list_html .= '</div>'; $list_html .= '</div>'; //return html echo $list_html; }