在' images'中创建新文件夹。每篇新文章

时间:2016-03-21 15:14:32

标签: php joomla2.5

我需要扩展标准的Joomla文章选项。 我想为' images / news /'中的文章图片创建新文件夹。夹。每个新文件夹的名称将取自文章的别名。 我对Javascript有所了解,但不知道如何使用PHP和我需要编辑的文件来完成此操作。我的网站适用于Joomla 2.5,目前我无法对其进行更新。所以请记住这一刻。

2 个答案:

答案 0 :(得分:0)

我对Joomla一无所知。但这是用于创建文件夹的php命令:

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

好的,就像我说的,我真的不懂joomla。但它看起来并不难: https://docs.joomla.org/J2.5:Creating_a_content_plugin 所以我会尽力给你一个开始。但是如果有一个熟悉Joomla的人的回答我会听他们=)

基本上,您的内容插件需要2个文件。一个php文件" 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文件&#34; myContentPlugin.xml&#34;这将是这样的:

 <?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>me@mail.de</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

答案 1 :(得分: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”目录中创建新文件夹。