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/CreateLink.inc

263 lines
6.4 KiB

<?php
/**
* Create links using text strings
*
* @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 links using text strings
*
* @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 CreateLink extends CreateElement
{
/**
*
* @access private
* @static
*/
private static $_instance = null;
/**
*
* @access private
* @var string
*/
private $_link;
/**
*
* @access private
* @var string
*/
private $_title;
/**
*
* @access private
* @var string
*/
private $_font;
/**
* Construct
*
* @access public
*/
public function __construct()
{
}
/**
* Destruct
*
* @access public
*/
public function __destruct()
{
}
/**
* Magic method, returns current XML
*
* @access public
* @return string Return current XML
*/
public function __toString()
{
return $this->_xml;
}
/**
* Singleton, return instance of class
*
* @access public
* @return CreateLink
* @static
*/
public static function getInstance()
{
if (self::$_instance == NULL) {
self::$_instance = new CreateLink();
}
return self::$_instance;
}
/**
* Getter. Access to link var
*
* @access public
* @return string
*/
public function getLink()
{
return $this->_link;
}
/**
* Getter. Access to title var
*
* @access public
* @return string
*/
public function getTitle()
{
return $this->_title;
}
/**
* Getter. Access to font var
*
* @access public
* @return string
*/
public function getFont()
{
return $this->_font;
}
/**
* Create a link
*
* @access public
* @param string $arrArgs[0] Text to add
* @param string $arrArgs[1] URL to add
* @param string $arrArgs[2] RFONTS
*/
public function createLink()
{
$this->_xml = '';
$args = func_get_args();
$this->generateP();
$this->generateR();
$this->generateFLDCHAR('begin');
$this->generateR();
$this->generateINSTRTEXT($args[1]);
$this->generateR();
$this->generateFLDCHAR('separate');
$this->generatePROOFERR('gramStart');
$this->generateR();
$this->generateRPR();
$this->generateRFONTS($args[2]);
$this->generateRSTYLE('Hipervnculo');
$this->generateT($args[0]);
$this->generatePROOFERR('gramEnd');
$this->generateR();
$this->generateFLDCHAR('end');
}
/**
* Generate w:fldChar
*
* @access protected
* @param string $fldCharType
*/
protected function generateFLDCHAR($fldCharType)
{
$strXML = '<' . CreateElement::NAMESPACEWORD . ':fldChar '
. CreateElement::NAMESPACEWORD . ':fldCharType="'
. $fldCharType . '"></'
. CreateElement::NAMESPACEWORD . ':fldChar>';
$this->_xml = str_replace('__GENERATER__', $strXML, $this->_xml);
}
/**
* Generate w:hyperlink
*
* @access protected
* @param string $type
*/
protected function generateHYPERLINK($type)
{
$this->_xml = '<' . createElement::NAMESPACEWORD
. ':hyperlink r:id="rId5" w:history="1">__GENERATEP__</'
. createElement::NAMESPACEWORD . ':hyperlink>';
}
/**
* Generate w:instrText
*
* @access protected
* @param string $link. Optional, use http://localhost as default
*/
protected function generateINSTRTEXT($link = 'http://localhost')
{
$xml = '<' . createElement::NAMESPACEWORD
. ':instrText xml:space="preserve"> HYPERLINK "'
. $link . '"</' . createElement::NAMESPACEWORD
. ':instrText>';
$this->_xml = str_replace('__GENERATER__', $xml, $this->_xml);
}
/**
* Generate w:proofErr
*
* @access protected
* @param string $type
*/
protected function generatePROOFERR($type)
{
$xml = '<' . createElement::NAMESPACEWORD . ':proofErr '
. createElement::NAMESPACEWORD . ':type="' . $type
. '"></' . createElement::NAMESPACEWORD
. ':proofErr>__GENERATERSUB__';
$this->_xml = str_replace('__GENERATERSUB__', $xml, $this->_xml);
}
/**
* Generate w:r
*
* @access protected
*/
protected function generateR()
{
if (preg_match("/__GENERATEP__/", $this->_xml)) {
$xml = '<' . createElement::NAMESPACEWORD
. ':r>__GENERATER__</' . createElement::NAMESPACEWORD
. ':r>__GENERATERSUB__';
$this->_xml = str_replace('__GENERATEP__', $xml, $this->_xml);
} elseif (preg_match("/__GENERATERSUB__/", $this->_xml)) {
$xml = '<' . createElement::NAMESPACEWORD . ':r>'
. '__GENERATER__</' . createElement::NAMESPACEWORD
. ':r>__GENERATERSUB__';
$this->_xml = str_replace('__GENERATERSUB__', $xml, $this->_xml);
} else {
$this->_xml = '<' . createElement::NAMESPACEWORD
. ':r>__GENERATER__</' . createElement::NAMESPACEWORD
. ':r>__GENERATERSUB__';
}
}
/**
* Generate w:rStyle
*
* @access protected
* @param string $val
*/
protected function generateRSTYLE($val)
{
$xml = '<' . createElement::NAMESPACEWORD . ':rStyle '
. createElement::NAMESPACEWORD . ':val="' . $val . '"></'
. createElement::NAMESPACEWORD . ':rStyle>';
$this->_xml = str_replace('__GENERATERPR__', $xml, $this->_xml);
}
}