2016-03-21 19 views
-1

Standart Joomla makale seçeneklerini genişletmem gerekiyor. 'images/news /' klasöründeki makalenin görüntüleri için yeni bir klasör oluşturmak istiyorum. Her yeni klasörün adı makalenin takma adından alınacaktır. Javascript konusunda bilgim var, fakat bunun için nasıl bir düzenleme yapmam gerektiğini PHP ve wich dosyaları ile nasıl yapabilirim. Web sitem Joomla 2.5 üzerinde çalışıyor ve şu anda onu güncelleyemiyorum. Bu yüzden lütfen bu anı aklınızdan çıkarmayın.Her yeni makalede 'images' içinde yeni klasör oluştur

cevap

0

Joomla hakkında hiçbir bilgiye sahip değilim. Ancak bu, bir Klasör oluşturma için php komutudur:

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

Tamam dediğim gibi, gerçekten joomla'yı bilmiyorum. Ama o kadar da zor görünmüyor: https://docs.joomla.org/J2.5:Creating_a_content_plugin Size bir başlangıç ​​vermeye çalışacağım. Ama eğer Joomla'da yetenekli birinden bir cevap varsa onları dinlerdim =)

Temelde, İçerik eklentiniz için 2 Dosyaya ihtiyacınız var. Bu gibi görünecektir

<?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; 
} 
} 

ve bir XML dosyası "myContentPlugin.xml": Bu gibi görünecektir bir php Dosya "myContentPlugin.php"

<?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> 

bulunamadı gibi burada http://forum.joomla.org/viewtopic.php?p=2607024 Yani

+0

Yardım etmeyi denediğiniz için teşekkürler! Ofcource, PHP belgelerinde mkdir işlevini bulmuştum, ancak makalemi kaydettiğimde bunu nasıl uygulayacağımı bilmiyorum. – pgasovav

+0

tam olarak ne bilmiyorsun? ne zaman tetiklenir? onContentAfterSave hile yapabilirdi. –

+0

Evet. Klasör oluşturmak için yer işlevine nerede ihtiyacım olduğunu bilmiyorum. – pgasovav

0

, burada tam bir çözümdür:

Makalenin arka ucuna özel alan türü onay kutusu ekleyin (inernet üzerinde birçok el kitabını bulabilirsiniz, bu yüzden kısa olacağım), örneğin 'create_folder'; Eğer yükledikten sonra

<?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); 
       } 
     } 
    } 
} 

?> 

:

Bu benim .php dosyasının kod şudur:

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

senin Eklentinin .xml ve .php dosyaları ile eklenti klasörü (https://docs.joomla.org/J2.5:Creating_a_Plugin_for_Joomla burada daha fazla bilgi) oluştur Eklentiniz, makale ayarlarınızda ek seçenek alırsınız. Onay kutusu işaretliyse 'görüntüler' dizininde yeni klasör oluşturulacak.