Fix Travis build error

This commit is contained in:
Ivan Lanin 2014-05-09 00:28:29 +07:00
parent 8a1d07f71a
commit 6f0579c78f
9 changed files with 22 additions and 24 deletions

View File

@ -39,7 +39,7 @@ abstract class AbstractContainer extends AbstractElement
*/ */
protected function addElement(AbstractElement $element) protected function addElement(AbstractElement $element)
{ {
// $type = basename(get_class($element)); // $type = str_replace('PhpOffice\\PhpWord\\Element\\', '', get_class($element)));
$element->setElementIndex($this->countElements() + 1); $element->setElementIndex($this->countElements() + 1);
$element->setElementId(); $element->setElementId();
$element->setPhpWord($this->phpWord); $element->setPhpWord($this->phpWord);

View File

@ -73,8 +73,7 @@ class Element
public function write() public function write()
{ {
$content = ''; $content = '';
$writerClass = substr(get_class($this), 0, strrpos(get_class($this), '\\')) . '\\' . $writerClass = str_replace('\\Element\\', '\\Writer\\HTML\\Element\\', get_class($this->element));
basename(get_class($this->element));
if (class_exists($writerClass)) { if (class_exists($writerClass)) {
$writer = new $writerClass($this->parentWriter, $this->element, $this->withoutP); $writer = new $writerClass($this->parentWriter, $this->element, $this->withoutP);
$content = $writer->write(); $content = $writer->write();

View File

@ -24,4 +24,10 @@ namespace PhpOffice\PhpWord\Writer\ODText\Element;
*/ */
class Container extends \PhpOffice\PhpWord\Writer\Word2007\Element\Container class Container extends \PhpOffice\PhpWord\Writer\Word2007\Element\Container
{ {
/**
* Namespace; Can't use __NAMESPACE__ in inherited class (ODText)
*
* @var string
*/
protected $namespace = 'PhpOffice\\PhpWord\\Writer\\ODText\\Element';
} }

View File

@ -101,7 +101,7 @@ class Content extends AbstractPart
if (preg_match('#^T[0-9]+$#', $styleName) != 0 if (preg_match('#^T[0-9]+$#', $styleName) != 0
|| preg_match('#^P[0-9]+$#', $styleName) != 0 || preg_match('#^P[0-9]+$#', $styleName) != 0
) { ) {
$styleClass = 'PhpOffice\\PhpWord\\Writer\\ODText\\Style\\' . basename(get_class($style)); $styleClass = str_replace('\\Style\\', '\\Writer\\ODText\\Style\\', get_class($style));
if (class_exists($styleClass)) { if (class_exists($styleClass)) {
$styleWriter = new $styleClass($xmlWriter, $style); $styleWriter = new $styleClass($xmlWriter, $style);
$styleWriter->setIsAuto(true); $styleWriter->setIsAuto(true);

View File

@ -91,7 +91,7 @@ class Styles extends AbstractPart
if (preg_match('#^T[0-9]+$#', $styleName) == 0 if (preg_match('#^T[0-9]+$#', $styleName) == 0
&& preg_match('#^P[0-9]+$#', $styleName) == 0 && preg_match('#^P[0-9]+$#', $styleName) == 0
) { ) {
$styleClass = 'PhpOffice\\PhpWord\\Writer\\ODText\\Style\\' . basename(get_class($style)); $styleClass = str_replace('\\Style\\', '\\Writer\\ODText\\Style\\', get_class($style));
if (class_exists($styleClass)) { if (class_exists($styleClass)) {
$styleWriter = new $styleClass($xmlWriter, $style); $styleWriter = new $styleClass($xmlWriter, $style);
$styleWriter->write(); $styleWriter->write();

View File

@ -68,8 +68,7 @@ class Element
public function write() public function write()
{ {
$content = ''; $content = '';
$writerClass = substr(get_class($this), 0, strrpos(get_class($this), '\\')) . '\\' . $writerClass = str_replace('\\Element\\', '\\Writer\\RTF\\Element\\', get_class($this->element));
basename(get_class($this->element));
if (class_exists($writerClass)) { if (class_exists($writerClass)) {
$writer = new $writerClass($this->parentWriter, $this->element, $this->withoutP); $writer = new $writerClass($this->parentWriter, $this->element, $this->withoutP);
$content = $writer->write(); $content = $writer->write();

View File

@ -84,12 +84,7 @@ abstract class AbstractElement
protected function getElement() protected function getElement()
{ {
if (!is_null($this->element)) { if (!is_null($this->element)) {
$elementClass = 'PhpOffice\\PhpWord\\Element\\' . basename(get_class($this->element)); return $this->element;
if ($this->element instanceof $elementClass) {
return $this->element;
} else {
throw new Exception('No valid element assigned.');
}
} else { } else {
throw new Exception('No element assigned.'); throw new Exception('No element assigned.');
} }

View File

@ -26,6 +26,13 @@ use PhpOffice\PhpWord\Element\TextBreak as TextBreakElement;
*/ */
class Container extends AbstractElement class Container extends AbstractElement
{ {
/**
* Namespace; Can't use __NAMESPACE__ in inherited class (ODText)
*
* @var string
*/
protected $namespace = 'PhpOffice\\PhpWord\\Writer\\Word2007\\Element';
/** /**
* Write element * Write element
*/ */
@ -35,13 +42,12 @@ class Container extends AbstractElement
$container = $this->getElement(); $container = $this->getElement();
// Loop through subelements // Loop through subelements
$containerClass = basename(get_class($container)); $containerClass = substr(get_class($container), strrpos(get_class($this), '\\') + 1);
$subelements = $container->getElements(); $subelements = $container->getElements();
$withoutP = in_array($containerClass, array('TextRun', 'Footnote', 'Endnote', 'TextBox')) ? true : false; $withoutP = in_array($containerClass, array('TextRun', 'Footnote', 'Endnote', 'TextBox')) ? true : false;
if (count($subelements) > 0) { if (count($subelements) > 0) {
foreach ($subelements as $subelement) { foreach ($subelements as $subelement) {
$writerClass = substr(get_class($this), 0, strrpos(get_class($this), '\\')) . '\\' . $writerClass = str_replace('PhpOffice\\PhpWord\\Element', $this->namespace, get_class($subelement));
basename(get_class($subelement));
if (class_exists($writerClass)) { if (class_exists($writerClass)) {
$writer = new $writerClass($xmlWriter, $subelement, $withoutP); $writer = new $writerClass($xmlWriter, $subelement, $withoutP);
$writer->write(); $writer->write();
@ -50,7 +56,7 @@ class Container extends AbstractElement
} else { } else {
// Special case for Cell: They have to contain a TextBreak at least // Special case for Cell: They have to contain a TextBreak at least
if ($containerClass == 'Cell') { if ($containerClass == 'Cell') {
$writerClass = substr(get_class($this), 0, strrpos(get_class($this), '\\')) . '\\TextBreak'; $writerClass = "{$this->namespace}\\TextBreak";
$writer = new $writerClass($xmlWriter, new TextBreakElement(), $withoutP); $writer = new $writerClass($xmlWriter, new TextBreakElement(), $withoutP);
$writer->write(); $writer->write();
} }

View File

@ -75,13 +75,6 @@ abstract class AbstractStyle
*/ */
protected function getStyle() protected function getStyle()
{ {
if (!is_null($this->style)) {
$styleClass = 'PhpOffice\\PhpWord\\Style\\' . basename(get_class($this->style));
if (is_object($this->style) && (!$this->style instanceof $styleClass)) {
throw new Exception('No valid style assigned.');
}
}
return $this->style; return $this->style;
} }