Exemple #1
0
 public static function parseXmlFiles($templateBaseDir = null)
 {
     // Read the template folder to find templates
     if (!$templateBaseDir) {
         $templateBaseDir = KPATH_SITE . '/template';
     }
     $data = self::parseXmlFile('', $templateBaseDir);
     if ($data) {
         // Guess template folder.
         $data->directory = preg_replace('/[^a-z0-9_]/', '', preg_replace('/\\s+/', '_', strtolower($data->name)));
         if (!$data->directory) {
             return array();
         }
         // Template found from the root (folder cannot contain more than one template)
         return array('' => $data);
     }
     $templateDirs = KunenaFolder::folders($templateBaseDir);
     $rows = array();
     // Check that the directory contains an xml file
     foreach ($templateDirs as $templateDir) {
         $data = self::parseXmlFile($templateDir, $templateBaseDir);
         if ($data) {
             $rows[$templateDir] = $data;
         }
     }
     ksort($rows);
     return $rows;
 }
Exemple #2
0
 /**
  * Get avatar gallery directories.
  *
  * @param   string  $path  Absolute path for the gallery.
  *
  * @return  array|string[]  List of directories.
  */
 protected function getGalleries($path)
 {
     $files = array();
     $images = $this->getGallery($path);
     if ($images) {
         $files[''] = $images;
     }
     // TODO: Allow recursive paths.
     $folders = KunenaFolder::folders($path);
     foreach ($folders as $folder) {
         $images = $this->getGallery("{$path}/{$folder}");
         if ($images) {
             foreach ($images as $image) {
                 $files[$folder][] = "{$folder}/{$image}";
             }
         }
     }
     return $files;
 }
Exemple #3
0
 /**
  * @return array
  */
 function getAllImagesInGallery()
 {
     $path = JPATH_ROOT . '/media/kunena/avatars/gallery';
     $galleryFolders = KunenaFolder::folders($path);
     $files_list = array();
     $defaultGallery = KunenaFolder::files($path);
     $newdefaultGallery = array();
     foreach ($defaultGallery as $image) {
         if ($image != 'index.html') {
             $newdefaultGallery[] = $image;
         }
     }
     $files_list['default'] = json_encode($newdefaultGallery);
     foreach ($galleryFolders as $folder) {
         $tmp = KunenaFolder::files($path . '/' . $folder);
         $newgalleryFolders = array();
         foreach ($tmp as $img) {
             if ($img != 'index.html') {
                 $newgalleryFolders[] = $img;
             }
         }
         $files_list[$folder] = json_encode($newgalleryFolders);
     }
     return $files_list;
 }
