Example #1
0
 public static function onCCK_Storage_LocationAfterRender(&$buffer, &$data, $uri = array())
 {
     $app = JFactory::getApplication();
     if ($uri['layout']) {
         return;
     }
     if ($uri['view'] == 'featured') {
         $data['return_view'] = 'featured';
         $tag = '&return=featured';
     } else {
         $data['return_view'] = '';
         $tag = '';
     }
     $class = JCck::on('3.4') ? ' class="hasTooltip"' : '';
     $data['doIntegration'] = false;
     $data['multilanguage'] = $data['options']->get('multilanguage', 0);
     if ($data['multilanguage']) {
         $data['search'] = '#<a' . $class . ' href="(.*)index.php\\?option=com_content&amp;task=article.edit' . $tag . '&amp;id=([0-9]*)" (.*)>#U';
     } else {
         $data['search'] = '#<a' . $class . ' href="(.*)index.php\\?option=com_content&amp;task=article.edit' . $tag . '&amp;id=([0-9]*)"#';
     }
     $data['search_alt'] = '#<a href = "javascript://" onclick="listItemTask\\(\'cb([0-9]*)\', \'articles.archive\'\\)">(.*)</a>#sU';
     if (JCckDevHelper::hasLanguageAssociations() && $data['multilanguage']) {
         $query = 'SELECT a.pk, a.cck, b.key, c.language FROM #__cck_core AS a' . ' LEFT JOIN #__associations AS b ON ( b.id = a.pk AND context = "com_content.item" )' . ' LEFT JOIN #__content AS c ON c.id = a.pk' . ' WHERE storage_location="joomla_article"';
         $list_assoc = JCckDatabase::loadObjectListArray('SELECT a.id, a.key, b.language FROM #__associations AS a LEFT JOIN #__content AS b ON ( b.id = a.id AND a.context = "com_content.item" )', 'key', 'language');
     } else {
         $query = 'SELECT pk, cck FROM #__cck_core WHERE storage_location="joomla_article"';
         $list_assoc = array();
     }
     $list = JCckDatabase::loadObjectList($query, 'pk');
     $buffer = JCckDevIntegration::rewriteBuffer($buffer, $data, $list, $list_assoc);
 }
 public function onCCK_FieldPrepareForm(&$field, $value = '', &$config = array(), $inherit = array(), $return = false)
 {
     if (self::$type != $field->type) {
         return;
     }
     self::$path = parent::g_getPath(self::$type . '/');
     parent::g_onCCK_FieldPrepareForm($field, $config);
     // Init
     if (count($inherit)) {
         $id = isset($inherit['id']) && $inherit['id'] != '' ? $inherit['id'] : $field->name;
         $name = isset($inherit['name']) && $inherit['name'] != '' ? $inherit['name'] : $field->name;
     } else {
         $id = $field->name;
         $name = $field->name;
     }
     $value = $value != '' ? $value : $field->defaultvalue;
     $value = $value != ' ' ? $value : '';
     // Validate
     $validate = '';
     if ($config['doValidation'] > 1) {
         plgCCK_Field_ValidationRequired::onCCK_Field_ValidationPrepareForm($field, $id, $config);
         $validate = count($field->validate) ? ' validate[' . implode(',', $field->validate) . ']' : '';
     }
     // Prepare
     $assoc = JCckDevHelper::hasLanguageAssociations();
     $form = '';
     if ($assoc && $config['pk']) {
         if (isset($config['base']->location) && $config['base']->location) {
             $location = $config['base']->location;
         } else {
             $location = JCckdatabase::loadResult('SELECT storage_location FROM #__cck_core_types WHERE name = "' . $config['type'] . '"');
         }
         if (is_file(JPATH_SITE . '/plugins/cck_storage_location/' . $location . '/classes/helper.php')) {
             require_once JPATH_SITE . '/plugins/cck_storage_location/' . $location . '/classes/helper.php';
             $form = JCck::callFunc_Array('plgCCK_Storage_Location' . $location . '_Helper', 'getAssociationsForm', array($id, $name, $config));
         }
     }
     // Set
     if (!$field->variation) {
         $field->form = $form;
         if ($field->script) {
             parent::g_addScriptDeclaration($field->script);
         }
     } else {
         //
     }
     $field->value = $value;
     // Return
     if ($return === true) {
         return $field;
     }
 }
