/** * @covers Html::weblink_extract */ public function testWeblink_extract() { $origin = '<a href="http://glpi-project.org" class="example">THE GLPi Project!</a>'; $expected = 'http://glpi-project.org'; $this->assertEquals($expected, Html::weblink_extract($origin)); $origin = '<a href="http://glpi-project.org/?one=two">THE GLPi Project!</a>'; $expected = 'http://glpi-project.org/?one=two'; $this->assertEquals($expected, Html::weblink_extract($origin)); //These ones does not work, but probably should... $origin = '<a class="example" href="http://glpi-project.org">THE GLPi Project!</a>'; $expected = $origin; $this->assertEquals($origin, Html::weblink_extract($origin)); $origin = '<a href="http://glpi-project.org" class="example">THE <span>GLPi</span> Project!</a>'; $expected = $origin; $this->assertEquals($expected, Html::weblink_extract($origin)); }
/** * Print generic normal Item Cell * * @param $type display type (0=HTML, 1=Sylk,2=PDF,3=CSV) * @param $value value to display * @param &$num column number * @param $row row number * @param $extraparam extra parameters for display (default '') * *@return string to display **/ static function showItem($type, $value, &$num, $row, $extraparam = '') { $out = ""; switch ($type) { case self::PDF_OUTPUT_LANDSCAPE: //pdf //pdf case self::PDF_OUTPUT_PORTRAIT: global $PDF_TABLE; $value = preg_replace('/' . self::LBBR . '/', '<br>', $value); $value = preg_replace('/' . self::LBHR . '/', '<hr>', $value); $PDF_TABLE .= "<td {$extraparam} valign='top'>"; $PDF_TABLE .= Html::weblink_extract(Html::clean($value)); $PDF_TABLE .= "</td>\n"; break; case self::SYLK_OUTPUT: //sylk global $SYLK_ARRAY, $SYLK_HEADER, $SYLK_SIZE; $value = Html::weblink_extract($value); $value = preg_replace('/' . self::LBBR . '/', '<br>', $value); $value = preg_replace('/' . self::LBHR . '/', '<hr>', $value); $SYLK_ARRAY[$row][$num] = self::sylk_clean($value); $SYLK_SIZE[$num] = max($SYLK_SIZE[$num], Toolbox::strlen($SYLK_ARRAY[$row][$num])); break; case self::CSV_OUTPUT: //csv $value = preg_replace('/' . self::LBBR . '/', '<br>', $value); $value = preg_replace('/' . self::LBHR . '/', '<hr>', $value); $value = Html::weblink_extract($value); $out = "\"" . self::csv_clean($value) . "\"" . $_SESSION["glpicsv_delimiter"]; break; default: $out = "<td {$extraparam} valign='top'>"; if (!preg_match('/' . self::LBHR . '/', $value)) { $values = preg_split('/' . self::LBBR . '/i', $value); $line_delimiter = '<br>'; } else { $values = preg_split('/' . self::LBHR . '/i', $value); $line_delimiter = '<hr>'; } $limitto = 20; if (count($values) > $limitto) { for ($i = 0; $i < $limitto; $i++) { $out .= $values[$i] . $line_delimiter; } // $rand=mt_rand(); $out .= "... "; $value = preg_replace('/' . self::LBBR . '/', '<br>', $value); $value = preg_replace('/' . self::LBHR . '/', '<hr>', $value); $out .= Html::showToolTip($value, array('display' => false, 'autoclose' => false)); } else { $value = preg_replace('/' . self::LBBR . '/', '<br>', $value); $value = preg_replace('/' . self::LBHR . '/', '<hr>', $value); $out .= $value; } $out .= "</td>\n"; } $num++; return $out; }
/** * Print generic normal Item Cell * * @param $type display type (0=HTML, 1=Sylk,2=PDF,3=CSV) * @param $value value to display * @param &$num column number * @param $row row number * @param $extraparam extra parameters for display (default '') * *@return string to display **/ static function showItem($type, $value, &$num, $row, $extraparam = '') { $out = ""; switch ($type) { case self::PDF_OUTPUT_LANDSCAPE: //pdf //pdf case self::PDF_OUTPUT_PORTRAIT: global $PDF_ARRAY, $PDF_HEADER; $value = Html::weblink_extract($value); $PDF_ARRAY[$row][$num] = Toolbox::decodeFromUtf8(Html::clean($value), 'windows-1252'); break; case self::SYLK_OUTPUT: //sylk global $SYLK_ARRAY, $SYLK_HEADER, $SYLK_SIZE; $value = Html::weblink_extract($value); $SYLK_ARRAY[$row][$num] = self::sylk_clean($value); $SYLK_SIZE[$num] = max($SYLK_SIZE[$num], Toolbox::strlen($SYLK_ARRAY[$row][$num])); break; case self::CSV_OUTPUT: //csv $value = Html::weblink_extract($value); $out = "\"" . self::csv_clean($value) . "\"" . $_SESSION["glpicsv_delimiter"]; break; default: //TODO supprimer valign pour mettre class mais conflit avec $extraparam $out = "<td {$extraparam} valign='top'>"; /* if (!preg_match('/<hr>/',$value)) { $values = preg_split("/<br>/i",$value); $line_delimiter = '<br>'; } else { $values = preg_split("/<hr>/i",$value); $line_delimiter = '<hr>'; } $limitto = 20; if (count($values) > $limitto) { for ( $i=0 ; $i<$limitto ; $i++) { $out .= $values[$i].$line_delimiter; } $rand=mt_rand(); $out .= "... "; $out .= Html::showToolTip($value,array('display' => false, 'autoclose' => false)); } else {*/ $out .= $value; // } $out .= "</td>\n"; } $num++; return $out; }