'array'];
public function sluggable()
{
return [
'slug' => [
'source' => 'name'
]
];
}
public function iq_content_tree()
{
return $this->belongsTo('App\Models\IQContentTree', 'tree_id');
}
public function iq_content_tree_node_parent()
{
return $this->belongsTo('App\Models\IQContentTreeNode', 'parent_id');
}
public function iq_content_tree_node_childs()
{
return $this->hasMany('App\Models\IQContentTreeNode', 'parent_id', 'id')->orderBy('pos', 'ASC');
}
public function iq_content_sites()
{
return $this->hasMany('App\Models\IQContentSite', 'tree_node_id', 'id');
}
public function iq_content_site_first()
{
foreach ($this->iq_content_sites as $iq_content_site) {
if (isset($iq_content_site->travel_guide) && $iq_content_site->travel_guide->active) {
return $iq_content_site->travel_guide;
}
}
}
public function setIdentifierAttribute( $value ) {
if(!isset($value) || $value == ""){
$this->attributes['identifier'] = Str::slug(pre_slug($this->name), '-');
}else{
$this->attributes['identifier'] = Str::slug(pre_slug($value), '-');
}
}
public function getUri(){
$root = $this->iq_content_tree->identifier."/";
$ret = $this->getParentIdentifier();
return $root.$ret.$this->identifier."/";
}
public function getParentIdentifier(){
if($node_parent = $this->iq_content_tree_node_parent){
$ret = $node_parent->getParentIdentifier();
return $ret.$node_parent->identifier."/";
}
}
public static function getTreeNodeOptions($tree_id, $id = false, $html = true, $choose = true) {
$values = [];
$ret = "";
$models = IQContentTreeNode::where('tree_id', $tree_id)->where('active', 1)->get();
if($html) {
if($choose){
$ret .= '\n';
}
foreach ($models as $model) {
$attr = ($model->id == $id) ? ' selected="selected"' : '';
$ret .= '\n';
}
return $ret;
}else{
foreach ($models as $model) {
$values[$model->id] = $model->name;
}
return $values;
}
return false;
}
//
}