<?php
	/**
	 * trackbackAdminController class
	 * trackback module admin controller class
	 *
	 * @author NHN (developers@xpressengine.com)
	 * @package /modules/trackback
	 * @version 0.1
	 */
    class trackbackAdminController extends trackback {
		/**
		 * Initialization
		 * @return void
		 */
        function init() {
        }

		/**
		 * Trackbacks delete selected in admin page
		 * @return void|Object
		 */
        function procTrackbackAdminDeleteChecked() {
            // An error appears if no document is selected
            $cart = Context::get('cart');
			if(!is_array($cart)) $trackback_srl_list= explode('|@|', $cart);
			else $trackback_srl_list = $cart;

            $trackback_count = count($trackback_srl_list);
            if(!$trackback_count) return $this->stop('msg_cart_is_null');

            $oTrackbackController = &getController('trackback');
            // Delete the post
            for($i=0;$i<$trackback_count;$i++) {
                $trackback_srl = trim($trackback_srl_list[$i]);
                if(!$trackback_srl) continue;

                $oTrackbackController->deleteTrackback($trackback_srl, true);
            }

            $this->setMessage( sprintf(Context::getLang('msg_checked_trackback_is_deleted'), $trackback_count) );

			$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispTrackbackAdminList');
			$this->setRedirectUrl($returnUrl);
        }

		/**
		 * Save Settings
		 * @return object
		 */
        function procTrackbackAdminInsertConfig() {
            $config->enable_trackback = Context::get('enable_trackback');
            if($config->enable_trackback != 'Y') $config->enable_trackback = 'N';

            $oModuleController = &getController('module');
            $output = $oModuleController->insertModuleConfig('trackback',$config);

			$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispTrackbackAdminList');
			return $this->setRedirectUrl($returnUrl, $output);
        }

		/**
		 * Trackback Module Settings
		 * @return void|Object
		 */
        function procTrackbackAdminInsertModuleConfig() {
            // Get variables
            $module_srl = Context::get('target_module_srl');
            if(preg_match('/^([0-9,]+)$/',$module_srl)) $module_srl = explode(',',$module_srl);
            else $module_srl = array($module_srl);

            $enable_trackback = Context::get('enable_trackback');
            if(!in_array($enable_trackback, array('Y','N'))) $enable_trackback = 'N';
            
            if(!$module_srl || !$enable_trackback) return new Object(-1, 'msg_invalid_request');

            for($i=0;$i<count($module_srl);$i++) {
                $srl = trim($module_srl[$i]);
                if(!$srl) continue;
                $output = $this->setTrackbackModuleConfig($srl, $enable_trackback);
            }

            $this->setError(-1);
            $this->setMessage('success_updated', 'info');

			$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispBoardAdminContent');
			$this->setRedirectUrl($returnUrl);
        }

		/**
		 * Trackback Module Settings
		 * @return void
		 */
        function procTrackbackAdminAddCart()
		{
			$trackback_srl = (int)Context::get('trackback_srl');

			$oTrackbackAdminModel = &getAdminModel('trackback');
			//$columnList = array('trackback_srl');
			$args->trackbackSrlList = array($trackback_srl);

			$output = $oTrackbackAdminModel->getTotalTrackbackList($args);

			if(is_array($output->data))
			{
				foreach($output->data AS $key=>$value)
				{
					if($_SESSION['trackback_management'][$value->trackback_srl]) unset($_SESSION['trackback_management'][$value->trackback_srl]);
					else $_SESSION['trackback_management'][$value->trackback_srl] = true;
				}
			}
        }

		/**
		 * Trackback modular set function
		 * @param int $module_srl
		 * @param string $enable_trackback 'Y' or 'N'
		 * @return Object
		 */
        function setTrackbackModuleConfig($module_srl, $enable_trackback) {
            $config->enable_trackback = $enable_trackback;

            $oModuleController = &getController('module');
            $oModuleController->insertModulePartConfig('trackback', $module_srl, $config);
            return new Object();
        }

		/**
		 * Modules belonging to remove all trackbacks
		 * @param int $module_srl
		 * @return object
		 */
        function deleteModuleTrackbacks($module_srl) {
            // Delete
            $args->module_srl = $module_srl;
            $output = executeQuery('trackback.deleteModuleTrackbacks', $args);

            return $output;
        }
    }
?>
