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)
{
// $type = basename(get_class($element));
// $type = str_replace('PhpOffice\\PhpWord\\Element\\', '', get_class($element)));
$element->setElementIndex($this->countElements() + 1);
$element->setElementId();
$element->setPhpWord($this->phpWord);

View File

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

View File

@ -24,4 +24,10 @@ namespace PhpOffice\PhpWord\Writer\ODText\Element;
*/
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
|| 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)) {
$styleWriter = new $styleClass($xmlWriter, $style);
$styleWriter->setIsAuto(true);

View File

@ -91,7 +91,7 @@ class Styles extends AbstractPart
if (preg_match('#^T[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)) {
$styleWriter = new $styleClass($xmlWriter, $style);
$styleWriter->write();

View File

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

View File

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

View File

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

View File

@ -75,13 +75,6 @@ abstract class AbstractStyle
*/
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;
}