Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
chamilo-lms/main/inc/lib/phpdocx/classes/CreatePage.inc

299 lines
8.0 KiB

<?php
/**
* Create pages
*
* @category Phpdocx
* @package elements
* @copyright Copyright (c) 2009-2011 Narcea Producciones Multimedia S.L.
* (http://www.2mdc.com)
* @license LGPL
* @version 1.0
* @link http://www.phpdocx.com
* @since File available since Release 1.0
*/
include_once dirname(__FILE__) . '/CreateElement.inc';
/**
* Create pages
*
* @category Phpdocx
* @package elements
* @copyright Copyright (c) 2009-2011 Narcea Producciones Multimedia S.L.
* (http://www.2mdc.com)
* @license http://www.phpdocx.com/wp-content/themes/lightword/pro_license.php
* @version 1.0
* @link http://www.phpdocx.com
* @since Class available since Release 1.0
*/
class CreatePage extends CreateElement
{
/**
* @access protected
* @var string
*/
protected $_xml;
/**
* @access private
* @var CreatePage
* @static
*/
private static $_instance = NULL;
/**
* Construct
*
* @access public
*/
public function __construct()
{
}
/**
* Destruct
*
* @access public
*/
public function __destruct()
{
}
/**
*
* @access public
* @return string
*/
public function __toString()
{
return $this->_xml;
}
/**
*
* @access public
* @return CreatePage
* @static
*/
public static function getInstance()
{
if (self::$_instance == NULL) {
self::$_instance = new CreatePage();
}
return self::$_instance;
}
/**
* Create page
*/
public function createPage()
{
$this->_xml = '';
}
/**
* Create sectpr
*
* @access public
* @param array args[0]
*/
public function createSECTPR()
{
$this->_xml = '';
$args = func_get_args();
$this->generateSECTPR();
if (!empty($args[0]['orient']) && $args[0]['orient'] == 'landscape') {
$this->generatePGSZ(16838, 11906, 'landscape');
} else {
$this->generatePGSZ(11906, 16838);
}
$this->generatePGMAR($args);
$this->generateCOLS();
if (!empty($args[0]['titlePage'])) $this->generateTITLEPG();
$this->generateDOCGRID();
}
/**
* Gnerate pagebreak
*
* @access public
* @param string $type
*/
public function generatePageBreak($type)
{
$this->_xml = '';
$this->generateP();
if ($type != 'line' && $type != '') {
$this->generateR();
$this->generateBR($type);
}
$this->cleanTemplate();
}
/**
* Generate w:sectpr
*
* @access protected
* @param string $rId
*/
protected function generateSECTPR($rId = '12240')
{
$this->_xml = '<' . CreateElement::NAMESPACEWORD . ':sectPr ' .
CreateDocx::NAMESPACEWORD . ':rsidR="' . $rId . '" ' .
CreateDocx::NAMESPACEWORD . ':rsidRPr="' . $rId . '" ' .
CreateDocx::NAMESPACEWORD . ':rsidSect="' . $rId .
'">__GENERATEHEADERREFERENCE____GENERATEFOOTERREFERENCE____' .
'GENERATESECTPR__</' . CreateElement::NAMESPACEWORD .
':sectPr>';
}
/**
* Generate w:pgsz
*
* @access protected
* @param string $w
* @param string $h
* @param string $orient
*/
protected function generatePGSZ($w = '11906', $h = '16838', $orient = '')
{
$xmlAux = '<' . CreateElement::NAMESPACEWORD . ':pgSz ' .
CreateElement::NAMESPACEWORD . ':w="' . $w . '" ' .
CreateElement::NAMESPACEWORD . ':h="' . $h . '"';
if ($orient != '') {
$xmlAux .= ' ' . CreateElement::NAMESPACEWORD . ':orient="' .
$orient . '"';
}
$xmlAux .= '></' . CreateElement::NAMESPACEWORD .
':pgSz>__GENERATEPGSZ__';
$this->_xml = str_replace('__GENERATESECTPR__', $xmlAux, $this->_xml);
}
/**
* Generate w:pgmar
*
* @access protected
* @param array $args[0]
*/
protected function generatePGMAR()
{
$top = '1440';
$right = '1800';
$bottom = '1440';
$left = '1800';
$header = '0';
$footer = '0';
$gutter = '0';
$args = func_get_args();
if (isset($args[0][0]['top'])) $top = $args[0][0]['top'];
if (isset($args[0][0]['bottom'])) $bottom = $args[0][0]['bottom'];
if (isset($args[0][0]['right'])) $right = $args[0][0]['right'];
if (isset($args[0][0]['left'])) $left = $args[0][0]['left'];
$xml = '<' . CreateElement::NAMESPACEWORD . ':pgMar ' .
CreateElement::NAMESPACEWORD . ':top="' . $top . '" ' .
CreateElement::NAMESPACEWORD . ':right="' . $right . '" ' .
CreateElement::NAMESPACEWORD . ':bottom="' . $bottom . '" ' .
CreateElement::NAMESPACEWORD . ':left="' . $left . '" ' .
CreateElement::NAMESPACEWORD . ':header="' . $header . '" ' .
CreateElement::NAMESPACEWORD . ':footer="' . $footer . '" ' .
CreateElement::NAMESPACEWORD . ':gutter="' . $gutter . '"></' .
CreateElement::NAMESPACEWORD . ':pgMar>__GENERATEPGMAR__';
$this->_xml = str_replace('__GENERATEPGSZ__', $xml, $this->_xml);
}
/**
* Generate w:cols
*
* @access protected
* @param string $num
* @param string $sep
* @param string $space
* @param string $equalWidth
*/
protected function generateCOLS($num = '', $sep = '', $space = '708',
$equalWidth = '')
{
$xml = '<' . CreateElement::NAMESPACEWORD . ':cols ' .
CreateElement::NAMESPACEWORD . ':space="' . $space . '"></' .
CreateElement::NAMESPACEWORD . ':cols>__GENERATECOLS__';
$this->_xml = str_replace('__GENERATEPGMAR__', $xml, $this->_xml);
}
/**
* Generate w:col
*
* @access protected
* @deprecated
* @param string $w
* @param string $space
*/
protected function generateCOL($w = '', $space = '708')
{
}
/**
* Generate w:docgrid
*
* @access protected
* @param string $linepitch
*/
protected function generateDOCGRID($linepitch = '360')
{
$xml = '<' . CreateElement::NAMESPACEWORD . ':docGrid ' .
CreateElement::NAMESPACEWORD . ':linePitch="' .
$linepitch . '"></' . CreateElement::NAMESPACEWORD . ':docGrid>';
$this->_xml = str_replace('__GENERATECOLS__', $xml, $this->_xml);
}
/**
* Generate w:br
*
* @access protected
* @param string $type
*/
protected function generateBR($type = '')
{
$xml = '<' . CreateElement::NAMESPACEWORD . ':br ' .
CreateElement::NAMESPACEWORD . ':type="' . $type . '"></' .
CreateElement::NAMESPACEWORD . ':br>';
$this->_xml = str_replace('__GENERATER__', $xml, $this->_xml);
}
/**
* Generate w:sectionsectpr
*
* @access protected
* @param string $rId
*/
protected function generateSECTIONSECTPR($rId = '12240')
{
$xml = '<' . CreateElement::NAMESPACEWORD . ':sectPr ' .
CreateDocx::NAMESPACEWORD . ':rsidR="' . $rId . '" ' .
CreateDocx::NAMESPACEWORD . ':rsidRPr="' . $rId . '" ' .
CreateDocx::NAMESPACEWORD . ':rsidSect="' . $rId .
'">__GENERATEHEADERREFERENCE____GENERATEFOOTERREFERENCE____' .
'GENERATESECTPR__</' . CreateElement::NAMESPACEWORD .
':sectPr>__GENERATEPPR__';
$this->_xml = str_replace('__GENERATEPPR__', $xml, $this->_xml);
}
/**
* Generate w:titlepg
*
* @access protected
*/
protected function generateTITLEPG()
{
$xml = '<' . CreateElement::NAMESPACEWORD . ':titlePg></' .
CreateElement::NAMESPACEWORD . ':titlePg>__GENERATECOLS__';
$this->_xml = str_replace('__GENERATECOLS__', $xml, $this->_xml);
}
}