/** * Returns a list item element. * * @param array $controlOptions Options relating to the item * @param array $popups A list of popups (HTML) that belong to the item * * @return string List row HTML */ public static function listItem(array $controlOptions, array $popups) { // active toggle handler if (isset($controlOptions['toggle'])) { if ($controlOptions['toggle']) { $toggleChecked = ' checked="checked"'; } else { $toggleChecked = ''; XenForo_Template_Helper_Core::addClass('disabled', $controlOptions['labelclass']); } if (!empty($controlOptions['toggletitle'])) { $toggleClass = ' Tooltip'; $toggleTitle = " title=\"{$controlOptions['toggletitle']}\" data-tipclass=\"flipped\" data-offsetx=\"2\" data-offsety=\"-2\""; } else { $toggleTitle = ''; } $toggle = ' <input type="hidden" name="exists[' . $controlOptions['id'] . ']" value="1" /> <label class="toggler secondaryContent' . $toggleClass . '"' . $toggleTitle . '><input type="checkbox" name="id[' . $controlOptions['id'] . ']" value="1" ' . $toggleChecked . ' class="SubmitOnChange Toggler" /></label>'; } else { $toggle = ''; } if (!empty($controlOptions['selectable'])) { $selectName = isset($controlOptions['selectname']) ? $controlOptions['selectname'] : ''; $selectValue = isset($controlOptions['selectvalue']) ? $controlOptions['selectvalue'] : $controlOptions['id']; $selectDisabled = !empty($controlOptions['selectdisabled']) ? ' disabled="disabled"' : ''; if (!empty($controlOptions['selecttooltip'])) { $selectTitle = ' title="' . $controlOptions['selecttooltip'] . '"'; $selectClass = ' Tooltip'; } else { $selectTitle = ''; $selectClass = ''; } $select = '<label class="secondaryContent selectListItem' . $selectClass . '"' . $selectTitle . '><input type="checkbox" name="' . $selectName . '" value="' . $selectValue . '" ' . (!empty($controlOptions['selected']) ? ' checked="checked"' : '') . $selectDisabled . ' /></label>'; } else { $select = ''; } if (!empty($controlOptions['tooltip'])) { $tooltip = ' title="' . $controlOptions['tooltip'] . '" data-offsetx="10"'; XenForo_Template_Helper_Core::addClass('Tooltip', $controlOptions['linkclass']); } else { $tooltip = ''; } $dataOptions = ''; foreach ($controlOptions as $controlOptionId => $controlOptionValue) { if (substr($controlOptionId, 0, 5) == 'data-') { $dataOptions .= " {$controlOptionId}=\"{$controlOptionValue}\""; } } $extraClasses = !empty($controlOptions['class']) ? ' ' . $controlOptions['class'] : ''; $labelClass = !empty($controlOptions['labelclass']) ? ' class="' . $controlOptions['labelclass'] . '"' : ''; $linkClass = !empty($controlOptions['linkclass']) ? ' class="' . $controlOptions['linkclass'] . '"' : ''; $href = !empty($controlOptions['href']) ? $controlOptions['href'] : ''; $target = !empty($controlOptions['target']) ? $controlOptions['target'] : ''; $linkStyle = !empty($controlOptions['linkstyle']) ? ' style="' . $controlOptions['linkstyle'] . '"' : ''; $beforeLabel = !empty($controlOptions['beforelabel']) ? $controlOptions['beforelabel'] : ''; if (empty($controlOptions['delete'])) { $delete = ''; } else { $deletePhrase = new XenForo_Phrase('delete') . '...'; $deleteHint = !empty($controlOptions['deletehint']) ? $controlOptions['deletehint'] : $deletePhrase; if ($controlOptions['delete'] === '#') { $delete = '<a class="delete secondaryContent"></a>' . "\n"; } else { $delete = '<a href="' . $controlOptions['delete'] . '" class="delete OverlayTrigger secondaryContent" title="' . $deleteHint . '"><span>' . $deletePhrase . '</span></a>' . "\n"; } } $href = $href ? ' href="' . $href . '"' : ''; $target = $target ? ' target="' . $target . '"' : ''; $output = ' <li class="listItem primaryContent' . $extraClasses . '" id="' . self::getListItemId($controlOptions['id']) . '"' . $dataOptions . '> ' . $delete . ' ' . $select . ' ' . (!empty($controlOptions['html']) ? $controlOptions['html'] : '') . ' '; $popupOutput = ''; foreach ($popups as $popup) { if ($popup !== '') { $popupOutput = $popup . "\n" . $popupOutput; } } $output .= $popupOutput; $output .= ' <h4' . $labelClass . '>' . $toggle . $beforeLabel . ' <a' . $href . $linkClass . $linkStyle . $tooltip . $target . '> <em>' . $controlOptions['label'] . '</em>' . (!empty($controlOptions['snippet']) ? ' <dfn>' . $controlOptions['snippet'] . '</dfn>' : '') . ' </a></h4> </li> '; return $output; }