所以我有一个菜单,其中一些菜单项是动态类别列表.左侧导航中的这样的东西(例如):
Menu One
Category Two
- Dynamic Article 1
- Dynamic Article 2
- Dynamic Article 3
Menu Three
Category Four
- Dynamic Article 1
- Dynamic Article 2
- Dynamic Article 3
Run Code Online (Sandbox Code Playgroud)
我认为我对菜单的描述不太清楚,所以我会稍微扩展一下.
假设我的左侧导航看起来非常时髦,并且组织如下:
- About Us
- Jack
- Joe
- Our Dog
- Success Stories
- Sammy in South Dakota
- Delilah in Delaware
- Arty from Arkansas
- ....
- Contact Us
- Recent Articles
- 9/4
- 9/2
- 8/30
- 8/27
- 8/25 …Run Code Online (Sandbox Code Playgroud) 我开始使用php和Joomla开发,并发现在Joomla中工作很难做一些相当简单的事情.通过Joomla MVC示例和Lynda(到目前为止已经构建了一些简单的视图).
我有一个帮助文件/类/函数,它输出"已完成"表中存在的所有用户ID,因此我可以显示基于该用户的新记录的链接或编辑现有用户的记录.
我已经在该帮助文件中成功地在组件的不同部分使用了不同的函数(Joomla:在组件中编写和调用辅助函数).
当我做同样的事情在模型中,我得到这样的:"致命错误:调用保护方法JModel :: _ createFileName()根据上下文'JView中’在C:\ WAMP\WWW\ilplocal \图书馆\的Joomla \应用第773行上的\ component\view.php".当我在视图中尝试它,工作正常 - 但我需要模型中的输出.
码:
lookups.php
abstract class LookupHelper {
public function other_functions($vars){
...
}
public function completions_exist() {
$db =& JFactory::getDBO();
$query = $db->getQuery(true);
$query->SELECT(' #__completed.completed_userid as UserID');
$query->FROM (' #__completed');
$query->GROUPBY (' #__completed.completed_userid ');
$db->setQuery($query);
$result = $db->loadResultArray(0);
return $result;
}
}
Run Code Online (Sandbox Code Playgroud)
在模型中:
$completions_exist = Jview::loadHelper('lookups');
$completions_exist = LookupHelper::completions_exist();
Run Code Online (Sandbox Code Playgroud)
这一行抛出错误: $completions_exist = Jview::loadHelper('lookups');
我发现了一些非常模糊的引用,称为JLoader :: register以引入辅助函数,但在Joomla中找不到任何好的文档,除了每个人都说要使用它.所以我试着这样使用它:
JLoader::register('LookupHelper', dirname( JPATH_COMPONENT_ADMINISTRATOR).DS.'helpers'.DS.'lookups.php');
$completions_exist = LookupHelper::completions_exist();
Run Code Online (Sandbox Code Playgroud)
它抛出这个错误:"致命错误:类'LookupHelper’用C未找到:\ WAMP …
我理解并喜欢模板覆盖.我需要对菜单输出做一些较重的更改(基本上使输出更好地使用Bootstrap) - 但仅限于某些菜单.
目前在Joomla 3中,mod_menu/tmpl文件夹中有以下内容:
default.php
default_component.php
default_heading.php
default_separator.php
default_url.php
Run Code Online (Sandbox Code Playgroud)
如果我想更改类,我mytemplate/html/mod_menu会将default.php复制到我的并更改它.太好了,没问题.
如果我想更改链接输出,我可以将default_component.php复制到mytemplate/html/mod_menu并更改它.太好了,没问题.
如果我想选择不同的"替代布局",我会重命名mytemplate/html/mod_menu/default.php为newlayout.php,然后在管理模块管理器中为该菜单选择它.太好了,没问题.
这是问题所在:如果我想让链接输出改变某些菜单而不是所有菜单,我想我会改变default_component.php,newlayout_component.php就像我上面做的那样对应于newlayout.php...但是这不起作用.
问题:
1)如何对每个备选布局default_component.php,default_heading.php,default_separator.php,default_url.php模板文件(不只是一个覆盖)?
2)我认为default_url.php会影响链接输出,但似乎default_component.php就是这样.那么每个人做什么呢?我在joomla.org上找不到任何关于此的信息.
谢谢!
仅使用CSS就可以轻松实现,但我无法通过使用Bootstrap来弄清楚如何使用它.
我希望有一个图像,文本环绕它,向左或向右浮动.但是我想要md和lg大小的屏幕为3列宽,并填充单列为xs和sm大小的屏幕.
所以在更大的屏幕上,这样的事情(这里最糟糕的草图):

