10月29日工作日志

10月29日: 上午: 和赵坚一起完成分页功能,后台管理功能。 赵坚提议,给管理员提供一个特殊的导航栏,普通用户NavOut.tpl,登录用户Nav.tpl,那么管理员也应该有一个NavAdmin.tpl。 那么这里要去研究导航栏是如何添加的 继续研究如何将分页添加的我们的系统,我认为这个架构里面不可能没有考虑到分页,可定在其他的什么地方有分页功能或者思想。 赵坚创建了主页编辑表给我,代码如下: create table pagecontent ( id int auto_increament not null primary key, page varchar(30), content text ) 在用户表中添加一个字段,代码如下: ALTER TABLE users ADD Action VARCHAR(10) default 'Activate' (Deactivate/Activate) 添加成功 这里模仿books的公开和不公开来 赵坚将分页功能放到的YzLib下的Yz.php文件中,并且通知了我,我以后调用就好了。 我在UserHelper.class.php文件中发现了pubbooks方法,但是我忘记是为了那个ajax请求来写的。这个方法应该是在BookHelper中的,那么这里的就是多余的。 添加方法在UserHelper.class.php中: public function activeUser($UserId) { $sql = "UPDATE users SET Action='Activate' WHERE Action<>'Activate' and UserId=".$UserId; return DAL::update($sql); } public function Deactivate($UserId) { $sql = "UPDATE users SET Action='Deactivate' WHERE Action<>'Deactivate' and UserId=".$UserId; return DAL::update($sql); } 根据php代码可以拼sql语句如下: UPDATE users SET Action='Deactivate' WHERE Action<>'Deactivate' and UserId=22 UPDATE users SET Action='Activate' WHERE Action<>'Activate' and UserId=22 测试成功,用户锁定和解锁的功能实现,但是权限判断如何进行呢? 学习smarty的elseif判断 {if $name eq 'Fred'} Welcome Sir. {elseif $name eq 'Wilma'} Welcome Ma'am. {else} Welcome, whatever you are. {/if} 在Head.tpl文件中添加如下代码,保证管理员登陆有的功能: {if $ISADMIN>0} {include file="NavAdmin.tpl"} {elseif $USERID>0} {include file="Nav.tpl"} {else} {include file="NavOut.tpl"} {/if} 这里导航栏连接可能有点多,不过这些内容只要稍作修改就可以了。管理员是有全部权限的。这个是肯定的。 上午: 添加了用户可用和禁用,那么就要考虑到如何去实现,用户禁用以后就不能登录,信息暂时就不能被其他用户检索到。 用户不能登录,可以在登录的时候进行判断和验证,这个好解决,就是如果判断到了用户禁用,那么就不发放session令牌,不让其登录成功。 那么如何然别人不能查找到已经禁用的用户呢?这要在查找的时候进行判断了,那么这里的业务逻辑就复杂起来了。 原来不知道怎么想的了,在BasePage中定义了两个设置session的方法,其实就是IsAdmin的判断不同,写死为:1或者0。 这里的值应该是从查询出来的user对象中的一个属性中取值,进行修改后,测试,成功。 index负责登录任务,另外还有一个login.class.php也可以负责登录,但是一直没有用到。 下面完成昨天的没有修改的错误。 调试的思路: 昨天没有任何思路,但是赵坚就能游刃有余,佩服之余是思考:为什呢?他是怎么想的呢?回忆他昨天的做法,但是没用,没有实质进展 自己总结,尝试发现一种自己的调试ajax的思路、习惯、方法或者其他的一些什么。 自己觉得最好的办法就是alert出来ajax调用出来的数据,看是不是合法。 update books set IsPublic = 1 where IsSafety<>1 and IsPublic<>1 现在要: 检查这个网站到底干什么的, 点击write按钮的时候,会报错,因为就没有backgroundmusic这个表,不知道是不是我的版本太旧的原因。 在BookList中有一个变量 __isWrite 不知道是从哪里来的, 这里是判断用户是否进行编辑的关键:var src='Biography.html?bid='+bookId+(__isWrite>0 ? '&w=1' : ''); 如果__isWrite>0那么就在url中添加一个w=1,而后台php类获得w=1的话就会编译或者执行用户编辑传记 MyBooks中有onDisplay注册js代码到页面,这里改变着__isWrite的值,如果条件符合,就将__isWrite的值变为1。 那么怎么才能进入到MyBooks中并将其值改变呢?点击登录后才会出现的Nav.tpl导航栏,write超链接会调用onWrite(0)方法 onWrite里的链接地址为:window.location.href='MyBooks.html?w=1'; 这里就写死了w=1,也就是说这是编辑的钥匙。点击了他就可以进行编辑。 但是有个前提,你已经登录。 那么也就是:如果你先点击了write按钮,然后在点击某一本书的封皮调用onListClick的时候src将不再只是:Biography.html?bid=11,而是Biography.html?bid=11&w=1 因为var src='Biography.html?bid='+bookId+(__isWrite>0 ? '&w=1' : '');中的(__isWrite>0 ? '&w=1' : '')最终的值将是&w=1而不是'',及空串。 那么进入的也将是BiographyRead.tpl编译的页面,也就是说仅仅可以去读内容。 --------------插播一段: pageNow=pageNow || 1; 这个写法是在BiographyRead.tpl找到的,这里相当于三木运算符。我们的分页应该有希望了吧。 我暂时将BookHelper中的第123行查询背景音乐的那行注释掉。 loadPage params params.leftPageNo==0 BookHelper.html?a=getrecording&id=10 测试uab有没有错误 http://uabdev.51vip.biz/Index.html 没有登录的时候,点击boolist查看图书没有问题,可一获得图书的类表,但是点击某一封面的时候进入后会报js错误,381行,代码是: var params=Yz.xmlhttp.syncRequest('BackGroundMusic.html?act=loadMusic&PageId='+PageId+'&BookId='+__bookId); 我这里没有backgroundmusic表,还有BackGroundMusic类在BasePage中的权限没有放开。 图片不能正常显示,这里估计是读取图片的类,PhotoHelper,在PhotoAlbum.tpl中被调用到了,这里也应该把它的权限公开。 这里在查找Background中的表的时候也会有错误,现在就是不知道一个PageId是做什么的。 现在的问题是,我们没有版本 晚上: 添加一个管理主页的功能,结合fck,这个项目已经使用了fck,我要尝试使用,应该不是很难把,这个程序员让我头疼,但是我喜欢。 添加一个EditIndex.class.php和一个EditIndex.tpl文件分别到相应目录。 EditIndex.tpl模仿EditPage.tpl,EditIndex.class.php模仿EditPage.class.php 在biography.tpl中有一个Edit按钮,调用的是如下的函数: function onEditPage(id) { Yz.dialog.show("EditPage.html?id="+id,"My life in words - Edit page",function(r){if(r>0)loadPage(id)}); } 这个函数函数可以调出一个在线编辑器来,它已经封装到了YzLib中了,但是要依赖一些什么我就不是很清楚了。 后台接受数据的方式: trim(Context::$request->getString("Content")); 那么现在的问题在于如何调用出出来这个页面。 在NavAdmin.tpl中EditIndex链接上添加单击事件editindex,具体代码: function editindex(){Yz.dialog.show("EditPage.html?iid=1","My life in words - Create page",function(r){if(r>0)loadPage(r)});} 这个可以调用出来fck,可以添加文字控制格式非常好用,但是不知道如何设置其post的目标。我这里要post到EidtIndex或者是EditPage

你可能感兴趣的:(10月29日工作日志)