2016-03-21 2 views
-1

Мне нужно расширить стандартные параметры статьи Joomla. Я хочу создать новую папку для изображений статьи в папке images/news /. Имя каждой новой папки будет взято из псевдонима статьи. У меня есть знания в Javascript, но я понятия не имею, как это сделать с PHP и с файлами, которые мне нужны для редактирования. Мой сайт работает на Joomla 2.5, и на данный момент я не могу его обновить. Поэтому имейте в виду этот момент.Создать новую папку в 'изображениях' с каждой новой статьей

ответ

0

У меня нет знаний в Joomla. Но это команда php для создания Папки:

$dirPath = 'images/news/'.$alias; 
$result = mkdir($dirPath); 

Хорошо, как я уже сказал, я действительно не знаю joomla. Но это не выглядит так сложно: https://docs.joomla.org/J2.5:Creating_a_content_plugin Так что я постараюсь дать вам начало. Но если есть ответ от кого-то, кто имеет опыт работы в Joomla, я бы прослушал их =)

В основном вам нужны 2 файла для вашего плагина Content. РНР Файл "myContentPlugin.php", который будет выглядеть следующим образом:

<?php 

defined('_JEXEC') or die(); 

jimport('joomla.plugin.plugin'); 


class plgMyComponent extends JPlugin 
{ 
public function __construct($subject, $config) 
{ parent::__construct($subject, $config); 
} 

function onContentBeforeSave($context, &$article, $isNew) 
{ global $mainframe; 


$dirPath = 'images/news/'.$articel->alias; 
$result = mkdir($dirPath); 

return true; 
} 
} 

и файл XML "myContentPlugin.xml", который будет выглядеть следующим образом:

<?xml version="1.0" encoding="utf-8"?> 
    <extension version="1.7" type="plugin" group="content"> 
    <name>myContentPlugin</name> 
    <author>JD</author> 
    <creationDate>September 2011</creationDate> 
    <copyright>Copyright (C) 2011 JD. All rights reserved.</copyright> 
    <license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license> 
    <authorEmail>[email protected]</authorEmail> 
    <authorUrl>www.domain.de</authorUrl> 
    <version>1.7.0</version> 
    <description></description> 
    <files> 
      <filename plugin="myContentPlugin">myContentPlugin.php</filename> 
    </files> 

Как найти из здесь http://forum.joomla.org/viewtopic.php?p=2607024

+0

Спасибо, что попробовали помочь! Ofcource Я нашел функцию mkdir в документации PHP, но я не знаю, как ее применять, когда я сохраняю свою статью. – pgasovav

+0

что именно вы не знаете? когда его запускать? onContentAfterSave может сделать трюк. –

+0

Да. Я не знаю, где мне нужна функция места, которая создает папку. – pgasovav

0

Итак, вот полное решение:

Добавьте флажок настраиваемого поля типа в бэкенд статьи (вы можете найти много руководств по inernet, поэтому я буду кратким), например «create_folder»;

<fieldset name="image_folder" label="Image folder"> 
    <field name="create_folder" 
     type="checkbox" 
     label="Create automatically" 
     value="1" 
     default="0" 
     filter="intval" 
    /> 
</fieldset> 

Создать плагин папку с .xml и .php файлов вашего плагина (подробнее здесь: https://docs.joomla.org/J2.5:Creating_a_Plugin_for_Joomla)

Это код моего файла .php:

<?php 

defined('_JEXEC') or die; 

class plgContentImgDir extends JPlugin 
{ 
     public function onContentAfterSave($context,&$article){ 
     if($context=='com_content.article'){  
       $folder_name=substr($article->alias,0,30); 
       $destination=JPATH_SITE.'/'."images/news"; 
       if(!file_exists($destination.$folder_name)){  
        JFolder::create($destination.'/'.$folder_name,0755); 
       } 
     } 
    } 
} 

?> 

После установки ваш плагин, вы получите дополнительную опцию в настройках своей статьи. Если флажок установлен, новая папка будет создана в каталоге «images».

Смежные вопросы