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