2009-11-09 12:57:34 +00:00
< ? php
/*
2013-03-07 14:56:37 +02:00
* e107 website system
*
* Copyright ( C ) 2008 - 2009 e107 Inc ( e107 . org )
* Released under the terms and conditions of the
* GNU General Public License ( http :// www . gnu . org / licenses / gpl . txt )
*
2009-11-09 12:57:34 +00:00
*/
2013-03-07 14:56:37 +02:00
2009-11-09 12:57:34 +00:00
if ( ! defined ( 'e107_INIT' )) { exit ; }
2013-03-07 14:56:37 +02:00
/**
*
* @ package e107
* @ subpackage faqs
* @ version $Id $
* @ author e107inc
*
* FAQ shortcodes
*/
2012-11-02 00:23:59 +00:00
class faqs_shortcodes extends e_shortcode
2009-11-09 12:57:34 +00:00
{
2013-03-10 03:47:48 -07:00
public $counter = 1 ;
// Simply FAQ count when needed.
function sc_faq_counter ( $parm = '' )
{
return $this -> counter ;
}
2009-11-09 12:57:34 +00:00
function sc_faq_question ( $parm = '' )
{
$tp = e107 :: getParser ();
2013-03-15 17:15:29 +02:00
$parm = eHelper :: scDualParams ( $parm );
$param = $parm [ 1 ];
$params = $parm [ 2 ];
if ( $param == 'expand' )
2009-11-09 12:57:34 +00:00
{
2013-03-15 17:15:29 +02:00
$tags = '' ;
if ( vartrue ( $params [ 'tags' ]) && $this -> var [ 'faq_tags' ])
{
2015-03-31 06:26:06 -07:00
$tags = " <div class='faq-tags'> " . LAN_FAQS_TAGS . " : " . $this -> sc_faq_tags () . " </div> " ;
2013-03-15 17:15:29 +02:00
}
2012-11-02 00:23:59 +00:00
$id = " faq_ " . $this -> var [ 'faq_id' ];
2015-04-04 19:05:29 -07:00
$text = " <a class='e-expandit faq-question' href='# { $id } '> " . $tp -> toHTML ( $this -> var [ 'faq_question' ], true , 'TITLE' ) . " </a>
< div id = '{$id}' class = 'e-hideme faq-answer faq_answer clearfix' > " . $tp->toHTML ( $this->var ['faq_answer'],true,'BODY'). $tags . " </ div >
2013-03-15 17:15:29 +02:00
" ;
2009-11-09 12:57:34 +00:00
}
else
{
2015-04-04 19:05:29 -07:00
$text = $tp -> toHTML ( $this -> var [ 'faq_question' ], true , 'TITLE' );
2009-11-09 12:57:34 +00:00
}
return $text ;
}
function sc_faq_question_link ( $parm = '' )
{
$tp = e107 :: getParser ();
2015-04-04 19:05:29 -07:00
return " <a class='faq-question' href=' " . e107 :: getUrl () -> create ( 'faqs/view/item' , array ( 'id' => $this -> var [ 'faq_id' ])) . " ' > " . $tp -> toHTML ( $this -> var [ 'faq_question' ], true , 'TITLE' ) . " </a> " ;
2009-11-09 12:57:34 +00:00
}
function sc_faq_answer ()
{
2013-05-20 16:20:34 -07:00
return e107 :: getParser () -> toHTML ( $this -> var [ 'faq_answer' ], true , 'BODY' );
2013-03-15 17:15:29 +02:00
}
function sc_faq_tags ( $parm = '' )
{
$tags = $this -> var [ 'faq_tags' ];
if ( ! $tags ) return '' ;
2013-05-20 16:20:34 -07:00
if ( ! $parm ) $parm = ' ' ;
2013-03-15 17:15:29 +02:00
$ret = $urlparms = array ();
if ( $this -> category ) $urlparms [ 'category' ] = $this -> category ;
$tags = array_map ( 'trim' , explode ( ',' , $tags ));
foreach ( $tags as $tag )
{
$urlparms [ 'tag' ] = $tag ;
2015-03-31 06:26:06 -07:00
// $url = e107::getUrl()->create('faqs/list/all', $urlparms);
$url = e107 :: url ( 'faqs' , 'tag' , $urlparms );
2013-03-15 17:15:29 +02:00
$tag = htmlspecialchars ( $tag , ENT_QUOTES , 'utf-8' );
2013-05-20 16:20:34 -07:00
$ret [] = '<a href="' . $url . '" title="' . $tag . '"><span class="label label-info">' . $tag . '</span></a>' ;
2013-03-15 17:15:29 +02:00
}
return implode ( $parm , $ret );
}
function sc_faq_current_tag ( $parm = '' )
{
if ( ! $this -> tag ) return '' ;
$tag = $this -> tag ;
if ( $parm == 'raw' ) return $tag ;
$urlparms = array ();
if ( $this -> category ) $urlparms [ 'category' ] = $this -> category ;
$urlparms [ 'tag' ] = $tag ;
$url = e107 :: getUrl () -> create ( 'faqs/list/all' , $urlparms );
if ( $parm == 'url' ) return $url ;
return '<a href="' . $url . '" title="' . $tag . '">' . $tag . '</a>' ;
2009-11-09 12:57:34 +00:00
}
function sc_faq_edit ()
{
$tp = e107 :: getParser ();
$faqpref = e107 :: getPlugConfig ( 'faqs' ) -> getPref ();
2012-11-02 00:23:59 +00:00
if (( $faqpref [ 'add_faq' ] && $this -> var [ 'faq_author' ] == USERID ) || ADMIN )
2009-11-09 12:57:34 +00:00
{
2013-03-07 14:56:37 +02:00
// UNDER CONSTRUCTION
//return "[ <a href='faqs.php?edit.".$this->var['faq_parent'].".".$this->var['faq_id']."'>Edit</a> ]";
2009-11-09 12:57:34 +00:00
}
}
2013-03-15 17:15:29 +02:00
function sc_faq_category ( $parm = '' )
2009-11-09 12:57:34 +00:00
{
2015-01-28 02:29:26 -08:00
// $tp = e107::getParser();
// return $tp->toHTML($this->var['faq_info_title']);
$tp = e107 :: getParser ();
$url = e107 :: url ( 'faqs' , 'category' , $this -> var ); //@See faqs/e_url.php
return " <a href=' " . $url . " '> " . $tp -> toHTML ( $this -> var [ 'faq_info_title' ]) . " </a> " ;
2015-02-15 02:37:36 -08:00
/*
2015-01-28 02:29:26 -08:00
return " <a href=' " . e107 :: getUrl () -> create ( 'faqs/list/all' , array ( 'category' => $this -> var [ 'faq_info_id' ])) . " '> " . $tp -> toHTML ( $this -> var [ 'faq_info_title' ]) . " </a> " ;
2009-11-09 12:57:34 +00:00
$tp = e107 :: getParser ();
2013-03-15 17:15:29 +02:00
if ( $parm == 'extend' && $this -> tag )
{
return " <a href=' " . $this -> sc_faq_current_tag ( 'url' ) . " '> " . $tp -> toHTML ( $this -> var [ 'faq_info_title' ]) . " » " . $this -> sc_faq_current_tag ( 'raw' ) . " </a> " ;
}
2014-09-09 04:37:23 -07:00
if ( $parm == 'raw' )
{
return $tp -> toHTML ( $this -> var [ 'faq_info_title' ]);
}
2013-03-15 17:15:29 +02:00
return " <a href=' " . e107 :: getUrl () -> create ( 'faqs/list/all' , array ( 'category' => $this -> var [ 'faq_info_id' ])) . " '> " . $tp -> toHTML ( $this -> var [ 'faq_info_title' ]) . " </a> " ;
2015-02-15 02:37:36 -08:00
*/
2009-11-09 12:57:34 +00:00
}
2014-07-06 23:08:50 -07:00
function sc_faq_category_description ( $parm = '' )
{
$tp = e107 :: getParser ();
return $tp -> toHTML ( $this -> var [ 'faq_info_about' ], true , 'BODY' );
}
2013-03-07 14:56:37 +02:00
function sc_faq_caturl ()
2009-11-09 12:57:34 +00:00
{
2013-03-07 14:56:37 +02:00
return e107 :: getUrl () -> create ( 'faqs/list/all' , array ( 'category' => $this -> var [ 'faq_info_id' ]));
2009-11-09 12:57:34 +00:00
}
function sc_faq_count ()
{
$tp = e107 :: getParser ();
2012-11-02 00:23:59 +00:00
return $this -> var [ 'f_count' ];
2009-11-09 12:57:34 +00:00
}
function sc_faq_cat_diz ()
{
$tp = e107 :: getParser ();
2013-03-15 17:15:29 +02:00
return $tp -> toHTML ( $this -> var [ 'faq_info_about' ], true );
2009-11-09 12:57:34 +00:00
}
function sc_faq_icon ()
{
2013-03-07 14:56:37 +02:00
return " <img src=' " . e_PLUGIN_ABS . " faq/images/faq.png' alt='' /> " ;
2009-11-09 12:57:34 +00:00
}
function sc_faq_submit_question ()
{
2015-03-31 06:26:06 -07:00
$faqpref = e107 :: pref ( 'faqs' );
if ( check_class ( $faqpref [ 'submit_question' ]))
2009-11-09 12:57:34 +00:00
{
2015-03-31 06:26:06 -07:00
$frm = e107 :: getForm ();
$text = " <a class='btn btn-primary e-expandit faq-submit-question' href='#ask-a-question'>Ask a Question</a>
< div id = 'ask-a-question' class = 'alert alert-info alert-block e-hideme form-group faq-submit-question-form' > " ;
$text .= $frm -> open ( 'faq-ask-question' , 'post' );
$text .= " <div> " . $frm -> text ( 'ask_a_question' , '' , 255 , array ( 'size' => 'xxlarge' , 'placeholder' => 'Type your question here..' )) . '<br />' . $frm -> submit ( 'submit_a_question' , 'Submit' ) . " </div> " ;
$text .= $frm -> close ();
$text .= " </div> " ;
2009-11-09 12:57:34 +00:00
return $text ;
2015-03-31 06:26:06 -07:00
}
2009-11-09 12:57:34 +00:00
}
2014-09-09 20:22:59 -07:00
function sc_faq_search ( $parm = '' )
2009-11-09 12:57:34 +00:00
{
2014-09-09 20:22:59 -07:00
if ( $parm == 'ajax' ) //TODo Ajax JS.
{
$frm = e107 :: getForm ();
$tp = e107 :: getParser ();
$text = $frm -> open ( 'faq-search-form' , 'get' , e_REQUEST_SELF );
$text .= '<span class="input-group e-search">' ;
$text .= $frm -> text ( 'srch' , $_GET [ 'srch' ], 20 , 'class=search-query&placeholder=' . LAN_SEARCH ) . '
< span class = " input-group-btn " >< button class = " btn btn-primary " type = " submit " > '.$tp->toGlyph(' fa - search ').' </ button > ' ;
$text .= '</span></span>' ;
$text .= $frm -> close ();
return $text ;
}
2013-03-07 14:56:37 +02:00
return '' ; // UNDER CONSTRUCTION
2015-02-15 02:37:36 -08:00
// $tp = e107::getParser();
// return "<div style='text-align:center'><br />".$tp->parseTemplate("{SEARCH=faqs}")."</div>";
2009-11-09 12:57:34 +00:00
}
2014-09-09 20:22:59 -07:00
function sc_faq_breadcrumb () //TODO Category Detection. and proper SEF Urls with category names.
{
$array = array ();
$array [ 0 ] = array ( 'url' => e_REQUEST_SELF , 'text' => LAN_PLUGIN_FAQS_NAME );
return e107 :: getForm () -> breadcrumb ( $array );
}
2009-11-09 12:57:34 +00:00
}