Example #3
0
 public static function rewriteBuffer($buffer, $data, $list, $list_assoc = array())
 {
     $app = JFactory::getApplication();
     $class = JCck::on('3.4') ? ' class="hasTooltip"' : '';
     $idx = 0;
     $idx2 = 2;
     $idx3 = 3;
     $items = array();
     $list2 = array();
     $multilanguage = 0;
     if (JCckDevHelper::hasLanguageAssociations()) {
         $multilanguage = isset($data['multilanguage']) && $data['multilanguage'] ? 1 : 0;
     }
     $pks = '';
     $return = $data['return_view'] ? '&return_o=' . $data['return_option'] . '&return_v=' . $data['return_view'] : '&return_o=' . $data['return_option'];
     preg_match_all($data['search'], $buffer, $matches);
     if (strpos($data['search'], '>') !== false) {
         $isComplete = true;
         $markup_end = '';
     } else {
         $isComplete = false;
         $markup_end = '>';
     }
     $opt_default_type = $data['options']->get('default_type', '');
     $opt_edit_alt = $data['options']->get('edit_alt', 1);
     if (count($matches[$idx2])) {
         if ($data['options']->get('edit', 0) == 1) {
             $i = 0;
             foreach ($matches[$idx2] as $k => $m) {
                 $type = @$list[$m]->cck;
                 $type = $type ? '&type=' . $type : '&type=' . $opt_default_type;
                 $search = $matches[$idx][$k];
                 $list2[$m] = array('link' => 'index.php?option=com_cck&amp;view=form' . $return . $type . '&id=' . $m . $data['replace_end']);
                 $replace = '<a' . $class . ' href="' . $list2[$m]['link'];
                 if ($isComplete) {
                     $replace .= ' ' . $matches[$idx3][$k] . '>';
                 }
                 $buffer = str_replace($search, $replace, $buffer);
                 $items[$i] = $matches[$idx][$k];
                 $i++;
             }
         } else {
             $i = 0;
             foreach ($matches[$idx2] as $k => $m) {
                 if (isset($list[$m]->cck)) {
                     $type = $list[$m]->cck;
                     $type = $type ? '&type=' . $type : '&type=' . $opt_default_type;
                     $search = $matches[$idx][$k];
                     $list2[$m] = array('link' => 'index.php?option=com_cck&amp;view=form' . $return . $type . '&id=' . $m . $data['replace_end']);
                     $replace = '<a' . $class . ' href="' . $list2[$m]['link'];
                     if ($isComplete) {
                         $replace .= ' ' . $matches[$idx3][$k] . '>';
                     }
                     $buffer = str_replace($search, $replace, $buffer);
                     $items[$i] = $matches[$idx][$k];
                     $i++;
                 }
             }
         }
     }
     if (JCck::on()) {
         if ($data['search_alt']) {
             $search = $data['search_alt'];
             preg_match_all($search, $buffer, $matches2);
             if (count($matches2[0])) {
                 if ($multilanguage) {
                     $languages = JLanguageHelper::getLanguages('lang_code');
                 }
                 foreach ($matches2[0] as $k => $m) {
                     $pk = $matches[$idx2][$k];
                     $pre = '';
                     $row = $matches2[0][$k];
                     $search = '';
                     $t_add = '';
                     $t_edit = '';
                     if (isset($matches[$idx][$k])) {
                         if ($opt_edit_alt) {
                             if (isset($list2[$pk])) {
                                 $text = '<span class="icon-pencil"></span> ' . JText::_('JTOOLBAR_EDIT') . ' (' . JText::_('LIB_CCK_LEGACY') . ')';
                                 $pre = $matches[$idx][$k] . $markup_end . $text . '</a></li>';
                             } else {
                                 $link = 'index.php?option=com_cck&amp;view=form' . $return . '&type=' . $opt_default_type . '&id=' . $pk . $data['replace_end'];
                                 $text = '<span class="icon-pencil"></span> ' . JText::_('JTOOLBAR_EDIT') . ' (' . JText::_('LIB_CCK_SEBLOD') . ')';
                                 $pre = '<a href="' . $link . '">' . $text . '</a></li>';
                             }
                         }
                         if ($multilanguage) {
                             if (isset($list[$pk]) && $list[$pk]->key) {
                                 $cur = $list[$pk]->language;
                                 $key = $list[$pk]->key;
                                 $link = 'index.php?option=com_cck&amp;view=form' . $return . '&type=' . $list[$pk]->cck;
                                 foreach ($languages as $l => $v) {
                                     if ($cur != $l) {
                                         if (isset($list_assoc[$key][$l])) {
                                             $link2 = $link . '&amp;id=' . $list_assoc[$key][$l]->id . $data['replace_end'];
                                             $t_edit .= '<li><a href="' . $link2 . '&plop=1"><span class="icon-arrow-right-3"> ' . $l . '</a></li>';
                                         } else {
                                             $link2 = $link . '&amp;translate=' . $l . '&amp;translate_id=' . $pk . $data['replace_end'];
                                             $t_add .= '<li><a href="' . $link2 . '"><span class="icon-arrow-right-3"> ' . $l . '</a></li>';
                                         }
                                     }
                                 }
                                 if ($t_edit || $t_add) {
                                     $pre .= '<li class="divider"></li>';
                                     if ($t_edit) {
                                         $pre .= '<li><a href="javascript:void(0);"><span class="icon-comments-2"></span> ' . JText::_('LIB_CCK_TRANSLATE_EDIT') . '</a></li>' . $t_edit;
                                     }
                                     if ($t_add) {
                                         $pre .= '<li><a href="javascript:void(0);"><span class="icon-comments-2"></span> ' . JText::_('LIB_CCK_TRANSLATE') . '</a></li>' . $t_add;
                                     }
                                 }
                             }
                         }
                         if ($pre != '') {
                             $pre .= '<li class="divider"></li>';
                             $buffer = str_replace($row, $pre . '<li>' . $row, $buffer);
                         }
                     }
                 }
             }
         }
     } elseif ($data['options']->get('edit_alt', 1)) {
         $search = '#<a href="index.php\\?option=com_cck&amp;view=form(.*):(.*)([a-z\\-0-9]*)\\)(.*)</p>#sU';
         preg_match_all($search, $buffer, $matches2);
         if (count($matches2[3])) {
             foreach ($matches2[3] as $k => $m) {
                 if (isset($matches[$idx][$k])) {
                     $search = ': ' . $matches2[3][$k] . ')';
                     $replace = ': ' . $items[$k] . ' style="color: #888888;">' . $m . '</a>)';
                     $matches0 = str_replace($search, $replace, $matches2[0][$k]);
                     $buffer = str_replace($matches2[0][$k], $matches0, $buffer);
                 }
             }
         }
     }
     return $buffer;
 }
