'general',
'fieldName' => 'twitter'
'label' => 'label',
'type' => array(
'template' => 'templateType',
'input' => 'inputType'
'validator' => 'int'
),
'btnType' => 'primary|secondary',
'hint' => 'hint',
'inputID' => 'inputID',
'templateID' => 'templateID',
'inputClass' => 'inputClass',
'templateClass' => 'templateClass',
'action' => 'javascriptAction',
'value' => 'inputValue',
'values' => 'selectValues',
'defaultValue' => 'defaultValue', // will be use with meta
'title' => 'H3 Title',
'description' => 'paragraf',
'content' => 'HTML Code',
'query' => array( 'WP_Query' ),
);
*/
static $sett;
static $content;
/* CHECK ATTRIBUTES ( $sett ) */
function getInputType( $sett )
{
return isset( $sett[ 'type' ][ 'input' ] ) && method_exists( new ahtml() , $sett[ 'type' ][ 'input' ] ) ? $sett[ 'type' ][ 'input' ] : exit;
}
function getInputTypeClass( $sett )
{
return 'my-field-' . self::getInputType( $sett );
}
function getInputID( $sett , $attr = false )
{
/* SET INPUT NAME */
$inputName = tools::getInputName( $sett );
if( !empty( $inputName ) ){
/* SET INPUT ID */
$inputID = isset( $sett[ 'inputID' ] ) && !empty( $sett[ 'inputID' ] ) ? $sett[ 'inputID' ] : 'my-field-' . $inputName;
if( !$attr ){
return $inputID;
}
else{
return !empty( $inputID ) ? 'id="' . $inputID . '"' : 'id="my-field-' . $inputName . '"';
}
}else{
/* SET INPUT ID */
$inputID = isset( $sett[ 'inputID' ] ) && !empty( $sett[ 'inputID' ] ) ? $sett[ 'inputID' ] : '';
if( !$attr ){
return $inputID;
}
else{
return !empty( $inputID ) ? 'id="' . $inputID . '"' : '';
}
}
}
function getInputClass( $sett , $attr = false , $additionalClass = '' )
{
/* SET INPUT CLASS */
$inputClass = isset( $sett[ 'inputClass' ] ) && !empty( $sett[ 'inputClass' ] ) ? $sett[ 'inputClass' ] : $additionalClass;
if( !$attr ){
if( !empty( $additionalClass ) ){
return $inputClass . ' ' . $additionalClass ;
}
else{
return $inputClass;
}
}
else{
return !empty( $inputClass ) ? 'class="my-field ' . $inputClass . ' ' . self::getInputTypeClass( $sett ). ' ' . $additionalClass . '"' : ' class="my-field ' . self::getInputTypeClass( $sett ). ' ' . $additionalClass . '"';
}
}
function getButtonClass( $sett , $attr = false , $additionalClass = '' )
{
/* SET BUTTON CLASS */
$buttonClass = isset( $sett[ 'btnType' ] ) ? 'button-' . $sett[ 'btnType' ] : 'button-primary';
/* ADD ADDITIONAL CLASS */
if( !empty( $additionalClass ) ){
$result = $buttonClass . ' ' . $additionalClass;
}
else{
$result = $buttonClass;
}
if( !$attr ){
return $result;
}
else{
return 'class="' . $result . '"';
}
}
function getInputLabel( $sett )
{
/* SET INPUT ID */
$inputID = self::getInputID( $sett );
/* SET INPUT LABEL */
$label = isset( $sett[ 'label' ] ) && !empty( $sett[ 'label' ] ) ? $sett[ 'label' ] : '';
/* SET LABEL ATTRIBUTE ID */
$labelID = !empty( $inputID ) ? 'for="' . $inputID . '"' : '';
if( !empty( $label ) ){
return '';
}
}
function getTemplateID( $sett , $attr = false )
{
/* SET INPUT NAME */
$inputName = tools::getInputName( $sett );
if( !empty( $inputName ) ){
/* SET TEMPLATE ID */
$templateID = isset( $sett[ 'templateID' ] ) && !empty( $sett[ 'templateID' ] ) ? $sett[ 'templateID' ] : 'my-template-' . $inputName;
if( !$attr ){
return $templateID;
}
else{
return !empty( $templateID ) ? 'id="' . $templateID . '"' : 'id="my-template-' . $inputName . '"';
}
}else{
/* SET TEMPLATE ID */
$templateID = isset( $sett[ 'templateID' ] ) && !empty( $sett[ 'templateID' ] ) ? $sett[ 'templateID' ] : '';
if( !$attr ){
return $templateID;
}
else{
return !empty( $templateID ) ? 'id="' . $templateID . '"' : '';
}
}
}
function getTemplateClass( $sett , $additionalClass , $attr = false )
{
/* SET TEMPLATE CLASS */
$templateClass = isset( $sett[ 'templateClass' ] ) && !empty( $sett[ 'templateClass' ] ) ? $sett[ 'templateClass' ] : '';
if( !$attr ){
return $templateClass;
}
else{
if( strlen( $templateClass . $additionalClass ) ){
return !empty( $templateClass ) ? 'class="' . $templateClass . ' ' . $additionalClass . '"' : 'class="' . $additionalClass . '"';
}
}
}
function getSelectValues( $sett )
{
$result = '';
if( !isset( $sett[ 'value' ] ) ){
if( isset( $sett[ 'defaultValue' ] ) ){
if( isset( $sett[ 'values' ] ) && !empty( $sett[ 'values' ] ) && is_array( $sett[ 'values' ] ) ){
foreach( $sett[ 'values' ] as $value => $label ){
$result .= '';
}
}
return $result;
}
else{
if( isset( $sett[ 'values' ] ) && !empty( $sett[ 'values' ] ) && is_array( $sett[ 'values' ] ) ){
foreach( $sett[ 'values' ] as $value => $label ){
$result .= '';
}
}
return $result;
}
}
else{
if( isset( $sett[ 'values' ] ) && !empty( $sett[ 'values' ] ) && is_array( $sett[ 'values' ] ) ){
foreach( $sett[ 'values' ] as $value => $label ){
$result .= '';
}
}
return $result;
}
}
function getImageSelectValue( $sett )
{
if( isset( $sett[ 'coll' ] ) )
$coll = $sett[ 'coll' ];
else
$coll = 1;
if( isset( $sett[ 'position' ] ) )
$options = '
';
else
$options = '
';
if( isset( $sett[ 'bkg' ] ) ){
$bkg_color = ' background-color: ' . $sett[ 'bkg' ] . '; ';
}else{
$bkg_color = '';
}
if( !isset( $sett[ 'size' ] ) ){
$sett[ 'size' ] = 45;
}
$diff = (int)((45 - $sett[ 'size' ] ) / 2 );
$margin = ' margin:' . $diff . 'px; ';
$size = 'width="' . $sett[ 'size' ] . '" height="' . $sett[ 'size' ] . '"';
$style = 'style="' . $margin . $bkg_color .'" ' . $size;
$img = '
![]()
';
$bkg = '';
if( !isset( $sett[ 'value' ] ) ){
if( isset( $sett[ 'defaultValue' ] ) ){
if( isset( $sett[ 'values' ] ) && !empty( $sett[ 'values' ] ) && is_array( $sett[ 'values' ] ) ){
foreach( $sett[ 'values' ] as $value => $label ){
$options .= '
![](' . esc_url( $label ) . ')
';
}
}
}
else{
if( isset( $sett[ 'values' ] ) && !empty( $sett[ 'values' ] ) && is_array( $sett[ 'values' ] ) ){
foreach( $sett[ 'values' ] as $value => $label ){
$options .= '
![](' . esc_url( $label ) . ')
';
}
}
}
}
else{
if( isset( $sett[ 'values' ] ) && !empty( $sett[ 'values' ] ) && is_array( $sett[ 'values' ] ) ){
foreach( $sett[ 'values' ] as $value => $label ){
if( $value == $sett[ 'value' ] ){
$options .= '
![](' . esc_url( $label ) . ')
';
$img = '
![](' . esc_url( $label ) . ')
';
}else{
$options .= '
![](' . esc_url( $label ) . ')
';
}
}
}
}
$options .= '
';
$result = '
';
$result .= $img;
$result .= '';
$result .= $options;
return $result;
}
function getLogicValue( $sett )
{
if( !isset( $sett[ 'value' ] ) ){
if( isset( $sett[ 'defaultValue' ] ) ){
return 'value="' . ( (int)$sett[ 'defaultValue' ] ) . '"';
}
}
else{
return 'value="' . ( (int) $sett[ 'value' ] ) . '"';
}
}
function getLogicCheckValue( $sett )
{
if( isset( $sett[ 'type' ][ 'input' ] ) && $sett[ 'type' ][ 'input' ] == 'logic' ){
if( !isset( $sett[ 'value' ] ) ){
if( isset( $sett[ 'defaultValue' ] ) ){
return checked( $sett[ 'defaultValue' ] , 1 , false );
}
}
else{
return checked( $sett[ 'value' ] , 1 , false );
}
}
}
function getLogicButtonValue( $sett , $attr = false )
{
if( !isset( $sett[ 'value' ] ) ) {
if( isset( $sett[ 'defaultValue' ] ) ) {
if( $sett[ 'defaultValue' ] ) {
$result = __( 'Disable', 'myThemes' );
}else{
$result = __( 'Enable', 'myThemes' );
}
}
else{
$result = __( 'Enable', 'myThemes' );
}
if( !$attr ) {
return $result;
} else {
return 'value="' . $result . '"';
}
}
else {
if( $sett[ 'value' ] ) {
$result = __( 'Disable', 'myThemes' );
} else {
$result = __( 'Enable', 'myThemes' );
}
if( !$attr ) {
return $result;
}else{
return 'value="' . $result . '"';
}
}
}
function getTextareaValue( $sett )
{
if( isset( $sett[ 'type' ][ 'input' ] ) && $sett[ 'type' ][ 'input' ] == 'textarea' ) {
if( !isset( $sett[ 'value' ] ) ){
if( isset( $sett[ 'defaultValue' ] ) ){
if( isset( $sett[ 'type' ][ 'validator' ] ) && $sett[ 'type' ][ 'validator' ] == 'noesc' )
return stripcslashes ( $sett[ 'defaultValue' ] );
else
return esc_attr( $sett[ 'defaultValue' ] );
}
}
else{
if( isset( $sett[ 'type' ][ 'validator' ] ) && $sett[ 'type' ][ 'validator' ] == 'noesc' )
return stripcslashes ( $sett[ 'value' ] );
else
return esc_attr( $sett[ 'value' ] );
}
}
}
/* TEXT, SEARCH, UPLOAD, UPLOAD-ID, DIGIT */
function getValue( $sett , $attr = false )
{
if( !isset( $sett[ 'value' ] ) ){
if( isset( $sett[ 'defaultValue' ] ) ){
if( !$attr ){
return self::validator( $sett[ 'defaultValue' ] , self::getValidator( $sett ) );
}
else{
return 'value="' . self::validator( $sett[ 'defaultValue' ] , self::getValidator( $sett ) ) . '"';
}
}
}
else{
if( !$attr ){
return self::validator( $sett[ 'value' ] , self::getValidator( $sett ) ) ;
}
else{
return 'value="' . self::validator( $sett[ 'value' ] , self::getValidator( $sett ) ) . '"';
}
}
}
/* AUTO COMPLETE RESULT ( AJAX REQUEST ) */
function getSearchValues()
{
$query = isset( $_GET[ 'params' ] ) ? (array)json_decode( stripslashes( $_GET[ 'params' ] )) : exit;
$query[ 's' ] = isset( $_GET[ 'query' ] ) ? $_GET[ 'query' ] : exit;
global $wp_query;
$result = array();
$result[ 'query' ] = $query[ 's' ];
$wp_query = new WP_Query( $query );
if( $wp_query -> have_posts() ){
foreach( $wp_query -> posts as $post ){
$result['suggestions'][] = $post -> post_title;
$result['data'][] = $post -> ID;
}
}
echo json_encode( $result );
exit();
}
function parse_sett( $sett , $pageSlug )
{
$result = '';
foreach( $sett as $fieldName => & $d ){
if( !isset( $d[ 'skip' ] ) || ( isset( $d[ 'skip' ] ) && !$d[ 'skip' ] ) ){
$d[ 'fieldName' ] = $fieldName;
$d[ 'pageSlug' ] = $pageSlug;
$d[ 'value' ] = sett::get( $pageSlug . '-' . $fieldName );
$result .= self::template( $d );
}
}
return $result;
}
/* TEMPLATES TYPE */
function template( $sett )
{
if( isset( $sett[ 'type' ][ 'template' ] ) && method_exists( new ahtml() , $sett[ 'type' ][ 'template' ] ) ) {
return call_user_method_array( $sett[ 'type' ][ 'template' ] , new ahtml() , array( $sett ) );
}
else{
ob_start();
print_r( $sett );
$data = ob_get_clean();
$bt = debug_backtrace();
$caller = array_shift( $bt );
$result = '
' . $caller[ 'file' ] . ' : ' . $caller[ 'line' ];
$result .= '
Template not exist : [ ' . tools::getPageSlug( $sett ) .' , ' . tools::getFieldName( $sett ) . ' ]';
$result .= '
' . $data .'
';
return $result;
}
}
/* TEMPLAE WITH ONLY INPUT */
function none( $sett )
{
$hint = '';
if( isset( $sett[ 'hint' ] ) && !empty( $sett[ 'hint' ] ) ){
$hint = '
' . $sett[ 'hint' ] . '
';
$hint .= '
';
};
return call_user_method_array( self::getInputType( $sett ) , new ahtml() , array( $sett ) ) . $hint;
}
/* TEMPLATE TYPE INLINE */
function inline( $sett )
{
$result = '
';
/* ADD LABEL */
$result .= '
' . self::getInputLabel( $sett ) . '
';
/* ADD INPUT */
$result .= '
';
$result .= call_user_method_array( self::getInputType( $sett ) , new ahtml() , array( $sett ) );
if( isset( $sett[ 'submitValue' ] ) ){
$result .= '';
}
$result .= '
';
$result .= '
';
/* ADD HINT ( ADDITIONAL INFO ) */
if( isset( $sett[ 'hint' ] ) && !empty( $sett[ 'hint' ] ) ){
$result .= '
' . $sett[ 'hint' ] . '
';
}
$result .= '
';
return $result;
}
/* TEMPLATE TYPE INLIST */
function inlist( $sett )
{
$result = '
';
/* ADD LABEL */
$result .= '
' . self::getInputLabel( $sett ) . '
';
/* ADD INPUT */
$result .= '
';
$result .= call_user_method_array( self::getInputType( $sett ) , new ahtml() , array( $sett ) );
if( isset( $sett[ 'submitValue' ] ) ){
$result .= '';
}
$result .= '
';
/* ADD HINT ( ADDITIONAL INFO ) */
if( isset( $sett[ 'hint' ] ) && !empty( $sett[ 'hint' ] ) ){
$result .= '
';
$result .= '
' . $sett[ 'hint' ] . '
';
}
$result .= '
';
return $result;
}
/* TEMPLATE TYPE CODE */
function code( $sett )
{
$result = '
';
if( isset( $sett[ 'title' ] ) ){
$result .= '
' . $sett[ 'title' ] . '
';
}
if( isset( $sett[ 'description' ] ) ){
$result .= '
' . $sett[ 'description' ] . '
';
}
if( isset( $sett[ 'content' ] ) ){
$result .= $sett[ 'content' ];
}
$result .= '
';
return $result;
}
function _popBox( $sett, $content )
{
$class = '';
if( isset( $sett[ 'class'] ) )
$class = $sett[ 'class' ];
$rett = '
';
$rett .= '';
return $rett;
}
function _popBox2( $sett, $content )
{
$class = '';
if( isset( $sett[ 'class'] ) )
$class = $sett[ 'class' ];
if( isset( $sett[ 'title' ] ) )
$title = $sett[ 'title' ];
else
$title = '';
if( isset( $sett[ 'boxID' ] ) ){
$s_id = ' id="' . $sett[ 'boxID' ] . '-shadow" ';
$b_id = ' id="' . $sett[ 'boxID' ] . '"';
}else{
$s_id = ' id="' . str_replace( array( ',' , ' ', '.' ) , '-' , $title ) . '-shadow"';
$b_id = ' id="' . str_replace( array( ',' , ' ', '.' ) , '-' , $title ) . '"';
}
$rett = '
';
$rett .= '';
return $rett;
}
function _popBoxHook( $sett , $content )
{
self::$content .= self::_popBox2( $sett , $content );
}
function my_hook()
{
echo self::$content;
}
function _box( $sett, $content )
{
$class = '';
if( isset( $sett[ 'class'] ) )
$class = $sett[ 'class' ];
$rett = '
';
if( isset( $sett[ 'title' ] ) ){
$rett .= '
' . $sett[ 'title' ] . '
';
}
if( isset( $sett[ 'description' ] ) ){
$rett .= '
' . $sett[ 'description' ] . '
';
}
$rett .= $content . '
';
return $rett;
}
function _formSubmit( $attr )
{
//$value = 'Update Settings', $name = ''
$_name = '';
if( isset( $attr[ 'name' ] ) )
$_name = 'name="'.$attr[ 'name' ].'"';
$_value = '';
if( isset( $attr[ 'value' ] ) )
$_value = $attr[ 'value' ];
$_onclick = '';
if( isset( $attr[ 'onclick' ] ) )
$_onclick = 'onclick="' . $attr[ 'onclick' ] . '"';
$_type = 'submit';
if( isset( $attr[ 'type' ] ) )
$_type = $attr[ 'type' ];
$_class = '';
if( isset( $attr[ 'buttonClass' ] ) )
$_class = $attr[ 'buttonClass' ];
$_id = '';
if( isset( $attr[ 'buttonID' ] ) )
$_id = " id='" . $attr[ 'buttonID' ] . "' ";
$rett = '
';
if( !isset( $attr[ 'div' ] ) || $attr[ 'div' ] === true ) {
$rett = '
' . $rett . '
';
}
return $rett;
}
function _form( $content, $submit = 1 )
{
$_submit = '';
if( $submit )
$_submit = ahtml::_formSubmit( array( 'value'=>'Update' ) );
return '
';
}
function box( $box , $pageSlug , $sett )
{
$result = '
';
foreach( $sett as $fieldName => & $d ){
if( isset( $d[ 'type' ][ 'box' ] ) && isset( $d[ 'skip' ] ) && $d[ 'type' ][ 'box' ] == $box ){
$d[ 'fieldName' ] = $fieldName;
$d[ 'pageSlug' ] = $pageSlug;
$d[ 'value' ] = sett::get( $pageSlug . '-' . $fieldName );
$result .= ahtml::template( $d );
}
}
$result .= '
';
return $result;
}
function boxForm( $box , $pageSlug , $sett , $key = null , $option = null )
{
$result = '
';
$result .= '
';
$result .= '
';
return $result;
}
function boxMultipleForm( $box , $pageSlug , $sett )
{
$result = '
';
foreach( $sett as $fieldName => & $d ){
if( isset( $d[ 'type' ][ 'box' ] ) && isset( $d[ 'skip' ] ) && $d[ 'type' ][ 'box' ] == $box ){
$d[ 'fieldName' ] = $fieldName;
$d[ 'pageSlug' ] = $pageSlug;
$d[ 'value' ] = sett::get( $pageSlug . '-' . $fieldName );
$result .= '';
}
}
$result .= '
';
return $result;
}
/* INPUTS TYPE */
/* INPUT TYPE HIDDEN */
function hidden( $sett )
{
$result = '
';
return $result;
}
/* INPUT TYPE TEXT */
function text( $sett )
{
$result = '
';
return $result;
}
/* INPUT TYPE LIMITED TEXT */
function limitedText( $sett )
{
$result = '
';
return $result;
}
/* INPUT TYPE SEARCH ( AUTO COMPLETE ) */
function search( $sett )
{
/* SET INPUT VALUE */
$value = self::getValue( $sett );
$title = '';
$postID = '';
if( !empty( $value ) && (int)$value > 0 ){
$p = get_post( $value );
if( !is_wp_error( $p ) && is_object( $p ) ){
$title = $p -> post_title;
$postID = $p -> ID;
}
}
/* POST TITLE */
$result = '
';
/* DEFAULT VALIDATOR */
if( !isset( $sett[ 'type' ][ 'validator' ] ) ){
$sett[ 'type' ][ 'validator' ] = 'int';
}
/* POST ID */
$result .= '
';
/* POSTS FROM QUERY */
$result .= '
';
$result .= '
';
$result .= '![](' . get_template_directory_uri() . '/media/admin/images/clear-hover.png)
';
return $result;
}
/* INPUT TYPE DIGIT ( ACCEPT ONLY DIGITS ) */
function digit( $sett )
{
/* DEFAULT VALIDATOR */
if( !isset( $sett[ 'type' ][ 'validator' ] ) ){
$sett[ 'type' ][ 'validator' ] = 'int';
}
$result = '
';
return $result;
}
/* INPUT TYPE UPLOAD ( URL OR UPLOADED FILE PATH ) */
function upload( $sett )
{
/* DEFAULT VALIDATOR */
if( !isset( $sett[ 'type' ][ 'validator' ] ) ){
$sett[ 'type' ][ 'validator' ] = 'url';
}
/* UPLOAD URL / FILE PATH */
$result = '
';
/* UPLOAD BUTTON */
$result .= '
';
return $result;
}
/* INPUT TYPE UPLOAD ID ( SAVE ID OF ATTACHED FILE ) */
function uploadID( $sett )
{
/* SET UPLOAD ID VALUE */
$value = '';
if( (int)self::getValue( $sett ) > 0 ){
$src = wp_get_attachment_image_src( self::getValue( $sett ) , 'full' );
if( isset( $src[ 0 ] ) && !empty( $src[ 0 ] ) ){
$value = $src[ 0 ];
}
}
/* DEFAULT VALIDATOR */
if( !isset( $sett[ 'type' ][ 'validator' ] ) ){
$sett[ 'type' ][ 'validator' ] = 'int';
}
/* UPLOAD URL */
$result = '
';
/* UPLOAD BUTTON */
$result .= '
';
/* UPLOAD ID */
$result .= '
';
my_fl_upload::run( );
return $result;
}
/* INPUT TYPE PICK COLOR */
function pickColor( $sett )
{
/* SET INPUT NAME */
$inputName = tools::getInputName( $sett );
/* COLOR */
$result = '
';
/* PICK ICON */
$result .= '
';
/* COLOR PANEL */
$result .= '
';
return $result;
}
/* INPUT TYPE TEXTAREA */
function textarea( $sett )
{
$result = '