现在,我有点工作......虽然它似乎只跨越2列,但我不确定原因:
<div class="row">
<div class="col-md-10 col-md-offset-1">
<div class="row">
<h2>About Them Guys</h2>
<p class="intro">Home is where you hang your hat. Flank shank bacon, fatback boudin ham tongue beef ribs pig brisket pancetta frankfurter. Jerky pig biltong, chicken hamburger swine corned beef beef ribs beef jowl.</p>
<div class="col-md-11 col-md-offset-1">
<p><img src="http://img690.imageshack.us/img690/5169/36ng.png" class="col-md-3 img-responsive pull-left" alt="" />Bacon ipsum dolor sit amet short loin jerky salami sausage, hamburger t-bone doner filet mignon sirloin beef. Tail short ribs jerky leberkas prosciutto pastrami …Run Code Online (Sandbox Code Playgroud) 我正在构建一个后端组件(1.6/1.7/2.5),我需要将另一个视图中的变量传递给新记录中的字段.变量传递工作正常.
我的问题是使用getInput().
从不同的doc页面开始,有不同的数量和参数格式 - 令人困惑!例如:
http://docs.joomla.org/API16:JForm/getInput:getInput($name, $group= '_default', $formControl= '_default', $groupControl= '_default', $value=null)
VS
http://docs.joomla.org/JForm::getInput/1.6:
public function getInput (
$name
$group=null
$value=null
)
Run Code Online (Sandbox Code Playgroud)
问题:
我只需要将变量作为默认值传递,例如:
echo $this->form->getInput('id', $value=$this->userID );?>
上面的代码使输入字段消失.如果我拿出$value=$this->userID输入字段显示虽然显然没有任何默认值.我也尝试过:
$value=$this->userID;
echo $this->form->getInput('id', $value );
Run Code Online (Sandbox Code Playgroud)
同样的问题,输入字段消失了.我尝试了一些其他的变化,但基本上如果我尝试在getInput()中放置任何其他东西它不起作用,我也找不到任何关于如何使用这些其他参数的好工作示例.
我究竟做错了什么?
谢谢!
制作一个简单的组件.如果我在选中此框的情况下保存新记录,则可以保存.如果我返回并取消选中之前检查的项目,它将恢复为已检查.我认为它与隐藏的字段有关,玩的是手动放置其中一个,但是没有解决它,所以把它取出来.
这是我在的地方:一个xml片段:
<fieldset name="checks">
<field name="checkbox1"
type="checkbox"
label="First Checkbox"
value="1"
filter="intval"
/>
<field name="checkbox2"
type="checkbox"
label="Second Checkbox"
value="1"
filter="intval"
/>
...
</fieldset>
Run Code Online (Sandbox Code Playgroud)
edit.php文件:
<div class="width-45 fltlft">
<fieldset class="adminform">
<legend>Checkboxes</legend>
<ul class="adminformlist">
<?php foreach ($this->form->getFieldset('checks') as $field): ?>
<li>
<?php echo $field->label; ?>
<?php echo $field->input; ?>
</li>
<?php endforeach ?>
</ul>
</fieldset>
</div>
Run Code Online (Sandbox Code Playgroud)
还在form.token之前添加了这个:
<input type="hidden" name="task" id="task" value="completion.edit" />
Run Code Online (Sandbox Code Playgroud)
我尝试删除xml中的值="1",但后来我遇到了相反的问题,检查根本不会保存.
有任何想法吗?
谢谢!
=============================
编辑:
模型:
<?php
defined( '_JEXEC' ) or die;
jimport('joomla.application.component.modeladmin');
class AssessModelCompletion extends JModelAdmin
{
//tells it …Run Code Online (Sandbox Code Playgroud)