| Server IP : 213.186.33.4 / Your IP : 216.73.216.193 Web Server : Apache System : Linux webm006.cluster103.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : awebpaca ( 35430) PHP Version : 8.5.0 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/awebpaca/minedecapgaronne/administrator/components/com_ovacomposer/models/ |
Upload File : |
<?php
/**
* @version $Id$
* @author OvaTheme
* @package Joomla.Site
* @subpackage com_ovacomposer
* @copyright Copyright (C) 2013 OvaTheme. All rights reserved.
* @license License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.
*/
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport('joomla.application.component.modeladmin');
class OvaComposerModelItem extends JModelAdmin{
private $code;
public function getTable($type = 'Item', $prefix = 'OvaComposerTable', $config = array()){
return JTable::getInstance($type, $prefix, $config);
}
public function getForm($data = array(), $loadData = true){
// Get the form.
$form = $this->loadForm('com_ovacomposer.item', 'item', array('control' => 'jform', 'load_data' => $loadData));
if (empty($form)){
return false;
}
return $form;
}
public function save($data,$id,$name,$config,$keyword,$description,$robots,$author){
$this->AddDesign($id,$data);
foreach ($data as $item) {
$this->getCode(json_decode($item));
}
$kt=false;
if($id==0){
}else{
$kt =$this->editPage($id,$name,$config,$keyword,$description,$robots,$author);
}
if($kt){
return JText::_("COM_OVACOMPOSER_SUCCESS_SAVE");
}else{
echo JText::_("COM_OVACOMPOSER_SUCCESS_ERROR");
}
}
private function editPage($id,$name,$config,$keyword,$description,$robots,$author){
$db = $this->getDbo();
$query = $db->getQuery(true);
$field = array('code="'.$this->code.'"','name="'.$name.'"','config=\''.$config.'\'','keyword="'.$keyword.'"','description="'.$description.'"','robots="'.$robots.'"','author="'.$author.'"');
$where = array('id='.$id);
$query->update($db->quoteName('#__ovacomposer'))->set($field)->where($where);
$db->setQuery($query);
$db->setQuery($query);
try {
$result=$db->execute();
} catch (Exception $e) {
$result = false;
}
return $result;
}
public function getConfig($id){
$db = $this->getDbo();
$query = $db->getQuery(true);
$query ->select('config')
->from('#__ovacomposer')
->where('id='.$id);
$db->setQuery($query);
return $db->loadResult();
}
public function delete(){
$db = $this->getDbo();
$ids = JRequest::getVar('cid');
foreach ($ids as $key => $id) {
$query= $db->getQuery(true);
$query->delete($db->quoteName('#__ovacomposer'))->where('id='.$id);
$db->setQuery($query);
$this->ovaexcute($db);
$query= $db->getQuery(true);
$query->delete($db->quoteName('#__ovacomposer_design'))->where('pageid='.$id);
$db->setQuery($query);
$this->ovaexcute($db);
}
return true;
}
public function ovaexcute($db){
try {
$db->execute();
} catch (Exception $e) {
}
}
public function getDesign($id){
$db = $this->getDbo();
$query = $db->getQuery(true);
$query ->select('a.*,b.class,b.name')
->from('#__ovacomposer_design AS a')
->join('INNER', '#__ovacomposer_type AS b ON (a.type = b.type)')
->where('pageid='.$id)
->order('a.id ASC');
$db->setQuery($query);
return $db->loadObjectList();
}
// Get all Element Type of ovacomposer
public function getOvaType(){
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->select('*')->from('#__ovacomposer_type');
$db->setQuery($query);
return $db->loadObjectList();
}
public function getPageName($id){
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->select('name')->from('#__ovacomposer')->where('id='.$id);
$db->setQuery($query);
return $db->loadResult();
}
public function getPageKeyword($id){
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->select('keyword')->from('#__ovacomposer')->where('id='.$id);
$db->setQuery($query);
return $db->loadResult();
}
public function getPageDescription($id){
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->select('description')->from('#__ovacomposer')->where('id='.$id);
$db->setQuery($query);
return $db->loadResult();
}
public function getPageRobots($id){
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->select('robots')->from('#__ovacomposer')->where('id='.$id);
$db->setQuery($query);
return $db->loadResult();
}
public function getPageauthor($id){
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->select('author')->from('#__ovacomposer')->where('id='.$id);
$db->setQuery($query);
return $db->loadResult();
}
// Get All Module that installed
public function getListModule(){
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select("*")->from("#__modules")->where('published=1 and access=1 and client_id=0');
$db->setQuery($query);
return $db->loadObjectList();
}
public function addNewPage($name){
$db = $this->getDbo();
$query = $db->getQuery(true);
$columns = array('name');
$values = array($db->quote($name));
$query ->insert($db->quoteName('#__ovacomposer'))
->columns($db->quoteName($columns))
->values(implode(',', $values));
$db->setQuery($query);
try {
$db->execute();
return $db->insertid();
} catch (Exception $e) {
}
}
private function AddDesign($id,$data){
$db = $this->getDbo();
$query = $db->getQuery(true);
$query->delete($db->quoteName('#__ovacomposer_design'))->where('pageid='.$id);
$db->setQuery($query);
try {
$result=$db->execute();
} catch (Exception $e) {
// catch the error.
}
$columns = array('pageid','json','type');
foreach($data as $item){
$query = $db->getQuery(true);
$values = array($id, $db->quote($item),$db->quote(json_decode($item)->type));
$query ->insert($db->quoteName('#__ovacomposer_design'))
->columns($db->quoteName($columns))
->values(implode(',', $values));
$db->setQuery($query);
try {
$result=$db->execute();
} catch (Exception $e) {
// catch the error.
}
}
}
private function getCode($data){
$this->code.='['.$data->type.' '.$this->getCodeAttr($data->attr).'] ';
if(is_array($data->content)){
foreach($data->content as $item){
$this->getCode($item);
}
}else
$this->code.=$data->content;
$this->code.='[/'.$data->type.'] ';
}
private function getCodeAttr($data){
$arr = get_object_vars($data);
$attr="";
if(count($arr)>0){
foreach ($arr as $key => $value) {
$attr.="{$key}='{$value}' ";
}
}
return $attr;
}
// Duplicate
public function duplicate($id){
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*')->from('#__ovacomposer')->where('id='.$id);
$db->setQuery($query);
$page = $db->loadObject();
$query = $db->getQuery(true);
$columns = array('name', 'code', 'config', 'keyword', 'description', 'robots', 'author');
$values = array($db->quote($page->name.' - (copy)'), $db->quote($page->code), $db->quote($page->config), $db->quote($page->keyword), $db->quote($page->description), $db->quote($page->robots), $db->quote($page->author));
$query ->insert($db->quoteName('#__ovacomposer'))
->columns($db->quoteName($columns))
->values(implode(',', $values));
$db->setQuery($query);
$db->query();
$newid = $db->insertid();
$query = $db->getQuery(true);
$query->select('id')->from('#__ovacomposer_design')->where('pageid='.$id)->order('pageid ASC');
$db->setQuery($query);
$desiId = $db->loadObjectList();
foreach ($desiId as $key => $desi) {
$this->duplicateDesign($desi->id,$newid);
}
}
private function duplicateDesign($id,$newid){
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*')->from('#__ovacomposer_design')->where('id='.$id);
$db->setQuery($query);
$desi = $db->loadObject();
$query = $db->getQuery(true);
$columns = array('pageid', 'json', 'type');
$values = array($newid, $db->quote($desi->json), $db->quote($desi->type));
$query ->insert($db->quoteName('#__ovacomposer_design'))
->columns($db->quoteName($columns))
->values(implode(',', $values));
$db->setQuery($query);
$db->query();
}
}