Exemple #1
0
 public static function getComponentsForTarget($componentClass, $targetId, $includeSubpages)
 {
     if (!isset(self::$_pageIds[$componentClass])) {
         $ids = array();
         $model = Kwc_Abstract::createOwnModel($componentClass);
         foreach ($model->export(Kwf_Model_Abstract::FORMAT_ARRAY) as $row) {
             $target = $row['target'];
             if (!isset($ids[$target])) {
                 $ids[$target] = array();
             }
             $ids[$target][] = $row['component_id'];
         }
         self::$_pageIds[$componentClass] = $ids;
     }
     $ret = array();
     foreach (self::$_pageIds[$componentClass] as $targetPageId => $dbIds) {
         $ids = array();
         if ($includeSubpages) {
             if ((string) $targetPageId == (string) $targetId || substr($targetPageId, 0, strlen($targetId) + 1) == $targetId . '-' || substr($targetPageId, 0, strlen($targetId) + 1) == $targetId . '_') {
                 $ids = $dbIds;
             }
         } else {
             if ((string) $targetPageId === (string) $targetId) {
                 $ids = $dbIds;
             }
         }
         foreach ($ids as $dbId) {
             $ret = array_merge($ret, Kwf_Component_Data_Root::getInstance()->getComponentsByDbId($dbId));
         }
     }
     return $ret;
 }
 protected function _getModel()
 {
     if (!$this->_model) {
         $this->_model = Kwc_Abstract::createOwnModel($this->_class);
     }
     return $this->_model;
 }
Exemple #3
0
 private function _getLinkRow()
 {
     if (!isset($this->_linkRow)) {
         $m = Kwc_Abstract::createOwnModel($this->componentClass);
         $this->_linkRow = $m->getRow($this->dbId);
     }
     return $this->_linkRow;
 }
 protected function _getData($select = array())
 {
     $m = Kwc_Abstract::createOwnModel($this->componentClass);
     if ($column = $m->fetchColumnByPrimaryId('target_component_id', $this->dbId)) {
         return Kwf_Component_Data_Root::getInstance()->getComponentByDbId($column, array('subroot' => $this));
     }
     return false;
 }
 private function _onCategoryChanged($categoryIds)
 {
     $model = Kwc_Abstract::createOwnModel($this->_class);
     $select = $model->select()->whereEquals('category_id', $categoryIds);
     foreach ($model->getRows($select) as $row) {
         $this->_deleteCache($row->component_id);
     }
 }
 private function _getLinkRow()
 {
     if (!isset($this->_linkRow)) {
         $m = Kwc_Abstract::createOwnModel($this->componentClass);
         $cols = array('target', 'open_type', 'width', 'height', 'menubar', 'toolbar', 'locationbar', 'statusbar', 'scrollbars', 'resizable');
         $this->_linkRow = (object) $m->fetchColumnsByPrimaryId($cols, $this->dbId);
     }
     return $this->_linkRow;
 }
 public function getListeners()
 {
     $ret = array();
     $ownModel = Kwc_Abstract::createOwnModel($this->_class);
     $models = Kwf_Model_Abstract::getInstance($ownModel)->getDependentModels();
     $model = $models['Networks'];
     $ret[] = array('class' => $model, 'event' => 'Kwf_Events_Event_Row_Updated', 'callback' => 'onNetworksRowUpdate');
     $ret[] = array('class' => $model, 'event' => 'Kwf_Events_Event_Row_Inserted', 'callback' => 'onNetworksRowUpdate');
     $ret[] = array('class' => $model, 'event' => 'Kwf_Events_Event_Row_Deleted', 'callback' => 'onNetworksRowUpdate');
     return $ret;
 }
 public function __construct($name, $class)
 {
     $this->setClass($class);
     if ($class) {
         if (!$this->getModel()) {
             $model = Kwc_Abstract::createOwnModel($class);
             if ($model) {
                 $this->setModel($model);
             }
         }
         $this->setCreateMissingRow(true);
     }
     parent::__construct($name);
 }
 public function getListeners()
 {
     $ret = parent::getListeners();
     if (Kwc_Abstract::hasSetting($this->_class, 'throwContentChangedOnOwnMasterModelUpdate') || Kwc_Abstract::hasSetting($this->_class, 'throwHasContentChangedOnMasterRowColumnsUpdate')) {
         $masterComponentClass = Kwc_Abstract::getSetting($this->_class, 'masterComponentClass');
         $m = Kwc_Abstract::createOwnModel($masterComponentClass);
         if (!$m) {
             throw new Kwf_Exception("Master component '{$masterComponentClass}' doesn't have ownModel");
         }
         $ret[] = array('class' => $m, 'event' => 'Kwf_Events_Event_Row_Updated', 'callback' => 'onMasterOwnRowUpdate');
         $ret[] = array('class' => $m, 'event' => 'Kwf_Events_Event_Row_Inserted', 'callback' => 'onMasterOwnRowUpdate');
     }
     return $ret;
 }
 public function load($row)
 {
     $model = Kwc_Abstract::createOwnModel($this->_class);
     $componentId = $row->component_id . '-' . $row->id;
     if ($this->_subComponent) {
         $componentId .= $this->_subComponent;
     }
     $row = $model->getRow($componentId);
     if ($row && $row->kwf_upload_id) {
         $hashKey = Kwf_Util_Hash::hash($row->kwf_upload_id);
         return Kwf_Setup::getBaseUrl() . '/kwf/media/upload/preview?uploadId=' . $row->kwf_upload_id . '&hashKey=' . $hashKey . '&size=' . $this->_size;
     } else {
         return '';
     }
 }
 private static function _getComponentDbIdsForTarget($componentClass, $targetIds, $includeSubpages)
 {
     if (!isset(self::$_pageIds[$componentClass])) {
         $ids = array();
         $model = Kwc_Abstract::createOwnModel($componentClass);
         foreach ($model->export(Kwf_Model_Abstract::FORMAT_ARRAY) as $row) {
             $target = $row['target'];
             if (!isset($ids[$target])) {
                 $ids[$target] = array();
             }
             $ids[$target][] = $row['component_id'];
         }
         self::$_pageIds[$componentClass] = $ids;
     }
     $ret = array();
     foreach (self::$_pageIds[$componentClass] as $targetPageId => $dbIds) {
         $ids = array();
         if ($includeSubpages) {
             foreach ($targetIds as $targetId) {
                 if ((string) $targetPageId == $targetId || substr($targetPageId, 0, strlen($targetId) + 1) == $targetId . '-' || substr($targetPageId, 0, strlen($targetId) + 1) == $targetId . '_') {
                     $ret = array_merge($ret, $dbIds);
                     break;
                 }
             }
         } else {
             if (in_array((string) $targetPageId, $targetIds, true)) {
                 $ret = array_merge($ret, $dbIds);
             }
         }
     }
     return $ret;
 }