Exemple #4
0
 /**
  * @return array
  */
 public function getAdminOptions()
 {
     $category = $this->getAdminCategory();
     if (!$category) {
         return false;
     }
     $catList = array();
     $catList[] = JHtml::_('select.option', 0, JText::_('COM_KUNENA_TOPLEVEL'));
     // make a standard yes/no list
     $published = array();
     $published[] = JHtml::_('select.option', 1, JText::_('COM_KUNENA_PUBLISHED'));
     $published[] = JHtml::_('select.option', 0, JText::_('COM_KUNENA_UNPUBLISHED'));
     // make a standard yes/no list
     $yesno = array();
     $yesno[] = JHtml::_('select.option', 0, JText::_('COM_KUNENA_NO'));
     $yesno[] = JHtml::_('select.option', 1, JText::_('COM_KUNENA_YES'));
     // Anonymous posts default
     $post_anonymous = array();
     $post_anonymous[] = JHtml::_('select.option', '0', JText::_('COM_KUNENA_CATEGORY_ANONYMOUS_X_REG'));
     $post_anonymous[] = JHtml::_('select.option', '1', JText::_('COM_KUNENA_CATEGORY_ANONYMOUS_X_ANO'));
     $cat_params = array();
     $cat_params['ordering'] = 'ordering';
     $cat_params['toplevel'] = JText::_('COM_KUNENA_TOPLEVEL');
     $cat_params['sections'] = 1;
     $cat_params['unpublished'] = 1;
     $cat_params['catid'] = $category->id;
     $cat_params['action'] = 'admin';
     $channels_params = array();
     $channels_params['catid'] = $category->id;
     $channels_params['action'] = 'admin';
     $channels_options = array();
     $channels_options[] = JHtml::_('select.option', 'THIS', JText::_('COM_KUNENA_CATEGORY_CHANNELS_OPTION_THIS'));
     $channels_options[] = JHtml::_('select.option', 'CHILDREN', JText::_('COM_KUNENA_CATEGORY_CHANNELS_OPTION_CHILDREN'));
     if (empty($category->channels)) {
         $category->channels = 'THIS';
     }
     $topic_ordering_options = array();
     $topic_ordering_options[] = JHtml::_('select.option', 'lastpost', JText::_('COM_KUNENA_CATEGORY_TOPIC_ORDERING_OPTION_LASTPOST'));
     $topic_ordering_options[] = JHtml::_('select.option', 'creation', JText::_('COM_KUNENA_CATEGORY_TOPIC_ORDERING_OPTION_CREATION'));
     $topic_ordering_options[] = JHtml::_('select.option', 'alpha', JText::_('COM_KUNENA_CATEGORY_TOPIC_ORDERING_OPTION_ALPHA'));
     $aliases = array_keys($category->getAliases());
     $lists = array();
     $lists['accesstypes'] = KunenaAccess::getInstance()->getAccessTypesList($category);
     $lists['accesslists'] = KunenaAccess::getInstance()->getAccessOptions($category);
     $lists['categories'] = JHtml::_('kunenaforum.categorylist', 'parent_id', 0, null, $cat_params, 'class="inputbox"', 'value', 'text', $category->parent_id);
     $lists['channels'] = JHtml::_('kunenaforum.categorylist', 'channels[]', 0, $channels_options, $channels_params, 'class="inputbox" multiple="multiple"', 'value', 'text', explode(',', $category->channels));
     $lists['aliases'] = $aliases ? JHtml::_('kunenaforum.checklist', 'aliases', $aliases, true) : null;
     $lists['published'] = JHtml::_('select.genericlist', $published, 'published', 'class="inputbox"', 'value', 'text', $category->published);
     $lists['forumLocked'] = JHtml::_('select.genericlist', $yesno, 'locked', 'class="inputbox" size="1"', 'value', 'text', $category->locked);
     $lists['forumReview'] = JHtml::_('select.genericlist', $yesno, 'review', 'class="inputbox" size="1"', 'value', 'text', $category->review);
     $lists['allow_polls'] = JHtml::_('select.genericlist', $yesno, 'allow_polls', 'class="inputbox" size="1"', 'value', 'text', $category->allow_polls);
     $lists['allow_anonymous'] = JHtml::_('select.genericlist', $yesno, 'allow_anonymous', 'class="inputbox" size="1"', 'value', 'text', $category->allow_anonymous);
     $lists['post_anonymous'] = JHtml::_('select.genericlist', $post_anonymous, 'post_anonymous', 'class="inputbox" size="1"', 'value', 'text', $category->post_anonymous);
     $lists['topic_ordering'] = JHtml::_('select.genericlist', $topic_ordering_options, 'topic_ordering', 'class="inputbox" size="1"', 'value', 'text', $category->topic_ordering);
     $options = array();
     $options[0] = JHtml::_('select.option', '0', JText::_('COM_KUNENA_A_CATEGORY_CFG_OPTION_NEVER'));
     $options[1] = JHtml::_('select.option', '1', JText::_('COM_KUNENA_A_CATEGORY_CFG_OPTION_SECTION'));
     $options[2] = JHtml::_('select.option', '2', JText::_('COM_KUNENA_A_CATEGORY_CFG_OPTION_CATEGORY'));
     $options[3] = JHtml::_('select.option', '3', JText::_('COM_KUNENA_A_CATEGORY_CFG_OPTION_SUBCATEGORY'));
     $lists['display_parent'] = JHtml::_('select.genericlist', $options, 'params[display][index][parent]', 'class="inputbox" size="1"', 'value', 'text', $category->params->get('display.index.parent', '3'));
     unset($options[1]);
     $lists['display_children'] = JHtml::_('select.genericlist', $options, 'params[display][index][children]', 'class="inputbox" size="1"', 'value', 'text', $category->params->get('display.index.children', '3'));
     $topicicons = array();
     $topiciconslist = KunenaFolder::folders(JPATH_ROOT . '/media/kunena/topic_icons');
     foreach ($topiciconslist as $icon) {
         $topicicons[] = JHtml::_('select.option', $icon, $icon);
     }
     $lists['category_iconset'] = JHtml::_('select.genericlist', $topicicons, 'iconset', 'class="inputbox" size="1"', 'value', 'text', $category->iconset);
     return $lists;
 }
Exemple #5
0
 /**
  * Delete previoulsy uplaoded avatars from filesystem
  *
  * @return void
  */
 protected function deleteOldAvatars()
 {
     if (preg_match('|^users/|', $this->me->avatar)) {
         // Delete old uploaded avatars:
         if (is_dir(KPATH_MEDIA . '/avatars/resized')) {
             $deletelist = KunenaFolder::folders(KPATH_MEDIA . '/avatars/resized', '.', false, true);
             foreach ($deletelist as $delete) {
                 if (is_file($delete . '/' . $this->me->avatar)) {
                     KunenaFile::delete($delete . '/' . $this->me->avatar);
                 }
             }
         }
         if (is_file(KPATH_MEDIA . '/avatars/' . $this->me->avatar)) {
             KunenaFile::delete(KPATH_MEDIA . '/avatars/' . $this->me->avatar);
         }
     }
 }