<aggregate alias="Parent" class="BoutiqueCategorie" local="parent" foreign="id" cardinality="one" owner="foreign" /> <composite alias="Enfant" class="BoutiqueCategorie" local="id" foreign="parent" cardinality="many" owner="local" />
Category 1
|- Category 2
|- Category 3
$someVar = $modx->getObject('BoutiqueCategorie', array('id'=> $someIdNumber));
$someVar->remove();
That should work as far as I can tell. Any errors being recorded? Any code to share?
<?xml version="1.0" encoding="UTF-8"?>
<model package="aip_boutique" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM">
<object class="BoutiqueCategorie" table="aip_boutique_categories" extends="xPDOSimpleObject">
<field key="parent" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" default="0" />
<field key="order" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" default="0" />
<field key="name" dbtype="varchar" precision="100" phptype="string" null="false" default=""/>
<field key="description" dbtype="text" phptype="string" null="true" default="" />
<field key="visible" dbtype="tinyint" phptype="boolean" null="false" default="1" />
<aggregate alias="Parent" class="BoutiqueCategorie" local="parent" foreign="id" cardinality="one" owner="foreign" />
<composite alias="Enfant" class="BoutiqueCategorie" local="id" foreign="parent" cardinality="many" owner="local" />
<validation>
<rule field="name"
name="preventBlank"
type="xPDOValidationRule"
rule="xPDOMinLengthValidationRule"
value="1"
message="aip_boutique.categories.category_err_ns_name"
/>
</validation>
</object>
</model>
<?php
class CategoryRemoveProcessor extends modObjectRemoveProcessor {
public $classKey = 'BoutiqueCategorie';
public $languageTopics = array('aip_boutique:default');
public $objectType = 'aip_boutique.category';
public function beforeRemove() {
$primaryKey = $this->getProperty($this->primaryKeyField, false);
if($this->modx->getCount('BoutiqueArticle', array('category' => $primaryKey)) > 0) {
$this->modx->error->failure($this->modx->lexicon('aip_boutique.categories.category_err_remove_count_article'));
}
return parent::beforeRemove();
}
}
return 'CategoryRemoveProcessor';
removeCategory: function(btn,e) {
if (!this.cm.activeNode) return false;
MODx.msg.confirm({
text: _('aip_boutique.categories.category.remove_confirm'),
url: this.config.url,
params: {
action: 'mgr/category/remove',
id: this.cm.activeNode.attributes.pk
},
listeners: {
'success': {fn:function(r) { this.refresh(); },scope:this}
}
});
}