%PDF- %PDF-
Direktori : /home1/lightco1/www/administrator/components/com_joomailermailchimpintegration/models/ |
Current File : //home1/lightco1/www/administrator/components/com_joomailermailchimpintegration/models/create.php |
<?php /** * Copyright (C) 2015 freakedout (www.freakedout.de) * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. **/ // no direct access defined('_JEXEC') or die('Restricted Access'); class joomailermailchimpintegrationModelCreate extends jmModel { public static $sefLinks = array(); public function __construct(){ parent::__construct(); } public function getK2Installed() { $db = JFactory::getDBO(); $query = $db->getQuery(true) ->select($db->qn('extension_id')) ->from($db->qn('#__extensions')) ->where($db->qn('type') . ' = ' . $db->q('component')) ->where($db->qn('element') . ' = ' . $db->q('com_k2')) ->where($db->qn('enabled') . ' = ' . $db->q(1)); $db->setQuery($query); $k2Installed = $db->loadResult(); return ($k2Installed) ? true : false; } public function getCategories() { $db = JFactory::getDBO(); $query = $db->getQuery(true) ->select($db->qn(array('id', 'title', 'parent_id', 'level'), array('cid', 'ctitle', 'parent_id', 'level'))) ->from($db->qn('#__categories')) ->where($db->qn('extension') . ' = ' . $db->q('com_content')) ->order('lft'); $db->setQuery($query); return $db->loadObjectList(); } public function getK2cat($catid = 0) { $db = JFactory::getDBO(); $query = $db->getQuery(true) ->select($db->qn(array('id', 'name'))) ->from($db->qn('#__k2_categories')); if ($catid > 0) { $query->where($db->qn('id') . ' = ' . $db->q($catid)); } $db->setQuery($query); return $db->loadObjectList(); } public function getMClists() { return $this->getModel('lists')->getLists(); } public function getMergeTags() { $result = array(); foreach ($this->getMClists() as $list) { $merges = $this->getModel('lists')->getListMergeVars($list['id']); if (count($merges)) { $result[$list['name']] = $merges; } } return $result; } public function getFolders() { return $this->getModel('campaignlist')->getFolders(); } public function createFolder($folderName) { // check if a folder with the given name exists $folders = $this->getFolders(); foreach ($folders as $folder) { if ($folder['name'] == $folderName) { return $folder['folder_id']; } } // create new folder and return folder_id return $this->getMcObject()->createFolder($folderName); } public static function getSefLink($data, $component = 'com_content', $view = '') { if (is_string($data)) { $data = array($data); } $key = implode('', $data); if (!isset(self::$sefLinks[$component][$key])) { $config = JFactory::getConfig(); $db = JFactory::getDBO(); $app = JFactory::getApplication(); $router = $app::getRouter('site', array('mode' => $config->get('sef'))); switch ($component) { case 'com_content': $link = 'index.php?option=com_content&view=article&id=%d'; break; case 'com_k2': $link = 'index.php?option=com_k2&view=item&layout=item&id=%d'; break; case 'com_virtuemart': $link = 'index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=%d&virtuemart_category_id=%d'; break; case 'com_community': if ($view == 'profile') { $link = 'index.php?option=com_community&view=profile&userid=%d'; } else if ($view == 'discussion') { $link = 'index.php?option=com_community&view=groups&task=viewdiscussion&groupid=%d&topicid=%d'; $link = 'index.php?option=com_community&view=groups&task=viewdiscussion&groupid=%d&topicid=%d'; } } $link = vsprintf($link, $data); // check if we have a menu item pointing to this article $query = $db->getQuery(true) ->select($db->qn('id')) ->from($db->qn('#__menu')) ->where($db->qn('link') . ' = ' . $db->q($link)); $db->setQuery($query); $itemId = $db->loadResult(); // use first jomsocial menu we can find if (!$itemId && $component == 'com_community') { $query = 'SELECT ' . $db->qn('id') . ' FROM ' . $db->qn('#__menu') . ' WHERE ' . $db->qn('link') . ' LIKE ' . $db->q('%com_community%') . 'AND ' . $db->qn('published') . '=' . $db->q(1) . ' ' . 'AND ' . $db->qn('menutype') . '!=' . $db->q($config->get('toolbar_menutype')) . ' ' . 'AND ' . $db->qn('type') . '=' . $db->q('component'); $db->setQuery($query); $res = $db->loadResult(); if ($res) { $link .= '&Itemid=' . $res; } } if ($router->getMode() == JROUTER_MODE_SEF) { if ($itemId && strpos($link, 'Itemid=') === false) { $link = 'index.php?Itemid=' . $itemId; } $link = str_replace('/administrator', '', $router->build(JURI::root() . $link)); } else { $link = JUri::root() . $link; if ($itemId) { $link .= '&Itemid=' . $itemId; } } self::$sefLinks[$component][$key] = JFilterOutput::ampReplace(htmlspecialchars($link)); } return self::$sefLinks[$component][$key]; } }