Example #4
0
 public static function getRouteByStorage(&$storage, $sef, $itemId, $config = array())
 {
     if (isset($storage[self::$table]->_route)) {
         return JRoute::_($storage[self::$table]->_route);
     }
     if ($sef) {
         if ($sef == '0' || $sef == '1') {
             $path = '&catid=' . $storage[self::$table]->catid;
         } elseif ($sef[0] == '4') {
             $path = '&catid=' . (isset($storage[self::$table]->parent_alias) ? $storage[self::$table]->parent_alias : $storage[self::$table]->parent_id);
         } elseif ($sef[0] == '3') {
             $path = '&typeid=' . $config['type'];
         } else {
             $path = '';
         }
         if (is_object($storage[self::$table])) {
             $storage[self::$table]->_route = self::_getRoute($sef, $itemId, $storage[self::$table]->slug, $path);
         }
         // Multilanguage Associations
         if (JCckDevHelper::hasLanguageAssociations()) {
             // TODO (mod_cck_lang...)
         }
     } else {
         require_once JPATH_SITE . '/components/com_content/helpers/route.php';
         $storage[self::$table]->_route = ContentHelperRoute::getCategoryRoute($storage[self::$table]->id);
     }
     return JRoute::_($storage[self::$table]->_route);
 }
 public static function getRouteByStorage(&$storage, $sef, $itemId, $config = array(), $lang_tag = '')
 {
     if (isset($storage[self::$table]->_route) && !$lang_tag) {
         return JRoute::_($storage[self::$table]->_route);
     }
     if ($sef) {
         if ($sef == '0' || $sef == '1') {
             $path = '&catid=' . $storage[self::$table]->catid;
         } elseif ($sef[0] == '4') {
             $path = '&catid=' . (isset($storage[self::$table]->category_alias) ? $storage[self::$table]->category_alias : $storage[self::$table]->catid);
         } elseif ($sef[0] == '3') {
             $path = '&typeid=' . $config['type'];
         } else {
             $path = '';
         }
         if (is_object($storage[self::$table])) {
             $storage[self::$table]->_route = self::_getRoute($sef, $itemId, $storage[self::$table]->slug, $path);
         }
         // Multilanguage Associations
         if (JCckDevHelper::hasLanguageAssociations()) {
             $app = JFactory::getApplication();
             $pk = $storage[self::$table]->id;
             if ($app->input->get('view') == 'article' && $app->input->get('id') == $storage[self::$table]->id && !count(self::$routes)) {
                 JLoader::register('MenusHelper', JPATH_ADMINISTRATOR . '/components/com_menus/helpers/menus.php');
                 $assoc_c = JLanguageAssociations::getAssociations('com_content', '#__content', 'com_content.item', $pk);
                 $assoc_m = MenusHelper::getAssociations($itemId);
                 $languages = JLanguageHelper::getLanguages();
                 $lang_code = JFactory::getLanguage()->getTag();
                 foreach ($languages as $l) {
                     if ($lang_code == $l->lang_code) {
                         self::$routes[$l->lang_code] = $storage[self::$table]->_route;
                     } else {
                         $itemId2 = isset($assoc_m[$l->lang_code]) ? $assoc_m[$l->lang_code] : 0;
                         $pk2 = isset($assoc_c[$l->lang_code]) ? (int) $assoc_c[$l->lang_code]->id : 0;
                         self::$routes[$l->lang_code] = '';
                         if ($pk2 && $itemId2) {
                             self::$routes[$l->lang_code] = self::getRoute($pk2, $sef, $itemId2, $config, $l->sef);
                         }
                     }
                 }
             }
         }
     } else {
         require_once JPATH_SITE . '/components/com_content/helpers/route.php';
         $storage[self::$table]->_route = ContentHelperRoute::getArticleRoute($storage[self::$table]->slug, $storage[self::$table]->catid, $storage[self::$table]->language);
     }
     return JRoute::_($storage[self::$table]->_route);
 }